[codeface] CI and Installation procedure

  • From: Matthias Dittrich <matthi.d@xxxxxxxxxxxxxx>
  • To: codeface@xxxxxxxxxxxxx
  • Date: Thu, 23 Oct 2014 18:48:49 +0200

Hello,

As already discussed with Mitchell here some recommendations to improve the user experience of codeface, stabilize the codebase and improve the installation procedure. Which in turn should lower the barrier for potential contributors to actually contribute.


1. I highly recommend writing some kind of install script to install all dependencies of codeface, the documentation could just reference this script. (Currently the documentation is nothing more as some install commands). If somehow possible the script should be able to run with normal (not root) rights and install all dependencies in a folder or something like that.

2. To make sure this script works and is up-to-date use travis (or any other CI)

3. With travis available and all dependencies installed with the script unit tests should be able run (this will ensure the codebase stabilizes over time)


Some thoughts:
You will need the install script anyway when using any CI, so why not make it part of the documentation (and usable by the end user / developer).

Travis should work fine with codeface, but it will require some effort to get python and R work together, then running the script and unit tests should be straightforward. And how to handle the mysql dependency could be an issue?

Travis can be integrated with github, and will automatically run for all pull requests (this will make it easier for contributors to quickly check if everything is OK).

Later an additional CI like AppVeyor can be added when Windows support should be added and maintained. (AppVeyor can also be integrated in github)

Both provide build icons which can be integrated in the documentation (or the readme.md) to show that everything works on the master branch.

Maybe as some general integration test run codeface on itself (with various configurations) as part of the *testing procedure* (maybe its time to do some dogfooding?). (Ignore the results for now just make sure everything finishes without error).

Best regards,
 Matthias

Other related posts: