heptapod


Nameheptapod JSON
Version 4.7.0 PyPI version JSON
download
home_pagehttps://foss.heptapod.net/heptapod/py-heptapod
SummaryHeptapod server-side Mercurial hooks, extension, etc.
upload_time2024-05-01 15:38:26
maintainerNone
docs_urlNone
authorGeorges Racinet
requires_pythonNone
licenseGPLv2+
keywords hg mercurial heptapod gitlab
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Python components of the Heptapod server

[![build status](https://foss.heptapod.net/heptapod/py-heptapod/badges/branch/default/build.svg)](https://foss.heptapod.net/heptapod/py-heptapod/commits/branch/default)
[![tests coverage](https://foss.heptapod.net/heptapod/py-heptapod/badges/branch/default/coverage.svg)](https://foss.heptapod.net/heptapod/py-heptapod/commits/branch/default)

[Heptapod](https://heptapod.net) 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](https://semver.org) 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](https://foss.heptapod.net/heptapod/heptapod/-/issues/353) 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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://foss.heptapod.net/heptapod/py-heptapod",
    "name": "heptapod",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "hg mercurial heptapod gitlab",
    "author": "Georges Racinet",
    "author_email": "georges.racinet@octobus.net",
    "download_url": "https://files.pythonhosted.org/packages/07/89/43786dce891f3e09db11123abcd6d13893d5c3a9e863d9a56db62474b40a/heptapod-4.7.0.tar.gz",
    "platform": null,
    "description": "# Python components of the Heptapod server\n\n[![build status](https://foss.heptapod.net/heptapod/py-heptapod/badges/branch/default/build.svg)](https://foss.heptapod.net/heptapod/py-heptapod/commits/branch/default)\n[![tests coverage](https://foss.heptapod.net/heptapod/py-heptapod/badges/branch/default/coverage.svg)](https://foss.heptapod.net/heptapod/py-heptapod/commits/branch/default)\n\n[Heptapod](https://heptapod.net) is the friendly fork of GitLab that brings\nMercurial compatibility in. It is a system with multiple components, involving\nseveral programmation languages, notably Ruby, Go and Python.\n\nThe purpose of this package is to centralize all Heptapod Python code that is\nnot (yet) in any other, more generic Python project (Mercurial, its extensions,\ngeneral-purpose libraries\u2026), and keep them in a high state of quality.\n\n## Scope and versioning policy\n\nThis Python project is not meant for anything else than being a component of\nthe Heptapod **server**, nor is it the whole of Heptapod, only\nthe parts that happen to be written in Python.\n\nThe interdependency with other Heptapod components is very tight, to the point\nthat the requirements file of Heptapod releases usually completely pins this\nproject. Starting with version\n1.0.0 (for Heptapod 0.17), we are planning to follow\n[semver](https://semver.org) rules (with PEP 440 for development versions).\n\nPython 3 is fully supported since version 0.13.0, tested with 3.7 and 3.8.\n\n[Python 2 support is deprecated](https://foss.heptapod.net/heptapod/heptapod/-/issues/353) as of version 1.0.0. Only the\n`testhelpers` subpackage is fully supported for both Python versions,\nbecause it can be used for more general Mercurial related testing.\nPython 2 support will be dropped entirely when we will have a new home for\n`testhelpers`.\n\n## Development guide\n\n### Launching the tests\n\nWe have unit and integration tests with `pytest`, they'd be typically\nrun in a virtualenv:\n\n```\npython 3 -m venv venv\nsource venv/bin/activate\n./run-all-tests\n```\n\nWe have a 100% coverage policy, that is enforced by `run-all-tests` and\ntherefore by the continuous integration.\n\nThis full run takes about 20 seconds in our continuous integration, and\nusually less than that on developer workstations.\n\n### Workflow rules\n\nWe follow the Heptapod default workflow. Please make a topic, and submit a\nMerge Request.\n\nMerge Request Pipelines have to pass, and coverage to stay at 100% for the MR\nto be technically acceptable \u2013 we can help achieving these results, it's not\nmandatory for submitting MRs and gather some feedback.\n\n\n## Contents\n\n### WSGI serving of repositories\n\nProvided by `heptapod.wsgi` (not fully independent yet)\n\n\n### Mercurial Hooks\n\n`heptapod.hooks.check_publish.check_publish`:\n   permission rules about public changesets in pushes.\n`heptapod.hooks.git_sync.mirror`:\n   synchronisation to inner auxiliary Git repository for exposition to GitLab\n`heptapod.hooks.dev_util`: useful hooks for debug and development\n\n### Mercurial extension\n\nThe `heptapod` extension will provide specific commands and generally everything\nthat should be done with full access to Mercurial internals.\n",
    "bugtrack_url": null,
    "license": "GPLv2+",
    "summary": "Heptapod server-side Mercurial hooks, extension, etc.",
    "version": "4.7.0",
    "project_urls": {
        "Homepage": "https://foss.heptapod.net/heptapod/py-heptapod"
    },
    "split_keywords": [
        "hg",
        "mercurial",
        "heptapod",
        "gitlab"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "078943786dce891f3e09db11123abcd6d13893d5c3a9e863d9a56db62474b40a",
                "md5": "c2cd75c2578f774432d24945b29894d6",
                "sha256": "6ade437580acff1f3de7dc37d8cd4597b8afeff69b9ac3afd4d15141b354d609"
            },
            "downloads": -1,
            "filename": "heptapod-4.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c2cd75c2578f774432d24945b29894d6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 105649,
            "upload_time": "2024-05-01T15:38:26",
            "upload_time_iso_8601": "2024-05-01T15:38:26.578267Z",
            "url": "https://files.pythonhosted.org/packages/07/89/43786dce891f3e09db11123abcd6d13893d5c3a9e863d9a56db62474b40a/heptapod-4.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-01 15:38:26",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "heptapod"
}
        
Elapsed time: 0.25095s