You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Rohit Yadav <ro...@shapeblue.com> on 2016/06/28 11:40:35 UTC

[DISCUSS] Split Marvin to its own repository

All,


I've made few changes which allows for a standalone Marvin. We currently have Marvin in the CloudStack repository because of the 'cloudstackAPI' code generation that is done during build time. Marvin allows 'cloudstackAPI' to be generated at runtime if a URL end-point is provided.


Some of the known build/test environments such as Travis, Trillian (upcoming) [1], bubble [2] etc. have Marvin dependency that is tied to the repository/branch. By splitting Marvin apart, build/test environments such as Trillian can simply get Marvin, generate cloudstackAPI against a running mgmt server and then run Marvin based tests. This is useful as Trillian, bubble etc perform tests on CloudStack packages (rpm/deb) instead of the maven.


The only cons of this approach is that Marvin library (if split) will need to be backward compatible wrt tests and CloudStack versions, and looking at the core Marvin library history it seems Marvin from latest-master branch is backward compatible to at least 4.5.2 (tested today). (Note: integration tests may be still tied to branch/version).


As an experiment, in the following PR the marvin library is not installed from the maven build but rather after CloudStack mgmt server runs, we use the Marvin codegenerator to generate `cloudstackAPI` from the API end-point (unauthenticated, on port 8096): https://github.com/apache/cloudstack/pull/1599


As an example, here is the marvin library with git history use-able as a separate repository: github.com/rhtyd/marvin


Thoughts, comments?


Regards.


[1] https://github.com/shapeblue/Trillian

[2] https://github.com/MissionCriticalCloud/bubble-toolkit

[https://avatars3.githubusercontent.com/u/16591787?v=3&s=400]<https://github.com/MissionCriticalCloud/bubble-toolkit>

GitHub - MissionCriticalCloud/bubble-toolkit: Shared repo ...<https://github.com/MissionCriticalCloud/bubble-toolkit>
github.com
README.md Bubble Toolkit. This repository contains all tools used with so-called Bubbles. To setup a Bubble, follow the instructions here. This repo is available om ...



<https://github.com/shapeblue/Trillian>
[https://avatars3.githubusercontent.com/u/6001764?v=3&s=400]<https://github.com/shapeblue/Trillian>

shapeblue/Trillian<https://github.com/shapeblue/Trillian>
github.com
Trillian - flexible monkey powered CI/CD



rohit.yadav@shapeblue.comĀ 
www.shapeblue.com
53 Chandos Place, Covent Garden, London  WC2N 4HSUK
@shapeblue
  
 


Re: [DISCUSS] Split Marvin to its own repository

Posted by Rohit Yadav <ro...@shapeblue.com>.
All,


Since, we've no objections to the proposal and the PR proves that we have the advantage of splitting Marvin library from the repository as its own separate repository, I'll start a voting thread on the same next week.


Meanwhile, please do share if you see any issues with splitting the Marvin library from the repository. Thanks.


Regards.


________________________________
From: Wido den Hollander <wi...@widodh.nl>
Sent: 02 July 2016 22:01:45
To: Rohit Yadav; dev@cloudstack.apache.org
Subject: Re: [DISCUSS] Split Marvin to its own repository


> Op 28 juni 2016 om 13:40 schreef Rohit Yadav <ro...@shapeblue.com>:
>
>
> All,
>
>
> I've made few changes which allows for a standalone Marvin. We currently have Marvin in the CloudStack repository because of the 'cloudstackAPI' code generation that is done during build time. Marvin allows 'cloudstackAPI' to be generated at runtime if a URL end-point is provided.
>
>
> Some of the known build/test environments such as Travis, Trillian (upcoming) [1], bubble [2] etc. have Marvin dependency that is tied to the repository/branch. By splitting Marvin apart, build/test environments such as Trillian can simply get Marvin, generate cloudstackAPI against a running mgmt server and then run Marvin based tests. This is useful as Trillian, bubble etc perform tests on CloudStack packages (rpm/deb) instead of the maven.
>
>
> The only cons of this approach is that Marvin library (if split) will need to be backward compatible wrt tests and CloudStack versions, and looking at the core Marvin library history it seems Marvin from latest-master branch is backward compatible to at least 4.5.2 (tested today). (Note: integration tests may be still tied to branch/version).
>
>
> As an experiment, in the following PR the marvin library is not installed from the maven build but rather after CloudStack mgmt server runs, we use the Marvin codegenerator to generate `cloudstackAPI` from the API end-point (unauthenticated, on port 8096): https://github.com/apache/cloudstack/pull/1599
>
>
> As an example, here is the marvin library with git history use-able as a separate repository: github.com/rhtyd/marvin
>
>
> Thoughts, comments?
>

I would say it's a good thing. This way you can also have PRs for Marvin go through a different review then the primary CloudStack code.

I'd say +1 for splitting it into it's own repo.

Wido

>
> Regards.
>
>
> [1] https://github.com/shapeblue/Trillian
>
> [2] https://github.com/MissionCriticalCloud/bubble-toolkit
>
> [https://avatars3.githubusercontent.com/u/16591787?v=3&s=400]<https://github.com/MissionCriticalCloud/bubble-toolkit>
>
> GitHub - MissionCriticalCloud/bubble-toolkit: Shared repo ...<https://github.com/MissionCriticalCloud/bubble-toolkit>
> github.com
> README.md Bubble Toolkit. This repository contains all tools used with so-called Bubbles. To setup a Bubble, follow the instructions here. This repo is available om ...
>
>
>
> <https://github.com/shapeblue/Trillian>
> [https://avatars3.githubusercontent.com/u/6001764?v=3&s=400]<https://github.com/shapeblue/Trillian>
>
> shapeblue/Trillian<https://github.com/shapeblue/Trillian>
> github.com
> Trillian - flexible monkey powered CI/CD
>
>
>
> rohit.yadav@shapeblue.com
> www.shapeblue.com<http://www.shapeblue.com>
> 53 Chandos Place, Covent Garden, London  WC2N 4HSUK
> @shapeblue
>
>
>

rohit.yadav@shapeblue.comĀ 
www.shapeblue.com
53 Chandos Place, Covent Garden, London  WC2N 4HSUK
@shapeblue
  
 


Re: [DISCUSS] Split Marvin to its own repository

Posted by Wido den Hollander <wi...@widodh.nl>.
> Op 28 juni 2016 om 13:40 schreef Rohit Yadav <ro...@shapeblue.com>:
> 
> 
> All,
> 
> 
> I've made few changes which allows for a standalone Marvin. We currently have Marvin in the CloudStack repository because of the 'cloudstackAPI' code generation that is done during build time. Marvin allows 'cloudstackAPI' to be generated at runtime if a URL end-point is provided.
> 
> 
> Some of the known build/test environments such as Travis, Trillian (upcoming) [1], bubble [2] etc. have Marvin dependency that is tied to the repository/branch. By splitting Marvin apart, build/test environments such as Trillian can simply get Marvin, generate cloudstackAPI against a running mgmt server and then run Marvin based tests. This is useful as Trillian, bubble etc perform tests on CloudStack packages (rpm/deb) instead of the maven.
> 
> 
> The only cons of this approach is that Marvin library (if split) will need to be backward compatible wrt tests and CloudStack versions, and looking at the core Marvin library history it seems Marvin from latest-master branch is backward compatible to at least 4.5.2 (tested today). (Note: integration tests may be still tied to branch/version).
> 
> 
> As an experiment, in the following PR the marvin library is not installed from the maven build but rather after CloudStack mgmt server runs, we use the Marvin codegenerator to generate `cloudstackAPI` from the API end-point (unauthenticated, on port 8096): https://github.com/apache/cloudstack/pull/1599
> 
> 
> As an example, here is the marvin library with git history use-able as a separate repository: github.com/rhtyd/marvin
> 
> 
> Thoughts, comments?
> 

I would say it's a good thing. This way you can also have PRs for Marvin go through a different review then the primary CloudStack code.

I'd say +1 for splitting it into it's own repo.

Wido

> 
> Regards.
> 
> 
> [1] https://github.com/shapeblue/Trillian
> 
> [2] https://github.com/MissionCriticalCloud/bubble-toolkit
> 
> [https://avatars3.githubusercontent.com/u/16591787?v=3&s=400]<https://github.com/MissionCriticalCloud/bubble-toolkit>
> 
> GitHub - MissionCriticalCloud/bubble-toolkit: Shared repo ...<https://github.com/MissionCriticalCloud/bubble-toolkit>
> github.com
> README.md Bubble Toolkit. This repository contains all tools used with so-called Bubbles. To setup a Bubble, follow the instructions here. This repo is available om ...
> 
> 
> 
> <https://github.com/shapeblue/Trillian>
> [https://avatars3.githubusercontent.com/u/6001764?v=3&s=400]<https://github.com/shapeblue/Trillian>
> 
> shapeblue/Trillian<https://github.com/shapeblue/Trillian>
> github.com
> Trillian - flexible monkey powered CI/CD
> 
> 
> 
> rohit.yadav@shapeblue.com 
> www.shapeblue.com
> 53 Chandos Place, Covent Garden, London  WC2N 4HSUK
> @shapeblue
>   
>  
>