Re: [DISCUSS] 4.6 release management
Hi guys, I hope that’s not too late to react on this one. Having 6 RMs seems a bit too much for me. For PRs containing a few lines of code, just bug fixes or changing maven files, python, sh, etc it might be simple and quick. However, if we get a PR with +30 commits and 10k lines added, it gets really difficult to get the community to test/review the PR. So, for 2 people to go over it is already taking too long to get the code imagine, now imagine 4 or 6. Rohit has done an excellent job in looking into the PRs, commenting on them and some times testing as well. But there are things that cannot simply get him, or perhaps other guys, to test properly a PR; having time and environment as the main reasons. I would say that in case we have a PR that contains: 1. Documentation on the Apache CS Wiki 2. Unit Tests (a lot of them, minimum 70% for the code changed) 3. Marvin Test Results report - test_routers, test_vpc_routers, test_vm_life_cycle, test_account, at least. Should be given priority and get less RMs involved in order to speed up our development/release processes. Unless, of course, the people would have time to look into the PR immediately. What do you think? Cheers, Wilder On 11 May 2015, at 15:54, Rohit Yadav rohit.ya...@shapeblue.commailto:rohit.ya...@shapeblue.com wrote: On 11-May-2015, at 2:51 pm, Daan Hoogland daan.hoogl...@gmail.commailto:daan.hoogl...@gmail.com wrote: I'm fine with that: rm must have a reviewer on merges? Seem heavy for trivial changes but alright On Mon, 11 May 2015 14:16 Sebastien Goasguen run...@gmail.commailto:run...@gmail.com wrote: On May 11, 2015, at 2:00 PM, Daan Hoogland daan.hoogl...@gmail.commailto:daan.hoogl...@gmail.com wrote: +1 how about my proposal to have 6 RM and demand that at least 2 agree on each PR? +0.5 we can say that we need two pairs of eyes to ok the PR for merge. no need to formally have 6 RMs ? so 1 RM (you or me) + another pair of eyes would work ? I’ve been doing PR reviews as a habit, happy to chip-in as a co-pilot. Op ma 11 mei 2015 om 09:52 schreef sebgoa run...@gmail.commailto:run...@gmail.com: On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.commailto:daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! I can RM as well. How about we lock down master on wednesday ? From that point forward we only take PR into master -either you or me- all other direct commits to master will be reverted -sebastien Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.commailto:run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.commailto:daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.commailto:run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.orgmailto:pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.commailto:run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM,
Re: [DISCUSS] 4.6 release management
On Wed, May 13, 2015 at 8:36 AM, Wilder Rodrigues wrodrig...@schubergphilis.com wrote: Hi guys, I hope that’s not too late to react on this one. Having 6 RMs seems a bit too much for me. For PRs containing a few lines of code, just bug fixes or changing maven files, python, sh, etc it might be simple and quick. However, if we get a PR with +30 commits and 10k lines added, it gets really difficult to get the community to test/review the PR. So, for 2 people to go over it is already taking too long to get the code imagine, now imagine 4 or 6. Rohit has done an excellent job in looking into the PRs, commenting on them and some times testing as well. But there are things that cannot simply get him, or perhaps other guys, to test properly a PR; having time and environment as the main reasons. I would say that in case we have a PR that contains: 1. Documentation on the Apache CS Wiki 2. Unit Tests (a lot of them, minimum 70% for the code changed) 3. Marvin Test Results report - test_routers, test_vpc_routers, test_vm_life_cycle, test_account, at least. Should be given priority and get less RMs involved in order to speed up our development/release processes. Unless, of course, the people would have time to look into the PR immediately. What do you think? Cheers, Wilder I like this. We have to live by our tests. So enforcing good coverage, and gating on good results makes sense to me. No human can reliably eyeball all of this. --David
Re: [DISCUSS] 4.6 release management
On May 13, 2015, at 6:07 PM, David Nalley da...@gnsa.us wrote: On Wed, May 13, 2015 at 8:36 AM, Wilder Rodrigues wrodrig...@schubergphilis.com wrote: Hi guys, I hope that’s not too late to react on this one. Having 6 RMs seems a bit too much for me. For PRs containing a few lines of code, just bug fixes or changing maven files, python, sh, etc it might be simple and quick. However, if we get a PR with +30 commits and 10k lines added, it gets really difficult to get the community to test/review the PR. So, for 2 people to go over it is already taking too long to get the code imagine, now imagine 4 or 6. Rohit has done an excellent job in looking into the PRs, commenting on them and some times testing as well. But there are things that cannot simply get him, or perhaps other guys, to test properly a PR; having time and environment as the main reasons. I would say that in case we have a PR that contains: 1. Documentation on the Apache CS Wiki 2. Unit Tests (a lot of them, minimum 70% for the code changed) 3. Marvin Test Results report - test_routers, test_vpc_routers, test_vm_life_cycle, test_account, at least. Should be given priority and get less RMs involved in order to speed up our development/release processes. Unless, of course, the people would have time to look into the PR immediately. What do you think? Cheers, Wilder I like this. We have to live by our tests. So enforcing good coverage, and gating on good results makes sense to me. No human can reliably eyeball all of this. --David I don't think we are saying anything different to this. Any PR should pass the Travis tests (…and there should be more tests). Review should not allow anything that does not have unit test either. For new features, they should come with documentation patches as well. bottom line, I don't think we disagree. Or maybe I missing something. -sebastien
Re: [DISCUSS] 4.6 release management
I never intended for all 6 RM to be involved in every commit. Just to have 6 in order to spread the load. I just want at least two of them to verify each merge. Op wo 13 mei 2015 om 18:32 schreef sebgoa run...@gmail.com: On May 13, 2015, at 6:07 PM, David Nalley da...@gnsa.us wrote: On Wed, May 13, 2015 at 8:36 AM, Wilder Rodrigues wrodrig...@schubergphilis.com wrote: Hi guys, I hope that’s not too late to react on this one. Having 6 RMs seems a bit too much for me. For PRs containing a few lines of code, just bug fixes or changing maven files, python, sh, etc it might be simple and quick. However, if we get a PR with +30 commits and 10k lines added, it gets really difficult to get the community to test/review the PR. So, for 2 people to go over it is already taking too long to get the code imagine, now imagine 4 or 6. Rohit has done an excellent job in looking into the PRs, commenting on them and some times testing as well. But there are things that cannot simply get him, or perhaps other guys, to test properly a PR; having time and environment as the main reasons. I would say that in case we have a PR that contains: 1. Documentation on the Apache CS Wiki 2. Unit Tests (a lot of them, minimum 70% for the code changed) 3. Marvin Test Results report - test_routers, test_vpc_routers, test_vm_life_cycle, test_account, at least. Should be given priority and get less RMs involved in order to speed up our development/release processes. Unless, of course, the people would have time to look into the PR immediately. What do you think? Cheers, Wilder I like this. We have to live by our tests. So enforcing good coverage, and gating on good results makes sense to me. No human can reliably eyeball all of this. --David I don't think we are saying anything different to this. Any PR should pass the Travis tests (…and there should be more tests). Review should not allow anything that does not have unit test either. For new features, they should come with documentation patches as well. bottom line, I don't think we disagree. Or maybe I missing something. -sebastien
Re: [DISCUSS] 4.6 release management
On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! I can RM as well. How about we lock down master on wednesday ? From that point forward we only take PR into master -either you or me- all other direct commits to master will be reverted -sebastien Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some
Re: [DISCUSS] 4.6 release management
I'm fine with that: rm must have a reviewer on merges? Seem heavy for trivial changes but alright On Mon, 11 May 2015 14:16 Sebastien Goasguen run...@gmail.com wrote: On May 11, 2015, at 2:00 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: +1 how about my proposal to have 6 RM and demand that at least 2 agree on each PR? +0.5 we can say that we need two pairs of eyes to ok the PR for merge. no need to formally have 6 RMs ? so 1 RM (you or me) + another pair of eyes would work ? Op ma 11 mei 2015 om 09:52 schreef sebgoa run...@gmail.com: On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! I can RM as well. How about we lock down master on wednesday ? From that point forward we only take PR into master -either you or me- all other direct commits to master will be reverted -sebastien Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus.
Re: [DISCUSS] 4.6 release management
+1 how about my proposal to have 6 RM and demand that at least 2 agree on each PR? Op ma 11 mei 2015 om 09:52 schreef sebgoa run...@gmail.com: On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! I can RM as well. How about we lock down master on wednesday ? From that point forward we only take PR into master -either you or me- all other direct commits to master will be reverted -sebastien Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now
Re: [DISCUSS] 4.6 release management
On May 11, 2015, at 2:00 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: +1 how about my proposal to have 6 RM and demand that at least 2 agree on each PR? +0.5 we can say that we need two pairs of eyes to ok the PR for merge. no need to formally have 6 RMs ? so 1 RM (you or me) + another pair of eyes would work ? Op ma 11 mei 2015 om 09:52 schreef sebgoa run...@gmail.com: On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! I can RM as well. How about we lock down master on wednesday ? From that point forward we only take PR into master -either you or me- all other direct commits to master will be reverted -sebastien Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this
Re: [DISCUSS] 4.6 release management
On 11-May-2015, at 2:51 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: I'm fine with that: rm must have a reviewer on merges? Seem heavy for trivial changes but alright On Mon, 11 May 2015 14:16 Sebastien Goasguen run...@gmail.com wrote: On May 11, 2015, at 2:00 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: +1 how about my proposal to have 6 RM and demand that at least 2 agree on each PR? +0.5 we can say that we need two pairs of eyes to ok the PR for merge. no need to formally have 6 RMs ? so 1 RM (you or me) + another pair of eyes would work ? I’ve been doing PR reviews as a habit, happy to chip-in as a co-pilot. Op ma 11 mei 2015 om 09:52 schreef sebgoa run...@gmail.com: On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! I can RM as well. How about we lock down master on wednesday ? From that point forward we only take PR into master -either you or me- all other direct commits to master will be reverted -sebastien Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18,
Re: [DISCUSS] 4.6 release management
I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking
Re: [DISCUSS] 4.6 release management
So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the
Re: [DISCUSS] 4.6 release management
I just did a test merge: ~/cloudstack/cloudstack (master) git merge --no-ff --edit -s ours 4.5 gives a clean merge of the last bits from 4.5 and merges without conflicts I will rerun a merge and push if the RC passes Op wo 6 mei 2015 om 10:59 schreef Daan Hoogland daan.hoogl...@gmail.com: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be
Re: [DISCUSS] 4.6 release management
Fcourse On Wed, 6 May 2015 15:02 Sebastien Goasguen run...@gmail.com wrote: Can you sync with Rohit, who is merging the noawsapi stuff as well.. On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do
Re: [DISCUSS] 4.6 release management
Can you sync with Rohit, who is merging the noawsapi stuff as well.. On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland
Re: [DISCUSS] 4.6 release management
Will do tomorrow On Wed, 6 May 2015 17:27 Rohit Yadav bhais...@apache.org wrote: Hi Daan, I've merged awsapi after it passed travisCI tests and packaging worked (Here's a test repo without awsapi package: http://packages.bhaisaab.org/cloudstack/nukeawsapi/). Please go ahead with merging 4.5 on master. Let me know you've time and bandwidth to do it otherwise I can help with that as well. Regards. On Wed, May 6, 2015 at 4:00 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Fcourse On Wed, 6 May 2015 15:02 Sebastien Goasguen run...@gmail.com wrote: Can you sync with Rohit, who is merging the noawsapi stuff as well.. On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have
Re: [DISCUSS] 4.6 release management
Hi Daan, I've merged awsapi after it passed travisCI tests and packaging worked (Here's a test repo without awsapi package: http://packages.bhaisaab.org/cloudstack/nukeawsapi/). Please go ahead with merging 4.5 on master. Let me know you've time and bandwidth to do it otherwise I can help with that as well. Regards. On Wed, May 6, 2015 at 4:00 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Fcourse On Wed, 6 May 2015 15:02 Sebastien Goasguen run...@gmail.com wrote: Can you sync with Rohit, who is merging the noawsapi stuff as well.. On May 6, 2015, at 10:59 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: I can have a look at the merge of 4.5.1 and am willing to be one of the RMs, not to be the RM! Op wo 6 mei 2015 om 09:47 schreef sebgoa run...@gmail.com: So no -1 on this. Do we have volunteers to RM 4.6 on the master branch ? I propose to set a date asap, tag master and tell everyone that starting from that tag all commits to master except from RM will be reverted. will need to make sure that all of 4.5.1 is in master -sebastien On May 1, 2015, at 1:19 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be
Re: [DISCUSS] 4.6 release management
yes, you do :) Op vr 1 mei 2015 om 05:00 schreef Abhinandan Prateek abhinandan.prat...@shapeblue.com: Guys, Do I see a QACloud in works, something in line with devcloud but with a bigger collection of Hypervisors + marvin ? If we can bundle these Hypervisors and QA automation then effectively we can have many more people join our QA effort. On 29-Apr-2015, at 9:24 pm, Rohit Yadav rohit.ya...@shapeblue.com wrote: Hi Remi, Thanks. Sure we can work together on this, I guess you would be running KVM/XenServer on KVM. Ping me if you need help on running ESX 5.x on KVM as it requires a patched qemu system binary (prebuilt debs here http://people.apache.org/~bhaisaab/qemu). If these nested hosts are managed by CloudStack itself instead of virsh or virt-viewer, then use ACS 4.5 or master. On 29-Apr-2015, at 5:21 pm, Remi Bergsma rberg...@schubergphilis.com wrote: Hi Rohit, Nice work! I agree we need an environment that does run on something else than the local machine, as we need more horse power. We worked on something similar, where we have a cluster of KVM controlled by CloudStack in our Employee Cloud and spin large VMs running CentOS 7.1 (we use 32 or 64GB ram). In this big VM we run KVM again and spin up all infrastructure, ranging from hypervisors, SDN controllers, database hosts, storage appliances, etc. The big benefit is that networking is easy, as it is all in one box. Also, everybody uses the same prefixes. Using a L2 VPN we connect the workstations to the dev/test environment. All VMs can be controlled using virt-manager (like you also showed) and it is actually CloudStack running inside CloudStack. Deploying this VM has been automated and we’re now working on automating different scenario’s. They can also be used as Jenkins build slaves, for example. It is work in progress. Long story short: Let's work together on this :-) Regards, Remi On 28 Apr 2015, at 21:07, Rohit Yadav rohit.ya...@shapeblue.com wrote: Hi Ilya, In short - to run ESX and other hypervisors (Xen, KVM, OVM3, HyperV etc) on KVM you need to; - use patched qemu (tested to work on both Ubuntu 14.04 and 15.04 x64, I’m waiting for Fedora 22 to test it on F22 as well), you may install the pre-built debs or build/install qemu from source using the patch from here: people.apache.org/~bhaisaab/qemu - use ACS using latest 4.5 branch and deploy a basic zone (without SG) to provision hypervisor hosts as user vms - in agent.properties (on your kvm host), enable guest.cpu.features=vmx and guest.cpu.mode=host-passthrough - when deploying ESX 5.x on vm (or installing using an ISO) deploy virtualmachine with details nicAdapter=vmxnet3, for other hypervisors (including ESX 6.0) E1000, the default nic adapter, works IMO this is a better approach as it does not depend on ESX or VMWare fusion that requires special hardware (vCenter/Windows etc or OSX/Apple machine) and are difficult to automate. Working with KVM host, since is a Linux machine, would be more familiar to sysadmins and certainly a pleasure to scale and work with because one can avoid management tools (such as XenCenter or vCenter). (I’m still working on the CloudStack Developer Kit” {CDK} so it’s not in a state to be released yet, will avoid publishing a faulty tool now. Instead of the DevCloud approach which promotes everything on one machine, the CDK I’m trying to build focuses on developer productivity, reproducibility and scalability of a QA lab, it recommends at least one companion hardware with a developer’s workstation/laptop which can be a small-form-factor server like a mini PC or NUC with at least 16GB RAM and 4 cores i7 with Intel VT. Hope to share it soon.) On 28-Apr-2015, at 7:17 pm, ilya ilya.mailing.li...@gmail.com wrote: Rohit Any headway on ESX 5.5? I've done this many times before using cloudstack and esx, but i was using esx as parent hypervisor. The challenge for me was being able to automatically deploy and configure the vSphere + ESXi env. I managed to get the whole flow working with bash script, puppet, VMA and while it works its not pretty. The challenge was the networking bit. Last but not least, consider using cloudstack to test cloudstack. i.e. master env, would use cloudstack projects and spinup smaller envs with KVM, Xen and VmWare bound to each project. Regards ilya On 4/24/15 7:53 AM, Rohit Yadav wrote: Daan, On 24-Apr-2015, at 3:53 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. I agree with you, but I think there are pros and cons to both approaches and for this to work it needs
Re: [DISCUSS] 4.6 release management
On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could
Re: [DISCUSS] 4.6 release management
Let's not do more quality improvement proces but just improve quality. If anybody want to add to the pages on the wiki, you're welkom but nobody did for long time. +1 for the present state of Sebastien's views on things. We can refine at any time. Op vr 1 mei 2015 om 09:55 schreef sebgoa run...@gmail.com: On May 1, 2015, at 12:52 AM, Pierre-Luc Dion pdion...@apache.org wrote: Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI I hear you. But we have waited for way too long for better CI. I see great efforts in that direction. But I personally do not want to wait any longer to make a move. We do open source, we should have fun, take risks, move fast, fail fast, recover etc…. so let's JFDI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Is there really a difference between creating a 4.6 and doing what you say, and tagging master (start) and doing it on master leading to 4.6 release ? Assuming the QA does not improve, 4.6 would not be worse than 4.5. If we can improve a bit on the QA then we win. Plus I think a different commit model will help a lot in quality. Marcus: are you preparing a proposal on this? wiki page? I can help We can do this proposal on email..and once we have consensus write it up for archive in the wiki. If we move to the wiki now, this effort is going to die. Seb: doesn't the vote would confirm the consensus? if we have consensus no need for vote. Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote:
Re: [DISCUSS] 4.6 release management
On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release
Re: [DISCUSS] 4.6 release management
On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak I'm +0 on the above - what would push me to +1 would be stripping the RM as gatekeeper and letting CI be the gatekeeper (e.g. - all commits go in via PR that tests successfully.) I don't think that an RM is capable of understanding all of the pieces enough to judge any given patch, especially a more complicated patch, and its a SPOF - it's also incredibly difficult for a single person to keep up with all of the pending patches. I'd also be okay with must be reviewed by another committer so that two committers have to agree. Now, that said, if velocity is high, it will make kicking a release out somewhat difficult as the amount of churn is going to be high. PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. YES - this!!
Re: [DISCUSS] 4.6 release management
Guys, Do I see a QACloud in works, something in line with devcloud but with a bigger collection of Hypervisors + marvin ? If we can bundle these Hypervisors and QA automation then effectively we can have many more people join our QA effort. On 29-Apr-2015, at 9:24 pm, Rohit Yadav rohit.ya...@shapeblue.com wrote: Hi Remi, Thanks. Sure we can work together on this, I guess you would be running KVM/XenServer on KVM. Ping me if you need help on running ESX 5.x on KVM as it requires a patched qemu system binary (prebuilt debs here http://people.apache.org/~bhaisaab/qemu). If these nested hosts are managed by CloudStack itself instead of virsh or virt-viewer, then use ACS 4.5 or master. On 29-Apr-2015, at 5:21 pm, Remi Bergsma rberg...@schubergphilis.com wrote: Hi Rohit, Nice work! I agree we need an environment that does run on something else than the local machine, as we need more horse power. We worked on something similar, where we have a cluster of KVM controlled by CloudStack in our Employee Cloud and spin large VMs running CentOS 7.1 (we use 32 or 64GB ram). In this big VM we run KVM again and spin up all infrastructure, ranging from hypervisors, SDN controllers, database hosts, storage appliances, etc. The big benefit is that networking is easy, as it is all in one box. Also, everybody uses the same prefixes. Using a L2 VPN we connect the workstations to the dev/test environment. All VMs can be controlled using virt-manager (like you also showed) and it is actually CloudStack running inside CloudStack. Deploying this VM has been automated and we’re now working on automating different scenario’s. They can also be used as Jenkins build slaves, for example. It is work in progress. Long story short: Let's work together on this :-) Regards, Remi On 28 Apr 2015, at 21:07, Rohit Yadav rohit.ya...@shapeblue.com wrote: Hi Ilya, In short - to run ESX and other hypervisors (Xen, KVM, OVM3, HyperV etc) on KVM you need to; - use patched qemu (tested to work on both Ubuntu 14.04 and 15.04 x64, I’m waiting for Fedora 22 to test it on F22 as well), you may install the pre-built debs or build/install qemu from source using the patch from here: people.apache.org/~bhaisaab/qemu - use ACS using latest 4.5 branch and deploy a basic zone (without SG) to provision hypervisor hosts as user vms - in agent.properties (on your kvm host), enable guest.cpu.features=vmx and guest.cpu.mode=host-passthrough - when deploying ESX 5.x on vm (or installing using an ISO) deploy virtualmachine with details nicAdapter=vmxnet3, for other hypervisors (including ESX 6.0) E1000, the default nic adapter, works IMO this is a better approach as it does not depend on ESX or VMWare fusion that requires special hardware (vCenter/Windows etc or OSX/Apple machine) and are difficult to automate. Working with KVM host, since is a Linux machine, would be more familiar to sysadmins and certainly a pleasure to scale and work with because one can avoid management tools (such as XenCenter or vCenter). (I’m still working on the CloudStack Developer Kit” {CDK} so it’s not in a state to be released yet, will avoid publishing a faulty tool now. Instead of the DevCloud approach which promotes everything on one machine, the CDK I’m trying to build focuses on developer productivity, reproducibility and scalability of a QA lab, it recommends at least one companion hardware with a developer’s workstation/laptop which can be a small-form-factor server like a mini PC or NUC with at least 16GB RAM and 4 cores i7 with Intel VT. Hope to share it soon.) On 28-Apr-2015, at 7:17 pm, ilya ilya.mailing.li...@gmail.com wrote: Rohit Any headway on ESX 5.5? I've done this many times before using cloudstack and esx, but i was using esx as parent hypervisor. The challenge for me was being able to automatically deploy and configure the vSphere + ESXi env. I managed to get the whole flow working with bash script, puppet, VMA and while it works its not pretty. The challenge was the networking bit. Last but not least, consider using cloudstack to test cloudstack. i.e. master env, would use cloudstack projects and spinup smaller envs with KVM, Xen and VmWare bound to each project. Regards ilya On 4/24/15 7:53 AM, Rohit Yadav wrote: Daan, On 24-Apr-2015, at 3:53 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. I agree with you, but I think there are pros and cons to both approaches and for this to work it needs to be able to walk first before it can run. For this to work we need an automated QA system, to solve this Abhi is working on
Re: [DISCUSS] 4.6 release management
Hi, In my mind it was kind of making more sense to start by keeping 4.6 into a separate branch, enforce pull-requests and deploy the CI. smaller step but faster result, and from there, once we get stable with the CI and git flow; move into master, do fastest releases cycle. If we consider we can do all that starting in 4.6, I'm all for it! Marcus: are you preparing a proposal on this? wiki page? I can help Seb: doesn't the vote would confirm the consensus? Raja: do we have any documentation somewhere on how to use, contribute to the smoke test? that could be our start for the CI tests? Cheers On Thu, Apr 30, 2015 at 3:58 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 29, 2015, at 9:49 PM, Marcus shadow...@gmail.com wrote: After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. Yes +1. -Set a date -Tag master for reference -Find a volunteer or two to RM master -automatic revert on master if not from RM -all commits to master come from PR, need clear review and green tests -harden master (basic QA process), release 4.6 as a tag on master -all features and fixes need to be made on branches or forks and onus is on devs to rebase to master -brings everyone onto 4.6 (make sure we have upgrade paths from 4.3, 4.4, etc) -from there forward only maintain a linear release through master Feel free to add, tweak PS: No need to vote if we have consensus. Taking a clue from ASF members, votes should be avoided at all cost, they mean that we do not have clear consensus. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and
Re: [DISCUSS] 4.6 release management
Hi Remi, Thanks. Sure we can work together on this, I guess you would be running KVM/XenServer on KVM. Ping me if you need help on running ESX 5.x on KVM as it requires a patched qemu system binary (prebuilt debs here http://people.apache.org/~bhaisaab/qemu). If these nested hosts are managed by CloudStack itself instead of virsh or virt-viewer, then use ACS 4.5 or master. On 29-Apr-2015, at 5:21 pm, Remi Bergsma rberg...@schubergphilis.com wrote: Hi Rohit, Nice work! I agree we need an environment that does run on something else than the local machine, as we need more horse power. We worked on something similar, where we have a cluster of KVM controlled by CloudStack in our Employee Cloud and spin large VMs running CentOS 7.1 (we use 32 or 64GB ram). In this big VM we run KVM again and spin up all infrastructure, ranging from hypervisors, SDN controllers, database hosts, storage appliances, etc. The big benefit is that networking is easy, as it is all in one box. Also, everybody uses the same prefixes. Using a L2 VPN we connect the workstations to the dev/test environment. All VMs can be controlled using virt-manager (like you also showed) and it is actually CloudStack running inside CloudStack. Deploying this VM has been automated and we’re now working on automating different scenario’s. They can also be used as Jenkins build slaves, for example. It is work in progress. Long story short: Let's work together on this :-) Regards, Remi On 28 Apr 2015, at 21:07, Rohit Yadav rohit.ya...@shapeblue.com wrote: Hi Ilya, In short - to run ESX and other hypervisors (Xen, KVM, OVM3, HyperV etc) on KVM you need to; - use patched qemu (tested to work on both Ubuntu 14.04 and 15.04 x64, I’m waiting for Fedora 22 to test it on F22 as well), you may install the pre-built debs or build/install qemu from source using the patch from here: people.apache.org/~bhaisaab/qemu - use ACS using latest 4.5 branch and deploy a basic zone (without SG) to provision hypervisor hosts as user vms - in agent.properties (on your kvm host), enable guest.cpu.features=vmx and guest.cpu.mode=host-passthrough - when deploying ESX 5.x on vm (or installing using an ISO) deploy virtualmachine with details nicAdapter=vmxnet3, for other hypervisors (including ESX 6.0) E1000, the default nic adapter, works IMO this is a better approach as it does not depend on ESX or VMWare fusion that requires special hardware (vCenter/Windows etc or OSX/Apple machine) and are difficult to automate. Working with KVM host, since is a Linux machine, would be more familiar to sysadmins and certainly a pleasure to scale and work with because one can avoid management tools (such as XenCenter or vCenter). (I’m still working on the CloudStack Developer Kit” {CDK} so it’s not in a state to be released yet, will avoid publishing a faulty tool now. Instead of the DevCloud approach which promotes everything on one machine, the CDK I’m trying to build focuses on developer productivity, reproducibility and scalability of a QA lab, it recommends at least one companion hardware with a developer’s workstation/laptop which can be a small-form-factor server like a mini PC or NUC with at least 16GB RAM and 4 cores i7 with Intel VT. Hope to share it soon.) On 28-Apr-2015, at 7:17 pm, ilya ilya.mailing.li...@gmail.com wrote: Rohit Any headway on ESX 5.5? I've done this many times before using cloudstack and esx, but i was using esx as parent hypervisor. The challenge for me was being able to automatically deploy and configure the vSphere + ESXi env. I managed to get the whole flow working with bash script, puppet, VMA and while it works its not pretty. The challenge was the networking bit. Last but not least, consider using cloudstack to test cloudstack. i.e. master env, would use cloudstack projects and spinup smaller envs with KVM, Xen and VmWare bound to each project. Regards ilya On 4/24/15 7:53 AM, Rohit Yadav wrote: Daan, On 24-Apr-2015, at 3:53 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. I agree with you, but I think there are pros and cons to both approaches and for this to work it needs to be able to walk first before it can run. For this to work we need an automated QA system, to solve this Abhi is working on it for past few weeks and will be adding more non-hardware tests (simulator ones) to travis. In my free time, I’m trying to setup a nested virtualized environment where we can test ACS against Xen, KVM and VMware on top on KVM. So far, I’m able to run XenServer 6.2+6.5 and KVM on top of KVM with vmx (intel-vt) enabled,
Re: [DISCUSS] 4.6 release management
After reviewing the history as mentioned by Daan, unless we propose and vote on a newer workflow model I think the best we can do is to simply be more strict about commits to master. They all need to be merges that have been tested against master before merge. This will in theory make master more stable, but doesn't really change the workflow we've already agreed upon and have been working under (although bugfixes sometimes were not coming in from branches, and cherry-picked bugfixes from branches will need to go into a branch first, tested against master, and merged to master). We can essentially set a date and do that any time, with some advance notice that direct commits will be reverted. On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-) -- Daan
Re: [DISCUSS] 4.6 release management
Hi Rohit, Nice work! I agree we need an environment that does run on something else than the local machine, as we need more horse power. We worked on something similar, where we have a cluster of KVM controlled by CloudStack in our Employee Cloud and spin large VMs running CentOS 7.1 (we use 32 or 64GB ram). In this big VM we run KVM again and spin up all infrastructure, ranging from hypervisors, SDN controllers, database hosts, storage appliances, etc. The big benefit is that networking is easy, as it is all in one box. Also, everybody uses the same prefixes. Using a L2 VPN we connect the workstations to the dev/test environment. All VMs can be controlled using virt-manager (like you also showed) and it is actually CloudStack running inside CloudStack. Deploying this VM has been automated and we’re now working on automating different scenario’s. They can also be used as Jenkins build slaves, for example. It is work in progress. Long story short: Let's work together on this :-) Regards, Remi On 28 Apr 2015, at 21:07, Rohit Yadav rohit.ya...@shapeblue.com wrote: Hi Ilya, In short - to run ESX and other hypervisors (Xen, KVM, OVM3, HyperV etc) on KVM you need to; - use patched qemu (tested to work on both Ubuntu 14.04 and 15.04 x64, I’m waiting for Fedora 22 to test it on F22 as well), you may install the pre-built debs or build/install qemu from source using the patch from here: people.apache.org/~bhaisaab/qemu - use ACS using latest 4.5 branch and deploy a basic zone (without SG) to provision hypervisor hosts as user vms - in agent.properties (on your kvm host), enable guest.cpu.features=vmx and guest.cpu.mode=host-passthrough - when deploying ESX 5.x on vm (or installing using an ISO) deploy virtualmachine with details nicAdapter=vmxnet3, for other hypervisors (including ESX 6.0) E1000, the default nic adapter, works IMO this is a better approach as it does not depend on ESX or VMWare fusion that requires special hardware (vCenter/Windows etc or OSX/Apple machine) and are difficult to automate. Working with KVM host, since is a Linux machine, would be more familiar to sysadmins and certainly a pleasure to scale and work with because one can avoid management tools (such as XenCenter or vCenter). (I’m still working on the CloudStack Developer Kit” {CDK} so it’s not in a state to be released yet, will avoid publishing a faulty tool now. Instead of the DevCloud approach which promotes everything on one machine, the CDK I’m trying to build focuses on developer productivity, reproducibility and scalability of a QA lab, it recommends at least one companion hardware with a developer’s workstation/laptop which can be a small-form-factor server like a mini PC or NUC with at least 16GB RAM and 4 cores i7 with Intel VT. Hope to share it soon.) On 28-Apr-2015, at 7:17 pm, ilya ilya.mailing.li...@gmail.com wrote: Rohit Any headway on ESX 5.5? I've done this many times before using cloudstack and esx, but i was using esx as parent hypervisor. The challenge for me was being able to automatically deploy and configure the vSphere + ESXi env. I managed to get the whole flow working with bash script, puppet, VMA and while it works its not pretty. The challenge was the networking bit. Last but not least, consider using cloudstack to test cloudstack. i.e. master env, would use cloudstack projects and spinup smaller envs with KVM, Xen and VmWare bound to each project. Regards ilya On 4/24/15 7:53 AM, Rohit Yadav wrote: Daan, On 24-Apr-2015, at 3:53 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. I agree with you, but I think there are pros and cons to both approaches and for this to work it needs to be able to walk first before it can run. For this to work we need an automated QA system, to solve this Abhi is working on it for past few weeks and will be adding more non-hardware tests (simulator ones) to travis. In my free time, I’m trying to setup a nested virtualized environment where we can test ACS against Xen, KVM and VMware on top on KVM. So far, I’m able to run XenServer 6.2+6.5 and KVM on top of KVM with vmx (intel-vt) enabled, and making some progress with running ESX on KVM (I’m able to run ESX 6.0 on KVM now, but not ESX 5.x which is something I’m exploring). I hope we'll have something working soon that is fairly fast and easy to reproduce. Your points are valid, though. .1 a three person release team makes sense. I have been really happy with the help I got from Pierre-Luc and I think David can do with help the coming time as well. .2 Hopefully people won't need to
Re: [DISCUSS] 4.6 release management
On Apr 22, 2015, at 12:24 PM, Raja Pullela raja.pull...@citrix.com wrote: Sebastien, I am taking about the tests we have under test/integration/smoke folder. Not sure how the tests run through Travis, will try to understand. These are tests were run on a local cloudstack env. Just catching up and making sure I reply to Raja here. Travis (https://travis-ci.org) runs those tests, by building cloudstack and running the simulator. All the travis setup is defined in the travis.yml file in the root of the repo. This setup can probably be improved. Do note that if you fork on your own github, pushes to your own branch will run through Travis as well. best, Raja -Original Message- From: Sebastien Goasguen [mailto:run...@gmail.com] Sent: Friday, April 17, 2015 1:14 PM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management On Apr 17, 2015, at 6:26 AM, Raja Pullela raja.pull...@citrix.com wrote: +1 for the Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release This should be a top priority along with keeping master stable - make sure BVTs are passing at 100% all the time. Raja, which BVT are you talking about ? AFAIK, all current tests run on all commits through Travis. Also if we can plan/target increasing test/BVT coverage, that will be super! Thanks, Raja -Original Message- From: Marcus [mailto:shadow...@gmail.com] Sent: Friday, April 17, 2015 4:35 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management storage plugin involve changes on Hypervisor code I know this is just an example, but at least on KVM side this is no longer true. Previously you had to implement a KVM-specific 'StorageAdaptor' that would run on the hypervisor, and register that with the agent code, but Mike and I added some reflection/annotation that allows for auto-detection of the adaptor upon Agent start up, so storage plugins can be completely self-contained now. They don't even have to be a part of our code base. There may be other parts of the code where we can do similar things to decouple if we can identify those points. Ideally, if someone has to modify core code to add their plugin it should only be because they are adding some new functionality *that core cloudstack needs to be aware of*, and that functionality should be added in a way that other plugins can also provide/implement it. Otherwise, they can always add new APIs specific to their appliance or product and leveraging data from cloudstack's db, all via plugin. They can add new global/zone/cluster configs and UI tools via plugin as well. On Thu, Apr 16, 2015 at 3:49 PM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-)
Re: [DISCUSS] 4.6 release management
On Apr 20, 2015, at 4:12 PM, S. Brüseke - proIO GmbH s.brues...@proio.com wrote: Hi all, it is really hard for a newbie to follow all of your thought regarding this. Can somebody please explain it a little bit more? Thank you very much! Hi Swen, I will try. Currently we develop cloudstack in the master branch, and create a 'release' branch for major releases. Hence we have a 4.3 branch, a 4.4 branch etc…. We are currently on 4.5 , which means that what is master now will become our 4.5 release. The issue comes when stabilizing a release branch. A traditional approach would hand off the release branch to a QA team and let the QA team harden that branch over several months. This tends to make each release a somewhat different product of each other. It also creates a maintenance headache, as we have to abandon branches. We do not want anyone to feel abandoned on some dead branches, thus we maintain upgrade paths that can become complex, with fixes and features that can't be merged in various branches and regressions. Bottom line: headache, heartache, nightmares, no fun. This is not something specific to cloudstack and other projects face similar issues. I am of the opinion that for our community this is not a workable model, as we do not have a dedicated QA team. Even though some of us are paid to work on CloudStack. So we are talking about finding a better release management model, that would allow us to release faster and more stable software (not to say that it is unstable right now, just that things can be improved). One model among many, would be to treat master as our release branch and merge features/fixes into master once we know they are valid and do not break anything. This would increase our trust in master as production software and put us on a path of continuous deployment with an iterative/rolling upgrade mindset. Since all committers have write access to master, treating master as a release branch (for example), involves all of us reaching consensus and agreeing that a release manager will be the only one allowed to touch that branch (for instance). This also involves being able to release much faster (which we have to do official through manual votes for legal purposes), reducing scope of each release etc…. I hope that clarifies things a bit, -Sebastien Mit freundlichen Grüßen / With kind regards, Swen Brüseke -Ursprüngliche Nachricht- Von: Simon Weller [mailto:swel...@ena.com] Gesendet: Montag, 20. April 2015 15:24 An: dev@cloudstack.apache.org Betreff: Re: [DISCUSS] 4.6 release management From: Sebastien Goasguen run...@gmail.com Sent: Saturday, April 18, 2015 2:50 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. +1 on this. Ultimately this will be painful to start with, but it will pay dividends in the future with a much more stable (and tested) master, and hence future releases will be of higher quality. With stable (and frequent iterative) releases, there will be much less pressure to back port fixes/features, because the community will see taking a new release as low risk. - Si Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code
Re: [DISCUSS] 4.6 release management
Rohit Any headway on ESX 5.5? I've done this many times before using cloudstack and esx, but i was using esx as parent hypervisor. The challenge for me was being able to automatically deploy and configure the vSphere + ESXi env. I managed to get the whole flow working with bash script, puppet, VMA and while it works its not pretty. The challenge was the networking bit. Last but not least, consider using cloudstack to test cloudstack. i.e. master env, would use cloudstack projects and spinup smaller envs with KVM, Xen and VmWare bound to each project. Regards ilya On 4/24/15 7:53 AM, Rohit Yadav wrote: Daan, On 24-Apr-2015, at 3:53 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. I agree with you, but I think there are pros and cons to both approaches and for this to work it needs to be able to walk first before it can run. For this to work we need an automated QA system, to solve this Abhi is working on it for past few weeks and will be adding more non-hardware tests (simulator ones) to travis. In my free time, I’m trying to setup a nested virtualized environment where we can test ACS against Xen, KVM and VMware on top on KVM. So far, I’m able to run XenServer 6.2+6.5 and KVM on top of KVM with vmx (intel-vt) enabled, and making some progress with running ESX on KVM (I’m able to run ESX 6.0 on KVM now, but not ESX 5.x which is something I’m exploring). I hope we'll have something working soon that is fairly fast and easy to reproduce. Your points are valid, though. .1 a three person release team makes sense. I have been really happy with the help I got from Pierre-Luc and I think David can do with help the coming time as well. .2 Hopefully people won't need to test every release so extensively anymore as the changes become smaller. (and my initial remark the above applies as well) By having too many releases we’ll have to deal with too many upgrade path issues and users will spread across different versions which will create an issue for maintainers who are supporting users -- one solution for this problem can be that we introduce a concept of LTS release that is either maintained by the community (which can be difficult) or some interested stakeholders, for users that would prefer upgrading everytime there is a new CloudStack release. On Fri, Apr 24, 2015 at 2:43 PM, Rohit Yadav rohit.ya...@shapeblue.com wrote: I think we need to have a faster release management to speed up process in general, and for that I propose that we have at least two co-pilots for the release manager who would support them with things like reviewing/merging patches, creating RC candidates etc whenever necessary. Having only one person as a release manager can become a bottleneck for a speedy release. The other issue is getting people to test a (release) branch, fix bugs and expect a review/result in 72 hours. This has usually failed if people are busy and not getting enough time for this. As an example, I think 4.5 is delayed because it lacked people actively testing it or fixing issues, or when issues were found only around the RC testing period which delayed RC voting by 1-2 weeks every time that happened. (I’ll post details about where I think we are wrt 4.5 in another thread). On 17-Apr-2015, at 12:49 am, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first
Re: [DISCUSS] 4.6 release management
Hi Ilya, In short - to run ESX and other hypervisors (Xen, KVM, OVM3, HyperV etc) on KVM you need to; - use patched qemu (tested to work on both Ubuntu 14.04 and 15.04 x64, I’m waiting for Fedora 22 to test it on F22 as well), you may install the pre-built debs or build/install qemu from source using the patch from here: people.apache.org/~bhaisaab/qemu - use ACS using latest 4.5 branch and deploy a basic zone (without SG) to provision hypervisor hosts as user vms - in agent.properties (on your kvm host), enable guest.cpu.features=vmx and guest.cpu.mode=host-passthrough - when deploying ESX 5.x on vm (or installing using an ISO) deploy virtualmachine with details nicAdapter=vmxnet3, for other hypervisors (including ESX 6.0) E1000, the default nic adapter, works IMO this is a better approach as it does not depend on ESX or VMWare fusion that requires special hardware (vCenter/Windows etc or OSX/Apple machine) and are difficult to automate. Working with KVM host, since is a Linux machine, would be more familiar to sysadmins and certainly a pleasure to scale and work with because one can avoid management tools (such as XenCenter or vCenter). (I’m still working on the CloudStack Developer Kit” {CDK} so it’s not in a state to be released yet, will avoid publishing a faulty tool now. Instead of the DevCloud approach which promotes everything on one machine, the CDK I’m trying to build focuses on developer productivity, reproducibility and scalability of a QA lab, it recommends at least one companion hardware with a developer’s workstation/laptop which can be a small-form-factor server like a mini PC or NUC with at least 16GB RAM and 4 cores i7 with Intel VT. Hope to share it soon.) On 28-Apr-2015, at 7:17 pm, ilya ilya.mailing.li...@gmail.com wrote: Rohit Any headway on ESX 5.5? I've done this many times before using cloudstack and esx, but i was using esx as parent hypervisor. The challenge for me was being able to automatically deploy and configure the vSphere + ESXi env. I managed to get the whole flow working with bash script, puppet, VMA and while it works its not pretty. The challenge was the networking bit. Last but not least, consider using cloudstack to test cloudstack. i.e. master env, would use cloudstack projects and spinup smaller envs with KVM, Xen and VmWare bound to each project. Regards ilya On 4/24/15 7:53 AM, Rohit Yadav wrote: Daan, On 24-Apr-2015, at 3:53 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. I agree with you, but I think there are pros and cons to both approaches and for this to work it needs to be able to walk first before it can run. For this to work we need an automated QA system, to solve this Abhi is working on it for past few weeks and will be adding more non-hardware tests (simulator ones) to travis. In my free time, I’m trying to setup a nested virtualized environment where we can test ACS against Xen, KVM and VMware on top on KVM. So far, I’m able to run XenServer 6.2+6.5 and KVM on top of KVM with vmx (intel-vt) enabled, and making some progress with running ESX on KVM (I’m able to run ESX 6.0 on KVM now, but not ESX 5.x which is something I’m exploring). I hope we'll have something working soon that is fairly fast and easy to reproduce. Your points are valid, though. .1 a three person release team makes sense. I have been really happy with the help I got from Pierre-Luc and I think David can do with help the coming time as well. .2 Hopefully people won't need to test every release so extensively anymore as the changes become smaller. (and my initial remark the above applies as well) By having too many releases we’ll have to deal with too many upgrade path issues and users will spread across different versions which will create an issue for maintainers who are supporting users -- one solution for this problem can be that we introduce a concept of LTS release that is either maintained by the community (which can be difficult) or some interested stakeholders, for users that would prefer upgrading everytime there is a new CloudStack release. On Fri, Apr 24, 2015 at 2:43 PM, Rohit Yadav rohit.ya...@shapeblue.com wrote: I think we need to have a faster release management to speed up process in general, and for that I propose that we have at least two co-pilots for the release manager who would support them with things like reviewing/merging patches, creating RC candidates etc whenever necessary. Having only one person as a release manager can become a bottleneck for a speedy release. The other issue is getting people to test a (release) branch, fix bugs and
Re: [DISCUSS] 4.6 release management
Marcus, I think we decided to take small steps in the direction of something resambling git-workflow instead of adopting it as a standard. merging branches for fixes and features was one of those steps. We had a pre-vote discussion on git-flow and it was rejected as such. That shouldn't stop us from implementing parts of it that aren't objected against. On Fri, Apr 24, 2015 at 12:21 AM, Marcus shadow...@gmail.com wrote: Before I rough draft anything, I just wanted to ask if we had voted on moving to git-workflow, and dropping the multiple release branch design. This seems like a significant change, and while good in many ways, it also seems that many users are seeking for point releases to their pet version and I'm not sure how they'll take to a response that they need to upgrade. Overall I think it will approve stability and focus our efforts, but have we had a vote around this change? On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please
Re: [DISCUSS] 4.6 release management
Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. Your points are valid, though. .1 a three person release team makes sense. I have been really happy with the help I got from Pierre-Luc and I think David can do with help the coming time as well. .2 Hopefully people won't need to test every release so extensively anymore as the changes become smaller. (and my initial remark the above applies as well) On Fri, Apr 24, 2015 at 2:43 PM, Rohit Yadav rohit.ya...@shapeblue.com wrote: I think we need to have a faster release management to speed up process in general, and for that I propose that we have at least two co-pilots for the release manager who would support them with things like reviewing/merging patches, creating RC candidates etc whenever necessary. Having only one person as a release manager can become a bottleneck for a speedy release. The other issue is getting people to test a (release) branch, fix bugs and expect a review/result in 72 hours. This has usually failed if people are busy and not getting enough time for this. As an example, I think 4.5 is delayed because it lacked people actively testing it or fixing issues, or when issues were found only around the RC testing period which delayed RC voting by 1-2 weeks every time that happened. (I’ll post details about where I think we are wrt 4.5 in another thread). On 17-Apr-2015, at 12:49 am, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-) Regards, Rohit Yadav Software Architect, ShapeBlue M. +91 88 262 30892 | rohit.ya...@shapeblue.com Blog: bhaisaab.org | Twitter: @_bhaisaab Find out more about ShapeBlue and our range of CloudStack related services IaaS Cloud Design Buildhttp://shapeblue.com/iaas-cloud-design-and-build// CSForge – rapid IaaS deployment frameworkhttp://shapeblue.com/csforge/ CloudStack Consultinghttp://shapeblue.com/cloudstack-consultancy/ CloudStack Software Engineeringhttp://shapeblue.com/cloudstack-software-engineering/ CloudStack Infrastructure Supporthttp://shapeblue.com/cloudstack-infrastructure-support/ CloudStack Bootcamp Training Courseshttp://shapeblue.com/cloudstack-training/ This email and any attachments to it may be confidential and are intended solely for the use of the individual to whom it is addressed. Any views or opinions expressed are solely those of the author and do not necessarily represent those of Shape Blue Ltd or related companies. If you are not the intended recipient of this email, you must neither take any action based upon its contents, nor copy or show it to anyone. Please contact the sender if you believe you have received this email in error. Shape Blue Ltd is a company incorporated in England Wales. ShapeBlue Services India LLP is a company incorporated in India and is operated under license from Shape Blue Ltd. Shape Blue Brasil Consultoria Ltda is a company incorporated in Brasil and is operated under license from Shape Blue Ltd. ShapeBlue SA Pty Ltd is a company registered by The Republic of South Africa and is traded under license from Shape Blue Ltd. ShapeBlue is a registered trademark. -- Daan
Re: [DISCUSS] 4.6 release management
I think we need to have a faster release management to speed up process in general, and for that I propose that we have at least two co-pilots for the release manager who would support them with things like reviewing/merging patches, creating RC candidates etc whenever necessary. Having only one person as a release manager can become a bottleneck for a speedy release. The other issue is getting people to test a (release) branch, fix bugs and expect a review/result in 72 hours. This has usually failed if people are busy and not getting enough time for this. As an example, I think 4.5 is delayed because it lacked people actively testing it or fixing issues, or when issues were found only around the RC testing period which delayed RC voting by 1-2 weeks every time that happened. (I’ll post details about where I think we are wrt 4.5 in another thread). On 17-Apr-2015, at 12:49 am, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-) Regards, Rohit Yadav Software Architect, ShapeBlue M. +91 88 262 30892 | rohit.ya...@shapeblue.com Blog: bhaisaab.org | Twitter: @_bhaisaab Find out more about ShapeBlue and our range of CloudStack related services IaaS Cloud Design Buildhttp://shapeblue.com/iaas-cloud-design-and-build// CSForge – rapid IaaS deployment frameworkhttp://shapeblue.com/csforge/ CloudStack Consultinghttp://shapeblue.com/cloudstack-consultancy/ CloudStack Software Engineeringhttp://shapeblue.com/cloudstack-software-engineering/ CloudStack Infrastructure Supporthttp://shapeblue.com/cloudstack-infrastructure-support/ CloudStack Bootcamp Training Courseshttp://shapeblue.com/cloudstack-training/ This email and any attachments to it may be confidential and are intended solely for the use of the individual to whom it is addressed. Any views or opinions expressed are solely those of the author and do not necessarily represent those of Shape Blue Ltd or related companies. If you are not the intended recipient of this email, you must neither take any action based upon its contents, nor copy or show it to anyone. Please contact the sender if you believe you have received this email in error. Shape Blue Ltd is a company incorporated in England Wales. ShapeBlue Services India LLP is a company incorporated in India and is operated under license from Shape Blue Ltd. Shape Blue Brasil Consultoria Ltda is a company incorporated in Brasil and is operated under license from Shape Blue Ltd. ShapeBlue SA Pty Ltd is a company registered by The Republic of South Africa and is traded under license from Shape Blue Ltd. ShapeBlue is a registered trademark.
Re: [DISCUSS] 4.6 release management
Daan, On 24-Apr-2015, at 3:53 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. I agree with you, but I think there are pros and cons to both approaches and for this to work it needs to be able to walk first before it can run. For this to work we need an automated QA system, to solve this Abhi is working on it for past few weeks and will be adding more non-hardware tests (simulator ones) to travis. In my free time, I’m trying to setup a nested virtualized environment where we can test ACS against Xen, KVM and VMware on top on KVM. So far, I’m able to run XenServer 6.2+6.5 and KVM on top of KVM with vmx (intel-vt) enabled, and making some progress with running ESX on KVM (I’m able to run ESX 6.0 on KVM now, but not ESX 5.x which is something I’m exploring). I hope we'll have something working soon that is fairly fast and easy to reproduce. Your points are valid, though. .1 a three person release team makes sense. I have been really happy with the help I got from Pierre-Luc and I think David can do with help the coming time as well. .2 Hopefully people won't need to test every release so extensively anymore as the changes become smaller. (and my initial remark the above applies as well) By having too many releases we’ll have to deal with too many upgrade path issues and users will spread across different versions which will create an issue for maintainers who are supporting users -- one solution for this problem can be that we introduce a concept of LTS release that is either maintained by the community (which can be difficult) or some interested stakeholders, for users that would prefer upgrading everytime there is a new CloudStack release. On Fri, Apr 24, 2015 at 2:43 PM, Rohit Yadav rohit.ya...@shapeblue.com wrote: I think we need to have a faster release management to speed up process in general, and for that I propose that we have at least two co-pilots for the release manager who would support them with things like reviewing/merging patches, creating RC candidates etc whenever necessary. Having only one person as a release manager can become a bottleneck for a speedy release. The other issue is getting people to test a (release) branch, fix bugs and expect a review/result in 72 hours. This has usually failed if people are busy and not getting enough time for this. As an example, I think 4.5 is delayed because it lacked people actively testing it or fixing issues, or when issues were found only around the RC testing period which delayed RC voting by 1-2 weeks every time that happened. (I’ll post details about where I think we are wrt 4.5 in another thread). On 17-Apr-2015, at 12:49 am, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-) Regards, Rohit Yadav Software Architect, ShapeBlue M. +91 88 262 30892 | rohit.ya...@shapeblue.com Blog: bhaisaab.org | Twitter: @_bhaisaab Find out more about ShapeBlue and our range of CloudStack related services IaaS Cloud Design Buildhttp://shapeblue.com/iaas-cloud-design-and-build// CSForge – rapid IaaS deployment frameworkhttp://shapeblue.com/csforge/ CloudStack Consultinghttp://shapeblue.com/cloudstack-consultancy/ CloudStack Software
Re: [DISCUSS] 4.6 release management
On Fri, Apr 24, 2015 at 4:53 PM, Rohit Yadav rohit.ya...@shapeblue.com wrote: Daan, On 24-Apr-2015, at 3:53 pm, Daan Hoogland daan.hoogl...@gmail.com wrote: Rohit, the issues you mention are not as painful if we release in a two week schedule as the period of creating a fix to seeing it in a release will be shorter. Some releases will be broken for some people, I don't think we can prevent this. The target we are aiming for is to big to cover it completely. I agree with you, but I think there are pros and cons to both approaches and for this to work it needs to be able to walk first before it can run. For this to work we need an automated QA system, to solve this Abhi is working on it for past few weeks and will be adding more non-hardware tests (simulator ones) to travis. In my free time, I’m trying to setup a nested virtualized environment where we can test ACS against Xen, KVM and VMware on top on KVM. So far, I’m able to run XenServer 6.2+6.5 and KVM on top of KVM with vmx (intel-vt) enabled, and making some progress with running ESX on KVM (I’m able to run ESX 6.0 on KVM now, but not ESX 5.x which is something I’m exploring). I hope we'll have something working soon that is fairly fast and easy to reproduce. Fred Neubauer, a Schuberg Philis colleague has just finished creating a bubble for testing and development purposes. It looks really good. We are underway to create a new style jenkins slave in which multiple hypervisors, management servers and db servers can be created. Sounds like you are at the same point then. All that we are discussing here is of varying distance in the future. Let's not forget this in the discussion. In the end ideal would be continuous delivery for all cloudstack installs;) Your points are valid, though. .1 a three person release team makes sense. I have been really happy with the help I got from Pierre-Luc and I think David can do with help the coming time as well. .2 Hopefully people won't need to test every release so extensively anymore as the changes become smaller. (and my initial remark the above applies as well) By having too many releases we’ll have to deal with too many upgrade path issues and users will spread across different versions which will create an issue for maintainers who are supporting users -- one solution for this problem can be that we introduce a concept of LTS release that is either maintained by the community (which can be difficult) or some interested stakeholders, for users that would prefer upgrading everytime there is a new CloudStack release. Database upgrades need fixing. When we think on this all relevant scenarios need to be considdered; slow following users, bleeding edge users and developers. LTS in combination with forward merging of fixes seems to be the way to me. (as often said, not just by me;) -- Daan
Re: [DISCUSS] 4.6 release management
Before I rough draft anything, I just wanted to ask if we had voted on moving to git-workflow, and dropping the multiple release branch design. This seems like a significant change, and while good in many ways, it also seems that many users are seeking for point releases to their pet version and I'm not sure how they'll take to a response that they need to upgrade. Overall I think it will approve stability and focus our efforts, but have we had a vote around this change? On Sat, Apr 18, 2015 at 12:50 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-) -- Daan
RE: [DISCUSS] 4.6 release management
Sebastien, I am taking about the tests we have under test/integration/smoke folder. Not sure how the tests run through Travis, will try to understand. These are tests were run on a local cloudstack env. best, Raja -Original Message- From: Sebastien Goasguen [mailto:run...@gmail.com] Sent: Friday, April 17, 2015 1:14 PM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management On Apr 17, 2015, at 6:26 AM, Raja Pullela raja.pull...@citrix.com wrote: +1 for the Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release This should be a top priority along with keeping master stable - make sure BVTs are passing at 100% all the time. Raja, which BVT are you talking about ? AFAIK, all current tests run on all commits through Travis. Also if we can plan/target increasing test/BVT coverage, that will be super! Thanks, Raja -Original Message- From: Marcus [mailto:shadow...@gmail.com] Sent: Friday, April 17, 2015 4:35 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management storage plugin involve changes on Hypervisor code I know this is just an example, but at least on KVM side this is no longer true. Previously you had to implement a KVM-specific 'StorageAdaptor' that would run on the hypervisor, and register that with the agent code, but Mike and I added some reflection/annotation that allows for auto-detection of the adaptor upon Agent start up, so storage plugins can be completely self-contained now. They don't even have to be a part of our code base. There may be other parts of the code where we can do similar things to decouple if we can identify those points. Ideally, if someone has to modify core code to add their plugin it should only be because they are adding some new functionality *that core cloudstack needs to be aware of*, and that functionality should be added in a way that other plugins can also provide/implement it. Otherwise, they can always add new APIs specific to their appliance or product and leveraging data from cloudstack's db, all via plugin. They can add new global/zone/cluster configs and UI tools via plugin as well. On Thu, Apr 16, 2015 at 3:49 PM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-)
Re: [DISCUSS] 4.6 release management
From: Sebastien Goasguen run...@gmail.com Sent: Saturday, April 18, 2015 2:50 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. +1 on this. Ultimately this will be painful to start with, but it will pay dividends in the future with a much more stable (and tested) master, and hence future releases will be of higher quality. With stable (and frequent iterative) releases, there will be much less pressure to back port fixes/features, because the community will see taking a new release as low risk. - Si Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-) -- Daan
AW: [DISCUSS] 4.6 release management
Hi all, it is really hard for a newbie to follow all of your thought regarding this. Can somebody please explain it a little bit more? Thank you very much! Mit freundlichen Grüßen / With kind regards, Swen Brüseke -Ursprüngliche Nachricht- Von: Simon Weller [mailto:swel...@ena.com] Gesendet: Montag, 20. April 2015 15:24 An: dev@cloudstack.apache.org Betreff: Re: [DISCUSS] 4.6 release management From: Sebastien Goasguen run...@gmail.com Sent: Saturday, April 18, 2015 2:50 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. +1 on this. Ultimately this will be painful to start with, but it will pay dividends in the future with a much more stable (and tested) master, and hence future releases will be of higher quality. With stable (and frequent iterative) releases, there will be much less pressure to back port fixes/features, because the community will see taking a new release as low risk. - Si Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching. I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don't think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA'd branch time after time..a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have
Re: [DISCUSS] 4.6 release management
On Apr 18, 2015, at 8:36 AM, Marcus shadow...@gmail.com wrote: Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. +1 This just amounts to treating master now like a release branch. Getting back to PL suggestion, that means that any commit to master would be through a PR or MERGE request on the ML. Anything else will be reverted by the RM. Marcus, do you feel like writing down a little process for this and some dates that we can target. It would be nice to do this for 4.6. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-) -- Daan
Re: [DISCUSS] 4.6 release management
Have they diverged that much? Due to cherry-picking, I guess. Otherwise you should be able to do it cleanly. There's a good opportunity to do this next release. Instead of creating a release branch, we freeze master and start creating dev branches. On Fri, Apr 17, 2015 at 10:46 PM, Daan Hoogland daan.hoogl...@gmail.com wrote: We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-) -- Daan
RE: [DISCUSS] 4.6 release management
+1 for the Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release This should be a top priority along with keeping master stable - make sure BVTs are passing at 100% all the time. Also if we can plan/target increasing test/BVT coverage, that will be super! Thanks, Raja -Original Message- From: Marcus [mailto:shadow...@gmail.com] Sent: Friday, April 17, 2015 4:35 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management storage plugin involve changes on Hypervisor code I know this is just an example, but at least on KVM side this is no longer true. Previously you had to implement a KVM-specific 'StorageAdaptor' that would run on the hypervisor, and register that with the agent code, but Mike and I added some reflection/annotation that allows for auto-detection of the adaptor upon Agent start up, so storage plugins can be completely self-contained now. They don't even have to be a part of our code base. There may be other parts of the code where we can do similar things to decouple if we can identify those points. Ideally, if someone has to modify core code to add their plugin it should only be because they are adding some new functionality *that core cloudstack needs to be aware of*, and that functionality should be added in a way that other plugins can also provide/implement it. Otherwise, they can always add new APIs specific to their appliance or product and leveraging data from cloudstack's db, all via plugin. They can add new global/zone/cluster configs and UI tools via plugin as well. On Thu, Apr 16, 2015 at 3:49 PM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-)
Re: [DISCUSS] 4.6 release management
On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… IMHO, I think this would be a good step but I don’t think it goes far enough. This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-)
Re: [DISCUSS] 4.6 release management
On Apr 17, 2015, at 6:26 AM, Raja Pullela raja.pull...@citrix.com wrote: +1 for the Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release This should be a top priority along with keeping master stable - make sure BVTs are passing at 100% all the time. Raja, which BVT are you talking about ? AFAIK, all current tests run on all commits through Travis. Also if we can plan/target increasing test/BVT coverage, that will be super! Thanks, Raja -Original Message- From: Marcus [mailto:shadow...@gmail.com] Sent: Friday, April 17, 2015 4:35 AM To: dev@cloudstack.apache.org Subject: Re: [DISCUSS] 4.6 release management storage plugin involve changes on Hypervisor code I know this is just an example, but at least on KVM side this is no longer true. Previously you had to implement a KVM-specific 'StorageAdaptor' that would run on the hypervisor, and register that with the agent code, but Mike and I added some reflection/annotation that allows for auto-detection of the adaptor upon Agent start up, so storage plugins can be completely self-contained now. They don't even have to be a part of our code base. There may be other parts of the code where we can do similar things to decouple if we can identify those points. Ideally, if someone has to modify core code to add their plugin it should only be because they are adding some new functionality *that core cloudstack needs to be aware of*, and that functionality should be added in a way that other plugins can also provide/implement it. Otherwise, they can always add new APIs specific to their appliance or product and leveraging data from cloudstack's db, all via plugin. They can add new global/zone/cluster configs and UI tools via plugin as well. On Thu, Apr 16, 2015 at 3:49 PM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-)
Re: [DISCUSS] 4.6 release management
On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-) -- Daan
Re: [DISCUSS] 4.6 release management
Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-) -- Daan
Re: [DISCUSS] 4.6 release management
We heavily invested in code now on master. Not looking forward to backporting that. mobile dev with bilingual spelling checker used (read at your own risk) Op 17 apr. 2015 21:02 schreef Marcus shadow...@gmail.com: Well, would we just swap the last release branch with master? Master is the dev branch, and the last release is really what we have as a stable branch. On Fri, Apr 17, 2015 at 8:44 AM, Daan Hoogland daan.hoogl...@gmail.com wrote: On Fri, Apr 17, 2015 at 2:43 AM, Sebastien Goasguen run...@gmail.com wrote: On Apr 17, 2015, at 12:49 AM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. +1 We do need to realize what this means and be all fine with it. It means that if someone who is not RM directly commits to the release branch, the commit will be reverted. And that from the beginning of the branching… I agree and we can even go as far as reverting fixes that are cherry-picked in favour of merged forward. IMHO, I think this would be a good step but I don’t think it goes far enough. Agreed here as well but let's take the step while discussing further steps and not implement to much process as well This still uses a paradigm where a release is made from a release branch that was started from an unstable development branch. Hence you still need *extensive* QA. The problem here is that there is no stable point to fork from at the moment. We will get there and we shouldn't stop taking steps in that direction. If we truly want to release faster, we need to release from the same QA’d branch time after time….a release needs to be based on a previous release Basically, we need a rolling release cycle. That will have the added benefit to not leave releases behind and have to focus on backporting. Please comments :-) -- Daan
[DISCUSS] 4.6 release management
Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-)
Re: [DISCUSS] 4.6 release management
storage plugin involve changes on Hypervisor code I know this is just an example, but at least on KVM side this is no longer true. Previously you had to implement a KVM-specific 'StorageAdaptor' that would run on the hypervisor, and register that with the agent code, but Mike and I added some reflection/annotation that allows for auto-detection of the adaptor upon Agent start up, so storage plugins can be completely self-contained now. They don't even have to be a part of our code base. There may be other parts of the code where we can do similar things to decouple if we can identify those points. Ideally, if someone has to modify core code to add their plugin it should only be because they are adding some new functionality *that core cloudstack needs to be aware of*, and that functionality should be added in a way that other plugins can also provide/implement it. Otherwise, they can always add new APIs specific to their appliance or product and leveraging data from cloudstack's db, all via plugin. They can add new global/zone/cluster configs and UI tools via plugin as well. On Thu, Apr 16, 2015 at 3:49 PM, Pierre-Luc Dion pd...@cloudops.com wrote: Today during the CloudStackdays we did a round table about Release management targeting the next 4.6 releases. Quick bullet point discussions: ideas to change release planning - Plugin contribution is complicated because often a new plugin involve change on the core: - ex: storage plugin involve changes on Hypervisor code - There is an idea of going on a 2 weeks release model which could introduce issue the database schema. - Database schema version should be different then the application version. - There is a will to enforce git workflow in 4.6 and trigger simulator job on PullRequest. - Some people (I'm part of them) are concerned on our current way of supporting and back porting fixes to multiple release (4.3.x, 4.4.x, 4.5.x). But the current level of confidence against latest release is low, so that need to be improved. So, the main messages is that w'd like to improve the release velocity, and release branch stability. so we would like to propose few change in the way we would add code to the 4.6 branch as follow: - All new contribution to 4.6 would be thru Pull Request or merge request, which would trigger a simulator job, ideally only if that pass the PR would be accepted and automatically merged. At this time, I think we pretty much have everything in place to do that. At a first step we would use simulator+marvin jobs then improve tests coverage from there. Please comments :-)