<div dir="ltr">Thank you for this Ruby,<div><br></div><div>I agree with what Lucas stated in his reply, Though I thought I would toss my two cents in to the pool as well.</div><div><br></div><div>I also feel that we should (and have been) strive (ing) to maintain compatibility. Though I feel this is more important on a release to release basis, more so then on an inter cycle basis. I feel this way because with in a cycle a new feature may be introduced that has an unforeseen impact on the current code that needs to be addressed with in that cycle. As a Operator I would refer to this a "leading edge" vs "bleeding edge". This is also one of the reasons we cut stable releases, so that folks who what to have stability in the code they run in production are not having to deal the day to day upkeep of what landed trunk (master branch) last night that broke my production environment. Trunk is almost by default not a stable playground, If we add a new shinny and then find out that it has an unforeseen impact, changing the way the new feature is implemented is not such a bad thing, as long as it is still with in the cycle it was introduced and an official release has not been cut, I am excluding RC releases as they are Release "Candidates" and finding such impacts is there "job".</div><div><br></div><div>As this is only my option, actual cash value is less then .02 cents.</div><div><br></div><div><br></div><div>Chris Krelle</div><div>NobodyCam</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 20, 2014 at 8:28 AM, Lucas Alvares Gomes <span dir="ltr"><<a href="mailto:lucasagomes@gmail.com" target="_blank">lucasagomes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Ruby,<br>
<br>
Thank you for putting this up.<br>
<br>
I'm one of the ones think we should try hard (even really hard) to<br>
maintain the compatibility on every commit. I understand that it may<br>
sound naive because I'm sure that sometimes we will break things, but<br>
that doesn't means we shouldn't try.<br>
<br>
There may be people running Ironic in a continuous deployment<br>
environment, those are the users of the project and therefor the most<br>
important part of Ironic. Doesn't matter how well written Ironic code<br>
may be if nobody is using it. If we break that user workflow and he's<br>
unhappy that's the ultimate failure.<br>
<br>
I also understand that in the project POV we want to have fast<br>
interactions and shiny new features as quick as possible and trying to<br>
be backward compatibility all the time - on every commit - might slow<br>
that down. But in the user POV I believe that he doesn't care much<br>
about all the new features, he would mostly care about the things that<br>
used to work to continue to work for him.<br>
<br>
Also the backwards approach between releases and not commits might<br>
work fine in the non-opensource world where the code is kept indoors<br>
until the software is release, but in the opensource world where the<br>
code is out to people to use it all the time it doesn't seem to work<br>
that well.<br>
<br>
That's my 2 cents.<br>
<br>
Lucas<br>
<div><div class="h5"><br>
On Thu, Nov 20, 2014 at 3:38 PM, Ruby Loo <<a href="mailto:rlooyahoo@gmail.com">rlooyahoo@gmail.com</a>> wrote:<br>
> Hi, we had an interesting discussion on IRC about whether or not we should<br>
> be maintaining backwards compatibility within a release cycle. In this<br>
> particular case, we introduced a new decorator in this kilo cycle, and were<br>
> discussing the renaming of it, and whether it needed to be backwards<br>
> compatible to not break any out-of-tree driver using master.<br>
><br>
> Some of us (ok, me or I) think it doesn't make sense to make sure that<br>
> everything we do is backwards compatible. Others disagree and think we<br>
> should, or at least strive for 'must be' backwards compatible with the<br>
> caveat that there will be cases where this isn't feasible/possible/whatever.<br>
> (I hope I captured that correctly.)<br>
><br>
> Although I can see the merit (well, sort of) of trying our best, trying<br>
> doesn't mean 'must', and if it is 'must', who decides what can be exempted<br>
> from this, and how will we communicate what is exempted, etc?<br>
><br>
> Thoughts?<br>
><br>
> --ruby<br>
><br>
</div></div>> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> <a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br></div>