luarocks-packages-updater: support initial maintainer (#544218)

This commit is contained in:
Austin Horstman
2026-07-22 14:12:33 +00:00
committed by GitHub
3 changed files with 20 additions and 10 deletions
+4 -1
View File
@@ -167,9 +167,12 @@ To add a new package without updating all packages, run
```sh
nix-shell -p luarocks-packages-updater
luarocks-packages-updater add <package-name>
luarocks-packages-updater add [--maintainers "<maintainer>"] <package-name>
```
The optional `--maintainers` argument accepts a space-separated list of nixpkgs maintainer names.
When omitted, the package is added without maintainers.
[luarocks2nix](https://github.com/nix-community/luarocks) is a tool capable of generating nix derivations from both rockspec and src.rock (and favors the src.rock).
The automation only goes so far though and some packages need to be customized.
These customizations go in [pkgs/development/lua-modules/overrides.nix](https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/lua-modules/overrides.nix).
@@ -72,7 +72,7 @@ LICENSE_NORMALIZATION = {
"Apache 2.0": "lib.licenses.asl20",
"Apache-2.0": "lib.licenses.asl20",
"Apache License Version 2": "lib.licenses.asl20",
"BSD": "lib.licenses.free", # Too unspecific
"BSD": "lib.licenses.free", # Too unspecific
"BSD-2-Clause": "lib.licenses.bsd2",
"BSD-3-Clause": "lib.licenses.bsd3",
"GPL-2+": "lib.licenses.gpl2Plus",
@@ -85,7 +85,7 @@ LICENSE_NORMALIZATION = {
"GPL-3.0-or-later": "lib.licenses.gpl3Plus",
"GPLv3+ and other free licenses": "lib.licenses.AND [ lib.licenses.gpl3Plus lib.licenses.free ]",
"ISC": "lib.licenses.isc",
"LGPL": "lib.licenses.free", # Too unspecific
"LGPL": "lib.licenses.free", # Too unspecific
"LGPL-2.0": "lib.licenses.lgpl2Only",
"LGPL-2.1": "lib.licenses.lgpl21Only",
"LGPL-3.0": "lib.licenses.lgpl3Only",
@@ -99,7 +99,7 @@ LICENSE_NORMALIZATION = {
"2-clause BSD": "lib.licenses.bsd2",
"Two-clause BSD": "lib.licenses.bsd2",
"Public domain": "lib.licenses.publicDomain",
"UNKNOWN": "lib.licenses.unfree"
"UNKNOWN": "lib.licenses.unfree",
}
LICENSE_FULL_NAME_RE = re.compile(r'(?P<indent>\s*)license\.fullName = "(?P<license>[^"]+)";')
@@ -182,6 +182,13 @@ class LuaEditor(nixpkgs_plugin_update.Editor):
parser.set_defaults(proc=1, update_only=None)
return parser
def configure_add_parser(self, parser):
parser.add_argument(
"--maintainers",
default="",
help="Space-separated nixpkgs maintainer names to add to each package",
)
def get_current_plugins(self, _config: FetchConfig, _nixpkgs: str):
return []
@@ -210,11 +217,7 @@ class LuaEditor(nixpkgs_plugin_update.Editor):
specs = sorted(specs, key=lambda v: v.name.lower())
if args.update_only:
specs = [
p
for p in specs
if p.normalized_name in args.update_only or p.name in args.update_only
]
specs = [p for p in specs if p.normalized_name in args.update_only or p.name in args.update_only]
if not specs:
log.error("No matching Lua packages to update")
@@ -340,7 +343,7 @@ class LuaEditor(nixpkgs_plugin_update.Editor):
"server": "",
"version": "",
"luaversion": "",
"maintainers": "",
"maintainers": args.maintainers,
}
existing_entries.append(new_entry)
@@ -1037,6 +1037,9 @@ class Editor:
def rewrite_input(self, *args, **kwargs):
return rewrite_input(*args, **kwargs)
def configure_add_parser(self, _parser: argparse.ArgumentParser) -> None:
"""Add updater-specific arguments to the add subcommand."""
def create_parser(self):
common = argparse.ArgumentParser(
add_help=False,
@@ -1122,6 +1125,7 @@ class Editor:
nargs="+",
help=f"Plugin to add to {self.attr_path} from Github in the form owner/repo",
)
self.configure_add_parser(padd)
pupdate = subparsers.add_parser(
"update",