Add PR CI and Renovate config - #2
Merged
Merged
Conversation
Nothing validated pull requests before now: publish.yml runs only on a v*.*.* tag, so a broken typecheck surfaced at release time. ci.yml runs npm ci + npm run typecheck on every PR and on main. Renovate runs as the free Mend-hosted app (no license key needed for public repos). Config choices, and why: - No automerge. Typecheck genuinely proves the npm devDependencies safe, but nothing validates publish.yml or flake.lock until they are used, so "green" would not mean the same thing across the three surfaces. - Batched by risk, not by surface. @earendil-works/pi-coding-agent is pre-1.0 and on a fast release train, and it is the only dependency that can break the typecheck, so it gets a PR to itself. typescript and @types/node move as one toolchain. Both actions serve the one publish workflow. - One weekly window (Sunday 6pm, America/Los_Angeles). Renovate always proposes the newest version, so several pi releases inside a week collapse into a single PR. Vulnerability PRs stay unscheduled. - security:minimumReleaseAgeNpm adds a 3-day soak, which blunts the publish-malware-then-yank attack on the fastest-moving dependency. - lockFileMaintenance on for nix, off for npm. flake.nix tracks a branch tip, so a lock refresh is the only way flake.lock ever moves, and per docs/nixpkgs-nono-sync.md that refresh is how this repo picks up a newer nono. Its schedule is set explicitly because the option ships its own default window that would override the one above. package-lock.json is the opposite case: it ships to nobody, the ~140 transitive packages under pi are never executed by tsc --noEmit, and refreshing it would only generate large diffs to hand-review. - peerDependencies disabled, last so it overrides. The peer range is this extension's compatibility claim; it should rise when the code adopts an API that needs it, not because a new pi shipped. The nix manager is beta. If flake.lock PRs never appear, suspect the known install-tool nix failure on the hosted runner, not this config. Co-Authored-By: Claude <noreply@anthropic.com>
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.
Nothing validated pull requests before now: publish.yml runs only on a v*.. tag, so a broken typecheck surfaced at release time. ci.yml runs npm ci + npm run typecheck on every PR and on main.
Renovate runs as the free Mend-hosted app (no license key needed for public repos). Config choices, and why:
The nix manager is beta. If flake.lock PRs never appear, suspect the known install-tool nix failure on the hosted runner, not this config.