Migrate ZIPs rendering to nix build, add merge-acceptance gates, and introduce repo formatting workflow#12
Draft
shielded-nate with Copilot wants to merge 13 commits into
Draft
Migrate ZIPs rendering to nix build, add merge-acceptance gates, and introduce repo formatting workflow#12shielded-nate with Copilot wants to merge 13 commits into
nix build, add merge-acceptance gates, and introduce repo formatting workflow#12shielded-nate with Copilot wants to merge 13 commits into
Conversation
- Include `/result` in `.gitignore`, so that when developers run `nix build`, their `git` workspace will not be dirty.
- Add a flake output so that `nix build` has flake outputs for `all`, `all-zips`, and `all-specs` corresponding to the `Makefile` targets of the same name, and the flake `default` output is a synonym for `all`.
- Modify the run step in https://github.com/zcash/zips/blob/a2a71f2b2d05248102f87a079c048c1701d0ceb0/.github/actions/render/action.yml#L21-L22 of `.github/actions/render/action.yml` to replace `nix develop ...` with `nix build && cp <correct options> ./result/ <whatever is necessary>` such that this PR does not introduce any noticeable changes or regressions for the main production render result. Note: selecting the correct `cp` options and destination argument and defining the `all` flake output must be coordinated to achieve this goal, so this commit may also adjust the `all` flake output.
- Add a `merge acceptance` Github action, if it does not already exist, and ensure the `merge acceptance` action can successfully complete a full render with `nix build`. (Note: because this PR also replaces the production render pipeline with `nix build`, this acceptance criteria should match production rendering.)
- Add `dprint` to the `nix develop` shell, and ensure it has the plugin `https://plugins.dprint.dev/markdown-0.19.0.wasm` available. If that plugin is not already packaged into a pre-existing `dprint` package, then include it as a `flake = false` flake input.
- Move the top-level scripts which end with `.sh` or `.py` into a new `./scripts` directory and adjust all source, including github actions, other scripts, makefiles, Dockerfile, etc... as well as all documentation to rely on these new paths.
- Add a new script into this directory called "format.sh" which takes one cli argument for the "subcommand" which is either `check`, `rewrite`, `commit-rewrite`, or `help`/`--help`. In this initial version the only formatting implemented is using `dprint` to process all `.md` files in the repo.
- Add into the `merge acceptance` Github action a step which runs `./scripts/format.sh check` and blocks the merge if it fails.
Copilot
AI
changed the title
Switch rendering pipeline to nix build and add formatting workflow support
Migrate ZIPs rendering to Jun 11, 2026
nix build, add merge-acceptance gates, and introduce repo formatting workflow
Copilot created this pull request from a session on behalf of
shielded-nate
June 11, 2026 17:14
View session
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.
This PR aligns local/CI rendering on flake-based
nix buildoutputs and reduces working-tree noise from Nix artifacts. It also introduces a markdown formatting workflow (dprint) and updates repository script layout to support consistent automation.Flake outputs and Nix artifact hygiene
/resultto.gitignore.all,all-zips,all-specs, withdefaultasall.rendered/+README.rst).Production render path switched to
nix build.github/actions/render/action.ymlto build via flake and copy from./resultinto workspace outputs.Merge acceptance workflow
merge-acceptanceworkflow for PR/manual runs.nix buildrender path../scripts/format.sh check.contents: read).Developer shell and formatting tooling
dprinttonix developshell.flake = false) and local vendored WASM path.dprint.jsontargeting repo markdown files.Script layout and command surface
.sh/.pyscripts into./scripts/../scripts/format.shwithhelp,check,rewrite, andcommit-rewritebehaviors (including clean-tree enforcement for commit mode).