Hi everyone, Right now cloudmonkey, a command line interface and interactive shell [0] for CloudStack (in tools/cli) is being released independently on cheese shop [1]. This is a proposal of how we can release it. Let me start by giving some background;
I started writing cloudmonkey because I wanted a cli and due to a jira issue [2]. It was written in Python because instead of starting from complete scratch I based it top of marvin which was written in Python and some text book functional programming tricks that generates closures or handlers for the shell on the fly used for autocompletion for 300+ apis etc. It has a build dependency on marvin (which depends on apidoc, which depends on cloudstack build targets => indirectly cloudmonkey depends on CloudStack codebase) therefore I did not develop this in a separate repo but within the codebase. Why we should not separate cloudmonkey: CloudStack itself is collection of a lot of plugins (hypervisor, acl, network), tools/extras (apidoc, cli, devcloud, marvin etc.) and add ons (though tightly coupled now, ex. ssvm, cpvm, router-vm etc.). If all these things are decided by the community to be separated out of the codebase as separate git repos, then we should separate out cloudmonkey as well. Proposal to release cloudmonkey: - Make cloudmonkey as the official CLI [2] as there is no other known and working CLI. - The version on cloudmonkey release should reflect the version of CloudStack for which it was released or found to work with. Proposed name-version syntax is: cloudmonkey-<CloudStack version>-<cloudmonkey counter, a build number starting 0> For example for 4.1.0 it would be, cloudmonkey-4.1.0-0. - The counter starts at 0 which would be the release that started with a CloudStack release, the increments of which would be hosted on pypi. Think this way, the official tar ball is available from apache.org but users installs from community maintained distribution place which is pypi for our case, just like we distribute source tarballs from apache.org but we've apt/yum repos as well which are community maintained (someone in the community maintains that). - The release cycles for cloudmonkey may be frequent, in that case it does not make sense to release it along with CloudStack only. So, the proposal is to release the 0 (gold) version (cloudmonkey-4.1.0-0 for ex.) along with CloudStack and host src on both pypi and apache.org and keep doing community releases on pypi i.e. voted and approved by community with a very fast release cycle and small voting window (say only 24 hours) - Who can release? Any committer, PMC member is welcome to join the pypi project as an admin/owner. On apache.org it would be the PMC members at the time of CloudStack releases. Suggestions, comments welcome. Regards. [0] https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+cloudmonkey+CLI [1] http://pypi.python.org/pypi/cloudmonkey [2] https://issues.apache.org/jira/browse/CLOUDSTACK-132