How to make a release of PRoot?
===============================

This document summarizes checks that must be performed before
releasing PRoot or CARE.

Checks
------

+ Sanity checks:
  * on ARM and *all* OBS distros (x86 and x86_64): `make -C test`
  * on x86_64, with *and* without seccomp:
    - `make -C tests` on *all* OBS distros
    - `make -C tests memcheck`
    - `CFLAGS=-fsanitize=address LDFLAGS=-lasan`
    - `make -C tests V=1 2>&1 | grep talloc`

+ Fonctional checks: no regressions must appear with respect to
  tests/validation.mk and to the configurations tested in the previous
  release (`git show tags/...`).

+ Performance checks: the following command must not suffer from
  unexpected performance regression::

    time proot -R / perl -e 'system("/usr/bin/true") for (1..10000)'

  where "/usr/bin/true" is a symlink to "/bin/true".

+ Static analysis: Coverity Scan and Clang Scan Build must not report
  new issues.


Documentation Update
--------------------

0. update "doc/changelog.txt"

1. update the release number in "doc/proot/manual.txt"

2. regenerate the documentation: `make -C doc; cp doc/proot.1
   doc/proot/man.1`

3. regenerate the command-line interface: `cp doc/*.h
   src/cli/; $EDITOR src/cli/{proot,care}.h`

4. upload the generated RPM .spec file to OBS
