I've been on sabbatical and missed the discussion about versioning. I browsed 
through the thread on the mailing list archive, but forgive me if I missed 
anything and mention something that's already been suggested. I think the 
decision to move to a more regular release schedule and simplify source control 
is great. However, I don't think the version numbers should be directly tied to 
the release schedule.

Our organization has adopted Semantic Versioning (www.semver.org). I prefer it 
because your code's version numbers are based on the code, itself, rather than 
an arbitrary schedule; this enables better dependency management. Since major 
versions increment for backwards-incompatible changes and minor version 
increments denote added backwards-compatible features, it allows other projects 
to have 100% reliable dependencies: imagine that "feature X" is added to 
rsyslog, making the version 8.7.0. Due to Semantic Versioning, I know that 
version 9.0.0 will introduce a backwards incompatible change. If I write code 
that uses "feature X", I can safely make it depend on rsyslog >=8.7 and <9.

Our developers work on feature branches, branched from master. When they think 
it's ready, they notify QA. On a two week cycle, QA selects a set of feature 
branches to target for inclusion in master. They test the features 
individually, then merge them to a temporary branch and run tests to verify 
that the branches didn't have any conflicting changes. If they discover bugs in 
a certain feature that are too complex to be fixed within the release cycle, it 
will be sent back to the developer and pushed back to a later release. Tagged 
commits on the master branch get automatically built and uploaded to our 
package servers. The distinction between development, beta, and production 
releases is handled outside of version control: separate package repositories 
are used to distribute software to the development, beta, and production fleets 
of machines. If a hotfix needs to be made for a production release and new 
development versions have been released, then we branch off of the produ
 ction releases tagged commit, fix the problem in the branch, and tag the 
branch to release it.

> On Dec 1, 2014, at 1:55 PM, David Lang <[email protected]> wrote:
> 
> On Mon, 1 Dec 2014, Rainer Gerhards wrote:
> 
>> Hi folks,
>> 
>> with the upcoming v8.6.0 release (tomorrow), I thought it would be usefully
>> to explain the new scheme and kind of summarize our ML discussion. The
>> preliminary result is here:
>> 
>> http://www.slideshare.net/rainergerhards1/rsyslog-version-naming-v860
>> 
>> Feedback is appreciated. I plan to mention this tomorrow in the release
>> announcements.
> 
> Looks good, it may be worth noting other projects that work this way (off the 
> top of my head, linux kernel, firefox, chrome come to mind) as a footnote or 
> something.
> 
> David Lang
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com/professional-services/
> What's up with rsyslog? Follow https://twitter.com/rgerhards
> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
> sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T 
> LIKE THAT.

_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to