Skip to content

The Terminal's self-contained builds can be released again - #1496

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
terminal-release-channel-539
Sep 27, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
terminal-release-channel-539

Conversation

@Rafael-SOWNet

@Rafael-SOWNet Rafael-SOWNet commented Sep 27, 2026 •

Copy link
Copy Markdown
Member

Part of #539.

The self-contained builds the issue asks for already exist. publish.sh publishes --self-contained for seven runtimes, and TerminalNightly.yml zips them, builds .debs, and releases them to AngouriMathLab. What's broken is the channel: the last release there is v1.0.0.6, from 2022-09-28. This PR makes the workflow work again and makes it checkable without releasing.

  • Runtime identifier. osx.12-arm64 is a version-specific runtime identifier, which .NET 8 and later no longer recognise by default. It is now osx-arm64. Restoring the Terminal for it on SDK 10.0.302 fails with NETSDK1083: The specified RuntimeIdentifier 'osx.12-arm64' is not recognized.
  • -c Release, capitalised as everywhere else.
  • The token reaches gh as GH_TOKEN, not through a file written on the runner.
  • Archive layout. Each zip holds its runtime's folder rather than Sources/Terminal/AngouriMath.Terminal/publish-output/<rid>.
  • Checkable. The zips and .debs are uploaded as workflow artifacts, kept 7 days. Running the workflow by hand builds and packs without releasing unless "release" is ticked. A pull request that touches the workflow or its two scripts also builds and packs, which is how this PR's own run checks it: run 36283325813: the publish for all seven runtimes, the three .debs and the zips succeeded, and the 579 MB of packages are kept as the run's artifact. The release step was skipped, as it is for a pull request.

The workflow's last runs (2026-01-01) failed before starting, because the file referenced actions without versions. #640 fixed that the next day, but nothing has triggered the workflow since: it only runs when Sources/Terminal/VERSION changes.

Not verified: LAB_ACCESS_TOKEN was last set on 2021-08-08, and only a real release will show whether it still works. To release after this merges, bump Sources/Terminal/VERSION/VERSION on master, or run the workflow by hand with "release" ticked. Which version do you want: 1.0.0.7, continuing the lab's numbering, or the library's version?

Single-file and trimming stay out, for the reasons in my earlier comment on #539: the kernel is loaded by Assembly.Location, which is empty inside a single-file bundle, and code compiled at run time leaves nothing to trim against.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

publish.sh asked for osx.12-arm64, a versioned runtime identifier that .NET 8 and later
reject (NETSDK1083); it is osx-arm64 now, with -c Release. The workflow passes the lab token
to gh as GH_TOKEN rather than writing it to a file, zips each runtime's folder rather than
the repository path to it, and keeps the zips and debs as artifacts. Run by hand it builds
and packs without releasing unless asked to, and a pull request that touches the workflow
or its scripts builds and packs the same way.

Part of #539.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet
Rafael-SOWNet merged commit bf4424f into master Sep 27, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant