Why ShiningPanda?
There are lots of tools available out there to help with continuous integration: Jenkins CI, Bamboo, Buildbot, etc. Some if them are really awesome, but all of them require to do quite a bit of setup.
To get started, you need to setup:
- a server with your target Operating System,
- a build environment, which often means installing one or several versions of Python, distribute and virtualenv.
Repeat these two steps for each additional OS/environment, and don't forget to keep everything up to date!
On top of that you need to actually setup the Continuous Integration server that you want to use, set it up to work with Python, and keep it up to date, too.
And that's just about setting up the tools, you aren't even touching your project yet.
We got tired of all this. Really, writing relevant tests and setting up the right integration steps for a project is hard enough that you shouldn't have to care about figuring out how to install Python 3.2 on a box that was last updated two years ago.
Hence ShiningPanda: our goal is to remove everything that stand between your project and testing it. All the boilerplate setup that needs to be done just to run those goddamn tests is our problem, so that you can focus on your project instead.
So how do we do that exactly?
Build Environments
We setup a default Linux build environment with all that is required to get started very quickly: all Python versions, virtualenv, etc. PyPy is coming soon, Jython and Iron Python should follow a little bit later.
But that's not all. Linux is awesome, but MacOS X, FreeBSD and Windows are coming too, so that you can test your projects on all platforms.
Jenkins CI
Another thing we did is to tweak Jenkins to work very well with Python. We added a couple of plugins, the main one being VirtualEnv Builder. VirtualEnv Builder allows you to test your project in a clean virtualenv for every single build.
So from now on just focus on your project, ShiningPanda takes care of the rest.