There's NumFOCUS money for CI -- also for the work used to configure and
running it etc.
It would not be only for Cython, but for open source scientific Python
(Cython, NumPy, SciPy etc.). So if anybody would like to work up to 50%
time on that (or perhaps just want to work for some weeks with setting
up a CI system that can be shared by said projects) then please get in
touch with Travis and NumFOCUS (see thread below).
Some context:
There's been heavy discussion on the NumFOCUS list on identifying a
"core subset" of packages (Cython+NumPy+SciPy+Pandas+...) that could be
tested and promoted together [1].
I started a discussion [2] to try to divert the question of CI-ing that
core subset in the usual way ("release managing a software
distribution") to instead be about giving those resources to the open
source projects involved, so that there's not duplicate work in doing
the CI-ing.
Of course, Cython is in better standing than most already on the CI
front thanks to Stefan and the Sage project, but the fact that the work
is paid for may perhaps make it more appealing.
Full threads:
[1] https://groups.google.com/forum/?fromgroups#!topic/numfocus/MnRzBhmqXqk
[2] https://groups.google.com/forum/?fromgroups#!topic/numfocus/I_kmL4FUGaY
Dag
-------- Original Message --------
Subject: Re: Continuous integration
Date: Mon, 28 May 2012 13:47:52 -0500
From: Travis Oliphant <teoliph...@gmail.com>
Reply-To: numfo...@googlegroups.com
To: numfo...@googlegroups.com
On May 28, 2012, at 1:27 PM, Dag Sverre Seljebotn wrote:
On 05/28/2012 05:55 PM, David wrote:
On Sunday, May 27, 2012 3:05:06 AM UTC+9, Dag Sverre Seljebotn wrote:
That Other Thread contained some references to CI. So I'm mainly
wondering what the current NumFOCUS plans for supporting CI efforts
are,
if any? Was there a mention on money being available for somebody to
work on that?
I think of Cython as one vertex in a CI graph:
a) Upstream, Cython depends on various versions of NumPy and Python as
part of its CI
b) Downstream, we rely on building and testing Sage as an extended
regression test suite. It's not just that our test suite doesn't have
100% coverage, but also sometimes that we intentionally break backwards
compatibility, and fixing up Sage gives a nice indication of the
consequences of a change. (I imagine NumPy is in a very similar
situations with lots of libraries depending on it and potential for
very
subtle breakage of backwards compatibility.)
Ideally, we'd have LOTS of libraries using Cython in our CI -- mpi4py,
Pandas, scikits-learn... BUT, we're running into problems as it is with
the CI server hardware keeping up (if there was infinite CI there'd
probably be a lot more tests set up).
Since most scientific-python libraries have both dependencies and
dependees, it seems like there should be some benefit to having the
same
CI system test all of them. That could conserve both hardware use and
administration overhead. And, which I believe is very important,
make it
easier for small projects like scikits-sparse to participate in
automatic CI by simply participating in an environment maintained by
the
larger projects like Cython and NumPy.
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 know I prefer 2 as well. I know of at least one attempt of doing
something like this (linux-only, though): the build service from open
suse (http://www.open-build-service.org/). 4 years ago, it could already
do useful bits that are not trivial in any CI I am aware of:
- dependencies between packages is known: if you update the build
service package numpy, and the build is successful, it will
automatically rebuild all the dependent packages
- it handles completely isolated build environments through vms
- it produces rpm, debian, etc.. that can be easily installed in the
supported distributions.
My ideal setup would be something like this, but working on windows and
mac (and not developed in perl), and with easier set up ala travis CI. I
don't know yet the best way to go there: is is based on existing
infrastructure (jenkins, travis, something else), building our own, a
hybrid between the two ?
What I was imagined was really something very simple (and I put it too
convoluted). Just have NumFOCUS cash out :-) for one or more servers, then give
everybody who wants shell access to a shared CI instance (running Jenkins or
whatever).
This sounds like a great plan. NumFOCUS can provide for this. We
will just need a budget and board approval (but I suspect the board will
be happy to approve this kind of plan).
So, who wants to spec out the machine? There is some money. The
problem is actually a people problem. Who is going to be available to
do the work. So, far, I have not been able to find anyone experienced
who is willing to work on this stuff at 50% time.
If you are willing, let me know in a private email or an email to
ad...@numfocus.org
Best,
-Travis
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel