Skip to main content

Python components of the Heptapod server

build status tests coverage

Heptapod is the friendly fork of GitLab that brings Mercurial compatibility in. It is a system with multiple components, involving several programmation languages, notably Ruby, Go and Python.

The purpose of this package is to centralize all Heptapod Python code that is not (yet) in any other, more generic Python project (Mercurial, its extensions, general-purpose libraries…), and keep them in a high state of quality.

Scope and versioning policy

This Python project is not meant for anything else than being a component of the Heptapod server, nor is it the whole of Heptapod, only the parts that happen to be written in Python.

The interdependency with other Heptapod components is very tight, to the point that the requirements file of Heptapod releases usually completely pins this project. Starting with version 1.0.0 (for Heptapod 0.17), we are planning to follow semver rules (with PEP 440 for development versions).

Python 3 is fully supported since version 0.13.0, tested with 3.7 and 3.8.

Python 2 support is deprecated as of version 1.0.0. Only the testhelpers subpackage is fully supported for both Python versions, because it can be used for more general Mercurial related testing. Python 2 support will be dropped entirely when we will have a new home for testhelpers.

Development guide

Launching the tests

We have unit and integration tests with pytest, they'd be typically run in a virtualenv:

python 3 -m venv venv
source venv/bin/activate
./run-all-tests

We have a 100% coverage policy, that is enforced by run-all-tests and therefore by the continuous integration.

This full run takes about 20 seconds in our continuous integration, and usually less than that on developer workstations.

Workflow rules

We follow the Heptapod default workflow. Please make a topic, and submit a Merge Request.

Merge Request Pipelines have to pass, and 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.

Release files for heptapod 5.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for heptapod 5.5.3
File Size Uploaded
heptapod-5.5.3.tar.gz 120.1 kB Details

Release files / heptapod-5.5.3.tar.gz

Download URL heptapod-5.5.3.tar.gz
Size 120.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c982a371905dd21446efaa456e08bcdcd021b6353a751ef1d1ade2b697b50c10
BLAKE2b-256 checksum
How to use checksums
39e8f592fea8aa9080fb64208d66cad38930a85c19d2f316ee567d7d6c0318b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

5.5.3 This release

1 release file

5.5.2

1 release file

5.5.1

1 release file

5.5.0

1 release file

5.4.1

1 release file

5.4.0

1 release file

5.3.0

1 release file

5.2.2

1 release file

5.2.1

1 release file

5.2.0

1 release file

5.1.2

1 release file

5.1.1

1 release file

5.1.0

1 release file

5.0.5

1 release file

5.0.4

1 release file

5.0.3

1 release file

5.0.2

1 release file

5.0.1

1 release file

5.0.0

1 release file

4.8.1

1 release file

4.8.0

1 release file

4.7.7

1 release file

4.7.6

1 release file

4.7.5

1 release file

4.7.4

1 release file

4.7.3

1 release file

4.7.2

1 release file

4.7.1

1 release file

4.7.0

1 release file

4.6.0

1 release file

4.5.0

1 release file

4.4.1

1 release file

4.4.0

1 release file

4.3.0

1 release file

4.2.3

1 release file

4.2.2

1 release file

4.2.1

1 release file

4.2.0

1 release file

4.1.1

1 release file

4.1.0

1 release file

4.0.2

1 release file

4.0.1

1 release file

4.0.0

1 release file

3.1.0

1 release file

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

2.8.2

1 release file

2.8.1

1 release file

2.8.0

1 release file

2.7.3

1 release file

2.7.2

1 release file

2.7.1

1 release file

2.7.0

1 release file

2.6.5

1 release file

2.6.4

1 release file

2.6.3

1 release file

2.6.2

1 release file

2.6.1

1 release file

2.6.0

1 release file

2.5.3

1 release file

2.5.2

1 release file

2.5.1

1 release file

2.5.0

1 release file

2.4.0

1 release file

2.3.0

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.0

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.16.2

1 release file

0.16.1

1 release file

0.16.0

1 release file

0.15.3

1 release file

0.15.2

1 release file

0.15.1

1 release file

0.15.0

1 release file

0.14.4

1 release file

0.14.3

1 release file

0.14.2

1 release file

0.14.1

1 release file

0.14.0

1 release file

0.13.2

1 release file

0.13.1

1 release file

0.13.0

1 release file

0.12.4

1 release file

0.12.3

1 release file

0.12.2

1 release file

0.12.1

1 release file

0.12.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page