Conversation
Hardcoded libomp versions broke the macOS build whenever Homebrew bumped the package; globbing makes the dune rule version-agnostic.
On every v* tag (or manual dispatch), builds strings.linux.tar.gz via Docker and an arm64-only strings.mac, then publishes a GitHub Release with SHA256 checksums, install instructions, and a Changes section generated by Z.ai (GLM-5.1 by default).
Moves the inline node heredoc out of release.yml for readability and local testability; validated with actionlint and a no-credentials dry run of the fallback path.
Adds a Releases section to DEVELOPMENT.md (tag-push flow, required ZAI_API_KEY secret, arm64-only macOS support) and updates AGENTS.md release and libomp notes accordingly.
- Key concurrency group off inputs.tag on workflow_dispatch so retries for a tag share a group with its push run instead of racing it - Skip the Changes section (with a warning) when dispatching on a tag that predates scripts/generate-release-notes.mjs, instead of failing the release - Omit the Changes section entirely when the model reports no important changes, rather than emitting an attribution-only section - Cap release-notes input at 200 commits to bound the API payload when no previous tag is found - Smoke test: escape/anchor the tar grep pattern, add DEBIAN_FRONTEND=noninteractive, drop unneeded mkdir (-version runs before the project-root check)
There was a problem hiding this comment.
Pull request overview
Adds an automated release pipeline that builds Linux/macOS artifacts on tag pushes and publishes a GitHub Release, optionally appending AI-generated “## Changes” notes. This also updates build configuration and documentation to support the new workflow and bumps the project version.
Changes:
- Add
.github/workflows/release.ymlto build and upload release artifacts onv*tags or manual dispatch, and publish/update a GitHub Release with checksums and usage instructions. - Add
scripts/generate-release-notes.mjsto generate a best-effort “## Changes” section from commit messages via Z.ai (fails open). - Update QuickJS
libomppath detection (Homebrew globs), bump version to2.3.0, and document the release process.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/quickjs/dune | Use Homebrew Cellar globs for libomp.a so any installed version can be found. |
| src/cli/strings.ml | Bump CLI version string to 2.3.0. |
| scripts/generate-release-notes.mjs | New script to generate best-effort AI release notes into dist/changes.md. |
| README.md | Fix Linux usage command to ./strings.linux and add AI usage disclosure section. |
| DEVELOPMENT.md | Document automated release workflow, tagging process, and required repo configuration. |
| AGENTS.md | Update contributor/agent notes to reflect globbed libomp paths and automated releases. |
| .github/workflows/release.yml | New release workflow: build Linux via Docker, build macOS arm64, generate notes, publish/update GitHub Release. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
GitHub Actions only processes workflow commands from stdout, so the release-notes failure warning sent via console.error was not guaranteed to surface as an annotation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #8
Pushing a
v*tag (or manually dispatching with a tag) now builds both release artifacts and publishes a GitHub Release automatically — no more building releases by hand.What it does
strings.linux.tar.gzvia Docker andstrings.mac(Apple silicon) on a macOS runner, each with a smoke test.## Changessection summarized from commit messages by Z.ai's GLM model. Notes are best-effort: if generation fails or there's nothing noteworthy, the release still goes out, just without that section.Also included
src/quickjs/dunenow globs Homebrew Cellar paths forlibomp.a, so any installed libomp version works (needed for the macOS CI build, helps local dev too).AI Disclosure
Assisted with Fable 5.