Guidelines

This section describes guidelines that shall be followed.

Bash commands are assumed to be executed from the root directory of the repository.

Deliver on an integration branch

  1. Check licence headers:

    repo-checklicenseheaders
    

    There should be no error. Fix headers if needed. If files have been modified, commit them (probably with the --amend option).

  2. Check typings:

    ./tools/checktypes.py
    

    There should be no error. Fix things if needed. If files have been modified, commit them (probably with the --amend option).

  3. Check tests:

    Check test data is up-to-date:

    ./tools/updatetestdata.py
    
    ./test/run-unit-campaign.py
    

    There may be warnings, but no errors.

  4. Check documentation:

    1. Generation the documentation:

      rm -rf ./doc/html/
      ./tools/mkdoc.py
      

      Check the ‘mkdoc.py’ output log errors and warnings:

      • There may be TODO warnings, especially for sections that still have to be documented.

      • There may be warnings for “duplicate object” (see issue #25)

      There shall be no other errors.

    2. Check the HTML output in ‘doc/html/’:

      Check the pages that use the .. literalinclude:: directive with the :lines: option (following list established as of version v0.2.0):

      • advanced.config-db.html

      • advanced.handlers.html

      • advanced.launcher.html

      • advanced.logging.html

      • advanced.subscenarios.html

      • advanced.test-libs.html

      • quickstart.html

  5. Check files encoding:

    Check all files use utf-8 encoding and unix end-of-line characters, and have the appropriate permissions:

    repo-checkfiles --all
    

    If files have been modified, this should be minor modifications. Check line encoding modifications with git diff -b. Commit the modifications (probably with the --amend option).

Deliver a new version

  1. Merge on the master branch:

    git checkout master
    git merge --squash --ff-only int/vX.Y.Z+
    

    Update the commit message, then:

    git commit
    
  2. Check the scenario version stored in the code:

    Check the version tuple defined in ‘src/pkginfo.py’.

    If files have been modified, commit them (probably with the --amend option).

  3. Apply delivery checking as described before.

  4. Update the documentation:

    Check the copyright and version variables in ‘tools/conf/sphinx/conf.py’.

    Regenerate the documentation:

    rm -rf doc/html/
    ./tools/mkdoc.py
    

    Commit modifications (with the --amend option).

  5. Add a tag on the final node:

    git tag vX.Y.Z
    
  6. Push on the github repository:

    git push
    git push vX.Y.Z
    
  7. Configure readthedocs:

    Go to the readthedocs project page.

    Configure a build for the new version, and set it as the default.