[codeface] Re: CI and Installation procedure

  • From: Wolfgang Mauerer <wm@xxxxxxxxxxxxxxxx>
  • To: codeface@xxxxxxxxxxxxx
  • Date: Mon, 17 Nov 2014 21:09:23 +0100

Dear Matthias,

thanks for sharing your thoughts, this is very helpful.

Am 23/10/2014 18:48, schrieb Matthias Dittrich:
> 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).
that's basically right. Unfortunately, the experience may vary depending
on the base distribution used. Our documentation is focused on recent
Ubuntu versions; for other distributions, package names vary,
dependencies are slightly different and so on. Most likely, we would
need one base script plus distribution specific additions.

Building R packages is especially problematic since their dependencies
are usually only implicitly documented, albeit we've discusses this
topics in different posts.

> 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.
right. To add one more requirement, it should also be possible to
operate different Codeface deployments on a single machine.
> 
> 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)

again agreed. We just need to find time and manpower to do this ;)
> 
> 
> 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).
that sounds like a very interesting feature.
> 
> 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).

analysing codeface with codeface is currently only possible to a very
limited extent because ctags does not support R, and the history is
not long (and especially not varied) enough to produce interesting
signed-off networks. It goes without saying that it's a bit ironic that
Codeface cannot properly analyse itself. On the other hand, codeface is
directed at projects with 10s to 100s to thousands of developers, and
a doubt it a bit that we will every reach this size. Albeit it would
be nice to :)

Thanks & best regards, Wolfgang
> 
> Best regards,
>  Matthias
> 

Other related posts: