@Rohit: I think that the assumption that the API is always backwards compatible is dangerous as we know that in practice it is not always the case.
For example: In ACS 4.6 the `restartVPC` introduced a new parameter called `makeredundant`. Unfortunately, the default value for this parameter (if you don't specify) will be `true`. This means that if you built a script to `restartVPC` when you had ACS 4.4 (when the parameter did not exist) installed, and then you upgrade to say ACS 4.7 (through the correct upgrade path), your script will now break the expected VR functionality. When you attempt to restart your VPCs, because you have not upgraded your script to include the new parameter, it will automatically upgrade your VPCs to be redundant VPCs. This is a single example, but it illustrates the point. We can not assume that the API is always backwards compatible outright or we will run into problems. There has to be a mechanism in which we are able to know which versions of ACS a specific Marvin version supports. Your following alternatives are also interesting and make things much easier from a CI perspective... 1. Along with cloudstack deb/rpm packages, we also bundle/package Marvin library with each CloudStack version/branch/release. This would make it easier for anyone and the CI systems to do a apt/yum install cloudstack-marvin. 2. Presently, CI systems have issue of finding the running integration tests. This can again be solved by bundling the integration tests as a deb/rpm package that may be installed by the CI systems with a apt/yum install cloudstack-tests. The python based integration tests can then be installed and available at a known path and we may further include some helper/test-runner script that fires to run the tests, gather results and upload them back to Jenkins or other CI systems in some known way/format. *Will STEVENS* Lead Developer *CloudOps* *| *Cloud Solutions Experts 420 rue Guy *|* Montreal *|* Quebec *|* H3J 1S6 w cloudops.com *|* tw @CloudOps_ On Tue, Jul 19, 2016 at 1:04 PM, Rohit Yadav <rohit.ya...@shapeblue.com> wrote: > Thanks Syed, you've answered it well. Bharat, what Syed has described > captures the goal behind this effort. > > > I see the pros and cons with keeping Marvin within the repo, and if there > is a hesitation with splitting Marvin -- I propose another alternative: > > > 1. Along with cloudstack deb/rpm packages, we also bundle/package Marvin > library with each CloudStack version/branch/release. This would make it > easier for anyone and the CI systems to do a apt/yum install > cloudstack-marvin. > > > 2. Presently, CI systems have issue of finding the running integration > tests. This can again be solved by bundling the integration tests as a > deb/rpm package that may be installed by the CI systems with a apt/yum > install cloudstack-tests. The python based integration tests can then be > installed and available at a known path and we may further include some > helper/test-runner script that fires to run the tests, gather results and > upload them back to Jenkins or other CI systems in some known way/format. > > > I've presented two ways of reaching our goal to improve testing and ease > of integration with CI systems. Please share your thoughts on above ^^. > Thanks. > > > Regards. > > ________________________________ > From: Syed Ahmed <sah...@cloudops.com> > Sent: 19 July 2016 21:41:44 > To: dev@cloudstack.apache.org > Subject: Re: [VOTE] Split Marvin to its own repository > > I believe it will make CI much smoother. Right now marvin is tied to the > Cloudstack repo which was fine if all the integration tests were running > from Cloudstack build but we are now seeing much better CI approaches with > bubble and Trillian and having marvin in its own repo will facilitate that > even further. I think Rohit can answer this better but this is what I got > as a gist of the motive. > > Does that answer your question Bharat? > > -Syed > > > On Tue, Jul 19, 2016 at 9:14 AM, Bharat Kumar <bharat.ku...@accelerite.com > > > wrote: > > > Hi Rohit, > > > > > > what are we trying to achieve by moving marvin into a separate repo.? > > > > > > --Bharat. > > > > ________________________________ > > From: Raja Pullela <raja.pull...@accelerite.com> > > Sent: Tuesday, July 19, 2016 5:30:20 PM > > To: dev@cloudstack.apache.org > > Subject: Re: [VOTE] Split Marvin to its own repository > > > > Hi Rohit, > > > > same question as Rene has posted, impact on older releases – will have > > issues on older releases. I know that the older releases have marvin > code > > which can be used. Also, this will require changes on the CI side to > pull > > the correct repo for Marvin. > > > > +1, if Bharat can modify CI implementation to take care of this? > > > > best, > > Raja > > Senior Manager, Product Development > > Accelerate, www.accelerite.com,@accelerite<http://www.accelerite.com< > http://www.accelerite.com,@accelerite<http://www.accelerite.com> > > ,@accelerite> > > 2055, Laurelwood Road, Santa Clara, CA 95054, USA > > Phone: 1-408-216-7010 > > > > On 7/18/16, 3:14 PM, "Rohit Yadav" <bhais...@apache.org> wrote: > > All, > > > > Based on a recent discussion thread [1], I want to start a voting thread > to > > gather consensus around splitting Marvin from the CloudStack repository. > > > > On successful voting, we would extract and maintain Marvin as a separate > > library in a separate repository (example repository [2]) and various > > build/test systems such as Travis [3] can install it directly for usage > > with pip+git etc. > > > > Background: During the build process, a commands.xml generated to build > > apidocs is also used to generate CloudStack Cmd and Request classes are > > auto-generated, which is the only dependency why we needed Marvin and > > CloudStack together. The auto-generated cloudstackAPI module can be also > > generated against a live running CloudStack mgmt server which has api > > discovery (listApis) enabled. The integration tests will still be tied > to a > > branch and will remain withing the repository. A PR [3] was sent to show > > that we can still execute tests using this approach, and this would > finally > > allow us to build, release and use Marvin as an independent library. > > > > Vote will be open for 72 hours. > > > > For sanity in tallying the vote, can PMC members please be sure to > indicate > > "(binding)" with their vote? > > > > [ ] +1 approve > > [ ] +0 no opinion > > [ ] -1 disapprove (and reason why) > > > > [1] http://markmail.org/thread/kiezqhjpz44hvrau > > [2] https://github.com/rhtyd/marvin > > [3] https://github.com/apache/cloudstack/pull/1599 > > > > Regards, > > Rohit Yadav > > > > > > > > > > > > DISCLAIMER > > ========== > > This e-mail may contain privileged and confidential information which is > > the property of Accelerite, a Persistent Systems business. It is intended > > only for the use of the individual or entity to which it is addressed. If > > you are not the intended recipient, you are not authorized to read, > retain, > > copy, print, distribute or use this message. If you have received this > > communication in error, please notify the sender and delete all copies of > > this message. Accelerite, a Persistent Systems business does not accept > any > > liability for virus infected mails. > > > > > > > > DISCLAIMER > > ========== > > This e-mail may contain privileged and confidential information which is > > the property of Accelerite, a Persistent Systems business. It is intended > > only for the use of the individual or entity to which it is addressed. If > > you are not the intended recipient, you are not authorized to read, > retain, > > copy, print, distribute or use this message. If you have received this > > communication in error, please notify the sender and delete all copies of > > this message. Accelerite, a Persistent Systems business does not accept > any > > liability for virus infected mails. > > > > rohit.ya...@shapeblue.com > www.shapeblue.com > 53 Chandos Place, Covent Garden, London WC2N 4HSUK > @shapeblue > > > >