Skip to main content

Heptapod server-side Mercurial hooks, extension, etc.

Project description

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 they share common version numbers and tags and that using this Python project in an Heptapod server with even a slight version mismatch is expected to fail at this point.

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 test-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 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.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

heptapod-0.15.2.tar.gz (57.7 kB view details)

Uploaded Source

File details

Details for the file heptapod-0.15.2.tar.gz.

File metadata

  • Download URL: heptapod-0.15.2.tar.gz
  • Upload date:
  • Size: 57.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.5

File hashes

Hashes for heptapod-0.15.2.tar.gz
Algorithm Hash digest
SHA256 a44d9b005c523c75b2b80252cad55668f3dd4e66c77ad486493632c9466ebd42
MD5 e35ac7c4acfea12b979b31b293ef3f54
BLAKE2b-256 89c15d04246dbe5bd2cb3c6855b8a24c5ca6c51d9d16a94d7f16bdefd951c1f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page