blob: cd43850a5f1721d86731ee968ad4130de82dc6c6 [file] [log] [blame]
Introduction
============
Following discussions during the Vancouver OpenStack summit about the
level of technical debt of patches in packages, the prototyped tools
were created to explore these ideas.
Each package has a score which is the sum of the scores from each
patch using the following rules:
* Not submitted upstream -> +200
* Abandoned upstream -> +150
* Not merged upstream -> +20
* Merged upstream -> +10
* Cherry-picked upstream -> +10
* Do not pass Jenkins -> +50
* Got a +2 -> -10
* Lowest vote is -2 -> +100
* Lowest vote is -1 -> +50
* Lowest vote is +1 -> -5
* Difference to upstream patchset is null -> 0
* Difference to upstream patchset is small -> +10
* Difference to upstream patchset is big -> +100
For not gerrit managed project (mainly outside of OpenStack), the tool
tries to follow upstream submission using cherry-pick comments so it's
less precise.
Actions
=======
Actions that can be taken to lower the scores:
* be sure to have the Change-Id or cherry picked comment present.
* make the patchsets pass Jenkins.
* make the patchsets merged.
* use the current patchset when the patchset evolved in the review.
How it works
============
``extract.sh`` does the following in sequence:
* extract files from the src.rpm using rpm2cpio
* for each patch lookup the ``Change-Id:`` or the ``cherry picked from
commit`` string.
* if patch is cherry-picked or in review, extract the patch from the
git of the project using the id.
* compute an interdiff between the patches from the package and from
the git repo.
* use diffstat to store statistics about the interdiff.
* if the patch is in review, extract the json info from gerrit.
``score.py`` computes a score from the review json and the interdiff
stats and generate HTML output on stderr.
You can use ``run.sh`` to download packages and then process them
through ``extract.sh`` and ``score.py``.
How to contribute
=================
We are not using PR from github but the review system from Software
Factory at http://softwarefactory-project.io/. So feel free to
submit reviews.