Skip to content

Commit d11cd58

Browse files
committed
feat(nix): expose per-version extension packages, catalog, and instance tools
Adds passthru.perVersion (version -> single-version derivation) to each multi-version extension (18 files, one line each) -- the attrset already existed inline as the buildEnv input, this surfaces it instead of discarding it. No change to any buildEnv output or extension identity. New flake-parts module nix/packages/extension-catalog.nix, exposing (packages + legacyPackages): - site-extensions-catalog-<major> (15/17/orioledb-17): pg-extensions- catalog.json mapping { ext -> { extversion -> store path } }, plus bin/{resolve,update} preset with PG_EXTENSIONS_CATALOG. Assembled at build time from the wrappers' control files, so keys are real extversions (pgsql-http nix "1.5.0" -> "1.5") and include sub-extensions (postgis_topology, plcoffee, ...). unsafeDiscardReferences keeps the closure to just the JSON (6.8 KiB, not 2.4 GiB). - site-extensions-versions-<major> (legacyPackages): the generic single-version packages the catalog points at (lean, no multi-version buildEnv), so the CI matrix builds and caches them. - Generic tools, one version each (not per-major): site-extensions-resolve (manifest json -> store paths), download-nix-store-paths (retry/timeout substitution, not extension-specific), site-extensions-update (chains both + nix-env --install --remove-all onto PROFILE, atomic). Part of PSQL-1530.
1 parent 0ea2efd commit d11cd58

20 files changed

Lines changed: 205 additions & 1 deletion

nix/ext/hypopg.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ buildEnv {
9898
'';
9999

100100
passthru = {
101+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
101102
versions = versionsBuilt;
102103
numberOfVersions = numberOfVersionsBuilt;
103104
inherit pname latestOnly;

nix/ext/index_advisor.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ pkgs.buildEnv {
8383
];
8484

8585
passthru = {
86+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
8687
versions = versionsBuilt;
8788
numberOfVersions = numberOfVersionsBuilt;
8889
inherit pname latestOnly;

nix/ext/pg-safeupdate.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ pkgs.buildEnv {
8383
'';
8484

8585
passthru = {
86+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
8687
versions = versionsBuilt;
8788
numberOfVersions = numberOfVersionsBuilt;
8889
inherit pname latestOnly;

nix/ext/pg_cron/default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ buildEnv {
116116
};
117117

118118
passthru = {
119+
perVersion = lib.mapAttrs (name: value: build name value) versionsToUse;
119120
versions = versionsBuilt;
120121
numberOfVersions = numberOfVersionsBuilt;
121122
inherit switch-ext-version latestOnly;

nix/ext/pg_net.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ pkgs.buildEnv {
145145
'';
146146

147147
passthru = {
148+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
148149
versions = versionsBuilt;
149150
numberOfVersions = numberOfVersionsBuilt;
150151
inherit pname latestOnly;

nix/ext/pg_partman.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ pkgs.buildEnv {
100100
'';
101101

102102
passthru = {
103+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
103104
versions = versionsBuilt;
104105
numberOfVersions = numberOfVersionsBuilt;
105106
inherit switch-ext-version libName latestOnly;

nix/ext/pg_repack.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ buildEnv {
140140
'';
141141

142142
passthru = {
143+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
143144
versions = versionsBuilt;
144145
numberOfVersions = numberOfVersionsBuilt;
145146
inherit pname latestOnly;

nix/ext/pg_tle.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ buildEnv {
111111
'';
112112

113113
passthru = {
114+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
114115
versions = versionsBuilt;
115116
numberOfVersions = numberOfVersionsBuilt;
116117
inherit pname latestOnly;

nix/ext/pgaudit.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ buildEnv {
240240
'';
241241

242242
passthru = {
243+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
243244
versions = versionsBuilt;
244245
numberOfVersions = numberOfVersionsBuilt;
245246
inherit pname latestOnly;

nix/ext/pgmq/default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ buildEnv {
104104
pathsToLink = [ "/share/postgresql/extension" ];
105105

106106
passthru = {
107+
perVersion = lib.mapAttrs (name: value: build name value.hash) versionsToUse;
107108
versions = versionsBuilt;
108109
numberOfVersions = numberOfVersionsBuilt;
109110
inherit pname latestOnly;

0 commit comments

Comments
 (0)