Commit Graph

826 Commits

Author SHA1 Message Date
Eman Resu
51909334de ci/eval: add opt-in instruction counting using perf
Currently unused in comparisons - just collecting the data for
future use.

(cherry picked from commit 3fbb3ae435)
2026-07-07 15:54:08 +00:00
Matt Sturgeon
5e76e9dc47 ci/treefmt: add gitMinimal for treefmt
treefmt needs git on the PATH for its default `tree-root` calculation,
`git rev-parse --show-toplevel`

(cherry picked from commit 8d94c496e9)
2026-07-07 15:24:19 +00:00
Matt Sturgeon
b40b6d6776 ci: update pinned
Bumps nixpkgs-vet 0.3.2 → 0.3.4

https://github.com/NixOS/nixpkgs-vet/blob/main/CHANGELOG.md#034-2026-07-01
(cherry picked from commit a6eeac86f7)
2026-07-05 15:16:19 +00:00
Jörg Thalheim
e0d7f9abeb ci: nix_2_28 → stable
Originally part of commit 07457776ad0ec171d6c728237b7cbe76685b6165
but dropped to avoid backporting #536372

(cherry picked from commit 0ffdd818b5)
2026-07-05 15:16:18 +00:00
Matt Sturgeon
7ff8480fa7 ci/update-pinned.sh: import Nixpkgs relative to script
Paths within a --expr expression are relative to the script file,
while relative paths in NIX_PATH are relative to the caller's CWD.

We want the Nixpkgs import to be relative to update-pinned.sh itself,
so that it does not matter where it's executed from.

See https://github.com/NixOS/nixpkgs/issues/425551

(cherry picked from commit 37aac0fb06)
2026-07-05 15:16:18 +00:00
Johannes Kirschbauer
8170855e2b doc/ci: use docPkgs from ci keeps local and ci render output the same
(cherry picked from commit 645286a70f)
2026-07-02 13:12:59 +00:00
Silvan Mosberger
ea21df954a ci/eval: Allow disallowed attrs to depend on other disallowed attrs
With a dependency chain like

    a -> b -> c

it was not possible to e.g. add a `meta.problems.removal` to b, because that would cause b to be entirely unavailable as a dependency.

This PR slightly lifts that restriction by allowing both a and b to be marked with such a problem without causing a CI failure.

This is useful for:
- Having a problem on a package that needs to be removed but still has dependents (which then also need a problem)
- Having a problem on a package that is aliased under another attribute, which counts as a dependency

(cherry picked from commit bf80cf0f2e)
2026-07-01 22:52:50 +00:00
Johannes Kirschbauer
5090b88d5b ci: use nixos-render-docs from tree
This adds the small cost of building 'nixos-render-docs', a small python package.
For the benefit of improved iteration speed during refinement of the docs rendering
See: https://github.com/NixOS/nixpkgs/pull/535662 for motivation

(cherry picked from commit 77ea5f7ed3)
2026-07-01 15:46:32 +00:00
Raito Bezarius
2ff77b61cb ci/OWNERS: drop code ownership of various things
I'm not active anymore in:

- emscripten
- make-disk-image
- NGINX

Change-Id: Ibcc76bbd9504cea63bf4cda8c6395c3db74854c3
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
(cherry picked from commit 72177a1900)
2026-06-29 11:42:32 +00:00
Silvan Mosberger
168b18f6e3 ci/eval: Allow preventing internal Nixpkgs use of certain problem kinds
(cherry picked from commit a90d993610)
2026-06-26 23:43:08 +00:00
Silvan Mosberger
caeedbd700 ci/eval: Refactor attrpaths.nix to a more generic pre-eval.nix
(cherry picked from commit 19a31658dc)
2026-06-26 23:43:07 +00:00
Aliaksandr
926237f642 ci/github-script/merge: share reviews fetch with bot.js, drop events
`bot.js` already pulls reviews via GraphQL for the approval-count
labels. Move that fetch above the `handleMerge` call, add `commit
{ oid }` to the query, and pass the result through. `handleMerge` no
longer issues its own `listReviews` REST call.

While here, the `approvals` set is now derived from the same reviews
data. Two upsides:

- A reviewer who approved and was later dismissed no longer counts
  towards the approval check; their review now surfaces with state
  DISMISSED instead of leaving a stale `reviewed` event behind.
- `events` is no longer needed by `runChecklist` (it was only feeding
  the approvals filter); the parameter is dropped from both call
  sites. `handleMerge` still uses `events` for tracking the latest
  push and merge-command comments.

Also drop the redundant `user` truthy checks (and the stale "some
users have been deleted" comment) in `runChecklist`. The GraphQL
query uses `author { ... on User { login id } }` and bot.js then
filters via `r.user?.login`, so by the time reviews reach
`runChecklist` every entry already has a populated `user`. Verified
by querying real PRs: bots surface as `{__typename: "Bot"}` (no
`login`/`id`, filtered out by bot.js), and deleted accounts surface
as the "ghost" user (login `"ghost"`, id `10137`), which passes the
filter but matches no committer - harmless for both checks.

Assisted-by: claude-code with claude-opus-4-8[1m]-high
(cherry picked from commit 0c1c3d4813)
2026-06-25 17:10:54 +00:00
Aliaksandr
e934e8a364 ci/github-script/merge: clarify Auto Merge follow-up tip
The previous tip ("Sometimes GitHub gets stuck after enabling Auto
Merge") didn't explain why nothing happens immediately after the bot's
"Enabled Auto Merge" reply, leaving maintainers unsure whether to wait
or intervene. Spell out that Auto Merge waits for required CI before
queueing, that a later CI failure leaves the PR un-queued until it is
fixed, and link to GitHub's documentation; keep the existing "leave
another approval" workaround for the rare cases where Auto Merge stalls
after CI completes.

Assisted-by: claude-code with claude-opus-4-8[1m]-high
(cherry picked from commit 6f9325fb5d)
2026-06-25 17:10:53 +00:00
Aliaksandr
86980620a2 ci/github-script/merge: refuse merge when a committer has requested changes
A "changes requested" review from a committer blocks both the merge
queue and auto-merge, but unlike approvals it isn't auto-dismissed
when new commits are pushed. Surface it as a checklist item so the
bot's reply explains the block instead of silently enabling
auto-merge that will never trigger.

Implementation pulls every review for the PR via `listReviews` and,
for each committer, takes the latest review whose state is
`APPROVED`/`CHANGES_REQUESTED`. The check fails if any committer's
latest stance is `CHANGES_REQUESTED`. Other review states fall out
naturally:

- A dismissed review surfaces as `DISMISSED`, so a committer
  dismissing their own changes-requested review unblocks the PR.
- A comment-only follow-up surfaces as `COMMENTED`, so it doesn't
  override an earlier actionable review - the prior stance still
  stands until the committer explicitly approves or requests changes
  again.

Assisted-by: claude-code with claude-opus-4-8[1m]-high
(cherry picked from commit b94b44d3f9)
2026-06-25 17:10:53 +00:00
Aliaksandr
139a66fe7e ci/github-script/merge: skip auto-merge when CI has already failed
The merge bot falls back to GitHub Auto Merge whenever the merge queue
won't accept a PR yet. That is the right move while CI is still
running, but pointless once CI has already failed: Auto Merge can never
trigger, and fixing CI requires a new push, which invalidates the merge
command anyway (the bot only acts on comments after the latest push).

Fetch the `no PR failures` commit status and, when the merge-queue
enqueue fails, branch on it. If CI has already failed
(`error`/`failure`), skip Auto Merge and reply that a fresh
`@NixOS/nixpkgs-merge-bot merge` comment is needed once CI is green
again. Otherwise (pending or missing status) enable Auto Merge as
before.

`merge()` now returns `{ reaction, messages }` so the CI-failure path
can leave a thumbs-down reaction rather than the rocket used for an
actual merge.

Closes #512554.

Assisted-by: claude-code with claude-opus-4-8[1m]-high
(cherry picked from commit da97bf8423)
2026-06-25 17:10:53 +00:00
George Macon
be04fab4f2 ci/treefmt: enable or-identifier rule
All remaining unquoted uses of or as an identifier were removed in
PR #475723, so this rule can now be enabled to prevent it from coming
back.

(cherry picked from commit 45e309e3a3)
2026-06-25 04:31:10 +00:00
PerchunPak
02a1110fb1 zellijPlugins: init
(cherry picked from commit 6c6cee98a0)
2026-06-24 13:07:33 +02:00
Acid Bong
d79ba58052 ci/treefmt: sort formatters alphabetically
(cherry picked from commit b36cb1bb91)
2026-06-20 23:36:29 +00:00
Acid Bong
a842821add ci/treefmt: use pkgs.treefmt.withConfig
(cherry picked from commit d1d4934041)
2026-06-20 23:36:29 +00:00
Aliaksandr
124d676b88 ci/eval: name the base branch in the performance comparison summary
The performance comparison summary previously stated it compared against
"its pull request base branch (e.g., 'master')" regardless of the actual
base branch.

Plumb the base branch classification computed in prepare.js through the
eval workflow to the `compare` derivation so the summary names the real
base branch (e.g. "staging-25.11"). The local `eval.full` helper defaults
to "master", matching its touched-files convention.

Assisted-by: claude-code with claude-opus-4-8[1m]-high
(cherry picked from commit a100d091a0)
2026-06-17 11:26:41 +00:00
Michael Daniels
8615b90e98 ci: update pinned
I had managed to not actually include the nixpkgs-vet update (0.3.0 -> 0.3.2)
in my last pin bump.

(cherry picked from commit 524e78abe6)
2026-06-12 16:21:07 +00:00
Acid Bong
1952d3faba ci: move Treefmt settings into a separate file
(cherry picked from commit e99b887ce8)
2026-06-11 18:03:24 +00:00
Michael Daniels
af967dd95b ci: update pinned
(cherry picked from commit 1f9448d9d7)
2026-06-09 21:51:58 +00:00
Michael Daniels
3cb0aa0aba ci/update-pinned.sh: use nixpkgs from current dir, run npins upgrade too
Use nixpkgs from the current directory because otherwise the npins used
could be outdated.

Also run npins upgrade as part of the script.

(cherry picked from commit 089cd8fbac)
2026-06-09 21:51:58 +00:00
Aliaksandr
c40c306541 ci/eval/compare: show performance comparison even when package sets differ
Previously the eval comparison was skipped entirely when packages were
added or removed between revisions, leaving only a "stats were skipped"
message. cmp-stats already joins on the stats chunks present in both
revisions, so a comparison can still be produced. Always run it and add
a GitHub note caveating that the figures are approximate when the
package sets differ.

Assisted-by: claude-code with claude-opus-4-7[1m]-xhigh
(cherry picked from commit 25f9394b8a)
2026-06-07 14:51:22 +00:00
Michael Daniels
ce0b8cc5dd ci/github-script/merge: ignore case when checking for merge bot comment
(cherry picked from commit 41876c6de2)
2026-06-06 19:21:06 +00:00
Martin Weinelt
a9a2f57213 ci/OWNERS: drop natsukium for top-level python files
No active package set maintenance for over a year.

(cherry picked from commit cf8d099cdc)
2026-05-30 10:03:53 +00:00
zowoq
fcf9006e23 linux: add stable staging-nixos workflow
stable counterpart to d28cc2a2f5

(cherry picked from commit 10056dd40d)
2026-05-29 22:26:23 +00:00
zowoq
c103da6a19 ci: add nixosTests.simple-container
nixosTests.simple-vm but using an nspawn container
2026-05-22 21:24:34 +10:00
zowoq
244b700403 nixosTests.simple-vm: rename from nixosTests.simple
renamed because we now have different kinds of tests
2026-05-22 21:24:28 +10:00
Michael Daniels
843634b667 Revert "ci/github-script/reviewers: revoke stale review requests"
This reverts commit 2d34258228.
2026-05-18 17:26:09 -04:00
Michael Daniels
acb7b7a38c Revert "ci/github-script/reviewers: keep team members when revoking stale requests"
This reverts commit b721b82180.
2026-05-18 17:25:58 -04:00
Harinn
b721b82180 ci/github-script/reviewers: keep team members when revoking stale requests
Fixes:
https://redirect.github.com/NixOS/nixpkgs/pull/519758#issuecomment-4478985966
2026-05-18 23:14:26 +07:00
zowoq
8cc2b52ca4 ci/OWNERS: remove maintainer (#520665) 2026-05-17 22:51:39 +00:00
Michael Daniels
b7c50a3b8b ci/github-script/reviewers: revoke stale review requests (#519758) 2026-05-17 20:10:05 +00:00
Michael Daniels
6acad97b9c ci/github-script: update npm versions (#520661) 2026-05-17 18:47:56 +00:00
Michael Daniels
8a89d7a286 ci/github-script: update npm versions 2026-05-17 14:41:57 -04:00
zowoq
adabcdead3 ci/github-script/check-target-branch: disable review for xanmod kernels
updates should go to master or release branches
2026-05-17 05:05:13 +00:00
zowoq
825ecf765c ci/OWNERS: remove maintainer 2026-05-16 10:13:31 +10:00
Michael Daniels
5d87d9aaa0 ci/github-script: npm audit fix (#520287) 2026-05-15 23:30:33 +00:00
Michael Daniels
2dc03287fa ci/github-script/prepare: fix review dismissals (#520297) 2026-05-15 23:27:38 +00:00
Marcin Serwin
5e75181628 maintainers: drop dit7ya
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
2026-05-15 20:24:01 +02:00
Harinn
2d34258228 ci/github-script/reviewers: revoke stale review requests
New feature: revoke review requests from a reviewer when the reason they
were review-requested in the first place is gone (e.g. force-pushed),
while preserving reviewers who voluntarily engaged.
2026-05-15 11:02:42 +07:00
Michael Daniels
c642405dbe ci/github-script/prepare: fix review dismissals
I broke this in 1c3e149546 (diff-9baa1b84a40210e20622eeb04bea6db28ef3ff90dea79aa54ba9d1e27c150b21).

See #520239 for an example of this not working.
2026-05-14 22:00:55 -04:00
Michael Daniels
95e34c848b ci/github-script: npm audit fix
Fixes Dependabot alerts.
2026-05-14 20:50:51 -04:00
Michael Daniels
f5ee5762f0 ci/github-script/manual-file-edits: skip on PRs from one dev branch to another
Same logic as in lint-commits.

Fixes https://matrix.to/#/!EoslJfrUGMtQOAfnht:lassul.us/$govFR3OHnME2TZh7tcDSJfXAEfnMVUevnv4l5y4qFD0?via=nixos.org&via=matrix.org&via=catgirl.cloud
2026-05-08 13:37:28 -04:00
Michael Daniels
169fe20ef5 ci/github-script/lint-commits: confirm Git names/emails are present (#516199) 2026-05-06 13:29:51 +00:00
figsoda
8dc824f22d ci/OWNERS: add neovim team as owners of nvim-treesitter 2026-05-05 23:41:07 -04:00
Michael Daniels
4d776b4670 ci/github-script/lint-commits: confirm Git names/emails are present
Prevents issues reported on Matrix by Jujutsu users,
caused by people omitting these fields.
2026-05-05 17:39:22 -04:00
Michael Daniels
1c3e149546 Reapply {ci,workflows}: allow multiple blocking reviews"
A couple of bugfixes, but the problem was that the apps weren't installed.
2026-05-03 18:17:03 -04:00