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

Dag-Erling Smørgrav <[email protected]>
Newsgroups gmane.os.freebsd.devel.hackers
Message-ID <[email protected]>
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.

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.  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.

¹ 4.6.1 was tagged, but not officially released.

DES
-- 
Dag-Erling Smørgrav - [email protected]
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.