Skip to content

Commit 8db8970

Browse files
authored
feat(module): add meta.maintainers attribute (#205)
The larger the list of formatters, the harder it is for the treefmt-nix maintainers to have domain-knowledge for all of them. This change was prompted by #201 where a nixpkgs bump broke swift-format. This gives us information on who is responsible for a specific maintainer and that we can ping.
1 parent 0682984 commit 8db8970

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+158
-3
lines changed

README.md

+14-3
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,9 @@ PRs to add new formatters are welcome!
336336
In order to add a new formatter do the following things:
337337

338338
1. Create a new entry in the `./programs/` folder.
339-
2. Run `./examples.sh` to update the `./examples` folder.
340-
3. To test the program:
339+
2. Consider adding yourself as the `meta.maintainer` (see below).
340+
3. Run `./examples.sh` to update the `./examples` folder.
341+
4. To test the program:
341342
1. Extend the project's `./treefmt.nix` file (temporarily) to enable the new
342343
formatter and configure it in whatever manner is appropriate.
343344
2. Add a bunch of pertinent sources in this repo -- for instance, if the new
@@ -348,7 +349,17 @@ In order to add a new formatter do the following things:
348349
badly-formatted files are flagged as such. Re-run `nix fmt` and confirm
349350
that no additional changes were made.
350351
4. Once this is good, revert those changes.
351-
4. Submit the PR!
352+
5. Submit the PR!
353+
354+
### Definition of a `meta.maintainer`
355+
356+
You can register your desire to help with a specific formatter by adding your
357+
GitHub handle to the module's `meta.maintainers` list.
358+
359+
That mostly means, for the given formatter:
360+
361+
- You get precedence if any decisions need to be made.
362+
- Getting pinged if any issue is being found.
352363

353364
## Commercial support
354365

module-options.nix

+15
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,21 @@ in
117117
default = true;
118118
};
119119

120+
# Meta attributes
121+
meta = {
122+
maintainers = lib.mkOption {
123+
type = lib.types.listOf lib.types.str;
124+
internal = true;
125+
default = [ ];
126+
example = lib.literalExpression ''[ "zimbatm" ]'';
127+
description = ''
128+
List of github users responsible for a formatter.
129+
130+
This option should be defined at most once per module.
131+
'';
132+
};
133+
};
134+
120135
# Outputs
121136
build = {
122137
devShell = mkOption {

programs/actionlint.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.actionlint;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.actionlint = {
79
enable = lib.mkEnableOption "actionlint";
810
package = lib.mkPackageOption pkgs "actionlint" { };

programs/alejandra.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.alejandra;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.alejandra = {
79
enable = lib.mkEnableOption "alejandra";
810
package = lib.mkPackageOption pkgs "alejandra" { };

programs/asmfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.asmfmt;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.asmfmt = {
79
enable = lib.mkEnableOption "asmfmt";
810
package = lib.mkPackageOption pkgs "asmfmt" { };

programs/beautysh.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.beautysh;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.beautysh = {
79
enable = lib.mkEnableOption "beautysh";
810
package = lib.mkPackageOption pkgs "beautysh" { };

programs/dhall.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.dhall;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.dhall = {
79
enable = lib.mkEnableOption "Dhall";
810
lint = lib.mkOption {

programs/dos2unix.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.dos2unix;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.dos2unix = {
79
enable = lib.mkEnableOption "dos2unix";
810
package = lib.mkPackageOption pkgs "dos2unix" { };

programs/dprint.nix

+2
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ let
9696
null;
9797
in
9898
{
99+
meta.maintainers = [ ];
100+
99101
options.programs.dprint = {
100102
enable = mkEnableOption "dprint";
101103
package = mkPackageOption pkgs "dprint" { };

programs/elm-format.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.elm-format;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.elm-format = {
79
enable = lib.mkEnableOption "elm-format";
810

programs/erlfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.erlfmt;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.erlfmt = {
79
enable = lib.mkEnableOption "erlfmt";
810
package = lib.mkPackageOption pkgs "erlfmt" { };

programs/fantomas.nix

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{ lib, pkgs, config, ... }:
22
let cfg = config.programs.fantomas;
33
in {
4+
meta.maintainers = [ ];
5+
46
options.programs.fantomas = {
57
enable = lib.mkEnableOption "fantomas";
68
package = lib.mkPackageOption pkgs "fantomas" { };

programs/fnlfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.fnlfmt;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.fnlfmt = {
79
enable = lib.mkEnableOption "fnlfmt";
810
package = lib.mkPackageOption pkgs "fnlfmt" { };

programs/formatjson5.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.formatjson5;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.formatjson5 = {
79
enable = lib.mkEnableOption "formatjson5";
810
package = lib.mkPackageOption pkgs "formatjson5" { };

programs/fourmolu.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.fourmolu;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.fourmolu = {
79
enable = lib.mkEnableOption "fourmolu";
810
package = lib.mkOption {

programs/fprettify.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.fprettify;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.fprettify = {
79
enable = lib.mkEnableOption "fprettify";
810
package = lib.mkPackageOption pkgs "fprettify" { };

programs/gdformat.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.gdformat;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.gdformat = {
79
enable = lib.mkEnableOption "gdformat";
810
package = lib.mkPackageOption pkgs "gdtoolkit_4" { };

programs/gofmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.gofmt;
44
in
55
{
6+
meta.maintainers = [ "zimbatm" ];
7+
68
options.programs.gofmt = {
79
enable = lib.mkEnableOption "gofmt";
810
package = lib.mkPackageOption pkgs "go" { };

programs/gofumpt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.gofumpt;
44
in
55
{
6+
meta.maintainers = [ "zimbatm" ];
7+
68
options.programs.gofumpt = {
79
enable = lib.mkEnableOption "gofumpt";
810
package = lib.mkPackageOption pkgs "gofumpt" { };

programs/google-java-format.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.google-java-format;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.google-java-format = {
79
enable = lib.mkEnableOption "google-java-format";
810
package = lib.mkPackageOption pkgs "google-java-format" { };

programs/hclfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ let
44
cfg = config.programs.hclfmt;
55
in
66
{
7+
meta.maintainers = [ "zimbatm" ];
8+
79
options.programs.hclfmt = {
810
enable = lib.mkEnableOption "hclfmt";
911
package = lib.mkPackageOption pkgs "hclfmt" { };

programs/hlint.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.hlint;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.hlint = {
79
enable = lib.mkEnableOption "hlint";
810
package = lib.mkPackageOption pkgs "hlint" { };

programs/isort.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.isort;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.isort = {
79
enable = lib.mkEnableOption "isort";
810
package = lib.mkPackageOption pkgs "isort" { };

programs/jsonfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{ lib, pkgs, config, ... }:
22
let cfg = config.programs.jsonfmt;
33
in {
4+
meta.maintainers = [ ];
5+
46
options.programs.jsonfmt = {
57
enable = lib.mkEnableOption "jsonfmt";
68
package = lib.mkPackageOption pkgs "jsonfmt" { };

programs/jsonnet-lint.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.jsonnet-lint;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.jsonnet-lint = {
79
enable = lib.mkEnableOption "jsonnet";
810
package = lib.mkPackageOption pkgs "go-jsonnet" { };

programs/jsonnetfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.jsonnetfmt;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.jsonnetfmt = {
79
enable = lib.mkEnableOption "jsonnet";
810
package = lib.mkPackageOption pkgs "go-jsonnet" { };

programs/just.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.just;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.just = {
79
enable = lib.mkEnableOption "just";
810
package = lib.mkPackageOption pkgs "just" { };

programs/keep-sorted.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.keep-sorted;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.keep-sorted = {
79
enable = lib.mkEnableOption "keep-sorted";
810
package = lib.mkPackageOption pkgs "keep-sorted" { };

programs/ktfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.ktfmt;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.ktfmt = {
79
enable = lib.mkEnableOption "ktfmt";
810
package = lib.mkPackageOption pkgs "ktfmt" { };

programs/ktlint.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.ktlint;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.ktlint = {
79
enable = lib.mkEnableOption "ktlint";
810
package = lib.mkPackageOption pkgs "ktlint" { };

programs/leptosfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.leptosfmt;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.leptosfmt = {
79
enable = lib.mkEnableOption "leptosfmt";
810
package = lib.mkPackageOption pkgs "leptosfmt" { };

programs/mdformat.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.mdformat;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.mdformat = {
79
enable = lib.mkEnableOption "mdformat";
810
package = lib.mkPackageOption pkgs [ "python3Packages" "mdformat" ] { };

programs/mdsh.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.mdsh;
44
in
55
{
6+
meta.maintainers = [ "zimbatm" ];
7+
68
options.programs.mdsh = {
79
enable = lib.mkEnableOption "mdsh";
810
package = lib.mkPackageOption pkgs "mdsh" { };

programs/mix-format.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.mix-format;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.mix-format = {
79
enable = lib.mkEnableOption "mix-format";
810
package = lib.mkPackageOption pkgs "elixir" { };

programs/muon.nix

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ let
77
cfg = config.programs.muon;
88
in
99
{
10+
meta.maintainers = [ ];
11+
1012
options.programs.muon = {
1113
enable = lib.mkEnableOption "muon";
1214
package = lib.mkPackageOption pkgs "muon" { };

programs/mypy.nix

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
{ lib, pkgs, config, ... }:
22
{
3+
meta.maintainers = [ ];
4+
35
options.programs.mypy = {
46
enable = lib.mkEnableOption "mypy";
57
package = lib.mkPackageOption pkgs "mypy" { };

programs/nickel.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.nickel;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.nickel = {
79
enable = lib.mkEnableOption "nickel";
810
package = lib.mkPackageOption pkgs "nickel" { };

programs/nimpretty.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.nimpretty;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.nimpretty = {
79
enable = lib.mkEnableOption "nimpretty";
810
package = lib.mkPackageOption pkgs "nim" { };

programs/nixfmt-rfc-style.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.nixfmt-rfc-style;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.nixfmt-rfc-style = {
79
enable = lib.mkEnableOption "nixfmt-rfc-style";
810
package = lib.mkPackageOption pkgs "nixfmt-rfc-style" { };

programs/nixfmt.nix

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ let
33
cfg = config.programs.nixfmt;
44
in
55
{
6+
meta.maintainers = [ ];
7+
68
options.programs.nixfmt = {
79
enable = lib.mkEnableOption "nixfmt";
810
package = lib.mkPackageOption pkgs "nixfmt-rfc-style" { };

0 commit comments

Comments
 (0)