I think there's two ways of spinning this:
1) Build "Sciome" in a CI and approach it by "release managing" Sciome
2) Focus on providing "infrastructure for library developers", where there's a relatively big CI graph where each project has a node. I.e. something like "ShiningPanda for scientific Python", but with a critical difference being that each project can use the build artifacts of others; Cython would flip a switch and have all projects depending on Cython being rebuilt to try the new Cython version. This seems complicated, but certainly Jenkins for one seems to support such setups already so its mainly about hardware and administration...
I know I get a lot more excited by 2) than 1), even if it's perhaps mainly the spin put on it rather than a technical difference. I guess I worry that 1) would tend to duplicate the CI administration work already done by Cython in its own CI, but Cython would then still have to do CI on Sage servers.
Dag
On Sun, May 27, 2012 at 2:04 PM, Anthony Scopatz <> wrote:
> On Sat, May 26, 2012 at 1:05 PM, Dag Sverre Seljebotn
> <> wrote:
>
> [snip]
>
>>
>> I think there's two ways of spinning this:
>>
>> 1) Build "Sciome" in a CI and approach it by "release managing" Sciome
>>
>> 2) Focus on providing "infrastructure for library developers", where
>> there's a relatively big CI graph where each project has a node. I.e.
>> something like "ShiningPanda for scientific Python", but with a critical
>> difference being that each project can use the build artifacts of others;
>> Cython would flip a switch and have all projects depending on Cython being
>> rebuilt to try the new Cython version. This seems complicated, but certainly
>> Jenkins for one seems to support such setups already so its mainly about
>> hardware and administration...
>>
>> I know I get a lot more excited by 2) than 1), even if it's perhaps mainly
>> the spin put on it rather than a technical difference. I guess I worry that
>> 1) would tend to duplicate the CI administration work already done by Cython
>> in its own CI, but Cython would then still have to do CI on Sage servers.
>
>
> I am also in favor of (2). It seems to be a better representative of real
> world build environments than (1). That is, (1) would only be
> fully representative if 'sciome' had perfect market penetration, which is
> unrealistic. Furthermore, forcing CI, documentation, etc standards to be
> dependent on the meta-package seems a bit off since they can be
> orthogonal efforts.
>
> Additionally, I think if a project (like Cython or something domain specific
> like yt or PyNE) wants to adopt the CI facilities provided, there is some
> amount of work that should be expected. Cython might have more to do here
> than others but I think we all have a similar set of concerns....
>
> Be Well
> Anthony
>
>>
>>
>>
>> Dag
>
>
The only place I saw support being offered thus far was for a build
engineer. It seems to me that one really needs to nail down what
"Sciome" is doing before we are able to launch a CI service for it.
I think just getting something like ShiningPanda to host a set of
testing structures so that devs can have a peek into how a library is
interacting with others is important. Figuring out how to spell the
version number you are testing against is also important which may be
why this thread is empty and "That Other Thread" is so full.
One issue I have found with such CI efforts is getting something
getting a nice balance between useful "you've broken the build"
messages when there is a genuine breakage that will postpone release,
and the usual noise of a dev team checking in broken code. My
recommendation would be for the "Sciome" solution to be only testing a
few branches from each project (something like a stable and a dev),
but to limit the number of tests for each one (as in not every
checkin). Then each project can have its own CI solution that checks
at a finer grain.
It would be good if it could also be engineered in a way that a
project could grab the test suite (AMI, disk image, or whatever) and
have their finer grained testing run in it. This way supporting Dag's
requirement of doing both upstream and downstream testing.
-- Andy