Christoph Berg [Wed, 5 Aug 2026 13:31:32 +0000 (15:31 +0200)]
Fix pycodestyle warning
Fix a pycodestyle warning I introduced in
9b064cc04a628: E261 at least
two spaces before inline comment
Magnus Hagander [Wed, 5 Aug 2026 10:55:38 +0000 (12:55 +0200)]
Don't show past news posting embargoes
The list of embargoes should only include current and future ones, not
past.
Fixes oversight in
c9be0975
Daniel Gustafsson [Mon, 3 Aug 2026 19:19:07 +0000 (21:19 +0200)]
Remove stray character from regex substring grouping
Author: Christophe Pettus <xof@thebuild.com>
Discussion: https://postgr.es/m/
BB10E027-775C-4A4E-A602-
626370D81338@thebuild.com
Christoph Berg [Mon, 3 Aug 2026 18:06:33 +0000 (20:06 +0200)]
download/linux/ubuntu: questing (25.10) has been removed
Daniel Gustafsson [Wed, 29 Jul 2026 12:34:33 +0000 (14:34 +0200)]
Fix link to books
The template for rendering books from YAML accidentally hardcoded the
url instead of pulling it out of the data stream.
Reported-by: Agron Metaj <agron-metaj@hotmail.com>
Discussion: https://postgr.es/m/19585-
7cd733cb26cda5d5@postgresql.org
Christoph Berg [Wed, 29 Jul 2026 12:27:31 +0000 (14:27 +0200)]
download: Debian trixie supports loong64
Omission noticed by yuanchao zhang, thanks!
Jonathan S. Katz [Thu, 16 Jul 2026 13:00:45 +0000 (09:00 -0400)]
PostgreSQL 19 Beta 2 release
Magnus Hagander [Wed, 15 Jul 2026 12:27:22 +0000 (14:27 +0200)]
Fix featurematrix views for legacy details url
Magnus Hagander [Wed, 15 Jul 2026 10:56:09 +0000 (12:56 +0200)]
Use a sprinte instead of individual images for books
The book listing loads close to 100 images at this point, this is a huge
number of roundtrips and... Slow. Instead, combine them into one sprite
and use CSS.
To do this add a generic support for generating sprites. Right now it's
only used for books, but it can be used for others as well in the
future.
To add a new book now, add it to the YAML, add the image as usual, and
then run "manage.py combine_image_sprites", and make sure to commit both
the original image and the combined one.
This brings the image downloads from about 2MB across 84 requests to
less than 350KB across 1 request.
Magnus Hagander [Tue, 14 Jul 2026 17:44:48 +0000 (19:44 +0200)]
Fix varnish purges for data/ files in subdirectories
This is not currently used, but let's generate xkeys that are actually
vaild in case we ever do.
Magnus Hagander [Tue, 14 Jul 2026 17:37:55 +0000 (19:37 +0200)]
Drive list of books from a yaml file instead of harcoded
Instead of copy/pasting HTML, use a template.
Magnus Hagander [Tue, 14 Jul 2026 17:38:44 +0000 (19:38 +0200)]
Make the yaml data loader generic
This means it will be possible to use it for other things than just the
feature matrix.
Magnus Hagander [Mon, 13 Jul 2026 15:03:45 +0000 (17:03 +0200)]
Add missing support for sk-ssh-
ed25519@openssh.com
Allow community logins to include sk-ssh-
ed25519@openssh.com as an ssh
key, which is what is used when a key is on a secure external device.
Noted by Melanie Plageman
Magnus Hagander [Mon, 13 Jul 2026 14:53:07 +0000 (16:53 +0200)]
Fix creation of news article in the django admin
This has been broken for ages and should normally only be used in
emergencies, but if it is needed in an emergency it should work...
Magnus Hagander [Mon, 13 Jul 2026 14:23:10 +0000 (16:23 +0200)]
Remove attempt to use nice widgets for embargo time ranges
Looks like this is not supported in django admin without awful hacks, so
just get rid of it - the user putting them in will just have to type
both date and time.
Magnus Hagander [Fri, 10 Jul 2026 10:28:40 +0000 (12:28 +0200)]
Disallow blocking oauth on oauth logins
When a user logs in with oauth, we should not allow them to disable
their own ability to log in.
Magnus Hagander [Thu, 25 Jun 2026 10:01:24 +0000 (12:01 +0200)]
Drive releases off a metadata files instead of manually
This, together with the previous cve changes, makes it possible to do a
complete release in just one "git push", instead of a combination of
editing files and timing it with making changes in the database
manually in the right order.
In passing also dynamically drive the text about when it's time to
upgrade from the eoldate listed in the database, and start showing the
warning at 180 days.
Magnus Hagander [Thu, 25 Jun 2026 10:17:55 +0000 (12:17 +0200)]
Drive the developer/beta page from database info
This means we don't have to edit it every time, since it's really just
static text that comes and goes depending on if we have an active beta
or not.
Magnus Hagander [Wed, 24 Jun 2026 15:45:59 +0000 (17:45 +0200)]
Remove debugging code
Magnus Hagander [Wed, 24 Jun 2026 15:22:10 +0000 (17:22 +0200)]
Add an actual constraint making sure we can only have one pinned news article
We only had a gui-level prevention of this before...
Magnus Hagander [Wed, 24 Jun 2026 15:01:31 +0000 (17:01 +0200)]
Drive the news entry on the topbar from PinnedNewsArticle
This will generate a query for every single page on the site in
development mode, but that's OK - in production we're using ESI and will
cache the result of it.
Magnus Hagander [Tue, 23 Jun 2026 11:39:19 +0000 (13:39 +0200)]
Allow saving Version objects with update_fields set
Magnus Hagander [Mon, 22 Jun 2026 20:22:23 +0000 (22:22 +0200)]
Add a template filter to get max value from a list
Magnus Hagander [Mon, 22 Jun 2026 15:24:17 +0000 (17:24 +0200)]
Fix varnish purging of edited/added versions
This doesn't happen often, but could if patch info is mistaken, and
should be correct... It will still miss a deletion since we don't pick
up those, but other than that it should be correct.
Magnus Hagander [Mon, 22 Jun 2026 15:19:41 +0000 (17:19 +0200)]
Load a list of CVEs from JSON files in data/security/cve
We get these files from "ourselves" now that we are a CNA, so instead of
manually copy/paste:ing things over, load them from a directory of json
fiels and update automatically. This loading will happen at the end of
the migrate step, which runs at every deploy.
Import all CVEs from 2025 and 2026 (so far).
Magnus Hagander [Mon, 22 Jun 2026 14:11:30 +0000 (16:11 +0200)]
Remove unused __init__.py files
Magnus Hagander [Mon, 22 Jun 2026 14:10:02 +0000 (16:10 +0200)]
Create actual unique constraint for (patch, version)
Magnus Hagander [Mon, 22 Jun 2026 10:34:34 +0000 (12:34 +0200)]
Use GeneratedColumn for cvenumber, enforce check constraints
Use a GeneratedColumn for cvenumber now that django supports it, instead
of hacky workarounds. While at it, also add check constraints for cve
number format (to make sure that expression doesn't fail) and for cvss
vectors. To make this work, we have to delete securtiypatches with no
cve numbers of which there are three *very* old ones in the system. Old
enough that we don't care anymore, and the viewing of them was already
broken and nobody has complaiend for many years - the newest refers to
8.1.
In passing fix that the second part of the CVS number allows 5 digits,
not 7 (with the calculations currently used).
Magnus Hagander [Sat, 20 Jun 2026 19:48:01 +0000 (21:48 +0200)]
Don't crash when trying to reset password without specifying email
This is obviously not a valid request and cannot be generated from a
proper browser, but we shouldn't throw 500 errors on it.
Magnus Hagander [Thu, 18 Jun 2026 21:58:42 +0000 (23:58 +0200)]
Store complete CVSS vectors instead of decomposed
The only thing we ever did was put them back together, so simplify both
storage and code by just storing them that way int the first place.
Magnus Hagander [Thu, 18 Jun 2026 21:17:39 +0000 (23:17 +0200)]
Remove unused property
Magnus Hagander [Thu, 18 Jun 2026 13:29:34 +0000 (15:29 +0200)]
Implement news posting embargoes
This allows the creation of time ranges (tstzrange! of course!) during
which news will not be posted. It is still possible to approve news, in
which case it gets queued up and posted once the embargo expires. An
option is also given to superusers to force posting even during an
embargo (typically this would be used for the release announcements).
Dave Page [Tue, 23 Jun 2026 08:37:19 +0000 (09:37 +0100)]
Remove unused Bootstrap files
Jonathan S. Katz [Thu, 4 Jun 2026 13:27:13 +0000 (09:27 -0400)]
Fix beta page
I thought I had tested this, but clearly not.
Jonathan S. Katz [Thu, 4 Jun 2026 01:54:31 +0000 (21:54 -0400)]
PostgreSQL 19 Beta 1 release
Magnus Hagander [Tue, 2 Jun 2026 19:49:58 +0000 (21:49 +0200)]
Use filter_horizontal for community auth site groups
Magnus Hagander [Thu, 28 May 2026 13:28:21 +0000 (15:28 +0200)]
Add ability to restrict cauth sites to members of specific group(s)
If no groups are specified, work just like before where every user can
log in to every site. Existing limited sites had the list of users
defined locally on the machine, but it seems reasonable to be able to
control this centrally as well.
Magnus Hagander [Fri, 22 May 2026 19:21:59 +0000 (21:21 +0200)]
Add community auth unwrap sample
This is used to decrypt and verify a community auth response so it can
be used by an external tool, typically an nginx subrequest, to complete
a registration.
Dave Page [Fri, 29 May 2026 09:42:00 +0000 (10:42 +0100)]
PGCA Benefactor sponsor: Microsoft
Christoph Berg [Wed, 27 May 2026 09:10:32 +0000 (11:10 +0200)]
Download: Remove "3rd party distributions" section
The BitNami link has been dead for at least a year, and the value of
pointing to a specific container image is questionable these days.
Discussion: https://www.postgresql.org/message-id/ahXFQU3N4TNDuG4b%40msg.df7cb.de
Devrim Gunduz [Fri, 22 May 2026 19:10:57 +0000 (12:10 -0700)]
Mention about OpenSuSE 16.0
Devrim Gunduz [Fri, 22 May 2026 19:10:02 +0000 (12:10 -0700)]
Update SLES info.
Jonathan S. Katz [Fri, 15 May 2026 13:24:21 +0000 (09:24 -0400)]
Correct May 2027 roadmap date
Reported-by: Pierrick <pierrick.chovelon@dalibo.com>
Jonathan S. Katz [Thu, 14 May 2026 14:00:20 +0000 (10:00 -0400)]
Fixed issues with news archive pagination
Bogus dates in the news pagination would create a server error.
This softens it to a 404.
Jonathan S. Katz [Thu, 14 May 2026 01:36:30 +0000 (21:36 -0400)]
2026-05-14 update release
Jonathan S. Katz [Thu, 14 May 2026 01:21:11 +0000 (21:21 -0400)]
Add more details on disclosure to security page
This adds a clarification to how the PostgreSQL Security
Team handles validating and publishing fixes for reported
vulnerabilities.
Reviewed-by: Jacob Champion <champion.p@gmail.com>
Reviewed-by: Andrew Dunstan <andrew@dunslane.net>
Reviewed-by: Nathan Bossart <nathandbossart@gmail.com>
Daniel Gustafsson [Fri, 8 May 2026 07:44:15 +0000 (09:44 +0200)]
Update .mailmap to capture all relevant authors
The mailmap laceked entries for Álvaro and Joe making their entries
in the git log inconsistent.
Author: Daniel Gustafsson <daniel@yesql.se>
Discussion: https://postgr.es/m/
FCE7FFF9-D610-4B8D-A669-
1B4BFC241488@yesql.se
Devrim Gunduz [Wed, 6 May 2026 13:22:40 +0000 (16:22 +0300)]
Fedora 44 is out already, so add that. Remove Fedora 42 (will be EOLed soon
Christoph Berg [Fri, 24 Apr 2026 16:05:12 +0000 (18:05 +0200)]
Contributor first/last name tweaks
Users are already allowed to edit their first and last name, but this
didn't include the names listed in their Contributor object. Since it's
not even obvious that the data there is separate, that's pretty
confusing. Allow them to edit these fields.
In the Django admin interface, sort the list of contributors like they
are sorted in the public list: first by type, and the by last name.
Lastly, put the first name first in the edit mask for contributors.
(This changes the order of the fields in the model, but does not need
any Django database migration.)
Christoph Berg [Thu, 23 Apr 2026 14:33:22 +0000 (16:33 +0200)]
Download: Upgrade Debian/Ubuntu instructions to use pgdg.sources format
Daniel Gustafsson [Thu, 16 Apr 2026 13:05:07 +0000 (15:05 +0200)]
Add Deep Dive Into a SQL Query book
Author: Daniel Gustafsson <daniel@yesql.se>
Submitted-by: Jesús Espino <jespinog@gmail.com>
Discussion: https://postgr.es/m/CALRMi60ZVbMr-9MGy7j_J9EZw2-xi3=GAa8LnVVo+SHy9Lc7FA@mail.gmail.com
Jonathan S. Katz [Mon, 13 Apr 2026 20:16:41 +0000 (16:16 -0400)]
Fix date on financial sponsors page
This was missed in one of the previous commits.
Jonathan S. Katz [Mon, 13 Apr 2026 01:45:43 +0000 (21:45 -0400)]
Add financial sponsor logo
This was missed in
6f63eb9f
Jonathan S. Katz [Mon, 13 Apr 2026 01:43:58 +0000 (21:43 -0400)]
Update valuse for financial sponsorship tiers
This matches what was already posted on the PGCA website, but now
is entered correctly on this one.
Jonathan S. Katz [Mon, 13 Apr 2026 01:42:59 +0000 (21:42 -0400)]
Update sponsor information for financial sponsors
This updates the donation date for one of the financial
sponsors, and includes an updated logo that the sponsor had
previously requested.
Magnus Hagander [Fri, 10 Apr 2026 08:23:27 +0000 (10:23 +0200)]
Fix accidental double-hash-in-hashtag-links bug on bluesky
Magnus Hagander [Tue, 7 Apr 2026 16:54:11 +0000 (18:54 +0200)]
Don't try to pin a NULL post on Mastodon
Magnus Hagander [Tue, 7 Apr 2026 16:48:42 +0000 (18:48 +0200)]
Add write:accounts to mastodon scopes
This is needed to do post pinning (but for some reason worked in testing
on a different account)
Magnus Hagander [Tue, 7 Apr 2026 16:47:32 +0000 (18:47 +0200)]
Add missing / in mastodon API urls
Magnus Hagander [Tue, 7 Apr 2026 16:46:13 +0000 (18:46 +0200)]
Fix error checking in mastodon pinning looking at the wrong object
Magnus Hagander [Tue, 7 Apr 2026 16:43:00 +0000 (18:43 +0200)]
Remove stray whitespace in URL
Magnus Hagander [Tue, 7 Apr 2026 16:41:49 +0000 (18:41 +0200)]
Proceed to pinning step even if there are no new articles posted
Magnus Hagander [Tue, 7 Apr 2026 16:38:54 +0000 (18:38 +0200)]
Fix logic for unpinning articles
Magnus Hagander [Tue, 7 Apr 2026 16:17:58 +0000 (18:17 +0200)]
Add mastodon verification link
Magnus Hagander [Tue, 7 Apr 2026 16:15:58 +0000 (18:15 +0200)]
Implement pinning to social networks
This is mostly untested so far, since we need some real posts to pin
before we can do that, but "mostly works".
Magnus Hagander [Tue, 7 Apr 2026 15:56:10 +0000 (17:56 +0200)]
Fix register() function names for base and bluesky
The value is ignored, but must be included
Magnus Hagander [Tue, 7 Apr 2026 15:52:45 +0000 (17:52 +0200)]
Fix filtering for already-posted news articles
We need to filter based on just the keys, not the values as well, when
figuring out if there is anywhere left to post an article.
Magnus Hagander [Tue, 7 Apr 2026 15:40:51 +0000 (17:40 +0200)]
Don't try to post to social if no providers at all are configured
Magnus Hagander [Thu, 2 Apr 2026 10:19:02 +0000 (12:19 +0200)]
Add support for bluesky and mastodon, drop support for twitter
This also makes the framework more generic for adding more options in
the future. And make the poster a file that can easily be copied between
projects as we will need it elsewhere as well.
In passing, add the #postgresql hashtag to the posts
Magnus Hagander [Wed, 1 Apr 2026 16:57:27 +0000 (18:57 +0200)]
Fix date/time formats for new version of django
This now has to live in a module and not just in settings.py, so
duplicate it there (leave in settings.py as well in case some parts
still use it)
Devrim Gunduz [Fri, 27 Mar 2026 03:39:28 +0000 (22:39 -0500)]
A Fedora release is supported for 13 months, so PGDG RPM repo *may* include all supported PostgreSQL versions (and it does). So mention about that. While passing update min Fedora version to 42
Devrim Gunduz [Fri, 27 Mar 2026 03:29:26 +0000 (22:29 -0500)]
Add instructions for reporting security vulnerabilities in pgvector. Patch from Andrew Kane.
Devrim Gunduz [Thu, 26 Mar 2026 18:41:28 +0000 (13:41 -0500)]
Add pgvector to list of projects covered by CNA scope. Per Noah
Devrim Gunduz [Thu, 26 Mar 2026 18:40:47 +0000 (13:40 -0500)]
Revert "Add pgvector to list of projects covered by CNA scope. Per Noah"
This reverts commit
1e391045200ac9ae77aa6edf884a5b3db0370b38.
Devrim Gunduz [Thu, 26 Mar 2026 18:39:14 +0000 (13:39 -0500)]
Add pgvector to list of projects covered by CNA scope. Per Noah
Daniel Gustafsson [Thu, 12 Mar 2026 09:49:08 +0000 (10:49 +0100)]
Add "Lift the Elephant" book to docs/books
The author has in the email thread granted permission to use the
cover art in our listing.
Author: Daniel Gustafsson <daniel@yesql.se>
Reported-by: Alex Yarotsky <yarotsky.alex@gmail.com>
Discussion: https://postgr.es/m/CAFf0AzyBTHmd3m+NaQ1AVMOq2Op5Rg5TzFReJLzJML5QipWE8g@mail.gmail.com
Magnus Hagander [Wed, 11 Mar 2026 14:31:01 +0000 (15:31 +0100)]
Bump django version to 5.2
No actual changes, but update requirements and doc to point at 5.2 now
that this has been deployed.
Magnus Hagander [Wed, 11 Mar 2026 13:54:37 +0000 (14:54 +0100)]
Suppress auto replies to moderation notices
Most likely this was needed before we sent the notifications to all
moderators, but since
3ab07fa06 there is no reason to specifically
enable auto replies on moderation notices. So remove the special
handling.
Magnus Hagander [Tue, 3 Mar 2026 15:51:19 +0000 (16:51 +0100)]
Add small tool to decrypt community auth sessions
If the url is retreived from the other end (the auth_receive url), one
can paste in the querystring and get the details out, using the crypto
key from the database.
Jonathan S. Katz [Thu, 26 Feb 2026 02:10:39 +0000 (18:10 -0800)]
2026-02-26 update release
Magnus Hagander [Fri, 20 Feb 2026 21:15:41 +0000 (22:15 +0100)]
Further updates to github actions dependencies
Finally synced up with some offline testing...
Magnus Hagander [Fri, 20 Feb 2026 21:07:23 +0000 (22:07 +0100)]
sudo needed for apt-get
(Sorry for the commit spam, testing github actions..)
Magnus Hagander [Fri, 20 Feb 2026 21:06:29 +0000 (22:06 +0100)]
Let's try with installing all required debian packages first
Magnus Hagander [Fri, 20 Feb 2026 21:00:49 +0000 (22:00 +0100)]
I guess we try ubuntu-latest to actually run an action
Magnus Hagander [Fri, 20 Feb 2026 20:58:05 +0000 (21:58 +0100)]
First attempt at a github action that checks django migrations
Magnus Hagander [Fri, 20 Feb 2026 20:56:53 +0000 (21:56 +0100)]
Update python versions in preparation of trixie upgrade
Magnus Hagander [Thu, 19 Feb 2026 22:07:24 +0000 (23:07 +0100)]
Disable django timezone support
This was enabled by default in django 5.0, and since we don't use it we
have to explicitly disable it.
Jonathan S. Katz [Tue, 17 Feb 2026 15:40:47 +0000 (10:40 -0500)]
Update topbar to announce out-of-cycle release
Given the amount of time between releases, and the blast radius
of some of the regressions, provide more awareness around the
out-of-cycle release.
Christoph Berg [Fri, 13 Feb 2026 15:58:35 +0000 (16:58 +0100)]
Add Ubuntu resolute, remove plucky
Jonathan S. Katz [Thu, 12 Feb 2026 14:06:34 +0000 (09:06 -0500)]
2026-02-12 release announcement
Jonathan S. Katz [Thu, 12 Feb 2026 14:29:40 +0000 (09:29 -0500)]
Fix for email rendering preview on pgweb
fc120c16 introduced some "spec compliant" code for rendering image,
but it broke our lookup for the image in the repo. This fixes it.
Magnus Hagander [Tue, 27 Jan 2026 09:09:49 +0000 (10:09 +0100)]
Add Jacob Champion to list of security team members
Magnus Hagander [Wed, 7 Jan 2026 20:35:39 +0000 (21:35 +0100)]
Send pure plain-text mails as quoted-printable
We were already using QP for HTML emails, but due to an oversight it
wasn't done for the pure plaintext ones. Fix that as it's a lot easier
to debug that way, and it's what most MUAs do so it should lead to lower
spam scores.
Magnus Hagander [Wed, 7 Jan 2026 20:25:53 +0000 (21:25 +0100)]
Fix MIME-structure of HTML emails
To render properly in particular on Apple Mail, HTML mails with inline
attachments need the structure:
multipart/alternate
text/plain
multipart/related
text/html
image/png
In particular, the cid-linked images must be part of the same
multipart/related section as the HTML, otherwise they *also* end up at
the bottom of the email as an attachment.
To do this, separate out the idea of html attachments from other
attachments. We currently don't have any other types of attachments, but
since we might in the future, we shouldn't disable that functionality.
Diagnosed by Tobias Bussmann <t.bussmann@gmx.net>
Tested by Daniel Gustafsson <daniel@yesql.se>
Magnus Hagander [Wed, 7 Jan 2026 16:42:09 +0000 (17:42 +0100)]
Add small tools for testing email sending and parsing
These tools can be used for any app that uses the "pgweb style
mailqueue" module, including for example pgeu-system.
Magnus Hagander [Wed, 7 Jan 2026 16:35:05 +0000 (17:35 +0100)]
Add @img suffix to cid values
Turns out this is required to be spec-compliant. I don't think this was
why things broke in my tests, but it is good to be comlpiant.
Magnus Hagander [Tue, 2 Dec 2025 21:41:18 +0000 (22:41 +0100)]
Attempt to fix template for rendering logos for Outlook/O365
Seems Outlook/O365 couldn't handle our floating images, and nobody
pointed it out :) And since using tables for layouts really is a thing
still, do that instead and it seems to work now.
Christoph Berg [Mon, 5 Jan 2026 22:08:37 +0000 (23:08 +0100)]
Add missing trailing slashes
Missing slashes lead to redirects that add the slash. Add where missing
in the context menu.
Christoph Berg [Mon, 5 Jan 2026 21:53:13 +0000 (22:53 +0100)]
Say that "not submitted" means "for moderation"
The objects lists have a section "Not submitted" and the big button at
the bottom is labeled "Submit <objecttype>" which looks like that button
might submit these objects. Change the section header to "Not submitted
for moderation" to make that a bit less confusing.
I thought about changing the button label to "Submit new <objecttype>",
but then for news, the button would read "Submit new news article" which
looked a bit too weird.
Discussion: https://postgr.es/m/aUleB6I9meb9KsF7@msg.df7cb.de
Christoph Berg [Mon, 5 Jan 2026 21:50:17 +0000 (22:50 +0100)]
Include organisationtype data from postgresql.org
These are the 4 organisationtype entries currently found on
postgresql.org.