We have put up a wiki(initial cut\draft), will add more information once time 
permits

https://cwiki.apache.org/confluence/display/CLOUDSTACK/New+Infrastructure,CI,Simulator,Automation+Changes

Thanks!
Santhosh
________________________________________
From: Alex Huang [alex.hu...@citrix.com]
Sent: Thursday, May 15, 2014 5:01 PM
To: dev@cloudstack.apache.org
Subject: RE: [PROPOSAL] Using continuous integration to maintain our code 
quality...

> On Wed, May 14, 2014 at 06:21:34PM +0000, Alex Huang wrote:
> > I think infrastructure code should just be checked in with the source
> > code.  To separate it means you have to deal with version
> > match/mismatch between infrastructure and source code.
>
> Sorry - that doesn't sound right. Usually infrastructure code has little to do
> with the source code other than deploying the packages built from said
> source. Could you please clarify the bits that go into this infra code and 
> why it
> should be affected by versions? [*] If it's config management recipes those
> are usually maintained separate from source of your web-tier. Infra code is
> maintained and changed usually more rapidly. I don't get why jenkins
> settings and config management should exist within our catch-all tools dir.
> We're going to bloat it up unnecessarily and realise later it should have been
> a separate repo to begin with - for eg. cloudmonkey or marvin.

Let me put out what I consider as a requirement.  The requirement is any 
changes in framework, infrastructure, configuration, recipes, scripts, source 
code, marvin, etc, cannot affect CI that has been established on released 
branches.  You have to look at CI like build for source code.  When a release 
is done, you take a label or a branch and you're fairly certain it will build 
again.  CI has to be the same, I might have shut it down for a release for a 
while but if I have to dust it off, I have to be fairly certain it runs again 
without a lot of debugging.  Now if there are well established components, like 
Jenkins or Mysql that we can just specify the version # like we do with maven 
in build, then it's fine not to include it in the source tree.  But if the 
components used by CI is not a well versioned independent entity, then we 
should include it in the source tree and branch it with the release or risk CI 
breaking for that release.  For things like this, I rather not guess too 
optimistically about the chances.  We have to treat CI running on released 
branches to be like production systems.  The best thing to do for a production 
system that works is to don't let anyone touch any part of it, as any ops guy 
will tell you.

>
> [*] the wiki did not have enough information about the infra-code

It's not intended to.  The wiki is meant to provide what developers and testers 
should do.  It's not to explain the infrastructure code.  I'm sure Santhosh and 
others will document what they've done and how others can take advantage.

--Alex

Reply via email to