Heptapod Python components
The purpose of this package is to centralize all Python bits that are specific to Heptapod and keep them in a high state of quality.
This package is for now Python 2 only, meaning in particular that Python 3 utilities, such as the migration scripts are not hosted here yet.
We will migrate to Python 3 in one shot when Mercurial and hg-git do.
Development guide
Launching the tests
We have unit tests with py.test
, they'd be typically run in a virtualenv.
virtualenv -p python2 venv
venv/bin/pip install -r install-requirements.txt -r tests-requirements.txt
venv/bin/pytest
Note: relying on virtualenv activation to run the tests simply as pytest
has
been playing tricks with us, but the direct form above worked in all cases
Workflow rules
We follow the Heptapod default workflow. Please make a topic, and submit a Merge Requests.
Merge Request Pipelines have to pass, an coverage to stay at 100% for the MR to be technically acceptable – we can help achieving these results, it's not mandatory for submitting MRs and gather some feedback.
Contents
WSGI serving of repositories
Provided by heptapod.wsgi
(not fully independent yet)
Mercurial Hooks
heptapod.hooks.check_publish.check_publish
:
permission rules about public changesets in pushes.
heptapod.hooks.git_sync.mirror
:
synchronisation to inner auxiliary Git repository for exposition to GitLab
heptapod.hooks.dev_util
: useful hooks for debug and development
Mercurial extension
The heptapod
extension will provide specific commands and generally everything
that should be done with full access to Mercurial internals.