Nixpkgs/Update Scripts: Difference between revisions

From NixOS Wiki
Makefu (talk | contribs)
Add all optional arguments to unstableGitUpdater
Add nix-update-script as alternate to unstableGitUpdater
 
(3 intermediate revisions by 2 users not shown)
Line 4: Line 4:
List of prepackaged update scripts.
List of prepackaged update scripts.


=== 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>
If you want functionality similar to that of unstableGitUpdater but with the additional handlers offered by nix-update, use:
<syntaxhighlight lang="nix">
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
</syntaxhighlight>


=== Git Updater ===
=== Git Updater ===
Line 11: Line 23:
<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
passthru.updateScript = gitUpdater {
passthru.updateScript = gitUpdater {
   ignoredVersions = ""; # Optional - Filter to ignore versions
   ignoredVersions = ""; # Optional - (grep -E) Filter to ignore versions
   rev-prefix = "v"; # Optional - set if tags have a prefix before the version number
  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
   odd-unstable = false; # Optional - Ignore odd numberd versions
   patchlevel-unstable = false; # Optional - Ignore patchlevel 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
   url = null;           #  Optional - Set this to a git url when the src is not a git repo
};
};
</syntaxhighlight>Source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/git-updater.nix
</syntaxhighlight>Source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/git-updater.nix
Line 34: Line 47:
};
};
</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
=== 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]]

Latest revision as of 23:30, 13 November 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.

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 { };

If you want functionality similar to that of unstableGitUpdater but with the additional handlers offered by nix-update, use:

passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };

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

Additional Resources