Skip to content

Comments

postgresqlTestHook: shutdown on failure#389938

Merged
wolfgangwalther merged 3 commits intoNixOS:masterfrom
wolfgangwalther:postgresql-test-hook
May 11, 2025
Merged

postgresqlTestHook: shutdown on failure#389938
wolfgangwalther merged 3 commits intoNixOS:masterfrom
wolfgangwalther:postgresql-test-hook

Conversation

@wolfgangwalther
Copy link
Contributor

@wolfgangwalther wolfgangwalther commented Mar 14, 2025

This improves postgresqlTestHook in two aspects:

  • One is, that postgresql doesn't need to be added manually to every
    nativeCheckInputs list anymore.
  • The other is, that all those tests now run with a specially pinned
    PostgreSQL version, which can be updated independently via staging.

This allows us to ship updates to PostgreSQL faster by going to master
directly. In the normal case, the latest version and the test version
evaluate to the exact same derivation, so no duplicate builds. Only
while a minor update for the test version is going through staging, the
two versions differ temporarily.

Change of plans: Only some small improvements to postgresqlTestHook left.

Things done

Hopefully the number of rebuilds is low enough for master 🤔

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@wolfgangwalther wolfgangwalther requested a review from Ma27 March 14, 2025 20:58
@github-actions github-actions bot added 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: haskell General-purpose, statically typed, purely functional programming language 6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions 8.has: documentation This PR adds or changes documentation labels Mar 14, 2025
@wolfgangwalther wolfgangwalther force-pushed the postgresql-test-hook branch 2 times, most recently from 130a3f6 to 96263a2 Compare March 14, 2025 21:05
@github-actions github-actions bot added 10.rebuild-darwin: 101-500 This PR causes between 101 and 500 packages to rebuild on Darwin. 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux. labels Mar 14, 2025
@wolfgangwalther wolfgangwalther force-pushed the postgresql-test-hook branch 2 times, most recently from f984365 to beff5a9 Compare March 15, 2025 12:19
@wolfgangwalther
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 389938


x86_64-linux

⏩ 22 packages marked as broken and skipped:
  • chatgpt-retrieval-plugin
  • chatgpt-retrieval-plugin.dist
  • froide
  • froide.dist
  • khoj
  • khoj.dist
  • migra
  • migra.dist
  • python312Packages.froide
  • python312Packages.froide.dist
  • python312Packages.schemainspect
  • python312Packages.schemainspect.dist
  • python312Packages.sqlalchemy-i18n
  • python312Packages.sqlalchemy-i18n.dist
  • python312Packages.sqlbag
  • python312Packages.sqlbag.dist
  • python313Packages.schemainspect
  • python313Packages.schemainspect.dist
  • python313Packages.sqlalchemy-i18n
  • python313Packages.sqlalchemy-i18n.dist
  • python313Packages.sqlbag
  • python313Packages.sqlbag.dist
❌ 4 packages failed to build:
  • python313Packages.psycopg2cffi
  • python313Packages.psycopg2cffi.dist
  • python313Packages.pytest-postgresql
  • python313Packages.pytest-postgresql.dist
✅ 314 packages built:
  • authentik
  • azure-cli-extensions.rdbms-connect
  • azure-cli-extensions.rdbms-connect.dist
  • ceph (ceph-dev)
  • ceph-client
  • ceph-csi
  • ceph.dev (ceph-dev.dev)
  • ceph.doc (ceph-dev.doc)
  • libceph (ceph.lib, libceph.dev, libceph.doc, libceph.lib, libceph.man)
  • ceph.man (ceph-dev.man)
  • codd
  • dendrite
  • dnote
  • fittrackee
  • fittrackee.dist
  • ggshield
  • ggshield.dist
  • glitchtip
  • harlequin
  • harlequin.dist
  • haskellPackages.beam-postgres
  • haskellPackages.beam-postgres.doc
  • haskellPackages.eventsourcing-postgresql
  • haskellPackages.eventsourcing-postgresql.doc
  • haskellPackages.fluffy
  • haskellPackages.fluffy.data
  • haskellPackages.fluffy.doc
  • haskellPackages.gargoyle-postgresql-connect
  • haskellPackages.gargoyle-postgresql-connect.doc
  • haskellPackages.hs-opentelemetry-instrumentation-postgresql-simple
  • haskellPackages.hs-opentelemetry-instrumentation-postgresql-simple.doc
  • haskellPackages.morph
  • haskellPackages.morph.doc
  • haskellPackages.moto-postgresql
  • haskellPackages.moto-postgresql.doc
  • haskellPackages.opaleye
  • haskellPackages.opaleye.doc
  • haskellPackages.persistent-postgresql
  • haskellPackages.persistent-postgresql.doc
  • haskellPackages.pipes-postgresql-simple
  • haskellPackages.pipes-postgresql-simple.doc
  • haskellPackages.postgis-trivial
  • haskellPackages.postgis-trivial.doc
  • haskellPackages.postgresql-connector
  • haskellPackages.postgresql-connector.doc
  • haskellPackages.postgresql-migration
  • haskellPackages.postgresql-migration.doc
  • haskellPackages.postgresql-schema
  • haskellPackages.postgresql-schema.data
  • haskellPackages.postgresql-schema.doc
  • haskellPackages.postgresql-simple
  • haskellPackages.postgresql-simple-interpolate
  • haskellPackages.postgresql-simple-interpolate.doc
  • haskellPackages.postgresql-simple-migration
  • haskellPackages.postgresql-simple-migration.doc
  • haskellPackages.postgresql-simple-url
  • haskellPackages.postgresql-simple-url.doc
  • haskellPackages.postgresql-simple.doc
  • haskellPackages.postgresql-transactional
  • haskellPackages.postgresql-transactional.doc
  • haskellPackages.psql-helpers
  • haskellPackages.psql-helpers.doc
  • haskellPackages.psql-utils
  • haskellPackages.psql-utils.doc
  • haskellPackages.quickcheck-state-machine
  • haskellPackages.quickcheck-state-machine.doc
  • haskellPackages.rel8
  • haskellPackages.rel8.doc
  • haskellPackages.relocant
  • haskellPackages.relocant.doc
  • haskellPackages.rivet-adaptor-postgresql
  • haskellPackages.rivet-adaptor-postgresql.doc
  • haskellPackages.tmp-proc-postgres
  • haskellPackages.tmp-proc-postgres.doc
  • irrd
  • irrd.dist
  • litestar (python312Packages.litestar)
  • litestar.dist (python312Packages.litestar.dist)
  • netbox (netbox_4_2)
  • netbox_4_1
  • nixpkgs-manual
  • open-webui
  • open-webui.dist
  • openshot-qt
  • openshot-qt.dist
  • paperless-ngx
  • peering-manager
  • pgadmin4
  • pgadmin4-desktopmode
  • pgadmin4-desktopmode.dist
  • pgadmin4.dist
  • pgcli (python312Packages.pgcli)
  • pgcli.dist (python312Packages.pgcli.dist)
  • postgresql13JitPackages.postgis
  • postgresql13JitPackages.postgis.doc
  • postgresql13Packages.postgis
  • postgresql13Packages.postgis.doc
  • postgresql14JitPackages.postgis
  • postgresql14JitPackages.postgis.doc
  • postgresql14Packages.postgis
  • postgresql14Packages.postgis.doc
  • postgresql15JitPackages.postgis
  • postgresql15JitPackages.postgis.doc
  • postgresql15Packages.postgis
  • postgresql15Packages.postgis.doc
  • postgresql16JitPackages.postgis
  • postgresql16JitPackages.postgis.doc
  • postgresql16Packages.postgis
  • postgresql16Packages.postgis.doc
  • postgresqlJitPackages.postgis (postgresql17JitPackages.postgis)
  • postgresqlJitPackages.postgis.doc (postgresql17JitPackages.postgis.doc)
  • postgresqlPackages.postgis (postgresql17Packages.postgis)
  • postgresqlPackages.postgis.doc (postgresql17Packages.postgis.doc)
  • postgresqlForTests
  • postgresqlForTests.debug
  • postgresqlForTests.dev
  • postgresqlForTests.doc
  • postgresqlForTests.lib
  • postgresqlForTests.man
  • postgresqlTestHook
  • private-gpt
  • private-gpt.dist
  • python312Packages.bsuite
  • python312Packages.bsuite.dist
  • python312Packages.django-auditlog
  • python312Packages.django-auditlog.dist
  • python312Packages.django-pgactivity
  • python312Packages.django-pgactivity.dist
  • python312Packages.django-pglock
  • python312Packages.django-pglock.dist
  • python312Packages.django-postgresql-netfields
  • python312Packages.django-postgresql-netfields.dist
  • python312Packages.django-tenants
  • python312Packages.django-tenants.dist
  • python312Packages.flask-dramatiq
  • python312Packages.flask-dramatiq.dist
  • python312Packages.folium
  • python312Packages.folium.dist
  • python312Packages.geoarrow-pandas
  • python312Packages.geoarrow-pandas.dist
  • python312Packages.geoarrow-pyarrow
  • python312Packages.geoarrow-pyarrow.dist
  • python312Packages.geodatasets
  • python312Packages.geodatasets.dist
  • python312Packages.geopandas
  • python312Packages.geopandas.dist
  • python312Packages.geoparquet
  • python312Packages.geoparquet.dist
  • python312Packages.harlequin-postgres
  • python312Packages.harlequin-postgres.dist
  • python312Packages.inequality
  • python312Packages.inequality.dist
  • python312Packages.langgraph
  • python312Packages.langgraph-checkpoint-postgres
  • python312Packages.langgraph-checkpoint-postgres.dist
  • python312Packages.langgraph.dist
  • python312Packages.libpysal
  • python312Packages.libpysal.dist
  • python312Packages.lida
  • python312Packages.lida.dist
  • python312Packages.llama-index-vector-stores-postgres
  • python312Packages.llama-index-vector-stores-postgres.dist
  • python312Packages.mapclassify
  • python312Packages.mapclassify.dist
  • python312Packages.mayim
  • python312Packages.mayim.dist
  • python312Packages.momepy
  • python312Packages.momepy.dist
  • python312Packages.msticpy
  • python312Packages.msticpy.dist
  • python312Packages.netbox-bgp
  • python312Packages.netbox-bgp.dist
  • python312Packages.netbox-documents
  • python312Packages.netbox-documents.dist
  • python312Packages.netbox-floorplan-plugin
  • python312Packages.netbox-floorplan-plugin.dist
  • python312Packages.netbox-interface-synchronization
  • python312Packages.netbox-interface-synchronization.dist
  • python312Packages.netbox-napalm-plugin
  • python312Packages.netbox-napalm-plugin.dist
  • python312Packages.netbox-plugin-prometheus-sd
  • python312Packages.netbox-plugin-prometheus-sd.dist
  • python312Packages.netbox-qrcode
  • python312Packages.netbox-qrcode.dist
  • python312Packages.netbox-reorder-rack
  • python312Packages.netbox-reorder-rack.dist
  • python312Packages.netbox-routing
  • python312Packages.netbox-routing.dist
  • python312Packages.netbox-topology-views
  • python312Packages.netbox-topology-views.dist
  • python312Packages.odc-geo
  • python312Packages.odc-geo.dist
  • python312Packages.odc-stac
  • python312Packages.odc-stac.dist
  • python312Packages.osmnx
  • python312Packages.osmnx.dist
  • python312Packages.pandera
  • python312Packages.pandera.dist
  • python312Packages.pgspecial
  • python312Packages.pgspecial.dist
  • python312Packages.pgvector
  • python312Packages.pgvector.dist
  • python312Packages.plotnine
  • python312Packages.plotnine.dist
  • python312Packages.private-gpt
  • python312Packages.private-gpt.dist
  • python312Packages.psycopg
  • python312Packages.psycopg.dist
  • python312Packages.psycopg.doc
  • python312Packages.psycopg2cffi
  • python312Packages.psycopg2cffi.dist
  • python312Packages.pytest-postgresql
  • python312Packages.pytest-postgresql.dist
  • python312Packages.shimmy
  • python312Packages.shimmy.dist
  • python312Packages.txtai
  • python312Packages.txtai.dist
  • python312Packages.weaviate-client
  • python312Packages.weaviate-client.dist
  • python312Packages.wktutils
  • python312Packages.wktutils.dist
  • python313Packages.bsuite
  • python313Packages.bsuite.dist
  • python313Packages.django-auditlog
  • python313Packages.django-auditlog.dist
  • python313Packages.django-pgactivity
  • python313Packages.django-pgactivity.dist
  • python313Packages.django-pglock
  • python313Packages.django-pglock.dist
  • python313Packages.django-postgresql-netfields
  • python313Packages.django-postgresql-netfields.dist
  • python313Packages.django-tenants
  • python313Packages.django-tenants.dist
  • python313Packages.flask-dramatiq
  • python313Packages.flask-dramatiq.dist
  • python313Packages.folium
  • python313Packages.folium.dist
  • python313Packages.geoarrow-pandas
  • python313Packages.geoarrow-pandas.dist
  • python313Packages.geoarrow-pyarrow
  • python313Packages.geoarrow-pyarrow.dist
  • python313Packages.geodatasets
  • python313Packages.geodatasets.dist
  • python313Packages.geopandas
  • python313Packages.geopandas.dist
  • python313Packages.geoparquet
  • python313Packages.geoparquet.dist
  • python313Packages.harlequin-postgres
  • python313Packages.harlequin-postgres.dist
  • python313Packages.inequality
  • python313Packages.inequality.dist
  • python313Packages.langgraph-checkpoint-postgres
  • python313Packages.langgraph-checkpoint-postgres.dist
  • python313Packages.libpysal
  • python313Packages.libpysal.dist
  • python313Packages.lida
  • python313Packages.lida.dist
  • python313Packages.litestar
  • python313Packages.litestar.dist
  • python313Packages.mapclassify
  • python313Packages.mapclassify.dist
  • python313Packages.mayim
  • python313Packages.mayim.dist
  • python313Packages.momepy
  • python313Packages.momepy.dist
  • python313Packages.msticpy
  • python313Packages.msticpy.dist
  • python313Packages.netbox-bgp
  • python313Packages.netbox-bgp.dist
  • python313Packages.netbox-documents
  • python313Packages.netbox-documents.dist
  • python313Packages.netbox-interface-synchronization
  • python313Packages.netbox-interface-synchronization.dist
  • python313Packages.netbox-plugin-prometheus-sd
  • python313Packages.netbox-plugin-prometheus-sd.dist
  • python313Packages.netbox-qrcode
  • python313Packages.netbox-qrcode.dist
  • python313Packages.netbox-reorder-rack
  • python313Packages.netbox-reorder-rack.dist
  • python313Packages.netbox-routing
  • python313Packages.netbox-routing.dist
  • python313Packages.odc-geo
  • python313Packages.odc-geo.dist
  • python313Packages.odc-stac
  • python313Packages.odc-stac.dist
  • python313Packages.osmnx
  • python313Packages.osmnx.dist
  • python313Packages.pandera
  • python313Packages.pandera.dist
  • python313Packages.pgcli
  • python313Packages.pgcli.dist
  • python313Packages.pgspecial
  • python313Packages.pgspecial.dist
  • python313Packages.pgvector
  • python313Packages.pgvector.dist
  • python313Packages.plotnine
  • python313Packages.plotnine.dist
  • python313Packages.psycopg
  • python313Packages.psycopg.dist
  • python313Packages.psycopg.doc
  • python313Packages.txtai
  • python313Packages.txtai.dist
  • python313Packages.weaviate-client
  • python313Packages.weaviate-client.dist
  • python313Packages.wktutils
  • python313Packages.wktutils.dist
  • qemu_full
  • qemu_full.debug
  • qemu_full.doc
  • qemu_full.ga
  • reshape
  • sambaFull (samba4Full)
  • sambaFull.dev (samba4Full.dev)
  • sambaFull.man (samba4Full.man)

aarch64-linux

⏩ 26 packages marked as broken and skipped:
  • chatgpt-retrieval-plugin
  • chatgpt-retrieval-plugin.dist
  • froide
  • froide.dist
  • khoj
  • khoj.dist
  • migra
  • migra.dist
  • private-gpt
  • private-gpt.dist
  • python312Packages.froide
  • python312Packages.froide.dist
  • python312Packages.private-gpt
  • python312Packages.private-gpt.dist
  • python312Packages.schemainspect
  • python312Packages.schemainspect.dist
  • python312Packages.sqlalchemy-i18n
  • python312Packages.sqlalchemy-i18n.dist
  • python312Packages.sqlbag
  • python312Packages.sqlbag.dist
  • python313Packages.schemainspect
  • python313Packages.schemainspect.dist
  • python313Packages.sqlalchemy-i18n
  • python313Packages.sqlalchemy-i18n.dist
  • python313Packages.sqlbag
  • python313Packages.sqlbag.dist
❌ 4 packages failed to build:
  • python313Packages.psycopg2cffi
  • python313Packages.psycopg2cffi.dist
  • python313Packages.pytest-postgresql
  • python313Packages.pytest-postgresql.dist
✅ 304 packages built:
  • authentik
  • azure-cli-extensions.rdbms-connect
  • azure-cli-extensions.rdbms-connect.dist
  • ceph (ceph-dev)
  • ceph-client
  • ceph-csi
  • ceph.dev (ceph-dev.dev)
  • ceph.doc (ceph-dev.doc)
  • libceph (ceph.lib, libceph.dev, libceph.doc, libceph.lib, libceph.man)
  • ceph.man (ceph-dev.man)
  • codd
  • dendrite
  • dnote
  • fittrackee
  • fittrackee.dist
  • ggshield
  • ggshield.dist
  • glitchtip
  • harlequin
  • harlequin.dist
  • haskellPackages.beam-postgres
  • haskellPackages.beam-postgres.doc
  • haskellPackages.eventsourcing-postgresql
  • haskellPackages.eventsourcing-postgresql.doc
  • haskellPackages.fluffy
  • haskellPackages.fluffy.data
  • haskellPackages.fluffy.doc
  • haskellPackages.gargoyle-postgresql-connect
  • haskellPackages.gargoyle-postgresql-connect.doc
  • haskellPackages.hs-opentelemetry-instrumentation-postgresql-simple
  • haskellPackages.hs-opentelemetry-instrumentation-postgresql-simple.doc
  • haskellPackages.morph
  • haskellPackages.morph.doc
  • haskellPackages.moto-postgresql
  • haskellPackages.moto-postgresql.doc
  • haskellPackages.opaleye
  • haskellPackages.opaleye.doc
  • haskellPackages.persistent-postgresql
  • haskellPackages.persistent-postgresql.doc
  • haskellPackages.pipes-postgresql-simple
  • haskellPackages.pipes-postgresql-simple.doc
  • haskellPackages.postgis-trivial
  • haskellPackages.postgis-trivial.doc
  • haskellPackages.postgresql-connector
  • haskellPackages.postgresql-connector.doc
  • haskellPackages.postgresql-migration
  • haskellPackages.postgresql-migration.doc
  • haskellPackages.postgresql-schema
  • haskellPackages.postgresql-schema.data
  • haskellPackages.postgresql-schema.doc
  • haskellPackages.postgresql-simple
  • haskellPackages.postgresql-simple-interpolate
  • haskellPackages.postgresql-simple-interpolate.doc
  • haskellPackages.postgresql-simple-migration
  • haskellPackages.postgresql-simple-migration.doc
  • haskellPackages.postgresql-simple-url
  • haskellPackages.postgresql-simple-url.doc
  • haskellPackages.postgresql-simple.doc
  • haskellPackages.postgresql-transactional
  • haskellPackages.postgresql-transactional.doc
  • haskellPackages.psql-helpers
  • haskellPackages.psql-helpers.doc
  • haskellPackages.psql-utils
  • haskellPackages.psql-utils.doc
  • haskellPackages.quickcheck-state-machine
  • haskellPackages.quickcheck-state-machine.doc
  • haskellPackages.rel8
  • haskellPackages.rel8.doc
  • haskellPackages.relocant
  • haskellPackages.relocant.doc
  • haskellPackages.rivet-adaptor-postgresql
  • haskellPackages.rivet-adaptor-postgresql.doc
  • haskellPackages.tmp-proc-postgres
  • haskellPackages.tmp-proc-postgres.doc
  • irrd
  • irrd.dist
  • litestar (python312Packages.litestar)
  • litestar.dist (python312Packages.litestar.dist)
  • netbox (netbox_4_2)
  • netbox_4_1
  • nixpkgs-manual
  • openshot-qt
  • openshot-qt.dist
  • paperless-ngx
  • peering-manager
  • pgadmin4
  • pgadmin4-desktopmode
  • pgadmin4-desktopmode.dist
  • pgadmin4.dist
  • pgcli (python312Packages.pgcli)
  • pgcli.dist (python312Packages.pgcli.dist)
  • postgresql13JitPackages.postgis
  • postgresql13JitPackages.postgis.doc
  • postgresql13Packages.postgis
  • postgresql13Packages.postgis.doc
  • postgresql14JitPackages.postgis
  • postgresql14JitPackages.postgis.doc
  • postgresql14Packages.postgis
  • postgresql14Packages.postgis.doc
  • postgresql15JitPackages.postgis
  • postgresql15JitPackages.postgis.doc
  • postgresql15Packages.postgis
  • postgresql15Packages.postgis.doc
  • postgresql16JitPackages.postgis
  • postgresql16JitPackages.postgis.doc
  • postgresql16Packages.postgis
  • postgresql16Packages.postgis.doc
  • postgresqlJitPackages.postgis (postgresql17JitPackages.postgis)
  • postgresqlJitPackages.postgis.doc (postgresql17JitPackages.postgis.doc)
  • postgresqlPackages.postgis (postgresql17Packages.postgis)
  • postgresqlPackages.postgis.doc (postgresql17Packages.postgis.doc)
  • postgresqlForTests
  • postgresqlForTests.debug
  • postgresqlForTests.dev
  • postgresqlForTests.doc
  • postgresqlForTests.lib
  • postgresqlForTests.man
  • postgresqlTestHook
  • python312Packages.bsuite
  • python312Packages.bsuite.dist
  • python312Packages.django-auditlog
  • python312Packages.django-auditlog.dist
  • python312Packages.django-pgactivity
  • python312Packages.django-pgactivity.dist
  • python312Packages.django-pglock
  • python312Packages.django-pglock.dist
  • python312Packages.django-postgresql-netfields
  • python312Packages.django-postgresql-netfields.dist
  • python312Packages.django-tenants
  • python312Packages.django-tenants.dist
  • python312Packages.flask-dramatiq
  • python312Packages.flask-dramatiq.dist
  • python312Packages.folium
  • python312Packages.folium.dist
  • python312Packages.geoarrow-pandas
  • python312Packages.geoarrow-pandas.dist
  • python312Packages.geoarrow-pyarrow
  • python312Packages.geoarrow-pyarrow.dist
  • python312Packages.geodatasets
  • python312Packages.geodatasets.dist
  • python312Packages.geopandas
  • python312Packages.geopandas.dist
  • python312Packages.geoparquet
  • python312Packages.geoparquet.dist
  • python312Packages.harlequin-postgres
  • python312Packages.harlequin-postgres.dist
  • python312Packages.inequality
  • python312Packages.inequality.dist
  • python312Packages.langgraph
  • python312Packages.langgraph-checkpoint-postgres
  • python312Packages.langgraph-checkpoint-postgres.dist
  • python312Packages.langgraph.dist
  • python312Packages.libpysal
  • python312Packages.libpysal.dist
  • python312Packages.lida
  • python312Packages.lida.dist
  • python312Packages.llama-index-vector-stores-postgres
  • python312Packages.llama-index-vector-stores-postgres.dist
  • python312Packages.mapclassify
  • python312Packages.mapclassify.dist
  • python312Packages.mayim
  • python312Packages.mayim.dist
  • python312Packages.momepy
  • python312Packages.momepy.dist
  • python312Packages.msticpy
  • python312Packages.msticpy.dist
  • python312Packages.netbox-bgp
  • python312Packages.netbox-bgp.dist
  • python312Packages.netbox-documents
  • python312Packages.netbox-documents.dist
  • python312Packages.netbox-floorplan-plugin
  • python312Packages.netbox-floorplan-plugin.dist
  • python312Packages.netbox-interface-synchronization
  • python312Packages.netbox-interface-synchronization.dist
  • python312Packages.netbox-napalm-plugin
  • python312Packages.netbox-napalm-plugin.dist
  • python312Packages.netbox-plugin-prometheus-sd
  • python312Packages.netbox-plugin-prometheus-sd.dist
  • python312Packages.netbox-qrcode
  • python312Packages.netbox-qrcode.dist
  • python312Packages.netbox-reorder-rack
  • python312Packages.netbox-reorder-rack.dist
  • python312Packages.netbox-routing
  • python312Packages.netbox-routing.dist
  • python312Packages.netbox-topology-views
  • python312Packages.netbox-topology-views.dist
  • python312Packages.odc-geo
  • python312Packages.odc-geo.dist
  • python312Packages.odc-stac
  • python312Packages.odc-stac.dist
  • python312Packages.osmnx
  • python312Packages.osmnx.dist
  • python312Packages.pandera
  • python312Packages.pandera.dist
  • python312Packages.pgspecial
  • python312Packages.pgspecial.dist
  • python312Packages.pgvector
  • python312Packages.pgvector.dist
  • python312Packages.plotnine
  • python312Packages.plotnine.dist
  • python312Packages.psycopg
  • python312Packages.psycopg.dist
  • python312Packages.psycopg.doc
  • python312Packages.psycopg2cffi
  • python312Packages.psycopg2cffi.dist
  • python312Packages.pytest-postgresql
  • python312Packages.pytest-postgresql.dist
  • python312Packages.shimmy
  • python312Packages.shimmy.dist
  • python312Packages.txtai
  • python312Packages.txtai.dist
  • python312Packages.weaviate-client
  • python312Packages.weaviate-client.dist
  • python312Packages.wktutils
  • python312Packages.wktutils.dist
  • python313Packages.bsuite
  • python313Packages.bsuite.dist
  • python313Packages.django-auditlog
  • python313Packages.django-auditlog.dist
  • python313Packages.django-pgactivity
  • python313Packages.django-pgactivity.dist
  • python313Packages.django-pglock
  • python313Packages.django-pglock.dist
  • python313Packages.django-postgresql-netfields
  • python313Packages.django-postgresql-netfields.dist
  • python313Packages.django-tenants
  • python313Packages.django-tenants.dist
  • python313Packages.flask-dramatiq
  • python313Packages.flask-dramatiq.dist
  • python313Packages.folium
  • python313Packages.folium.dist
  • python313Packages.geoarrow-pandas
  • python313Packages.geoarrow-pandas.dist
  • python313Packages.geoarrow-pyarrow
  • python313Packages.geoarrow-pyarrow.dist
  • python313Packages.geodatasets
  • python313Packages.geodatasets.dist
  • python313Packages.geopandas
  • python313Packages.geopandas.dist
  • python313Packages.geoparquet
  • python313Packages.geoparquet.dist
  • python313Packages.harlequin-postgres
  • python313Packages.harlequin-postgres.dist
  • python313Packages.inequality
  • python313Packages.inequality.dist
  • python313Packages.langgraph-checkpoint-postgres
  • python313Packages.langgraph-checkpoint-postgres.dist
  • python313Packages.libpysal
  • python313Packages.libpysal.dist
  • python313Packages.lida
  • python313Packages.lida.dist
  • python313Packages.litestar
  • python313Packages.litestar.dist
  • python313Packages.mapclassify
  • python313Packages.mapclassify.dist
  • python313Packages.mayim
  • python313Packages.mayim.dist
  • python313Packages.momepy
  • python313Packages.momepy.dist
  • python313Packages.msticpy
  • python313Packages.msticpy.dist
  • python313Packages.netbox-bgp
  • python313Packages.netbox-bgp.dist
  • python313Packages.netbox-documents
  • python313Packages.netbox-documents.dist
  • python313Packages.netbox-interface-synchronization
  • python313Packages.netbox-interface-synchronization.dist
  • python313Packages.netbox-plugin-prometheus-sd
  • python313Packages.netbox-plugin-prometheus-sd.dist
  • python313Packages.netbox-qrcode
  • python313Packages.netbox-qrcode.dist
  • python313Packages.netbox-reorder-rack
  • python313Packages.netbox-reorder-rack.dist
  • python313Packages.netbox-routing
  • python313Packages.netbox-routing.dist
  • python313Packages.odc-geo
  • python313Packages.odc-geo.dist
  • python313Packages.odc-stac
  • python313Packages.odc-stac.dist
  • python313Packages.osmnx
  • python313Packages.osmnx.dist
  • python313Packages.pandera
  • python313Packages.pandera.dist
  • python313Packages.pgcli
  • python313Packages.pgcli.dist
  • python313Packages.pgspecial
  • python313Packages.pgspecial.dist
  • python313Packages.pgvector
  • python313Packages.pgvector.dist
  • python313Packages.plotnine
  • python313Packages.plotnine.dist
  • python313Packages.psycopg
  • python313Packages.psycopg.dist
  • python313Packages.psycopg.doc
  • python313Packages.txtai
  • python313Packages.txtai.dist
  • python313Packages.weaviate-client
  • python313Packages.weaviate-client.dist
  • python313Packages.wktutils
  • python313Packages.wktutils.dist
  • qemu_full
  • qemu_full.doc
  • qemu_full.ga
  • reshape

The failing packages already fail on master.

I can't run a nixpkgs-review on darwin, because there is gradio in it, which always hangs on darwin eventually. I couldn't figure out how to exclude all packages depending on that via --skip-package-regex either. This is not a regression of this PR (#382974 (comment)).

I couldn't see any regressions on the darwin side from the build log, though, so should be fine.

@wolfgangwalther wolfgangwalther marked this pull request as ready for review March 16, 2025 12:10
@sternenseemann sternenseemann requested a review from roberth March 16, 2025 23:37
Copy link
Member

@roberth roberth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sympathetic to the cause, and I will support this workaround, but ultimately we should fix these kinds of problems with more granular builds, where tests run in separate derivations, reusing previous builds.
For the current solution, I have these requests:

  • rename postgresqlForTesting to postgresqlForNixpkgsInternalTesting
    • out-of-tree users should use the normal postgres (otherwise, we make them test with a version that's not the default version they may use in production)
  • avoid input propagation so that users can pick the right postgresql version. Hiding this dependency creates extra complexity and problems:
    • unclear which postgres is used
    • need to learn about the hook before someone can change the postgres version
    • (possibly?) conflict between the propagated postgres and the directly provided postgres

@wolfgangwalther wolfgangwalther marked this pull request as draft March 23, 2025 12:58
@wolfgangwalther
Copy link
Contributor Author

Given that this only triggered ~180 rebuilds, it won't be enough on its own to reduce the number of rebuilds for PostgreSQL to allow direct updates to master, yet. Putting this on draft, until:

@wolfgangwalther
Copy link
Contributor Author

In #404572, we merged the last set of minor updates for PostgreSQL straight into master. Thus, for now, we don't need this anymore.

@wolfgangwalther
Copy link
Contributor Author

Ah, not true: There is more in here than just the postgresqlForTests stuff. Will remove that part and do the remaining improvements to postgresqlTestHook here.

@wolfgangwalther wolfgangwalther changed the title postgresqlTestHook: run with postgresqlForTests postgresqlTestHook: shutdown on failure May 11, 2025
@github-actions github-actions bot removed 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: haskell General-purpose, statically typed, purely functional programming language labels May 11, 2025
Previously, the user of postgresqlTestHook would have needed to set
failureHook accordingly. However, this was not a clean solution, because
postgresqlStop would also run for configure or build failures, before
the server was even started. This gave odd errors from a failed shutdown
in the log.

Now postgresqlStop is only called when it makes sense - and whenever
postgresqlTestHook is used.
@wolfgangwalther wolfgangwalther dismissed roberth’s stale review May 11, 2025 08:45

doesn't apply anymore

@ofborg ofborg bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label May 11, 2025
@github-actions github-actions bot added 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. and removed 10.rebuild-darwin: 101-500 This PR causes between 101 and 500 packages to rebuild on Darwin. labels May 11, 2025
@wolfgangwalther wolfgangwalther marked this pull request as ready for review May 11, 2025 09:08
Copy link
Contributor

@l0b0 l0b0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@maralorn maralorn removed their request for review May 11, 2025 10:12
@wolfgangwalther wolfgangwalther merged commit 2d6c5c5 into NixOS:master May 11, 2025
41 of 42 checks passed
@wolfgangwalther wolfgangwalther deleted the postgresql-test-hook branch May 11, 2025 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: continuous integration Affects continuous integration (CI) in Nixpkgs, including Ofborg and GitHub Actions 8.has: documentation This PR adds or changes documentation 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 101-500 This PR causes between 101 and 500 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants