Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wRdgS-002Xq9-1c for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 22:22:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wRdgQ-002FyG-1N for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 22:22:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wRdgQ-002Fy8-0F for pgsql-hackers@lists.postgresql.org; Mon, 25 May 2026 22:22:03 +0000 Received: from mail-dy1-x132f.google.com ([2607:f8b0:4864:20::132f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wRdgO-00000001Q7u-04EJ for pgsql-hackers@lists.postgresql.org; Mon, 25 May 2026 22:22:02 +0000 Received: by mail-dy1-x132f.google.com with SMTP id 5a478bee46e88-2f00a567cfaso5754175eec.0 for ; Mon, 25 May 2026 15:21:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779747717; cv=none; d=google.com; s=arc-20240605; b=epebW+Ci83jpK3757MvwhAfYGn4WGBl/sxrE2L9Xkv1r0a2mC6Tto99baIH2fTUCMv 3Cu2gJMk5lQ+nxN4MG0LFrerdYmfiN+STxo9hZYUjSVSc0nTf850sg/iSEI9JauKJlu2 /In3qFnOk6O/9vQ/qz9EupafImx119ghhVGLQmgjlfY4Jja7CR6XTYYynHT4VtMqJQak NFto2Sk81ZZtJ+IuphMOQYus3BI59aweW/XoeXpHzaPqSKdeq6oqqWn7NeEV/9oGgdVN uFAFp9QTKFw7bdMgw+x5eTdLvizMHNmbG9KHpwWTpEUfs2ppmUXt1tlFfVjg0HLBwZx9 i8qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=skCGQakurD5QxNRisti0CMZayQ9GZAovIvn/hFE+7og=; fh=MRtxGzjuSWY6eScv2mseltCIwp3YvQbH8zkegocF3Fk=; b=fgufmGG7pvrfNbxoOS56PVdJYb1Gi861NnU604W/eZH1zghbRM2nnt3yyWynszagI3 vhsezN12AepRvXQaJWaD3yI/USHWUc/WdbfV7Wx08eUbm9PybxoR5pbeSEZm2IhEldWl tGCPmdXsZfe0rBYVCVHvPXLoKQOraFcvWBTxUKTBtpHKlP4bKdZglQdeamMTPFWrvfuH i/tsbpxuWG+TWkpkQyV6cHVcurz9yPoJmJr0pophCQF1TtWUOuIoPfRAGjgfYYjuUEIo NShlqhS0fgYlDMHUgpiNSBPIeG4LBwQ/lmNy/uW52B0RZiT2pU47m+F/XDA6W7dN+gxp 9aJw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=postgres.ai; s=google; t=1779747717; x=1780352517; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=skCGQakurD5QxNRisti0CMZayQ9GZAovIvn/hFE+7og=; b=G/1NdmjsMDG0jBypQ/ZNEzEwLLmo2dVVINMSpDaSFvmtvFuqbyCplC/mT/WWjtb9oP VE+QFMqCSLC6CgW52yW41cyu6IE1C4DE05PKzUT1gjqDxzVJmuf3X4YEhnJrtuxQGX3W FDPEAs5cypncqQnu1zZnisACZwSkVHUbOit/wkwsSa7JvvC2mlVkTLANyjtHjwWcGYL/ HcNUtTRnC677rEQtZpLSrZ/c4NMAO4cZjz9rvhbJaSvJf3xGWEB2yws54OUVwni9qDuv GFTo+fbFa8mJ6zko71PopfOdupUOHTW5xgF4GmAZZ4w3gfOwLRf7eLy2z6UsGZTcWJB7 7x2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779747717; x=1780352517; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=skCGQakurD5QxNRisti0CMZayQ9GZAovIvn/hFE+7og=; b=q0+WY/aZt1W65f+/YfMSNts+cuLUdINROiGPMOWofa1ph1zgLuneMf0gD3+QB6Y7pc HRjvaLoA9BGPNsN0nQ5R+AODqSsvm+s1OhfzRs8HnqRpEf8pphc9Ni4FTYF12ujMvHlR XMwwPhn7018rYREkyLLj4KidoFGbHmAWIxfgHZAagSPiUfDQqmGtNm70kl0buXoVOQSV Xflsx5yE0PDdLBdArE4kiEUysf+11uRahLTSR/VEv+mPH3HnWFmG67OfR90eEplOHNCd vvtsuXhUP6pZNVevCA0b0mWDWxlpFnLw4beVPtbZQnOAoHpzmyNRg0jXUoQtQezWKRPF Bf7Q== X-Forwarded-Encrypted: i=1; AFNElJ9Fbnhg+SOvDBjfjMRh9T95+GY6BVAC6CEfqtbmGEat4/N4kNiF2A0H9wWwWALfOvDgwECsnoFlFl8DnzIk@lists.postgresql.org X-Gm-Message-State: AOJu0YxGHvRWJheqzAZ4CZ4KaeH7jLQGGKSzW3rR/K7/uyEcnBmS6EVR BGGvQ/dkqhP99FTWulyA3NzOBZNxU2VAN0Xk2aH4qTXyqGAZoPapjNkIMYX9KV2JSuFADtH0M+z 5QsKEz8jNMvYShlYKwNOI5er32Z8a06eKKwFAJp9low== X-Gm-Gg: Acq92OHKbJ4quK6LSZzQUgzG2QhpB4zbt1b8IwGBtTE7RTzZTviyeFVO0FMw1w3g0na nGYk27LRK28095K9ivgIUsFxfvfhUN8YuPpfunSgmq5PeGfCoNKVXrMY5kCiUd8WM1Chl11qHj7 pUM/wx6vvhiuAc4q0IJX/lSQa9aS4fANy02+xv75ZAm/dSYy3X48eeI0E2du/du99POspmUVIMi wleLF+dXfxT63XyV5Trh9se98K/GdXlFa1daZ9xpxofaZdli+5xh4Fi4Y2xA4Z4BVMye8vUM2kp 5n+aisfXKbAK5cSHuiOVsWjERH/w3miRWPDcUqkm2Q== X-Received: by 2002:a05:7300:7c10:b0:2df:498e:811b with SMTP id 5a478bee46e88-30430522ff5mr8656766eec.7.1779747717131; Mon, 25 May 2026 15:21:57 -0700 (PDT) MIME-Version: 1.0 References: <26422.1779465244@sss.pgh.pa.us> <0e41a002-ec9d-4acd-bb2c-3104c12607e3@eisentraut.org> <2293454.1779642239@sss.pgh.pa.us> In-Reply-To: <2293454.1779642239@sss.pgh.pa.us> From: Nikolay Samokhvalov Date: Mon, 25 May 2026 15:21:45 -0700 X-Gm-Features: AVHnY4K7inEbEtECNBmk9G_yzEZOCXolBV_6RT1XepanEqIW_QFsiWEJwzgMg-s Message-ID: Subject: Re: Rename Postgres 19 to Postgres 26 (year-based)? To: Tom Lane Cc: Peter Eisentraut , Isaac Morland , Kirk Wolak , pgsql-hackers Content-Type: multipart/alternative; boundary="000000000000783f020652abce6f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000783f020652abce6f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, May 24, 2026 at 10:04=E2=80=AFAM Tom Lane wrote= : > Peter Eisentraut writes: > > On 22.05.26 08:54, Tom Lane wrote: > >> I don't like either version of this proposal, because I fear it > >> puts way too much faith in our ability to adhere to a fixed release > >> calendar. What happens if "v2027" slips into 2028? Are we then > >> unable to resume the normal schedule for the following release? > > > Furthermore, some things that release toward the end of year N are > > released as version N+1, for marketing reasons. So this approach > > wouldn't even really reduce ambiguity or the need for more arguing. > > A different angle came up in the AI-focused unconference session at > PGConf.dev: somebody speculated that use of AI might accelerate our > development cycle to the point where it'd be sensible to have two > major releases per year. I'm not saying I believe that, mind you. > But it reinforces the point that tying our release numbers to years > would put undesirable constraints on our release calendar. > > regards, tom lane > Understood. Thank you both for the direct responses. The slip risk, the N+1 marketing-renumbering precedent, and the possibility that cadence may change (biannual or otherwise) -- all make sense. Year-tied version numbers don't fit. Let me propose something smaller that still addresses the underlying user problem =E2=80=94 knowing at a glance h= ow old a release is and when it goes EOL. I have another, much lighter proposal. In fact, two paths: 1) Docs. Add something like "Major version NN released YYYY, EOL Mon YYYY" explicitly on pages like: https://www.postgresql.org/docs/ https://www.postgresql.org/docs/release/ https://www.postgresql.org/docs/current/index.html Today, anyone reasoning about a Postgres version's age has to navigate to https://www.postgresql.org/support/versioning/ and read the table. Operators, support engineers, and vendors documenting compatibility do this constantly. Putting the two dates inline on the docs landing pages removes that lookup. 2) Annual-release label, alongside the version number. In release announcements, news posts, and the press kit: PostgreSQL 19 (2026) and where prose flows naturally: "PostgreSQL 19, the 2026 annual major release." This doesn't tie the version to the year; the integer is still authoritative. If slippage occurs, it only adjusts the label, and if the cadence shifts to biannual, it naturally extends to "(2026.1)" / "(2026.2)" without touching the version number. It's a parallel naming, not a replacement. Nik --000000000000783f020652abce6f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

On Sun, M= ay 24, 2026 at 10:04=E2=80=AFAM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Peter Eisentraut <peter@eisentraut.org> = writes:
> On 22.05.26 08:54, Tom Lane wrote:
>> I don't like either version of this proposal, because I fear i= t
>> puts way too much faith in our ability to adhere to a fixed releas= e
>> calendar.=C2=A0 What happens if "v2027" slips into 2028?= =C2=A0 Are we then
>> unable to resume the normal schedule for the following release?
> Furthermore, some things that release toward the end of year N are > released as version N+1, for marketing reasons.=C2=A0 So this approach=
> wouldn't even really reduce ambiguity or the need for more arguing= .

A different angle came up in the AI-focused unconference session at
PGConf.dev: somebody speculated that use of AI might accelerate our
development cycle to the point where it'd be sensible to have two
major releases per year.=C2=A0 I'm not saying I believe that, mind you.=
But it reinforces the point that tying our release numbers to years
would put undesirable constraints on our release calendar.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 regards, tom lane


= Understood. Thank you both for the direct responses.

The slip risk, = the N+1 marketing-renumbering precedent, and the possibility that cadence m= ay change (biannual or otherwise) -- all make=C2=A0sense.

Year-tied version num= bers don't fit. Let me propose something smaller that still addresses t= he underlying user problem =E2=80=94 knowing at a glance how old a release = is and when it goes EOL.

I have another, much lighter proposal.=C2=A0In fact, two= paths:

1) Docs. Add something like "Major version NN released = YYYY, EOL Mon YYYY" explicitly on pages like:

https://www.postgresql.org/docs/
https://www.postgresql.org/do= cs/release/
https://www.postgresql.org/docs/current/index.html

Today,= anyone reasoning about a Postgres version's age has to navigate to https://www.postgre= sql.org/support/versioning/ and read the table. Operators, support engi= neers, and vendors documenting compatibility do this constantly. Putting th= e two dates inline on the docs landing pages removes that lookup.

2)= Annual-release label, alongside the version number. In release announcemen= ts, news posts, and the press kit:

PostgreSQL 19 (2026)

and w= here prose flows naturally: "PostgreSQL 19, the 2026 annual major rele= ase."

This doesn't tie the version to the year; the integer= is still authoritative. If slippage occurs, it only adjusts the label, and= if the cadence shifts to biannual, it naturally extends to "(2026.1)&= quot; / "(2026.2)" without touching the version number. It's = a parallel naming, not a replacement.

<= /div>
Nik=C2=A0
--000000000000783f020652abce6f--