Ensure that the proper b4j version is used

We need to patch b4j in some places, which is indicated by
the string -codeface that's attached to the package by the
changes. Ensure that we pick the proper variant to build the
bug extractor.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Fix bug extractor help message

Command line options have been aligned with the rest
of prosoda in 450339997a5f, reflect this in the help text.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Create directory infrastructure for not-yet-upstreamed patches

Sometimes, codeface needs to patch dependent projects. While
our goal is to integrate all requires changes in the upstream
repository, this can take some time. Add a directory that
collects patches that are not yet integrated upstream.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Add patches for b4j

These are not integrated into the upstream project. See the
commit description of the individual patches what they are
good for.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Update bugextractor installation instructions

The installation instructions were still incomplete, address
some deficiencies. Also describe how to prepare the sources
with the patches in patches/b4j.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Helper function: Get time-ordered list of commit hashes

Introduce two new helper functions that query the database
to obtain a (committer-)time ordered list of all commit hashes
falling into a given release range.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Add helper functions to call external commands from R

do.system.raw() takes a string interpreted as command line
and executes it, while do.system() makee some effort to find
the proper executable.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
ID service: Announce trace log level to the public

The id service support a very verbose log level ("trace"), but
it is not included in the command line help. Do so.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
ID service: Systematically quote mysql input strings

The node::mysql module provides proper ways of quoting
input strings for mysql, so use them instead of doing the
job manually.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Fix shiny server default configuration

We're codeface now.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Add a sloccount interface

sloccount can be used on project source trees to infer various
measures based on the COCOMO II model, in particular estimates
on the required development effort and its cost.
Additionally, it provides a guess of which languages the project
is composed of.

Introduce an interface to parse the output of sloccount and
present the data in a more regular form.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Ignore tarballs in the source directory

When preparing nodejs and the shiny servers sources, intermediate
tarballs come into existence in the source directory. We're not
interested in tracking them.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Add helper functions to deal with incremental time series

Some time series are expensive to compute, so we need ways to
update them incrementally when new release ranges are added
to a project (by default, most time series are computed during
the global analysis pass for the whole history). To enable
such updates of the database, add functions to query a plot ID
if it already exists, or add a new one if it doesn't.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>
Augment schema with a table for sloccount information

We record various sloccount metrics in a time-resolved manner.
Add a new table to store the "raw" data like total cost
or development effort. Subsequent analysis steps can use this
information to create traditional univariate time series
from these data.

Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com>