From 54a86d80ccdc82b60f7b64827205965e7b86a983 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 26 Apr 2026 13:23:01 +0000
Subject: [PATCH 1/6] fix nativeaot publish dependency preparation
Agent-Logs-Url: https://github.com/meokit/podish/sessions/454d7315-082a-4fa2-ad9f-22bb1885c8ae
Co-authored-by: meokit <16623696+meokit@users.noreply.github.com>
---
Podish.Cli/Podish.Cli.csproj | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/Podish.Cli/Podish.Cli.csproj b/Podish.Cli/Podish.Cli.csproj
index 5c0c0cd..c87af43 100644
--- a/Podish.Cli/Podish.Cli.csproj
+++ b/Podish.Cli/Podish.Cli.csproj
@@ -33,8 +33,7 @@
true
false
true
- ..\Fiberish.X86\build_native\host
- ..\Fiberish.X86\build_native\$(RuntimeIdentifier)
+ ..\Fiberish.X86\build_native\$(RuntimeIdentifier)
..\Fiberish.X86\build_native\host
aarch64-apple-darwin
aarch64-apple-ios
@@ -48,6 +47,19 @@
..\Fiberish.Netstack\target\release\$(PodishNetstackLibName)
+
+
+
+
+
@@ -60,4 +72,9 @@
+
+
+
+
+
From a469ef2b5bdf225dbcf4891d7fabfc286f87450f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 26 Apr 2026 13:28:11 +0000
Subject: [PATCH 2/6] ci: add windows nativeaot publish job
Agent-Logs-Url: https://github.com/meokit/podish/sessions/60933f04-1da5-4abe-9206-5a08702d016a
Co-authored-by: meokit <16623696+meokit@users.noreply.github.com>
---
.github/workflows/ci.yml | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 729a67a..4dcef7c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -61,6 +61,32 @@ jobs:
dotnet build Fiberish.X86/Fiberish.X86.csproj -c Debug -r win-x64
shell: pwsh
+ publish-windows:
+ name: Publish Windows PodishCli NativeAOT
+ runs-on: windows-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 10.0.x
+
+ - name: Setup Rust
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Publish Windows PodishCli NativeAOT
+ run: dotnet publish Podish.Cli/Podish.Cli.csproj -c Release -r win-x64 -p:PublishAot=true -m:1
+ shell: pwsh
+
+ - name: Upload Windows publish artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: podishcli-win-x64-nativeaot-publish
+ path: Podish.Cli/bin/Release/net10.0/win-x64/publish/**
+
build-macos:
name: Build macOS full solution
runs-on: macos-latest
From 96a5771bc4f5d9e8b0101d778f16f27d38f1775c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 26 Apr 2026 13:34:23 +0000
Subject: [PATCH 3/6] ci: scope workflow token permissions
Agent-Logs-Url: https://github.com/meokit/podish/sessions/60933f04-1da5-4abe-9206-5a08702d016a
Co-authored-by: meokit <16623696+meokit@users.noreply.github.com>
---
.github/workflows/ci.yml | 3 +++
Podish.Cli/Podish.Cli.csproj | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4dcef7c..a4cc5e4 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,6 +7,9 @@ on:
- public-main
pull_request:
+permissions:
+ contents: read
+
jobs:
build-linux:
name: Build Linux core
diff --git a/Podish.Cli/Podish.Cli.csproj b/Podish.Cli/Podish.Cli.csproj
index c87af43..00c8e28 100644
--- a/Podish.Cli/Podish.Cli.csproj
+++ b/Podish.Cli/Podish.Cli.csproj
@@ -68,7 +68,7 @@
-
+
From a37ac114e7ef0de081b9454f1e63451c77471bdb Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 26 Apr 2026 13:35:55 +0000
Subject: [PATCH 4/6] build: remove duplicate native cxx link entry
Agent-Logs-Url: https://github.com/meokit/podish/sessions/60933f04-1da5-4abe-9206-5a08702d016a
Co-authored-by: meokit <16623696+meokit@users.noreply.github.com>
---
Podish.Cli/Podish.Cli.csproj | 1 -
1 file changed, 1 deletion(-)
diff --git a/Podish.Cli/Podish.Cli.csproj b/Podish.Cli/Podish.Cli.csproj
index 00c8e28..1904585 100644
--- a/Podish.Cli/Podish.Cli.csproj
+++ b/Podish.Cli/Podish.Cli.csproj
@@ -73,7 +73,6 @@
-
From fc2ff52706edc19ebf69c41f7589a06f94e37f24 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 26 Apr 2026 14:16:53 +0000
Subject: [PATCH 5/6] ci: add nativeaot publishes for all desktop platforms
Agent-Logs-Url: https://github.com/meokit/podish/sessions/2f48c807-e5dc-410b-9db4-850218ca8a75
Co-authored-by: meokit <16623696+meokit@users.noreply.github.com>
---
.github/workflows/ci.yml | 59 ++++++++++++++++++++++++++++++++++++
Podish.Cli/Podish.Cli.csproj | 4 +++
libfibercpu/CMakeLists.txt | 4 +++
3 files changed, 67 insertions(+)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a4cc5e4..c9bac01 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -90,6 +90,36 @@ jobs:
name: podishcli-win-x64-nativeaot-publish
path: Podish.Cli/bin/Release/net10.0/win-x64/publish/**
+ publish-linux:
+ name: Publish Linux PodishCli NativeAOT
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 10.0.x
+
+ - name: Setup Rust
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Install native build dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y clang cmake ninja-build libc++-dev libc++abi-dev
+
+ - name: Publish Linux PodishCli NativeAOT
+ run: dotnet publish Podish.Cli/Podish.Cli.csproj -c Release -r linux-x64 -p:PublishAot=true -m:1
+
+ - name: Upload Linux publish artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: podishcli-linux-x64-nativeaot-publish
+ path: Podish.Cli/bin/Release/net10.0/linux-x64/publish/**
+
build-macos:
name: Build macOS full solution
runs-on: macos-latest
@@ -164,3 +194,32 @@ jobs:
- name: Build full solution
run: dotnet build Podish.slnx -c Debug -p:EmscriptenToolchainFile="$EMSCRIPTEN_TOOLCHAIN_FILE" -p:BrowserWasmNodeExecutable="$BROWSER_WASM_NODE_EXECUTABLE"
+
+ publish-macos:
+ name: Publish macOS PodishCli NativeAOT
+ runs-on: macos-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 10.0.x
+
+ - name: Setup Rust
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Install native build dependencies
+ run: |
+ brew install cmake ninja
+
+ - name: Publish macOS PodishCli NativeAOT
+ run: dotnet publish Podish.Cli/Podish.Cli.csproj -c Release -r osx-arm64 -p:PublishAot=true -m:1
+
+ - name: Upload macOS publish artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: podishcli-osx-arm64-nativeaot-publish
+ path: Podish.Cli/bin/Release/net10.0/osx-arm64/publish/**
diff --git a/Podish.Cli/Podish.Cli.csproj b/Podish.Cli/Podish.Cli.csproj
index 1904585..e28f8c9 100644
--- a/Podish.Cli/Podish.Cli.csproj
+++ b/Podish.Cli/Podish.Cli.csproj
@@ -76,4 +76,8 @@
+
+
+
+
diff --git a/libfibercpu/CMakeLists.txt b/libfibercpu/CMakeLists.txt
index d6dc04d..39f3ac8 100644
--- a/libfibercpu/CMakeLists.txt
+++ b/libfibercpu/CMakeLists.txt
@@ -40,6 +40,10 @@ option(FIBERCPU_ENABLE_BLOCK_PROFILE "Enable lightweight per-block execution cou
option(FIBERCPU_ENABLE_HANDLER_PROFILE "Enable approximate per-handler execution profiling" OFF)
option(FIBERCPU_ENABLE_SUPEROPCODES "Enable generated SuperOpcode matching and handlers" ON)
+if(MSVC AND FIBERCPU_BUILD_STATIC)
+ set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>" CACHE STRING "MSVC runtime library" FORCE)
+endif()
+
set(FIBERCPU_GENERATED_SUPEROPCODES_FILE
"${CMAKE_CURRENT_SOURCE_DIR}/src/generated/superopcodes.generated.cpp")
From e2e37052618fcd0e8ace49ad91dccd999ea4c01f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 26 Apr 2026 14:47:13 +0000
Subject: [PATCH 6/6] ci: align release artifacts with publish outputs
Agent-Logs-Url: https://github.com/meokit/podish/sessions/4276211e-37d8-4b2d-a0ad-0d6fb7148f62
Co-authored-by: meokit <16623696+meokit@users.noreply.github.com>
---
.github/workflows/release.yml | 180 ++++++++++++++++++++--------------
Podish.Cli/Podish.Cli.csproj | 4 +-
2 files changed, 109 insertions(+), 75 deletions(-)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index d9b9ea1..0098c63 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -19,9 +19,9 @@ concurrency:
cancel-in-progress: false
jobs:
- build-macos:
- name: Build macOS PodishCli NativeAOT
- runs-on: macos-latest
+ publish-linux:
+ name: Publish Linux PodishCli NativeAOT
+ runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -40,42 +40,52 @@ jobs:
- name: Install native build dependencies
run: |
- brew install cmake ninja
+ sudo apt-get update
+ sudo apt-get install -y clang cmake ninja-build libc++-dev libc++abi-dev
- - name: Publish PodishCli NativeAOT
- run: dotnet publish Podish.Cli/Podish.Cli.csproj -c Release -r osx-arm64 -p:PublishAot=true -m:1
+ - name: Publish Linux PodishCli NativeAOT
+ run: dotnet publish Podish.Cli/Podish.Cli.csproj -c Release -r linux-x64 -p:PublishAot=true -m:1
- - name: Package release artifacts
- shell: bash
- env:
- RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }}
- run: |
- set -euo pipefail
- tag="${RELEASE_TAG}"
- version="${tag#v}"
- publish_dir="Podish.Cli/bin/Release/net10.0/osx-arm64/publish"
- staging_dir="$RUNNER_TEMP/PodishCli-$version-osx-arm64"
- archive_name="PodishCli-$version-osx-arm64-nativeaot.tar.gz"
- checksum_name="${archive_name}.sha256"
+ - name: Upload Linux publish artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: podishcli-linux-x64-nativeaot-publish
+ path: Podish.Cli/bin/Release/net10.0/linux-x64/publish/**
- rm -rf "$staging_dir"
- mkdir -p "$staging_dir"
- cp "$publish_dir/Podish.Cli" "$staging_dir/"
- chmod +x "$staging_dir/Podish.Cli"
+ publish-macos:
+ name: Publish macOS PodishCli NativeAOT
+ runs-on: macos-latest
- tar -C "$RUNNER_TEMP" -czf "$archive_name" "$(basename "$staging_dir")"
- shasum -a 256 "$archive_name" > "$checksum_name"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ ref: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }}
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 10.0.x
- - name: Upload workflow artifacts
+ - name: Setup Rust
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Install native build dependencies
+ run: |
+ brew install cmake ninja
+
+ - name: Publish macOS PodishCli NativeAOT
+ run: dotnet publish Podish.Cli/Podish.Cli.csproj -c Release -r osx-arm64 -p:PublishAot=true -m:1
+
+ - name: Upload macOS publish artifact
uses: actions/upload-artifact@v4
with:
- name: podishcli-osx-arm64-nativeaot
- path: |
- PodishCli-*-osx-arm64-nativeaot.tar.gz
- PodishCli-*-osx-arm64-nativeaot.tar.gz.sha256
+ name: podishcli-osx-arm64-nativeaot-publish
+ path: Podish.Cli/bin/Release/net10.0/osx-arm64/publish/**
- build-windows:
- name: Build Windows PodishCli NativeAOT
+ publish-windows:
+ name: Publish Windows PodishCli NativeAOT
runs-on: windows-latest
steps:
@@ -93,61 +103,83 @@ jobs:
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- - name: Publish PodishCli NativeAOT
+ - name: Publish Windows PodishCli NativeAOT
run: dotnet publish Podish.Cli/Podish.Cli.csproj -c Release -r win-x64 -p:PublishAot=true -m:1
shell: pwsh
- - name: Package release artifacts
- shell: pwsh
- env:
- RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }}
- run: |
- $ErrorActionPreference = "Stop"
- $tag = $env:RELEASE_TAG
- $version = $tag.Substring(1)
- $publishDir = "Podish.Cli/bin/Release/net10.0/win-x64/publish"
- $stagingDir = Join-Path $env:RUNNER_TEMP "PodishCli-$version-win-x64"
- $archiveName = "PodishCli-$version-win-x64-nativeaot.zip"
- $checksumName = "$archiveName.sha256"
-
- if (Test-Path $stagingDir) {
- Remove-Item $stagingDir -Recurse -Force
- }
- New-Item -ItemType Directory -Path $stagingDir | Out-Null
- Copy-Item (Join-Path $publishDir "Podish.Cli.exe") $stagingDir
-
- if (Test-Path $archiveName) {
- Remove-Item $archiveName -Force
- }
- Compress-Archive -Path "$stagingDir/*" -DestinationPath $archiveName -CompressionLevel Optimal
- $hash = (Get-FileHash $archiveName -Algorithm SHA256).Hash.ToLowerInvariant()
- "$hash $archiveName" | Out-File -FilePath $checksumName -Encoding ascii
-
- - name: Upload workflow artifacts
+ - name: Upload Windows publish artifact
uses: actions/upload-artifact@v4
with:
- name: podishcli-win-x64-nativeaot
- path: |
- PodishCli-*-win-x64-nativeaot.zip
- PodishCli-*-win-x64-nativeaot.zip.sha256
+ name: podishcli-win-x64-nativeaot-publish
+ path: Podish.Cli/bin/Release/net10.0/win-x64/publish/**
publish-release:
name: Publish GitHub Release
runs-on: ubuntu-latest
needs:
- - build-macos
- - build-windows
+ - publish-linux
+ - publish-macos
+ - publish-windows
steps:
- - name: Download macOS artifacts
+ - name: Download Linux publish artifact
uses: actions/download-artifact@v4
with:
- name: podishcli-osx-arm64-nativeaot
+ name: podishcli-linux-x64-nativeaot-publish
+ path: publish/linux-x64
- - name: Download Windows artifacts
+ - name: Download macOS publish artifact
uses: actions/download-artifact@v4
with:
- name: podishcli-win-x64-nativeaot
+ name: podishcli-osx-arm64-nativeaot-publish
+ path: publish/osx-arm64
+
+ - name: Download Windows publish artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: podishcli-win-x64-nativeaot-publish
+ path: publish/win-x64
+
+ - name: Package release artifacts
+ shell: bash
+ env:
+ RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }}
+ run: |
+ set -euo pipefail
+ version="${RELEASE_TAG#v}"
+ rm -rf release-artifacts
+ mkdir -p release-artifacts
+
+ package_tarball() {
+ local rid="$1"
+ local source_dir="publish/$rid"
+ local staging_dir="release-artifacts/podishcli-$version-$rid-nativeaot-publish"
+ local archive="release-artifacts/podishcli-$version-$rid-nativeaot-publish.tar.gz"
+ rm -rf "$staging_dir"
+ mkdir -p "$staging_dir"
+ cp -a "$source_dir"/. "$staging_dir"/
+ if [[ -f "$staging_dir/Podish.Cli" ]]; then
+ chmod +x "$staging_dir/Podish.Cli"
+ fi
+ tar -C release-artifacts -czf "$archive" "$(basename "$staging_dir")"
+ (cd release-artifacts && sha256sum "$(basename "$archive")" > "$(basename "$archive").sha256")
+ }
+
+ package_zip() {
+ local rid="$1"
+ local source_dir="publish/$rid"
+ local staging_dir="release-artifacts/podishcli-$version-$rid-nativeaot-publish"
+ local archive="release-artifacts/podishcli-$version-$rid-nativeaot-publish.zip"
+ rm -rf "$staging_dir" "$archive"
+ mkdir -p "$staging_dir"
+ cp -a "$source_dir"/. "$staging_dir"/
+ python -m zipfile -c "$archive" "$staging_dir"
+ (cd release-artifacts && sha256sum "$(basename "$archive")" > "$(basename "$archive").sha256")
+ }
+
+ package_tarball linux-x64
+ package_tarball osx-arm64
+ package_zip win-x64
- name: Create or update GitHub Release
env:
@@ -161,8 +193,10 @@ jobs:
gh release create "$tag" --title "$tag" --generate-notes
fi
gh release upload "$tag" \
- PodishCli-*-osx-arm64-nativeaot.tar.gz \
- PodishCli-*-osx-arm64-nativeaot.tar.gz.sha256 \
- PodishCli-*-win-x64-nativeaot.zip \
- PodishCli-*-win-x64-nativeaot.zip.sha256 \
+ release-artifacts/podishcli-*-linux-x64-nativeaot-publish.tar.gz \
+ release-artifacts/podishcli-*-linux-x64-nativeaot-publish.tar.gz.sha256 \
+ release-artifacts/podishcli-*-osx-arm64-nativeaot-publish.tar.gz \
+ release-artifacts/podishcli-*-osx-arm64-nativeaot-publish.tar.gz.sha256 \
+ release-artifacts/podishcli-*-win-x64-nativeaot-publish.zip \
+ release-artifacts/podishcli-*-win-x64-nativeaot-publish.zip.sha256 \
--clobber
diff --git a/Podish.Cli/Podish.Cli.csproj b/Podish.Cli/Podish.Cli.csproj
index e28f8c9..3b750d4 100644
--- a/Podish.Cli/Podish.Cli.csproj
+++ b/Podish.Cli/Podish.Cli.csproj
@@ -76,8 +76,8 @@
-
-
+
+