Hi again folks,

I've gotten some positive feedback on this change so I think we'll go ahead 
with this process pending final discussion at this week's OSWG meeting (again, 
9am PST Weds).

To you question George, I'll see if I can get a volunteer to help me document 
the process (including gerrit steps) at the OSWG meeting... anyone out there 
willing to put a little time into this (maybe half a day helping me detail a 
few steps in the process) on the behalf of all of IoTivity Dev?

Separate but related: my thought is that - as a simple starting point policy - 
any patch (or set of patches) that entails new CTT test cases would by a 
mandatory separate branch, which could be validated against CTT before merging 
into master or a release branch.  This seems like a good policy to prevent 
master from getting into a state where it fails CTT: the new CTT test cases 
would be passing on a development branch before the code was merged to master.  
Any feedback on this idea before I try to make it part of IoTivity's official 
coding guidelines?

Thanks,
Nathan

From: Nash, George
Sent: Thursday, September 6, 2018 8:54 AM
To: Heldt-Sheller, Nathan <[email protected]>; 
[email protected]
Subject: RE: 2.1.0 release: suggestion for new branching plan

Nathan,

I think this is a great idea.  My only comment is that we need to have a clear 
and easy way to request creation of a branch to work on.

What is the minimum that developers need to get a branch created in gerrit?

Do they just email a request with a list of the work they are expecting to do 
and a branch name? Or do we want a little more?

In general I feel we should be really liberal with the creation of branches. 
Since creating branches are cheap in git. If a developer is working on a task 
and they think it may require multiple commits or require sizable QA time a 
branch can be created.

George

From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]] On Behalf Of Nathan Heldt-Sheller
Sent: Wednesday, September 5, 2018 6:04 PM
To: [email protected]<mailto:[email protected]>
Subject: [dev] 2.1.0 release: suggestion for new branching plan

Hi IoTivity Devs,

In the past, we've had a relatively unstable master branch, which has caused us 
to stick to release branches perhaps longer than we'd like, to avoid battling a 
constant stream of regressions.  These long-lived branches entail more work 
cherry picking release branch changes into master, tracking status on two 
separate branches for longer, etc.

Comarch has recently finished installing a nightly regression test using the 
OCF Certification Test Tool, and will be running it against master every night 
going forward.  We'll get an email within 24 hours if an OCTT regression is 
introduced.  I'm very happy about this :)  This - along with existing Jenkins 
tests - should keep new regressions to a minimum.  This in turn means I think 
we can shorten the lifecycle for our release branches.

For the next release ("Bangkok Point Release", a.k.a. 2.1.0) I'd like to try a 
much shorter release branch plan.  We'd move all development to master until we 
basically are code complete (and passing OCTT by virtue of the nightly 
regression test).  At that point we'd create a 2.1-rel branch, create a 
2.1.0-RC0 tag, and run through QA process.  The only patches against 2.1-rel 
would be to fix bugs found in this final QA cycle (which again hopefully will 
be minimal thanks to our nightly test cycles).  As soon as the QA cycle 
finishes we'd make the 2.1.0 tag, cherry pick the 2.1-rel branch back to 
master, and resume working on master.  The goal would be to have active 
development on the 2.1-rel branch last less than a month (as compared to 
multi-month lifespan of previous release branches).

I think one effect of this is that large changes, such as a re-architecture or 
major new feature, should be developed on a separate branch rather than on 
master, so that master doesn't contain merged patches that form incomplete 
changes.  I personally think this is good development practice anyway, but it's 
not the way IoTivity master has been treated previously.

Are there any objections to this plan?  Comments or suggestions to make it 
better?  I'd like to agree on this formally at next week's OSWG weekly CC (Weds 
9am PST, see OCF Kavi website if you'd like to attend), so that we can EOL the 
1.4-rel branch and get everyone back on master asap.

Thanks,
Nathan



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#9931): 
https://lists.iotivity.org/g/iotivity-dev/message/9931
Mute This Topic: https://lists.iotivity.org/mt/25216172/21656
Group Owner: [email protected]
Unsubscribe: https://lists.iotivity.org/g/iotivity-dev/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to