Nixpkgs/Update Scripts: Difference between revisions

From NixOS Wiki
Makefu (talk | contribs)
No edit summary
Makefu (talk | contribs)
add info about nix-update, additional resources
Line 3: Line 3:
== Update Scripts ==
== Update Scripts ==
List of prepackaged update scripts.
List of prepackaged update scripts.
=== Git Updater ===
=== Git Updater ===


Line 35: Line 33:
};
};
</syntaxhighlight>Source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/unstable-updater.nix
</syntaxhighlight>Source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/unstable-updater.nix
=== nix-update by Mic92 ===
[https://github.com/Mic92/nix-update nix-update] works for a range of different sources and will do the right thing most of the time.<syntaxhighlight lang="nix">
passthru.updateScript = nix-update-script { };
</syntaxhighlight>
=== Additional Resources ===
* [https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#automatic-package-updates Contributing to nixpkgs - Automatic Package Updates (github.com/nixos/nixpkgs)]
[[Category:Nixpkgs]]
[[Category:Nixpkgs]]

Revision as of 23:01, 28 October 2024

Update Scripts can be added to packages via setting, passthru.updateScript which is then executed by r-ryantm to create an updated pull request or can be manually invoked via nix-shell maintainers/scripts/update.nix --argstr package <packagename>.

Update Scripts

List of prepackaged update scripts.

Git Updater

Updates to the latest git tag.

passthru.updateScript = gitUpdater {
  ignoredVersions = ""; # Optional - (grep -E) Filter to ignore versions
  allowedVersions = ""; # Optional - (grep -E) Filter to ignore versions
  rev-prefix = "v";     # Optional - set if tags have a prefix before the version number
  odd-unstable = false; # Optional - Ignore odd numberd versions
  patchlevel-unstable = false; # Optional - Ignore patchlevel versions
  url = null;           #  Optional - Set this to a git url when the src is not a git repo
};

Source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/git-updater.nix

Unstable Git Updater

Updates to the latest git tag

passthru.updateScript = unstableGitUpdater {
  branch = null; # Optional - Which branch should be updated from
  url = null; # Optional - The git url, if empty it will be set to src.gitRepoUrl
  tagPrefix = "v"; # Optional - strip this prefix from a tag name
  hardcodeZeroVersion = false; # Optional - Use a made-up version "0" instead of latest tag. Use when the project's tagging system is incompatible with what we expect from versions
  tagFormat = "*"; # Optional - A `git describe --tags --match '<format>'` pattern that tags must match to be considered
  tagConverter = null; # Optional - command to convert more complex tag formats. It receives the git tag via stdin and should convert it into x.y.z format to stdout. Example: https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/ch/chirp/package.nix#L41-L45
  shallowClone = true; # Optional - do not perform a complete clone
};

Source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/unstable-updater.nix

nix-update by Mic92

nix-update works for a range of different sources and will do the right thing most of the time.

passthru.updateScript = nix-update-script { };

Additional Resources