-
-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide a GitHub Action #76
Comments
I think that would be cool too, but I don't really know anything about
Github actions. There is already the -c flag to check if files are
formatted, for use in CI. If you just want a list of files that need
formatting, it should be pretty trivial and I'd appreciate a PR. If github
supports annotations per line, I think that would be easiest to achieve
with a separate diff tool since nixfmt does not remember source locations
after parsing.
|
I suggest adding a GitHub Action to check Nix formatting using nixfmt and annotate issues in pull requests. Create a workflow: <-add a file named->.github/workflows/nixfmt.yml `name: Check Nix Formatting on: [pull_request, push] jobs:
This workflow installs nixfmt, checks formatting, and uses GitHub's problem matcher to annotate any reformatting needed directly in the pull request. |
steps workflow
The action ensures code the highlights formatting issues directly in pull requests. |
I don't think this is implementable anymore with the removal of recursive mode. A GH action in treefmt would probably be more appropriate. |
Briefly discussed in the meeting today, agreed with @dasJ |
This issue has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/formatting-team-meeting-2024-10-01/53763/1 |
While I can certainly understand if the nixfmt considers this out of scope, I disagree with @dasJ:
It is certainly still possible to implement a GitHub Action that finds all the I'm currently in the process of switching my company over to using |
I'd like to reconsider this. Being able to have a simple nixfmt check with GHA would be nice. Some brainstorming on that: Could have an interface like this: # Put this in your repos .github/workflows/nixfmt.yml
name: "Check Nix formatting"
on:
pull_request:
push:
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v30
- uses: NixOS/treefmt-nix-action@v1
with:
nixpkgs: https://github.com/NixOS/nixpkgs/archive/f1c5d6d23fd57011b78cb2424f5c73e68c9e8879.tar.gz
treefmt-nix: https://github.com/numtide/treefmt-nix/3d0579f5cc93436052d94b73925b48973a104204.tar.gz
module: |
{
# See https://github.com/numtide/treefmt-nix/tree/main/programs for more options
programs.nixfmt-rfc-style.enable = true;
}
# As an alternative to the above:
# file: treefmt.nix
# flake: .#treefmt In the back this would:
The action should also tell the user that they can copy that generated file and put it in This could be implemented using a composite GitHub Action. |
If this is added, it'd be great for it to have PR annotation message support, as-per #76 (comment). Ideally it'd also have line-wise annotations, not just per-file. See workflow commands docs. Somewhat related treefmt issues:
EDIT: I was convinced by discussion on numtide/treefmt#526 that inline PR annotations aren't suitable when using a treewide auto-formatter. They could still make sense if files are being formatted on a per-file basis, as is currently the case in nixpkgs (although that's soon to change: NixOS/nixpkgs#380990). |
It'd be really great if I could hook up a GitHub Action with nixfmt so it provided annotations to the code about reformatting that needs doing.
The text was updated successfully, but these errors were encountered: