From bb7921d1d6a0df8ebdc36b8ee745fe704b93b846 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Fri, 20 Oct 2023 12:12:48 +0200 Subject: [PATCH] flake: also provide proper version info for lib's flake This effectively means that nixpkgs$ nix eval ./lib#lib.trivial.version "23.11.20231020.ee0d6b5" now gives meaningful results as well. See https://github.com/NixOS/nixpkgs/pull/257100#discussion_r1352075369 for the discussion around this. --- flake.nix | 10 +--------- lib/__flake-version-info.nix | 17 +++++++++++++++++ lib/flake.nix | 7 ++++++- 3 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 lib/__flake-version-info.nix diff --git a/flake.nix b/flake.nix index bf7480a6db2d..23c9f09a174b 100644 --- a/flake.nix +++ b/flake.nix @@ -9,17 +9,9 @@ nixpkgs = self; }; + libVersionInfoOverlay = import ./lib/__flake-version-info.nix self; lib = (import ./lib).extend libVersionInfoOverlay; - libVersionInfoOverlay = finalLib: prevLib: { - trivial = prevLib.trivial // { - versionSuffix = - ".${finalLib.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}"; - version = finalLib.trivial.release + finalLib.trivial.versionSuffix; - revisionWithDefault = default: self.rev or default; - }; - }; - forAllSystems = lib.genAttrs lib.systems.flakeExposed; in { diff --git a/lib/__flake-version-info.nix b/lib/__flake-version-info.nix new file mode 100644 index 000000000000..19ce4c351cf1 --- /dev/null +++ b/lib/__flake-version-info.nix @@ -0,0 +1,17 @@ +# lib overlay to be used by the nixpkgs & nixpkgs/lib flakes +# to provide meaningful values for `lib.trivial.version` et al.. +# +# Internal and subject to change, don't use this anywhere else! + +self: # from the flake + +finalLib: prevLib: # lib overlay + +{ + trivial = prevLib.trivial // { + versionSuffix = + ".${finalLib.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101")}.${self.shortRev or "dirty"}"; + version = finalLib.trivial.release + finalLib.trivial.versionSuffix; + revisionWithDefault = default: self.rev or default; + }; +} diff --git a/lib/flake.nix b/lib/flake.nix index 0b5e54d547c5..475aa13edafb 100644 --- a/lib/flake.nix +++ b/lib/flake.nix @@ -1,5 +1,10 @@ { description = "Library of low-level helper functions for nix expressions."; - outputs = { self }: { lib = import ./.; }; + outputs = { self }: + let + lib' = import ./.; + in { + lib = lib'.extend (import ./__flake-version-info.nix self); + }; }