ci(release): Migrate to cargo-dist and overhaul CI#282
Open
fischeti wants to merge 6 commits intofischeti/slang-testfrom
Open
ci(release): Migrate to cargo-dist and overhaul CI#282fischeti wants to merge 6 commits intofischeti/slang-testfrom
fischeti wants to merge 6 commits intofischeti/slang-testfrom
Conversation
This was referenced Feb 26, 2026
5bac2c7 to
905a75d
Compare
ec5e9cc to
af7426b
Compare
1969a3b to
cefd7ce
Compare
1fcd658 to
2305000
Compare
8de4262 to
bc76fa5
Compare
c328420 to
424afab
Compare
7a4326d to
7fd67f2
Compare
424afab to
eb82630
Compare
7fd67f2 to
13e08a0
Compare
a9828a8 to
4d7f2a6
Compare
4d7f2a6 to
567acbd
Compare
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.
Summary
Replaces the hand-rolled release system (per-distro Docker matrix + custom packaging scripts) with
cargo-dist, and overhauls CI to match the new release infrastructure.Release infrastructure
release.yaml,gen_dockerfile.sh, andpackage.shdist-workspace.toml— declarative cargo-dist config covering 5 targets:x86_64/aarch64on Linux and macOS,x86_64on Windowsrelease.yml(autogenerated by cargo-dist) — handles planning, building, and publishing GitHub Releases with shell + PowerShell installersmanylinux_2_28containers (glibc ≥ 2.28, covers RHEL 8+, Ubuntu 18.04+)aarch64usesmacos-15(requires Clang/LLVM ≥ 17.0.0 for slang)CI overhaul
test,test-windows,test-macosinto a singletestjob with a unified matrix: Linux runs stable/beta/nightly/MSRV, Windows and macOS run stable onlyrelease-build.ymlworkflow that runs on push tomasteronly (not on PRs), using the exact same runners andmanylinux_2_28containers as the actual release — catches platform/glibc issues before taggingrustfmt,clang-format) intoformatting.ymlconcurrencygroups to cancel redundant runs on force-pushInstaller transition (see also #285)
README.mdinstallation section: the installer now placesbenderin~/.cargo/bin(on$PATH) rather than the current directory; cargo-dist handles platform detectionhttps://pulp-platform.github.io/bender/init) continues to work via a version-aware router (PR installer: replaceinitwith version-aware router #285): versions ≥ 0.31.0 are routed to the cargo-dist installer, older versions fall back to the legacy scriptTODOs
bender-slangto crates.io and use a version dependency instead of a path dependencyinitwith version-aware router #285 before or alongside thisslangas a default featureThis is part 3 of 3 in a stack made with GitButler:
picklecommand #264