Re: First draft of PG 19 release notes

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: Jacob Champion <jacob.champion@enterprisedb.com>
Cc: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL-development <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-15T19:27:06Z
Lists: pgsql-hackers
On Wed, Apr 15, 2026 at 10:21:34AM -0700, Jacob Champion wrote:
> On Wed, Apr 15, 2026 at 9:57 AM Bruce Momjian <bruce@momjian.us> wrote:
> > I have used your text above.  FYI, the commit message only has this for
> > author:
> >
> >         Co-authored-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
> 
> The pattern of "a missing Author means the committer is the primary
> author" was discussed at [1]; you asked if Co-authored-by was used
> that way, and the answer was "yes". I use it, too.

Well, I am guessing you didn't read this thread fully:

	https://www.postgresql.org/message-id/flat/adElLtegJxi6Yecv%40momjian.us

which opened with the question:

	In the PG 19 commits, I am seeing several commits with Author
	and Co-authored-by tags.  FYI, I think we agreed that only the
	Author names are mentioned as the authors in the release notes.

and I was told that authors and "Co-authored-by" should be listed;  they
are effectively the same, except that github recognizes
"Co-authored-by".

I _thought_ the plan from January 2025 until March 2026 was:

	https://wiki.postgresql.org/wiki/Commit_Message_Guidance
	Author:
	Co-authored-by:
	    Used to indicate the patch authors. "Co-authored-by:" is used by
	    committers when they want to give full credit to the named individuals,
	    but also indicate that they made significant changes.

This was specifically for "Co-authored-by:" == committer, but the text
was not clear enough.  However, that doesn't match your usage where a
missing "Author" is considered to be the committer.

At [1], https://postgr.es/m/adO73c_EJKi05smk, I said: 

	Wow, I never thought that was a valid pattern, but I see a few PG 19
	commit messages using that, e.g.:
	
	
		Author: Peter Eisentraut <peter(at)eisentraut(dot)org>
		2025-08-12 [5f19d13df] libpq: Set LDAP protocol version 3
		
		    libpq: Set LDAP protocol version 3
		
		    Some LDAP servers reject the default version 2 protocol.  So set
		    version 3 before starting the connection.  This matches how the
		    backend LDAP code has worked all along.
		
		    Co-authored-by: Andrew Jackson <andrewjackson947(at)gmail(dot)com>
		    Reviewed-by: Pavel Seleznev <pavel(dot)seleznev(at)gmail(dot)com>
		    Discussion: https://www.postgresql.org/message-id/flat/CAKK5BkHixcivSCA9pfd_eUp7wkLRhvQ6OtGLAYrWC%3Dk7E76LDQ%40mail.gmail.com
	
	
	Is that what people are using?  A missing Author, and co-authors means
	the committer is the author?  Right?  Shouldn't we document this?  That
	does give a unique use for Co-authored-by.

However, later emails said:

	https://www.postgresql.org/message-id/CA%2BTgmob_tz0%2BT1CcyTFwgQVThsoezY2fKib%3Dr%2BukAvVBXwM1gg%40mail.gmail.com
	This whole discussion is crazy to me. Every Author and Co-Author
	should be listed in the release notes. If there is no author or
	co-author named in the commit message, then the committer should be
	listed as the sole author; otherwise, the exact list of authors and
	co-authors that the committer chose to include in the commit message
	should be credited.

and there are more emails saying that, so that is the rule I used, and
documented on the wiki is:

	https://wiki.postgresql.org/wiki/Commit_Message_Guidance
	Used to indicate the patch authors. If no "Author" or
	"Co-authored-by" is listed, the committer is assumed to be
	the author.

What I also said in the thread was:

	What I don't want to do is to re-litigate this again, and usually
	if we ignore what people said in the past, they will show up at
	some later time to try to undo what we are doing now.

I created the PG 19 release notes with Author == "Co-authored-by:", so
if committers have not done that for PG 19, I need them to either inform
me of the rules they used, supply a release note patch, or change the
release notes themselves.  And hopefully use agreed-upon rules in the
future, whatever we decide those are.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Do not let urgent matters crowd out time for investment in the future.



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. doc PG 19 relnotes: remove VALIDATE CONSTRAINT lock item

  2. Fix ALTER DOMAIN VALIDATE CONSTRAINT locking

  3. Revert "Enable fast default for domains with non-volatile constraints"

  4. doc PG 19 relnotes: improve awkward or confusing wording

  5. doc PG 19 relnotes: more fixes

  6. doc PG 19 relnotes: various corrections

  7. doc PG 19 relnotes: adjust item to mention pg_replication_slots

  8. doc PG 19 relnotes: remove "Add fake LSN support to hash index"

  9. doc PG 19 relnotes: add two optimizer hooks

  10. doc PG 19 relnotes: remove "Optionally" for CPU optimizations

  11. doc PG 19 relnotes: adjustments/removal of items

  12. doc PG 19 relnotes: add UTF-8 case folding performance item

  13. doc PG 19 relnotes: correct two items

  14. doc PG 19 relnotes: add missing commits and details

  15. doc PG 19 relnotes: fix typo, "date" -> "data"

  16. doc PG 19 relnotes: add author and move items

  17. doc PG 19 relnotes: update author

  18. doc PG 19 relnotes: add free space map all-visible item

  19. doc PG 19 relnotes: remove "Lakshmi N" as author of checksums

  20. doc PG 19 relnotes: fix "now targets"

  21. doc PG 19 relnotes: adjust ShmemRequestStruct item

  22. Improve various new-to-v19 appendStringInfo calls

  23. doc: Fix data_checksums data type

  24. Fix WITHOUT OVERLAPS' interaction with domains.

  25. Online enabling and disabling of data checksums

  26. Doc: split functions-posix-regexp section into multiple subsections.

  27. make immutability tests in to_json and to_jsonb complete

  28. Optimize tuple deformation

  29. pgstattuple: Optimize pgstattuple_approx() with streaming read

  30. Use fake LSNs to improve nbtree dropPin behavior.

  31. Use streaming read for VACUUM cleanup of GIN

  32. Clean up ICU includes.

  33. ICU: use UTF8-optimized case conversion API

  34. Add the MODE option to the WAIT FOR LSN command

  35. Speedup tuple deformation with additional function inlining