Skip to content

GitHub Actions needed for in Nixpkgs #104594

@FRidh

Description

@FRidh

There is a lot of work we could automate or improve automation for. For some of these tasks we have ofBorg, and others are already done using GH Actions.

This ticket lists tasks we could automate and the type of bot we need for it. By using GitHub Actions it is hopefully easier to get more people that are interested involved.

Backport pull requests (PR)

Backporting is a hassle. To do it correctly, one should wait until the original PR is merged and then cherry-pick -x. This is demotivating for contributors, especially in case of trivial cherry picks. Thus, we need a bot that backports as much as trivially possible.

The Action should check for the 9.needs: port to stable, although likely we should change the label to explicitly say the branch or NixOS version. The label needs to be set by a nixpkgs-committer.

#124273

Check backports have a valid hash (PR)

The rule when backporting is to use cherry-pick -x so the hash of the original commit being cherry-picked is included in the new commit in the line `cherry picked from commit``. Sometimes this is forgotten, and sometimes the hash is simply incorrect, because the original was rebased instead of merged or the commit contents was simply changed.

NixOS/ofborg#437

Set labels based on issue and PR title and text (Issue/PR)

Based on the title as well as the fields in an issue and PR, we can set a bunch of labels.

Set labels based on changed paths (PR)

Based on the paths that are changed by a PR, certain labels should be set. Note this is implemented currently by ofBorg https://github.com/NixOS/ofborg/blob/d39605727d9509826a61a4d38e18766a6a07277f/config.public.json#L116.

Comment on PR based on changed paths (PR)

Based on the paths that are changed by a PR, certain comments should be posted. An example are field-specific checklists.

#113077

Invite maintainers to issue (Issue)

For the packages mentioned in the title and in the attributes field, invite the maintainers.

This requires an evaluation or at least a cache such as the packages-list file.

Merge master into staging branches daily

Mass-rebuilds should target staging and reach master via staging-next. To keep these two branches up to date, the master branch is merged into staging-next and then staging-next into staging. This is typically done daily and could be automated. Upon failure (merge conflict) a message is sent or issue opened.

Important is that these merges are not fast-forwards.

Extends #99722.

Metadata

Metadata

Assignees

No one assigned

    Labels

    0.kind: enhancementAdd something new or improve an existing system.2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: continuous integrationAffects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions9.needs: community feedbackThis needs feedback from more community members.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions