Skip to content
Snippets Groups Projects
user avatar
Georges Racinet authored
d971d87a
History
Name Last commit Last update
heptapod
hgext3rd
.gitlab-ci.yml
.hgignore
.hgtags
MANIFEST.in
README.md
install-requirements.txt
pytest.ini
setup.py
test-requirements.txt

Heptapod Python components

build status tests coverage

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.