diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-heptapod.spec | 318 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 320 insertions, 0 deletions
@@ -0,0 +1 @@ +/heptapod-4.1.0.tar.gz 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 + +[](https://foss.heptapod.net/heptapod/py-heptapod/commits/branch/default) +[](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 + +[](https://foss.heptapod.net/heptapod/py-heptapod/commits/branch/default) +[](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 + +[](https://foss.heptapod.net/heptapod/py-heptapod/commits/branch/default) +[](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 @@ -0,0 +1 @@ +ce85749fb68bec66da70606a3a60d3c5 heptapod-4.1.0.tar.gz |
