Skip to content

postgresql_beta: init at version 16beta3 #249030

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed

Conversation

thoughtpolice
Copy link
Member

Summary: For integration and testing purposes, especially for downstream consumers (Flakes, etc) that rely on testing against various PostgreSQL versions, it's useful to have a beta version around. An example of this is PostgREST, which has several people using Nix in order to test the server against different versions. Testing against beta versions is currently awkward because there's no way to get them besides patching and forking Nixpkgs.

There's a related problem here, which is that the APIs needed to create your own postgresql package, with all extensions, are not exposed. That might be worth doing later on; but for now, it's easy to just track beta versions and nip the issue in the bud from there.

The intent is that this beta package follows the same basic rules as the Linux prerelease "beta" packages; that is:

  • postgresql_beta always tracks a beta, even if the corresponding release is out.
    • That means that once PostgreSQL 16 is released, this expression will be out of date until PostgreSQL 17 Beta 1 is released.
  • postgresql_beta is updated on a provisional basis i.e. it won't necessarily get prompt updates or security updates like the other expressions.
  • It is primarily intended for advanced users to test and integrate against, so they might submit issues to various upstream maintainers.

Many thanks to Laurence Isla, who initially made this change as part of an effort to integrate PostgREST against PostgreSQL 16 Beta 2.

See also: PostgREST/postgrest#2865

Description of changes

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • 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
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.11 Release Notes (or backporting 23.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Summary: For integration and testing purposes, especially for downstream
consumers (Flakes, etc) that rely on testing against various PostgreSQL
versions, it's useful to have a beta version around. An example of this
is PostgREST, which has several people using Nix in order to test the
server against different versions. Testing against beta versions is
currently awkward because there's no way to get them besides patching
and forking Nixpkgs.

There's a related problem here, which is that the APIs needed to create
your *own* postgresql package, with all extensions, are not exposed.
That might be worth doing later on; but for now, it's easy to just track
beta versions and nip the issue in the bud from there.

The intent is that this `beta` package follows the same basic rules as
the Linux prerelease "beta" packages; that is:

- `postgresql_beta` *always* tracks a beta, even if the corresponding
  release is out.
   - That means that once PostgreSQL 16 is released, this expression
     will be out of date until PostgreSQL 17 Beta 1 is released.
- `postgresql_beta` is updated on a provisional basis i.e. it won't
   necessarily get prompt updates or security updates like the other
   expressions.
- It is primarily intended for advanced users to test and integrate
  against, so they might submit issues to various upstream maintainers.

Many thanks to Laurence Isla, who initially made this change as part of
an effort to integrate PostgREST against PostgreSQL 16 Beta 2.

See also: PostgREST/postgrest#2865

Co-authored-by: Laurence Isla <[email protected]>
Signed-off-by: Austin Seipp <[email protected]>
@thoughtpolice thoughtpolice requested a review from marsam as a code owner August 14, 2023 05:22
@@ -98,7 +98,7 @@ let
++ lib.optionals jitSupport [ "--with-llvm" ];

patches = [
./patches/disable-resolve_symlinks.patch
(if atLeast "16" then ./patches/disable-normalize_exec_path.patch else ./patches/disable-resolve_symlinks.patch)
Copy link
Member Author

Choose a reason for hiding this comment

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

Note that this line is not moved/the order for patches isn't changed, to avoid spurious rebuilds on other versions. If it's less readable I'm fine with changing it, though.

@ofborg ofborg bot added the 8.has: package (new) This PR adds a new package label Aug 14, 2023
@ofborg ofborg bot requested review from ivan, Ma27, danbst and globin August 14, 2023 05:42
@ofborg ofborg bot added 11.by: package-maintainer This PR was created by a maintainer of all the package it changes. 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. labels Aug 14, 2023
@steve-chavez
Copy link
Member

PostgreSQL 16 was released today! https://www.postgresql.org/about/news/postgresql-16-released-2715/

Guess we can just update the hashes/version and then it should be good to merge?

@steve-chavez
Copy link
Member

pg 16 was already added on: #255446

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8.has: package (new) This PR adds a new package 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 11-100 This PR causes between 11 and 100 packages to rebuild on Linux. 11.by: package-maintainer This PR was created by a maintainer of all the package it changes.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants