| Commit message (Expand) | Author | Age | Files | Lines |
| * | workflows/eval: disable swap•••Recent performance tests show that (a) swapping heavily slows down the
Eval job, while (b) lowering the chunkSize does not have an effect on
run-time. It does on memory usage, though - thus we can get rid of
swapping entirely by reducing chunkSize respectively.
| Wolfgang Walther | 2025-08-06 | 1 | -6/+5 |
| * | workflows/build: build nixpkgs tarball•••This adds a build job for the tarball, which might help uncover eval
issues on attributes not normally touched by Eval, aka those added in
`pkgs/top-level/packages-config.nix`.
| Wolfgang Walther | 2025-07-24 | 1 | -2/+6 |
| * | ci/github-script/commits: block on errors•••Most of the checks we do for cherry-picks are dismissable warnings, with
one exception: When a commit hash has been found, but this hash is not
available in any of the pickable branches, we raise this with
severity=error. This should also *block* the merge and not be
dismissable. That's because this is a fixable issue in every case.
| Wolfgang Walther | 2025-07-16 | 1 | -77/+1 |
| * | ci/github-script/commits: init from ci/check-cherry-picks•••This turns the check-cherry-pick script into a github-script based
JavaScript program. This makes it much easier to extend to check reverts
or merge commits later on.
| Wolfgang Walther | 2025-07-16 | 1 | -27/+10 |
| * | ci/github-script: default to commonjs•••Since all github-scripts need to be written in commonjs, we now default
to it by not setting package.json. Support from editors for .js files is
slightly better than .cjs. To still allow using module imports in the
test runner script, we trick node into loading the script itself as a
module again via `--import ./run`.
| Wolfgang Walther | 2025-07-14 | 1 | -1/+1 |
| * | ci/github-script: move from ci/labels•••This just moves things around to use less specific naming - `labels` is
only *one* script that can potentially be run locally while still being
written in github-script. Later, we can add more.
| Wolfgang Walther | 2025-07-14 | 1 | -2/+2 |
| * | workflows/backport: fix concurrent jobs cancelling each other•••When a PR is merged and labeled afterwards - with a non-backport label -
the following will happen:
- The first backport job is triggered on the merge.
- The second backport job is triggered on the label event.
- The second job will cancel the first one due to the concurrency group.
- The second job will cancel itself because the label event didn't
contain a backport label.
Both jobs end up cancelled and no backport happens.
We made the backport action idempotent upstream a while ago, so we don't
need to cancel those actions. Instead, we'll run all of them -
subsequent actions running through will just stay silent anyway.
| Wolfgang Walther | 2025-07-12 | 1 | -4/+0 |
| * | workflows/build: be clearer about what is being built•••Committers could get the false impression from, e.g., `PR / Build / aarch64-linux` that this workflow builds the packages changed in the current PR. Such a misunderstanding could pair poorly with the "enable auto-merge" button, once that's enabled.
| Michael Daniels | 2025-07-11 | 1 | -1/+5 |
| * | ci/labels: run in dry mode locally•••To avoid mistakes when developing and testing against the upstream repo.
| Wolfgang Walther | 2025-07-08 | 1 | -0/+1 |
| * | ci/labels: init from workflows/labels•••Moves the labels job into a separate ci/ subfolder to run it locally.
This eases debugging *a lot*.
| Wolfgang Walther | 2025-07-08 | 1 | -399/+9 |
| * | workflows/labels: small refactor•••To avoid having a diff when moving the file in the next commit.
| Wolfgang Walther | 2025-07-07 | 1 | -1/+1 |
| * | workflows/labels: manage "needs: reviewer" label•••This label allows finding pull requests which have no reviewer
requested, yet.
| Wolfgang Walther | 2025-07-04 | 1 | -6/+25 |
| * | workflows/labels: paginate with cursor•••Pagination via cursor is required above 10k items. To do so, we store
the current cursor as an artifact and read it back in in the next
scheduled run.
| Wolfgang Walther | 2025-07-03 | 1 | -32/+59 |
| * | Reapply "workflows/labels: label stale issues"•••This reverts commit c18e94361ef21171c48522142adfbb1081be90bf.
| Wolfgang Walther | 2025-07-02 | 1 | -141/+153 |
| * | Revert "workflows/labels: label stale issues" | Wolfgang Walther | 2025-07-01 | 1 | -153/+141 |
| * | workflows/labels: label stale issues (#419878) | Wolfgang Walther | 2025-07-01 | 1 | -141/+153 |
| |\ |
|
| | * | workflows/labels: label stale issues•••By re-organizing the flow in `handle()` we can start labeling both
issues and pull requests, and only make the relevant API requests for
the PR-case.
At first glance, we might think that we only need to label the big batch
list of issues and not those recently updated: But that's wrong, for
recently updated issues it's important to label quickly, because the
stale label needs to be *removed*, too.
| Wolfgang Walther | 2025-06-27 | 1 | -141/+153 |
| * | | workflows/periodic-merge: remove 24.11•••24.11 is deprecated now.
| Leona Maroni | 2025-07-01 | 1 | -4/+0 |
| * | | .github/workflows/README.md: one sentence per line | Wolfgang Walther | 2025-06-29 | 1 | -13/+34 |
| |/ |
|
| * | workflows/labels: retry on transient API failures•••Currently, the labels job fails a few times each day with network
failures. Retrying the requests should help.
| Wolfgang Walther | 2025-06-27 | 1 | -0/+1 |
| * | workflows/labels: label rebuilds on failed PR workflow•••We already tried to fix this case earlier, but didn't account for all
cases: A scheduled workflow can also encounter a pull request with
failed PR workflow. This failure doesn't need to be in the Eval part, so
artifacts could *still* be available. To make sure PRs always get
rebuild labels, just ignore the status condition. Either the artifact is
there, or it is not.
| Wolfgang Walther | 2025-06-27 | 1 | -2/+0 |
| * | workflows/labels: slightly improve logging | Wolfgang Walther | 2025-06-27 | 1 | -0/+1 |
| * | workflows/labels: fix processing the 100 oldest PRs•••The `page` number is 1-based, but the remainder might very well be 0.
This lead to not looking at the 100 oldest PRs, ever.
| Wolfgang Walther | 2025-06-27 | 1 | -1/+1 |
| * | workflows/backport: korthout/backport-action: 3.2.0 -> 3.2.1•••Release Notes:
https://github.com/korthout/backport-action/releases/tag/v3.2.1
This should many of the annoying, duplicated error messages that the
backport action comments.
| Wolfgang Walther | 2025-06-26 | 1 | -1/+1 |
| * | workflows/labels: fix merge conflict label•••The previous implementation had two problems:
- When switching from /search to /pulls, we disabled the additional GET
on each single pull request - which causes no test merge commit creation
for all PRs. This means, merge conflicts will not actually be detected.
- By using `item` in the pull-request triggered case, this goes back to
`context.payload.pull_request`, which is the state *at the beginning* of
the workflow run. But this renders our "let's wait 3 minutes before
checking merge_commit_sha" logic void. While we wait for 3 minutes, we
still use the *old* value afterwards...
Just making the extra request every time simplifies the logic and solves
both problems.
| Wolfgang Walther | 2025-06-25 | 1 | -5/+2 |
| * | workflows/labels: fix stale label date sorting•••With the help of:
https://stackabuse.com/how-to-sort-an-array-by-date-in-javascript/
| Wolfgang Walther | 2025-06-25 | 1 | -2/+2 |
| * | Reapply "workflows/labels: manage stale & merge conflict labels" (#419654) | Wolfgang Walther | 2025-06-25 | 1 | -147/+248 |
| |\ |
|
| | * | workflows/labels: use /pulls endpoint instead of search for "all" pull requests•••It's necessary to use a combination of different endpoints here, because
the /search endpoint only allows fetching the first 1000 items and will
fail with a higher page number (11+). On the flip side, the /pulls
endpoint doesn't allow counting the total number of results, so we can't
calculate the required page number with its response.
Putting both together should work, though.
| Wolfgang Walther | 2025-06-25 | 1 | -12/+15 |
| | * | workflows/labels: improve cleanup of reservoir timer•••This should make sure that the timer is cleaned up, no matter what. This
didn't seem to be the case before, where it would still be stuck
sometimes, when throwing an error somewhere.
| Wolfgang Walther | 2025-06-25 | 1 | -61/+63 |
| | * | workflows/labels: handle PR-creation-edge-case for merge conflict label•••Explained very well by the code comment.
| Wolfgang Walther | 2025-06-25 | 1 | -1/+8 |
| | * | workflows/labels: fix running in pull_request context•••When running in a pull_request context, the labels job is part of the
currently running workflow - which will never have succeeded, yet.
Apparently it could be failed already, so in this case we take *any*
workflow run, no matter its state.
| Wolfgang Walther | 2025-06-24 | 1 | -1/+2 |
| | * | workflows/labels: fix stale label•••To set the stale label properly, we need to consider the right timeline
events only - and their respective relevant timestamps.
| Wolfgang Walther | 2025-06-24 | 1 | -4/+25 |
| | * | Reapply "workflows/labels: manage stale & merge conflict labels"•••This reverts commit c366efa6e2816c2cb48b3018fe00ceb8ca6cbc81.
| Wolfgang Walther | 2025-06-24 | 1 | -144/+211 |
| * | | workflows: nix: 2.29.0 -> 2.29.1 | Wolfgang Walther | 2025-06-24 | 5 | -10/+10 |
| |/ |
|
| * | Revert "workflows/labels: manage stale & merge conflict labels" | Wolfgang Walther | 2025-06-24 | 1 | -211/+144 |
| * | workflows/labels: manage merge-conflict label for pull requests•••The code comments describe much better what we do then a commit message
could ever do.
| Wolfgang Walther | 2025-06-24 | 1 | -0/+14 |
| * | workflows/labels: manage stale label for pull requests•••This manages the `2. status: stale` label for pull requests only (not
issues, yet) with the following conditions:
- The last event on the timeline of the Pull Request counts.
- Labeling and unlabeling of any kind are ignored.
- Older than 180 days are stale.
- Security labeled PRs are never stale.
To handle this label correctly, it's important to go through all pull
requests. Any approach to limit the list of PRs via search are not going
to work:
- Filtering by `updated` is not going to work, because it includes the
last time that *a label was set* on the PR. To actually find out whether
a PR is stale or not, the timeline of events needs to be looked at.
- Filtering by an existing stale label is not going to work either,
because such a label might have been added manually and thus breaking
the rules we set up here. Thus any existing label needs to be confirmed
as well.
| Wolfgang Walther | 2025-06-24 | 1 | -0/+17 |
| * | workflows/labels: handle missing eval results gracefully•••We keep working through the PR, even though we don't have any eval
results. This will allow actually managing labels for much older PRs as
well. Most importantly, it will allow merge-conflict and stale-labeling
next.
| Wolfgang Walther | 2025-06-24 | 1 | -33/+43 |
| * | workflows/labels: run on every PR eventually•••This replaces the manual dispatch trigger with a batched run through all
pull requests every day. This has the small benefit of not having to
worry about backfilling labeling after fixing bugs - and the much bigger
one in being able to handle merge-conflict and stale labels properly
later. For those, it's inevitable to eventually scan through all PRs.
At this stage, the vast majority of PRs will still be skipped, because
there won't be an eval run with artifact available. This will be
improved in the next step.
Technically, the workflow_dispatch trigger is kept to allow easily
testing this in forks, where the scheduled jobs are disabled. The
triggered job will behave similar to the scheduled job, though, and have
no special inputs.
| Wolfgang Walther | 2025-06-24 | 1 | -33/+52 |
| * | workflows/labels: refactor to search instead of listing PRs•••This doesn't provide much value in itself, yet, but is much more
flexible in the next step, when also looking at much older PRs.
| Wolfgang Walther | 2025-06-24 | 1 | -21/+38 |
| * | workflows/labels: save an API request when running in pull_request context•••We previously ran another list request in this case, but don't need to
anymore - we already have the `pull_request` context available.
| Wolfgang Walther | 2025-06-24 | 1 | -49/+37 |
| * | workflows/labels: refactor moving cutoff downwards | Wolfgang Walther | 2025-06-24 | 1 | -26/+26 |
| * | workflows/labels: refactor into handle() function•••Separate commit for better diff.
| Wolfgang Walther | 2025-06-24 | 1 | -117/+119 |
| * | workflows/labels: dynamically adjust reservoir to remaining rate limit•••Instead of approximating how many requests we can still make and hoping
the best that concurrent jobs won't break the bank, we can just work
with the actual limits. By updating regularly, we make sure that
concurrent jobs are taken into account. We always keep a reserve of 1000
requests to make sure *any* non-labeling jobs using this app will always
succeed.
This will allow us to easily backfill labels across multiple days,
especially taking the increased rate limit for the app into account.
With this, we should get up to 11.5k requests per hour in.
| Wolfgang Walther | 2025-06-24 | 1 | -5/+29 |
| * | workflows/labels: run with app token•••This gives us a much higher rate limit of 12.5k requests per hour. If
the app is not available, we fallback to the regular `github.token`.
This can happen when testing in forks without setting up an app.
| Wolfgang Walther | 2025-06-23 | 2 | -6/+23 |
| * | workflows/{check,reviewers}: don't run on staging-like PRs (#418496) | Wolfgang Walther | 2025-06-23 | 4 | -27/+55 |
| |\ |
|
| | * | workflows/{check,reviewers}: don't run on PRs from secondary development bran...•••It makes no sense to check cherry picks or request reviewers on PRs from
staging-next to master, the same on backbranches or for haskell-updates
into staging.
| Wolfgang Walther | 2025-06-22 | 2 | -2/+8 |
| | * | workflows/pr: refactor base/head branch decision making•••Some jobs purposefully only run on certain base or head branches. By
centralizing the logic, parts of it can easily be re-used later. Also,
this gives them an explicit name and thus makes them easier to
understand.
| Wolfgang Walther | 2025-06-22 | 4 | -26/+48 |
| * | | workflows: log rate limits consistently•••This will give us a better idea about:
- Which jobs use the most API calls and can possibly be made more
efficient.
- Which rate limits apply exactly to which tokens.
| Wolfgang Walther | 2025-06-22 | 6 | -0/+95 |
| * | | workflows/labels: manage "first-time contribution" label•••This is currently managed with yet another bot, but we don't need to -
this fits into our workflow nicely.
| Wolfgang Walther | 2025-06-22 | 1 | -0/+2 |