Version Numbering

Started by David E. Wheelerover 15 years ago64 messageshackers
Jump to latest
#1David E. Wheeler
david@kineticode.com

Hackers,

A while ago, I asked if .0 releases could be versioned with three digits instead of two. That is, it would be "8.4.0" instead of "8.4". This is to make the format consistent with maintenance releases ("8.4.1", etc.). I thought this was generally agreed upon, but maybe not, because I just went to build the latest 9.0 beta and saw that the version number is "9.0beta4".

Would it be possible to *always* use three integers? So the next release would be "9.0.0beta5" or "9.0.0rc1"? In addition to being more consistent, it also means that PostgreSQL would be adhering to Semantic Versioning (http://semver.org/), which is a very simple format that's internally consistent. I'm planning to require semantic versioning for PGXN, and it'd be nice if the core could do the same thing (it will make it nicer for specifying dependencies on core contrib modules, for example).

Thanks,

David

#2David Fetter
david@fetter.org
In reply to: David E. Wheeler (#1)
Re: Version Numbering

On Fri, Aug 20, 2010 at 11:12:56AM -0700, David Wheeler wrote:

Hackers,

A while ago, I asked if .0 releases could be versioned with three
digits instead of two. That is, it would be "8.4.0" instead of
"8.4". This is to make the format consistent with maintenance
releases ("8.4.1", etc.). I thought this was generally agreed upon,
but maybe not, because I just went to build the latest 9.0 beta and
saw that the version number is "9.0beta4".

Would it be possible to *always* use three integers? So the next
release would be "9.0.0beta5" or "9.0.0rc1"? In addition to being
more consistent, it also means that PostgreSQL would be adhering to
Semantic Versioning (http://semver.org/), which is a very simple
format that's internally consistent. I'm planning to require
semantic versioning for PGXN, and it'd be nice if the core could do
the same thing (it will make it nicer for specifying dependencies on
core contrib modules, for example).

+1 for three-number versions...well, until we really see the light and
go to two-number versions. 8.3 and 8.4 are different enough that they
shouldn't even mildly appear the same, for example.

Cheers,
David (Oh, how silly! You actually want Frobozz 3.1.4.1.5.2.6, not 3.1.4.1.5.2.5!).
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david.fetter@gmail.com
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

#3David E. Wheeler
david@kineticode.com
In reply to: David Fetter (#2)
Re: Version Numbering

On Aug 20, 2010, at 11:34 AM, David Fetter wrote:

+1 for three-number versions...well, until we really see the light and
go to two-number versions. 8.3 and 8.4 are different enough that they
shouldn't even mildly appear the same, for example.

No idea what you mean by that, but generally it's a bad idea to switch from dotted-integer version numbers and numeric version numbers. See Perl (Quel désastre!).

Best,

David

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#1)
Re: Version Numbering

"David E. Wheeler" <david@kineticode.com> writes:

A while ago, I asked if .0 releases could be versioned with three
digits instead of two. That is, it would be "8.4.0" instead of "8.4".

We've been doing that for some time, no? A quick look at the CVS
history shows that 8.0.0 and up were tagged that way.

This is to make the format consistent with maintenance releases ("8.4.1", etc.). I thought this was generally agreed upon, but maybe not, because I just went to build the latest 9.0 beta and saw that the version number is "9.0beta4".

.0 is for releases, not betas. I see no need for an extra number in
beta versions.

regards, tom lane

#5David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#4)
Re: Version Numbering

On Aug 20, 2010, at 11:40 AM, Tom Lane wrote:

"David E. Wheeler" <david@kineticode.com> writes:

A while ago, I asked if .0 releases could be versioned with three
digits instead of two. That is, it would be "8.4.0" instead of "8.4".

We've been doing that for some time, no? A quick look at the CVS
history shows that 8.0.0 and up were tagged that way.

Ah, good for the final release.

This is to make the format consistent with maintenance releases ("8.4.1", etc.). I thought this was generally agreed upon, but maybe not, because I just went to build the latest 9.0 beta and saw that the version number is "9.0beta4".

.0 is for releases, not betas. I see no need for an extra number in
beta versions.

Again, it means the format would be consistent. Always three integers. Nice thing about Semantic Versions is that if you append any ASCII string to the third integer, it automatically means "less than that integer".

Best,

David

#6David Fetter
david@fetter.org
In reply to: David E. Wheeler (#3)
Re: Version Numbering

On Fri, Aug 20, 2010 at 11:36:55AM -0700, David Wheeler wrote:

On Aug 20, 2010, at 11:34 AM, David Fetter wrote:

+1 for three-number versions...well, until we really see the light
and go to two-number versions. 8.3 and 8.4 are different enough
that they shouldn't even mildly appear the same, for example.

No idea what you mean by that, but generally it's a bad idea to
switch from dotted-integer version numbers and numeric version
numbers. See Perl (Quel d�sastre!).

I'm thinking that after 9.0, the first release of the next major
version should be 10.0, and the one after that, 11.0, etc., etc.

The current system give people the completely false impression that
7.0 and 7.4 are somehow similar.

Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david.fetter@gmail.com
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

#7David E. Wheeler
david@kineticode.com
In reply to: David Fetter (#6)
Re: Version Numbering

On Aug 20, 2010, at 11:47 AM, David Fetter wrote:

No idea what you mean by that, but generally it's a bad idea to
switch from dotted-integer version numbers and numeric version
numbers. See Perl (Quel désastre!).

I'm thinking that after 9.0, the first release of the next major
version should be 10.0, and the one after that, 11.0, etc., etc.

Oh. Good luck with that. I disagree, FWIW.

The current system give people the completely false impression that
7.0 and 7.4 are somehow similar.

On what planet?

Best,

David

#8Bruce Momjian
bruce@momjian.us
In reply to: David Fetter (#2)
Re: Version Numbering

On Fri, Aug 20, 2010 at 7:34 PM, David Fetter <david@fetter.org> wrote:

+1 for three-number versions...well, until we really see the light and
go to two-number versions.  8.3 and 8.4 are different enough that they
shouldn't even mildly appear the same, for example.

You realize if we did that 9.0 would be version 18?

David (Oh, how silly!  You actually want Frobozz 3.1.4.1.5.2.6, not 3.1.4.1.5.2.5!).

So eventually you end up with the same problem. Oh, you wanted version
117 not 116!

--
greg

#9Bruce Momjian
bruce@momjian.us
In reply to: David E. Wheeler (#5)
Re: Version Numbering

On Fri, Aug 20, 2010 at 7:42 PM, David E. Wheeler <david@kineticode.com> wrote:

Again, it means the format would be consistent. Always three integers. Nice thing about Semantic Versions is that if you append any ASCII string to the third integer, it automatically means "less than that integer".

So I count three integers in both 9.0rc1 and 9.0beta4

--
greg

#10David E. Wheeler
david@kineticode.com
In reply to: Bruce Momjian (#9)
Re: Version Numbering

On Aug 20, 2010, at 12:02 PM, Greg Stark wrote:

Again, it means the format would be consistent. Always three integers. Nice thing about Semantic Versions is that if you append any ASCII string to the third integer, it automatically means "less than that integer".

So I count three integers in both 9.0rc1 and 9.0beta4

No, I mean 9.0.0beta4. If we were to adopt the Semantic Versioning spec, one would *always* use X.Y.Z, with optional ASCII characters appended to Z to add meaning (including "less than unadorned Z).

Best,

David

#11Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#10)
Re: Version Numbering

"David E. Wheeler" <david@kineticode.com> writes:

On Aug 20, 2010, at 12:02 PM, Greg Stark wrote:

So I count three integers in both 9.0rc1 and 9.0beta4

No, I mean 9.0.0beta4. If we were to adopt the Semantic Versioning spec, one would *always* use X.Y.Z, with optional ASCII characters appended to Z to add meaning (including "less than unadorned Z).

Well, I for one will fiercely resist adopting any such standard, because
it's directly opposite to the way that RPM will sort such version numbers.
Apparently whoever wrote "Semantic Versioning" didn't bother to inquire
into existing practice.

regards, tom lane

#12David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#11)
Re: Version Numbering

On Aug 20, 2010, at 12:15 PM, Tom Lane wrote:

No, I mean 9.0.0beta4. If we were to adopt the Semantic Versioning spec, one would *always* use X.Y.Z, with optional ASCII characters appended to Z to add meaning (including "less than unadorned Z).

Well, I for one will fiercely resist adopting any such standard, because
it's directly opposite to the way that RPM will sort such version numbers.

Which is how?

Apparently whoever wrote "Semantic Versioning" didn't bother to inquire
into existing practice.

Tom Preston-Warner of GitHub fame.

Best,

David

#13Devrim GÜNDÜZ
devrim@gunduz.org
In reply to: Tom Lane (#4)
Re: Version Numbering

+1 for Tom's post.

--
Devrim GÜNDÜZ
PostgreSQL DBA @ Akinon/Markafoni, Red Hat Certified Engineer
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org Twitter: http://twitter.com/devrimgunduz

20.Ağu.2010 tarihinde 21:40 saatinde, Tom Lane <tgl@sss.pgh.pa.us>
şunları yazdı:

Show quoted text

"David E. Wheeler" <david@kineticode.com> writes:

A while ago, I asked if .0 releases could be versioned with three
digits instead of two. That is, it would be "8.4.0" instead of "8.4".

We've been doing that for some time, no? A quick look at the CVS
history shows that 8.0.0 and up were tagged that way.

This is to make the format consistent with maintenance releases
("8.4.1", etc.). I thought this was generally agreed upon, but
maybe not, because I just went to build the latest 9.0 beta and saw
that the version number is "9.0beta4".

.0 is for releases, not betas. I see no need for an extra number in
beta versions.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#14Devrim GÜNDÜZ
devrim@gunduz.org
In reply to: David Fetter (#6)
Re: Version Numbering

20.Ağu.2010 tarihinde 21:47 saatinde, David Fetter <david@fetter.org>
şunları yazdı:

The current system give people the completely false impression that
7.0 and 7.4 are somehow similar.

Well, I do find PostgreSQL versioning policy very good, which is
pretty much similar to Linux. For me, 7.x are similar. Remember why we
jumped from 7.5 to 8.0 or from 8.5 to 9.0.

Cheers,
--
Devrim GÜNDÜZ
PostgreSQL DBA @ Akinon/Markafoni, Red Hat Certified Engineer
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org Twitter: http://twitter.com/devrimgunduz

#15David E. Wheeler
david@kineticode.com
In reply to: Devrim GÜNDÜZ (#13)
Re: Version Numbering

On Aug 20, 2010, at 12:21 PM, Devrim GÜNDÜZ wrote:

+1 for Tom's post.

20.Ağu.2010 tarihinde 21:40 saatinde, Tom Lane <tgl@sss.pgh.pa.us> şunları yazdı:

.0 is for releases, not betas. I see no need for an extra number in
beta versions.

Yes, well, it's still implicit, isn't it?

David

#16Stephen Frost
sfrost@snowman.net
In reply to: David E. Wheeler (#15)
Re: Version Numbering

* David E. Wheeler (david@kineticode.com) wrote:

On Aug 20, 2010, at 12:21 PM, Devrim GÜNDÜZ wrote:

+1 for Tom's post.

20.Ağu.2010 tarihinde 21:40 saatinde, Tom Lane <tgl@sss.pgh.pa.us> şunları yazdı:

.0 is for releases, not betas. I see no need for an extra number in
beta versions.

Yes, well, it's still implicit, isn't it?

It's still useless garbage.. Sorry, I'm w/ Tom on this one.

THanks,

Stephen

#17Kevin Grittner
Kevin.Grittner@wicourts.gov
In reply to: David E. Wheeler (#15)
Re: Version Numbering

"David E. Wheeler" <david@kineticode.com> wrote:

.0 is for releases, not betas. I see no need for an extra
number in beta versions.

Yes, well, it's still implicit, isn't it?

Not the way I read it. If we had a development cycle which resulted
in 8.4.5beta4, then you would have a point. We don't.

Now, if you wanted to argue that it would be better to use 9.0.beta4
than 9.0beta4, that might be defensible. I think I like that
better; but I'm not inclined to think the difference is worth the
pain of changing an established convention.

-Kevin

#18Josh Berkus
josh@agliodbs.com
In reply to: David E. Wheeler (#15)
Re: Version Numbering

Yes, well, it's still implicit, isn't it?

But the last .0 in 9.0.0 is the patch level, effectively. This makes
that .0 inappropriate for betas; the beta number is the patch level,
i.e. 9.0.beta4. It doesn't make any sense to have a 9.0.0beta4, since
we're never going to have a 9.0.2beta4.

The betas are pre-.0. Maybe we should have 9.0.(-3) instead. Or 8.9.97?
;-)

--
-- Josh Berkus
PostgreSQL Experts Inc.
http://www.pgexperts.com

#19Devrim GÜNDÜZ
devrim@gunduz.org
In reply to: Josh Berkus (#18)
Re: Version Numbering

20.Ağu.2010 tarihinde 23:03 saatinde, Josh Berkus <josh@agliodbs.com>
şunları yazdı:

The betas are pre-.0. Maybe we should have 9.0.(-3) instead. Or
8.9.97?
;-)

This is pretty much what Fedora does actually :-)

--
Devrim GÜNDÜZ
PostgreSQL DBA @ Akinon/Markafoni, Red Hat Certified Engineer
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
http://www.gunduz.org Twitter: http://twitter.com/devrimgunduz

#20David Fetter
david@fetter.org
In reply to: Bruce Momjian (#8)
Re: Version Numbering

On Fri, Aug 20, 2010 at 07:59:55PM +0100, Greg Stark wrote:

On Fri, Aug 20, 2010 at 7:34 PM, David Fetter <david@fetter.org> wrote:

+1 for three-number versions...well, until we really see the light
and go to two-number versions. �8.3 and 8.4 are different enough
that they shouldn't even mildly appear the same, for example.

You realize if we did that 9.0 would be version 18?

Yes. And?

David (Oh, how silly! �You actually want Frobozz 3.1.4.1.5.2.6,
not 3.1.4.1.5.2.5!).

So eventually you end up with the same problem. Oh, you wanted
version 117 not 116!

Assuming wild optimism, namely that we release a major version each
year on the exact same date, that will become a problem *long* after
no one in this discussion is still involved with the project. I'm OK
with deferring this to future generations.

Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david.fetter@gmail.com
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics

Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate

#21David Fetter
david@fetter.org
In reply to: David E. Wheeler (#7)
#22Tom Lane
tgl@sss.pgh.pa.us
In reply to: David E. Wheeler (#12)
#23Greg Sabino Mullane
greg@turnstep.com
In reply to: David E. Wheeler (#3)
#24Aidan Van Dyk
aidan@highrise.ca
In reply to: Tom Lane (#22)
#25Joshua D. Drake
jd@commandprompt.com
In reply to: Greg Sabino Mullane (#23)
#26David E. Wheeler
david@kineticode.com
In reply to: Tom Lane (#22)
#27Jaime Casanova
jcasanov@systemguards.com.ec
In reply to: David E. Wheeler (#7)
#28David Fetter
david@fetter.org
In reply to: Jaime Casanova (#27)
#29Bruce Momjian
bruce@momjian.us
In reply to: Jaime Casanova (#27)
#30Jaime Casanova
jcasanov@systemguards.com.ec
In reply to: Bruce Momjian (#29)
#31Bruce Momjian
bruce@momjian.us
In reply to: Jaime Casanova (#30)
#32Robert Haas
robertmhaas@gmail.com
In reply to: Jaime Casanova (#30)
#33Thom Brown
thom@linux.com
In reply to: Robert Haas (#32)
#34Joshua D. Drake
jd@commandprompt.com
In reply to: Robert Haas (#32)
#35Josh Berkus
josh@agliodbs.com
In reply to: Joshua D. Drake (#34)
#36Joshua D. Drake
jd@commandprompt.com
In reply to: Josh Berkus (#35)
#37Greg Sabino Mullane
greg@turnstep.com
In reply to: Josh Berkus (#35)
#38Greg Sabino Mullane
greg@turnstep.com
In reply to: Joshua D. Drake (#25)
#39Greg Sabino Mullane
greg@turnstep.com
In reply to: Jaime Casanova (#27)
#40Joshua D. Drake
jd@commandprompt.com
In reply to: Greg Sabino Mullane (#38)
#41Joshua D. Drake
jd@commandprompt.com
In reply to: Greg Sabino Mullane (#39)
#42David E. Wheeler
david@kineticode.com
In reply to: Greg Sabino Mullane (#37)
#43Robert Haas
robertmhaas@gmail.com
In reply to: David E. Wheeler (#1)
#44David E. Wheeler
david@kineticode.com
In reply to: Robert Haas (#43)
#45Robert Haas
robertmhaas@gmail.com
In reply to: Joshua D. Drake (#40)
#46Sergio A. Kessler
sergiokessler@gmail.com
In reply to: Robert Haas (#45)
#47Greg Sabino Mullane
greg@turnstep.com
In reply to: Robert Haas (#45)
#48Stefan Kaltenbrunner
stefan@kaltenbrunner.cc
In reply to: David E. Wheeler (#10)
#49David E. Wheeler
david@kineticode.com
In reply to: Stefan Kaltenbrunner (#48)
#50Bruce Momjian
bruce@momjian.us
In reply to: Sergio A. Kessler (#46)
#51Joshua D. Drake
jd@commandprompt.com
In reply to: Bruce Momjian (#50)
#52Sergio A. Kessler
sergiokessler@gmail.com
In reply to: Bruce Momjian (#50)
#53Tom Lane
tgl@sss.pgh.pa.us
In reply to: Joshua D. Drake (#51)
#54Bruce Momjian
bruce@momjian.us
In reply to: Joshua D. Drake (#51)
#55Joshua D. Drake
jd@commandprompt.com
In reply to: Tom Lane (#53)
#56David Fetter
david@fetter.org
In reply to: Greg Sabino Mullane (#47)
#57Bruce Momjian
bruce@momjian.us
In reply to: Joshua D. Drake (#51)
#58Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#54)
#59Joshua D. Drake
jd@commandprompt.com
In reply to: Bruce Momjian (#54)
#60Joshua D. Drake
jd@commandprompt.com
In reply to: Bruce Momjian (#58)
#61Bruce Momjian
bruce@momjian.us
In reply to: Joshua D. Drake (#59)
In reply to: Bruce Momjian (#61)
#63Wolfgang Wilhelm
wolfgang20121964@yahoo.de
In reply to: Bruce Momjian (#61)
#64Markus Wanner
markus@bluegap.ch
In reply to: Peter Geoghegan (#62)