<div dir="ltr">Hey,<div><br></div><div>= Preamble =</div><div><br></div><div>Some time ago we had IRC discussion with Nathan about tagging Cycles&#39;s repository once Blender gets a new release. At that time as i understood main reasoning was to make it real clear which revisions of Cycles repository are considered stable and which could cause you a troubles due to WIP features.</div><div><br></div><div>= Issues =</div><div><br></div><div>While it&#39;s all legit idea and something we should definitely have, it&#39;s a bit more tricky in implementation since the following reasons:</div><div><br></div><div>1. Code freeze periods</div><div>2. Need tag name convention</div><div><br></div><div>First issue is coming from the fact that in Blender we&#39;re doing a release branch at the RC time. There&#39;s no new features committed to that branch (only bug fixes), but non-intrusive work continues on master branch after Blender RC1 is out.</div><div><br></div><div>In Cycles we&#39;ve got a single branch, which with current situation will mean we wouldn&#39;t be able to synchronize any of the new code from Blender to Cycles during the RC period of Blender (which could be 3-4 weeks easily). That&#39;s something to be avoid in fact.</div><div><br></div><div>Second issue is more a convention. We would just need to agree on version system. I just don&#39;t feel like using Blender&#39;s versions for Cycles -- while releases can totally be synchronized, to me it makes more sense to have own versions for Cycles.</div><div><br></div><div>= Ideas =</div><div><br></div><div>Looking on all that here are couple of ideas how we can move forward.</div><div><br></div><div>== New branch: devel ==</div><div><br></div><div>The idea is simple: we move all on-going development in Cycles&#39;s standalone repository to a new branch called `devel`. Technically it&#39;ll mean we&#39;ll synchronize commits from Blender NOT to master but to devel branch.</div><div><br></div><div>Once Blender is released we&#39;ll fast-forward devel branch to master.</div><div><br></div><div>As simple as that. That would solve requirement of distinguishing stable Cycles from ongoing development one. Additionally, we&#39;ll be able to tag master branch with annotated release tags. Read about that in next ideas.</div><div><br></div><div>== Have release branches ==</div><div><br></div><div>Other idea is to follow Blender&#39;s release process and keep all development happening in Cycles standalone in the master branch and once Blender get&#39;s RC branch we create same thing in Cycles. All crucial bugfixes will be cherry-picked to that branch and when blender releases we&#39;ll tag the branch in standalone repository and delete the branch (so we&#39;ll leave with just tags).</div><div><br></div><div>== Tagging / versions ==</div><div><br></div><div>Here i propose to consider first tag 1.0, and next releases will be 1.1, 1.2 ... and so on, for until we do some major re-consideration in Cycles (going bi-dir?) which would start 2.0 version.</div><div><br></div><div>I personal opinion that&#39;d be natural for external users / developers of Cycles.</div><div><br></div><div>= Comments? +<br></div><div><br></div><div>Now, i&#39;m wondering what other both Cycles core developers and external developers who integrates Cycles in other software think of how we should process. Maybe i&#39;m all wrong, thinking too much or maybe you guys will like one of the ideas here.</div><div><br></div><div>Let&#39;s have a bit of communication/discussion here before changing the way we operate with standalone Cycles repo!</div><div><br></div><div>P.S. Sorry for the lengthy mail..</div><div><br></div><div>-- <br><div class="gmail_signature"><div><span style="color:rgb(102,102,102)">With best regards, Sergey Sharybin</span></div></div>
</div></div>