summaryrefslogtreecommitdiff
path: root/python-heptapod.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-heptapod.spec')
-rw-r--r--python-heptapod.spec318
1 files changed, 318 insertions, 0 deletions
diff --git a/python-heptapod.spec b/python-heptapod.spec
new file mode 100644
index 0000000..11d1688
--- /dev/null
+++ b/python-heptapod.spec
@@ -0,0 +1,318 @@
+%global _empty_manifest_terminate_build 0
+Name: python-heptapod
+Version: 4.1.0
+Release: 1
+Summary: Heptapod server-side Mercurial hooks, extension, etc.
+License: GPLv2+
+URL: https://foss.heptapod.net/heptapod/py-heptapod
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/3b/ac/1a0d63617d6f23d51df784bd009207b079df2321c98c9e1515010a80ee35/heptapod-4.1.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# 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.
+
+
+
+%package -n python3-heptapod
+Summary: Heptapod server-side Mercurial hooks, extension, etc.
+Provides: python-heptapod
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-heptapod
+# 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.
+
+
+
+%package help
+Summary: Development documents and examples for heptapod
+Provides: python3-heptapod-doc
+%description help
+# 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.
+
+
+
+%prep
+%autosetup -n heptapod-4.1.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-heptapod -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue May 30 2023 Python_Bot <Python_Bot@openeuler.org> - 4.1.0-1
+- Package Spec generated