Skip to content

chore: replace nix with mise - #284

Draft
ethanndickson wants to merge 5 commits into
chore/bump-swift-depsfrom
chore/mise
Draft

ethanndickson wants to merge 5 commits into
chore/bump-swift-depsfrom
chore/mise

Conversation

@ethanndickson

@ethanndickson ethanndickson commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Relates to #280 (comment)

This replaces our Nix flake with a mise.toml and mise.lock. We only ever used Nix to install a handful of CLI tools, and in CI we had to undo part of what the devshell set up (unsetting SDKROOT and DEVELOPER_DIR, and stripping the Nix xcrun from PATH) so the runner's Xcode would get used. mise just puts prebuilt binaries on the PATH, and the lockfile pins the download URL and checksum of each one for both macOS architectures. CI now installs them via jdx/mise-action, which installs with --locked when a mise.lock is present.

The tool versions match what #280 bumps nixpkgs to. I've dropped clang, coreutils, git, xcpretty and the Apple SDK, as we either don't use them or macOS already provides them. gh is gone too, as we only use it in CI and the GitHub runner images already ship it, which is what coder/coder relies on. GNU make is still installed (from conda-forge), as the Makefile relies on .SHELLFLAGS, which needs Make 3.82+, and macOS still ships 3.81. The Makefile now fails early with a pointer to CONTRIBUTING.md if it's run with an older Make.

The devshell also exported out, which the release workflow builds into and uploads from, so the release job now sets it itself.

I've put this on top of the stack, as #280 removes protoc and the v1 protoc-gen-grpc-swift plugin, which mise would otherwise have needed to install.

@ethanndickson
ethanndickson added this pull request to stack #282 November 2, 2026 06:24
Comment thread mise.toml Resolved
The Nix devshell exported out, and the release job used it for the build output, the artifact upload, the release upload and the appcast signature. mise does not export it, so the job now sets it.
Add the mise trust step to CONTRIBUTING.md, fail early on GNU Make older than 3.82, and drop leftover Nix and direnv references.
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.

2 participants