Solved [Solved] Clarification on releng

Could anyone please clarify what the RELENG branch is? I understand that the all the work is done in CURRENT. Then there is STABLE, where the ABI wont change. And then a snapshot(?) is done into a separate branch which will be RELEASE? RELEASE gets regularly binary updates, while CURRENT and STABLE updates are done via SVN. Where comes RELENG branch in? Is it the same as RELEASE?
 
Re: Clarification on releng

-CURRENT is where all the development takes place. New features, new code, new solutions, etc. At some point from -CURRENT a new -STABLE is created, i.e. 10-STABLE. The -RELEASE, i.e. 10.0-RELEASE, versions are cut from -STABLE. -RELEASE versions only receive security updates, no new features. -STABLE gets the new features when they're tried and tested on -CURRENT (MFC; Merge From Current). Think of -CURRENT as a tree, -STABLE are branches and -RELEASE are leaves.

The stable/* branches are the -STABLE versions. The releng/* branch contains the various -RELEASE versions. The various snapshot versions are, surprise, snapshots of either -CURRENT or -STABLE from a certain point in time. They're useful if you want to try -CURRENT or -STABLE without having to build from source.

Code:
-------------------------------------------------------------------------> -CURRENT
 \______ 9.0-RELEASE                  \_____ 10.0-RELEASE
  \______ 9.1-RELEASE                  \_____ 10.1-RELEASE
   \                                    \
    \___ 9-STABLE                        \__ 10-STABLE
(I really need to make a proper graphic of this.)
 
Re: Clarification on releng

It's slightly more complicated too in that I track 10-STABLE. Except that has recently changed to 10.1-PRERELEASE, and now 10.1-BETA1. I know what's happening there but I've seen that confuse people in the past as they do release engineering on the stable branch until they fork a new branch for the release candidates.
 
Re: Clarification on releng

xtaz said:
It's slightly more complicated too in that I track 10-STABLE. Except that has recently changed to 10.1-PRERELEASE, and now 10.1-BETA1.
It will keep moving to 10.1-STABLE. The existence of BETA1 means they're close to branching off, creating a releng/10.1. That will eventually be released as 10.1-RELEASE. Schedule indicates that's going to be somewhere around October/November. But the release schedule has a tendency to slip, hopefully we'll get 10.1-RELEASE before Christmas :beer
https://www.freebsd.org/releases/10.1R/schedule.html

I know what's happening there but I've seen that confuse people in the past as they do release engineering on the stable branch until they fork a new branch for the release candidates.
Yes, it's a bit confusing if you don't know how the various versions fit together.
 
Re: Clarification on releng

Thanks for the comprehensive explanation, I am still a little confused though. So 'releng x.y' is the branch where 'RELEASE x.y' will come from? Why isn't it called release branch?
 
Re: Clarification on releng

Tigoba said:
I am still a little confused tho. So releng x.y is the branch where RELEASE x.y will come from?
No, it is the RELEASE x.y.

Why isn't it called release branch?
Because back when CVS was still in use there were tags named RELENG_9_0 for 9.0-RELEASE, RELENG_9_1 for 9.1-RELEASE, etc. The -STABLE versions were RELENG_9 for 9-STABLE, RELENG_8 for 8-STABLE etc. The name simply 'stuck' because that's what everyone was used to.
 
Back
Top