Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c6dafc0
Update actions/checkout action to v7 (#1800)
renovate[bot] Jun 24, 2026
c33bc62
Anthelion Changes
UnownPlain Apr 16, 2026
b1f729a
Enable traces in release builds
UnownPlain Apr 25, 2026
0192567
Add configurable winget-pkgs repo
UnownPlain Mar 9, 2026
a260f7d
Remove InstallerLocale if only 1 locale is present
UnownPlain Mar 2, 2026
661f20e
Do not set user scope for MSI installers
UnownPlain Apr 17, 2026
e019f9d
Fix NSIS bzip2 compressed installers
UnownPlain May 2, 2026
a600634
Lowercase RelativeFilePath extensions
UnownPlain Mar 2, 2026
9d1ae2c
Add external editor support for editing manifests
UnownPlain Feb 6, 2026
1ff48f5
Match installer locales correctly
UnownPlain Mar 17, 2026
13c34db
Set default `app_versioned_name`
UnownPlain Mar 23, 2026
83e78c1
Switch to `serde-saphyr`
UnownPlain Apr 16, 2026
2e4af55
Fix branch cleanup open PR detection
UnownPlain Apr 14, 2026
ad25214
Do not set scope for NSIS installers with mismatched registry and ins…
UnownPlain May 7, 2026
1191ea5
Model NSISdl calls and mocked Execute exit code
UnownPlain May 10, 2026
7101264
Remove extra InstallerType from burn ARP entries
UnownPlain May 16, 2026
163c7b0
Fix duplicate installers with ElevationRequirement scoped installers
UnownPlain May 21, 2026
035e441
Check for existing PRs on `komac remove`
UnownPlain Apr 15, 2026
a58390d
Ignore und InstallerLocale
UnownPlain Apr 17, 2026
30288bf
Add request retrying
UnownPlain May 23, 2026
90d8217
Expose PE info in analyze command
UnownPlain May 29, 2026
ab9ccf4
Add new-locale command
UnownPlain Jun 3, 2026
d9c54ee
Do not set scope for privileges_required = None
UnownPlain Jun 11, 2026
b5011b2
Fixed NSIS StrCpy empty assignments
UnownPlain Jun 14, 2026
d834afa
Update package family name
UnownPlain Jun 20, 2026
5c253fe
Add comments to custom exe types
UnownPlain Jun 20, 2026
e90f281
Use ValidFileExtensions enum
UnownPlain Dec 23, 2025
54d005c
Add font support
UnownPlain Dec 23, 2025
5e114ec
Check font magic bytes
UnownPlain Dec 17, 2025
ee0977b
Validate selected zip files
UnownPlain Jun 20, 2026
0ea6bd3
Allow downloads without a Content-Type header
UnownPlain Jul 3, 2026
6584088
Merge anthelion/anthelion into devicie fork
claude Jul 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[target.'cfg(any(target_env = "msvc", target_env = "musl"))']
rustflags = ["-C", "target-feature=+crt-static"]

[target.'cfg(target_arch = "x86_64")']
rustflags = ["-C", "target-cpu=x86-64-v3"]

[target.'cfg(all(target_arch = "aarch64", not(target_vendor = "apple")))']
rustflags = ["-C", "target-cpu=cortex-a76"]

[target.'cfg(all(windows, target_env = "msvc"))']
linker = "rust-lld"

# Avoid linking with vcruntime140.dll by statically linking everything,
# and then explicitly linking with ucrtbase.dll dynamically.
# We do this, because vcruntime140.dll is an optional Windows component.
[target.'cfg(all(target_os = "windows", target_env = "msvc"))']
rustflags = [
"-Clink-args=/DEFAULTLIB:ucrt.lib",
"-Clink-args=/NODEFAULTLIB:vcruntime.lib",
"-Clink-args=/NODEFAULTLIB:msvcrt.lib",
"-Clink-args=/NODEFAULTLIB:libucrt.lib",
]
22 changes: 17 additions & 5 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
# Auto detect text files and perform normalization
* text=auto
# Auto detect text files and perform LF normalization
* text=auto

*.rs text diff=rust
*.toml text diff=toml
Cargo.lock text

*.ts text eol=lf merge=union
*.tsx text eol=lf merge=union
*.rs text eol=lf merge=union
*.js text eol=lf merge=union
*.json text eol=lf merge=union
*.debug text eol=lf merge=union

# Generated codes
index.js linguist-detectable=false
index.d.ts linguist-detectable=false
anthelion-komac.wasi-browser.js linguist-detectable=false
anthelion-komac.wasi.cjs linguist-detectable=false
wasi-worker-browser.mjs linguist-detectable=false
wasi-worker.mjs linguist-detectable=false
287 changes: 287 additions & 0 deletions .github/workflows/release_anthelion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,287 @@
name: Release

on:
workflow_dispatch:

env:
DEBUG: napi:*
APP_NAME: anthelion-komac
DEV_DRIVE_WORKSPACE: ${{ github.workspace }}

defaults:
run:
shell: bash -euo pipefail {0}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions: {}

jobs:
build-cli:
name: Build CLI - ${{ matrix.platform.target }}

strategy:
fail-fast: false

# Cross compiling from arm64 runners is faster than compiling on x64 runners
matrix:
platform:
- os: windows-11-arm
target: x86_64-pc-windows-msvc
- os: windows-11-arm
target: aarch64-pc-windows-msvc
- os: ubuntu-24.04-arm
target: x86_64-unknown-linux-musl
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
- os: macos-26
target: aarch64-apple-darwin
- os: macos-26
target: x86_64-apple-darwin

runs-on: ${{ matrix.platform.os }}

env:
RUST_TARGET: ${{ matrix.platform.target }}

steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Setup Dev Drive
if: ${{ contains(matrix.platform.os, 'windows') }}
uses: samypr100/setup-dev-drive@30f0f98ae5636b2b6501e181dfb3631b9974818d # v4.0.0
with:
workspace-copy: true
drive-size: 12GB
drive-format: ReFS
env-mapping: |
CARGO_HOME,{{ DEV_DRIVE }}/.cargo
RUSTUP_HOME,{{ DEV_DRIVE }}/.rustup

- parallel:
- name: Setup Rust
uses: moonrepo/setup-rust@abb2d32350334249b178c401e5ec5836e0cd88d3 # v1.3.0
with:
channel: nightly
targets: ${{ matrix.platform.target }}
cache: false

- name: Setup Zig
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
if: ${{ contains(matrix.platform.target, 'linux') }}
with:
version: master
use-cache: false

- name: Install Tools
uses: taiki-e/install-action@bffeee26d4db9be238a4ea78d8826604ebcb594d # v2.82.5
if: ${{ contains(matrix.platform.target, 'linux') }}
with:
tool: cargo-zigbuild

- name: Build Binary
working-directory: ${{ env.DEV_DRIVE_WORKSPACE }}
run: |
[[ "${RUNNER_OS}" == "Linux" ]] && subcommand="zigbuild" || subcommand="build"

cargo "${subcommand}" --target "${RUST_TARGET}" --bin komac --release --locked

- name: Package Binary
id: package
working-directory: ${{ env.DEV_DRIVE_WORKSPACE }}
run: |
bin="komac"
artifact_name="komac-nightly-${RUST_TARGET}"

if [[ "${RUNNER_OS}" == "Windows" ]]; then
bin="komac.exe"
artifact_name+=".exe"
mv "target/${RUST_TARGET}/release/${bin}" "${artifact_name}"
echo "file=${artifact_name}" >> "$GITHUB_OUTPUT"
else
archive_name="${artifact_name}.tar.zst"
tar -cvf "${archive_name}" \
--use-compress-program="zstd" \
-C "target/${RUST_TARGET}/release" \
"${bin}"
echo "file=${archive_name}" >> "$GITHUB_OUTPUT"
fi

echo "artifact_name=cli-${RUST_TARGET}" >> "$GITHUB_OUTPUT"

- name: Upload Artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ steps.package.outputs.artifact_name }}
path: ${{ env.DEV_DRIVE_WORKSPACE }}/${{ steps.package.outputs.file }}
if-no-files-found: error

build-js-bindings:
name: Build JS Bindings - ${{ matrix.platform.target }}

strategy:
fail-fast: false

# Cross compiling from arm64 runners is faster than compiling on x64 runners
matrix:
platform:
- os: windows-11-arm
target: x86_64-pc-windows-msvc
- os: windows-11-arm
target: aarch64-pc-windows-msvc
- os: ubuntu-24.04-arm
target: x86_64-unknown-linux-gnu
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
- os: ubuntu-24.04-arm
target: x86_64-unknown-linux-musl
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
- os: macos-26
target: aarch64-apple-darwin
- os: macos-26
target: x86_64-apple-darwin

runs-on: ${{ matrix.platform.os }}

env:
RUST_TARGET: ${{ matrix.platform.target }}

steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Setup Dev Drive
if: ${{ contains(matrix.platform.os, 'windows') }}
uses: samypr100/setup-dev-drive@30f0f98ae5636b2b6501e181dfb3631b9974818d # v4.0.0
with:
workspace-copy: true
drive-size: 12GB
drive-format: ReFS
env-mapping: |
CARGO_HOME,{{ DEV_DRIVE }}/.cargo
RUSTUP_HOME,{{ DEV_DRIVE }}/.rustup

- parallel:
- name: Setup Rust
uses: moonrepo/setup-rust@abb2d32350334249b178c401e5ec5836e0cd88d3 # v1.3.0
with:
channel: nightly
targets: ${{ matrix.platform.target }}
cache: false

- name: Setup Zig
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
if: ${{ contains(matrix.platform.target, 'linux') }}
with:
version: master
use-cache: false

- name: Install Tools
uses: taiki-e/install-action@bffeee26d4db9be238a4ea78d8826604ebcb594d # v2.82.5
if: ${{ contains(matrix.platform.target, 'linux') }}
with:
tool: cargo-zigbuild

- name: Setup Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0

- name: Install Dependencies
working-directory: ${{ env.DEV_DRIVE_WORKSPACE }}
run: bun ci

- name: Build Binary
working-directory: ${{ env.DEV_DRIVE_WORKSPACE }}
run: |
[[ "${RUNNER_OS}" == "Linux" ]] && zigbuild_flag="-x" || zigbuild_flag=""

bun run build --target "${RUST_TARGET}" ${zigbuild_flag} -- --locked

- name: Upload Artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: bindings-${{ matrix.platform.target }}
path: |
${{ env.DEV_DRIVE_WORKSPACE }}/${{ env.APP_NAME }}.*.node
${{ env.DEV_DRIVE_WORKSPACE }}/${{ env.APP_NAME }}.*.wasm
${{ env.DEV_DRIVE_WORKSPACE }}/index.js
${{ env.DEV_DRIVE_WORKSPACE }}/index.d.ts
if-no-files-found: error

release:
name: Publish Release

needs:
- build-cli
- build-js-bindings

runs-on: ubuntu-slim

permissions:
contents: write # Required to publish GitHub release
id-token: write # Required for npm Trusted Publishing

steps:
- parallel:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false

- name: Download Artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: ./artifacts

- parallel:
- name: Create Release
run: |
shopt -s extglob
gh release delete nightly --yes --cleanup-tag 2>/dev/null || true
sleep 5 # cli/cli#8458
gh release create nightly \
--target "anthelion" \
--title "Anthelion komac Build" \
--latest \
--notes "Custom build of komac for use with [UnownPlain/anthelion](https://github.com/UnownPlain/anthelion)" \
artifacts/**/!(*.js|*.ts|*.d.ts)
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}

# Publish npm

- name: Overwrite README
run: |
echo 'komac JS bindings for Anthelion' > README.md

- name: Setup Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
no-cache: true

- name: Copy JS files
run: cp artifacts/bindings-x86_64-unknown-linux-gnu/{index.js,index.d.ts} .

- name: Install Dependencies
run: bun ci

- name: Create npm Directories
run: bun napi create-npm-dirs

- name: Move Artifacts
run: bun run artifacts

- name: List Packages
run: ls -R ./npm

- name: Publish to npm
run: |
npm publish --provenance --access public
22 changes: 0 additions & 22 deletions .github/workflows/renovate.yml

This file was deleted.

Loading
Loading