Skip to content
Snippets Groups Projects
Georges Racinet on mutations.racinet.fr's avatar
Georges Racinet authored
This is done by subclassing `GitHandler`, for now
adding `update_exportable_for_named_branches`, almost
identically.

The only functional difference is that named branches and
topics are always exported, i.e., not depending
on the value of `hg-git.export-named-branches`
687c6dd6
History
Name Last commit Last update
heptapod
hgext3rd
.gitlab-ci.yml
.hgignore
.hgtags
MANIFEST.in
README.md
install-requirements.txt
pytest.ini
run-all-tests
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.