Re: [RFC] Introduce semantic versioning 2.0.0 to FreeBSD releases

Minsoo Choo <[email protected]>
Newsgroups gmane.os.freebsd.devel.hackers
Message-ID <NSqg-J4PiirPT2NiOT0a4fj3Fv3mUIJvcM8WS1LA-JefwAZPoq659U1dH85ehhmletMuB_3rFHRRBeB5od07g7P-qXgZ04lRSX20GL4NccA=@proton.me>
On Wednesday, February 25th, 2026 at 8:13 AM, Dag-Erling Smørgrav <[email protected]> wrote:

> Minsoo Choo <[email protected]> writes:
> > FreeBSD's git repository reserves semantic versioning style patch
> > version (aka third version) in git tags but it has been unused for a
> > long time (e.g. 15.0.0-p1).  This results in having two patch version
> > placeholders where one is unused and might​​ cause confusions for some
> > newcomers.  The last git tag that contains patch version in semantic
> > versioning format is 5.2.1.  After that, tags for both patch version
> > placeholders are missing until 13.4.0-p2 and 14.1.0-p6 (re@, why are
> > we missing these tags?  Can we recover them?), and we cannot track
> > what happened in the past.
> 
> We used to have third-level versions back in the 1.x and 2.x days; for
> instance, the first FreeBSD version I ever installed was 2.0.5, and I've
> used FreeBSD continuously since 2.2.1 or 2.2.2 (I forget which of these
> two made the switch from /etc/sysconfig to /etc/rc.conf).
> 
> Since 3.0, we've only had a third-level version four times (3.5.1,
> 4.1.1, 4.6.2¹, 5.2.1), all because a serious issue was discovered in a
> release before the CDs went to press.  Since the project is no longer
> associated with a business that publishes releases on physical media,
> this is unlikely to ever happen again.
> 
> Furthermore, since the introduction of freebsd-update in 2006, our
> release and update processes have, to a large degree, been constrained
> by the capabilities of the tools used by re@ and so@.
> 
> All in all, I think it's safe to assume that patch levels have
> completely replaced the third-level version number.
> 
> > Thus, I propose using semantic versioning 2.0.0 [1] starting from
> > FreeBSD 16.  Major and minor versions will have the same roles as
> > before.  For patch versions, I propose including bug fixes as well as
> > security patches.  For bugs, I mean existing things that do not
> > produce expected behaviour that has "Fixes: " metadata in git commit
> > message.
> 
> What you are proposing is effectively what we've already been doing for
> the last 20 years.  Instead of a third-level version number we have a
> patch level, which is incremented for every batch of SAs and ENs we
> release.  So I'm not sure what you're asking for.

You're right. I was confused here.
 
> The only issue I see with our current practice is that we still tag
> release/x.y.0-pz instead of either release/x.y-pz or release/x.y.z.  If
> that's what bothers you, we can trivially create retroactive aliases for
> those tags.

We don't need to create alias for previous releases although missing tags for previous patch releases should be created as I mentioned above. What I'm suggesting here is sticking with x.y.z and abandoning the -pX versioning starting from FreeBSD 16. Another benefit I find is that third-party websites and applications can manage FreeBSD versions through widely supported packages like semver [1] without creating custom version parser.

> But I would strongly advise you to check the NIST NVD and
> make sure that whatever change you propose will not result in a
> discontinuity in CPEs.

Thanks for the info. I'll check that.

> 
> ¹ 4.6.1 was tagged, but not officially released.
> 
> DES
> --
> Dag-Erling Smørgrav - [email protected]
> 

[1] https://www.npmjs.com/package/semver

--
Minsoo Choo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.