diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-12 03:54:23 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 03:54:23 +0000 |
| commit | 89bb430cd7bd0872142b5ee528fa1d22d703b359 (patch) | |
| tree | e99cb8087991775764b5a0bbf80a37f905a87fc9 /python-autohooks.spec | |
| parent | c0691f6431d8d1e9e4894383c084f53318776b14 (diff) | |
automatic import of python-autohooksopeneuler20.03
Diffstat (limited to 'python-autohooks.spec')
| -rw-r--r-- | python-autohooks.spec | 453 |
1 files changed, 453 insertions, 0 deletions
diff --git a/python-autohooks.spec b/python-autohooks.spec new file mode 100644 index 0000000..808a974 --- /dev/null +++ b/python-autohooks.spec @@ -0,0 +1,453 @@ +%global _empty_manifest_terminate_build 0 +Name: python-autohooks +Version: 23.4.0 +Release: 1 +Summary: Library for managing git hooks +License: GPL-3.0-or-later +URL: https://github.com/greenbone/autohooks/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/19/63/1a6179eae386a6edc49a2d5cefa47f9dfc6a3d30385a920c66d72ef1d6f9/autohooks-23.4.0.tar.gz +BuildArch: noarch + +Requires: python3-pontos +Requires: python3-rich +Requires: python3-tomlkit + +%description + +# Autohooks <!-- omit in toc --> + +[](https://pypi.org/project/autohooks/) +[](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml) +[](https://codecov.io/gh/greenbone/autohooks) + +Library for managing and writing [git hooks](https://git-scm.com/docs/githooks) +in Python using `pyproject.toml` for its settings. + +Looking for automatic formatting and linting, e.g., with [black] and [pylint], +while creating a git commit using a pure Python implementation? Do you just want +to have your git hook settings in the `pyproject.toml` file too? + +Welcome to **autohooks**! + +- [Why?](#why) +- [Solution](#solution) +- [Requirements](#requirements) +- [Plugins](#plugins) +- [Installing autohooks](#installing-autohooks) +- [Maintainer](#maintainer) +- [Contributing](#contributing) +- [License](#license) + +## Why? + +Several outstanding libraries for managing and executing git hooks exist already. +To name a few: [husky](https://github.com/typicode/husky), +[lint-staged](https://github.com/okonet/lint-staged), +[precise-commits](https://github.com/nrwl/precise-commits) or +[pre-commit](https://github.com/pre-commit/pre-commit). + +However, they need another interpreter besides python (like husky), require a +different config file besides `pyproject.toml` or are too ambiguous (like +pre-commit). pre-commit is written in python but has support hooks written in +all kind of languages. Additionally, it maintains the dependencies by itself and +does not install them in the current environment. + +## Solution + +autohooks is a pure python library that installs a minimal +[executable git hook](https://github.com/greenbone/autohooks/blob/main/autohooks/precommit/template). +It allows the decision of how to maintain the hook dependencies +by supporting different modes and stores its settings in the well known +`pyproject.toml` file. + + + +## Requirements + +Python 3.7+ is required for autohooks. + +## Plugins + +* Python code formatting via [black](https://github.com/greenbone/autohooks-plugin-black) + +* Python code formatting via [autopep8](https://github.com/LeoIV/autohooks-plugin-autopep8) + +* Python code linting via [pylint](https://github.com/greenbone/autohooks-plugin-pylint) + +* Python code linting via [flake8](https://github.com/greenbone/autohooks-plugin-flake8) + +* Python import sorting via [isort](https://github.com/greenbone/autohooks-plugin-isort) + +* Running tests via [pytest](https://github.com/greenbone/autohooks-plugin-pytest/) + +## Installing autohooks + +Quick installation of [pylint] and [black] plugins using [poetry]: + +```shell +poetry add --dev autohooks autohooks-plugin-black autohooks-plugin-pylint +poetry run autohooks activate --mode poetry +poetry run autohooks plugins add autohooks.plugins.black autohooks.plugins.pylint +``` + +The output of `autohooks activate` should be similar to +``` + ✓ autohooks pre-commit hook installed at /autohooks-test/.git/hooks/pre-commit using poetry mode. +``` + +Autohooks has an extensible plugin model. Each plugin provides different +functionality which often requires to install additional dependencies. + +For managing these dependencies currently three modes are supported by +autohooks: + +* `pythonpath` for dependency management via [pip] +* `poetry` for dependency management via [poetry] (recommended) +* `pipenv` for dependency management via [pipenv] + +These modes handle how autohooks, the plugins and their dependencies are loaded +during git hook execution. + +If no mode is specified in the [`pyproject.toml` config file](#configure-mode-and-plugins-to-be-run) +and no mode is set during [activation](#activating-the-git-hooks), autohooks +will use the [pythonpath mode](#pythonpath-mode) by default. + +For more details on using [pip], [poetry] or [pipenv] in conjunction with these +modes see the [documentation](https://greenbone.github.io/autohooks). + +## Maintainer + +This project is maintained by [Greenbone AG](https://www.greenbone.net/). + +## Contributing + +Your contributions are highly appreciated. Please +[create a pull request](https://github.com/greenbone/autohooks/pulls) +on GitHub. Bigger changes need to be discussed with the development team via the +[issues section at GitHub](https://github.com/greenbone/autohooks/issues) +first. + +## License + +Copyright (C) 2019 - 2022 [Greenbone AG](https://www.greenbone.net/) + +Licensed under the [GNU General Public License v3.0 or later](LICENSE). + +[black]: https://black.readthedocs.io/en/stable/ +[pip]: https://pip.pypa.io/en/stable/ +[pipenv]: https://pipenv.readthedocs.io/en/latest/ +[poetry]: https://python-poetry.org/ +[pylint]: https://pylint.readthedocs.io/en/latest/ + + + +%package -n python3-autohooks +Summary: Library for managing git hooks +Provides: python-autohooks +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-autohooks + +# Autohooks <!-- omit in toc --> + +[](https://pypi.org/project/autohooks/) +[](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml) +[](https://codecov.io/gh/greenbone/autohooks) + +Library for managing and writing [git hooks](https://git-scm.com/docs/githooks) +in Python using `pyproject.toml` for its settings. + +Looking for automatic formatting and linting, e.g., with [black] and [pylint], +while creating a git commit using a pure Python implementation? Do you just want +to have your git hook settings in the `pyproject.toml` file too? + +Welcome to **autohooks**! + +- [Why?](#why) +- [Solution](#solution) +- [Requirements](#requirements) +- [Plugins](#plugins) +- [Installing autohooks](#installing-autohooks) +- [Maintainer](#maintainer) +- [Contributing](#contributing) +- [License](#license) + +## Why? + +Several outstanding libraries for managing and executing git hooks exist already. +To name a few: [husky](https://github.com/typicode/husky), +[lint-staged](https://github.com/okonet/lint-staged), +[precise-commits](https://github.com/nrwl/precise-commits) or +[pre-commit](https://github.com/pre-commit/pre-commit). + +However, they need another interpreter besides python (like husky), require a +different config file besides `pyproject.toml` or are too ambiguous (like +pre-commit). pre-commit is written in python but has support hooks written in +all kind of languages. Additionally, it maintains the dependencies by itself and +does not install them in the current environment. + +## Solution + +autohooks is a pure python library that installs a minimal +[executable git hook](https://github.com/greenbone/autohooks/blob/main/autohooks/precommit/template). +It allows the decision of how to maintain the hook dependencies +by supporting different modes and stores its settings in the well known +`pyproject.toml` file. + + + +## Requirements + +Python 3.7+ is required for autohooks. + +## Plugins + +* Python code formatting via [black](https://github.com/greenbone/autohooks-plugin-black) + +* Python code formatting via [autopep8](https://github.com/LeoIV/autohooks-plugin-autopep8) + +* Python code linting via [pylint](https://github.com/greenbone/autohooks-plugin-pylint) + +* Python code linting via [flake8](https://github.com/greenbone/autohooks-plugin-flake8) + +* Python import sorting via [isort](https://github.com/greenbone/autohooks-plugin-isort) + +* Running tests via [pytest](https://github.com/greenbone/autohooks-plugin-pytest/) + +## Installing autohooks + +Quick installation of [pylint] and [black] plugins using [poetry]: + +```shell +poetry add --dev autohooks autohooks-plugin-black autohooks-plugin-pylint +poetry run autohooks activate --mode poetry +poetry run autohooks plugins add autohooks.plugins.black autohooks.plugins.pylint +``` + +The output of `autohooks activate` should be similar to +``` + ✓ autohooks pre-commit hook installed at /autohooks-test/.git/hooks/pre-commit using poetry mode. +``` + +Autohooks has an extensible plugin model. Each plugin provides different +functionality which often requires to install additional dependencies. + +For managing these dependencies currently three modes are supported by +autohooks: + +* `pythonpath` for dependency management via [pip] +* `poetry` for dependency management via [poetry] (recommended) +* `pipenv` for dependency management via [pipenv] + +These modes handle how autohooks, the plugins and their dependencies are loaded +during git hook execution. + +If no mode is specified in the [`pyproject.toml` config file](#configure-mode-and-plugins-to-be-run) +and no mode is set during [activation](#activating-the-git-hooks), autohooks +will use the [pythonpath mode](#pythonpath-mode) by default. + +For more details on using [pip], [poetry] or [pipenv] in conjunction with these +modes see the [documentation](https://greenbone.github.io/autohooks). + +## Maintainer + +This project is maintained by [Greenbone AG](https://www.greenbone.net/). + +## Contributing + +Your contributions are highly appreciated. Please +[create a pull request](https://github.com/greenbone/autohooks/pulls) +on GitHub. Bigger changes need to be discussed with the development team via the +[issues section at GitHub](https://github.com/greenbone/autohooks/issues) +first. + +## License + +Copyright (C) 2019 - 2022 [Greenbone AG](https://www.greenbone.net/) + +Licensed under the [GNU General Public License v3.0 or later](LICENSE). + +[black]: https://black.readthedocs.io/en/stable/ +[pip]: https://pip.pypa.io/en/stable/ +[pipenv]: https://pipenv.readthedocs.io/en/latest/ +[poetry]: https://python-poetry.org/ +[pylint]: https://pylint.readthedocs.io/en/latest/ + + + +%package help +Summary: Development documents and examples for autohooks +Provides: python3-autohooks-doc +%description help + +# Autohooks <!-- omit in toc --> + +[](https://pypi.org/project/autohooks/) +[](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml) +[](https://codecov.io/gh/greenbone/autohooks) + +Library for managing and writing [git hooks](https://git-scm.com/docs/githooks) +in Python using `pyproject.toml` for its settings. + +Looking for automatic formatting and linting, e.g., with [black] and [pylint], +while creating a git commit using a pure Python implementation? Do you just want +to have your git hook settings in the `pyproject.toml` file too? + +Welcome to **autohooks**! + +- [Why?](#why) +- [Solution](#solution) +- [Requirements](#requirements) +- [Plugins](#plugins) +- [Installing autohooks](#installing-autohooks) +- [Maintainer](#maintainer) +- [Contributing](#contributing) +- [License](#license) + +## Why? + +Several outstanding libraries for managing and executing git hooks exist already. +To name a few: [husky](https://github.com/typicode/husky), +[lint-staged](https://github.com/okonet/lint-staged), +[precise-commits](https://github.com/nrwl/precise-commits) or +[pre-commit](https://github.com/pre-commit/pre-commit). + +However, they need another interpreter besides python (like husky), require a +different config file besides `pyproject.toml` or are too ambiguous (like +pre-commit). pre-commit is written in python but has support hooks written in +all kind of languages. Additionally, it maintains the dependencies by itself and +does not install them in the current environment. + +## Solution + +autohooks is a pure python library that installs a minimal +[executable git hook](https://github.com/greenbone/autohooks/blob/main/autohooks/precommit/template). +It allows the decision of how to maintain the hook dependencies +by supporting different modes and stores its settings in the well known +`pyproject.toml` file. + + + +## Requirements + +Python 3.7+ is required for autohooks. + +## Plugins + +* Python code formatting via [black](https://github.com/greenbone/autohooks-plugin-black) + +* Python code formatting via [autopep8](https://github.com/LeoIV/autohooks-plugin-autopep8) + +* Python code linting via [pylint](https://github.com/greenbone/autohooks-plugin-pylint) + +* Python code linting via [flake8](https://github.com/greenbone/autohooks-plugin-flake8) + +* Python import sorting via [isort](https://github.com/greenbone/autohooks-plugin-isort) + +* Running tests via [pytest](https://github.com/greenbone/autohooks-plugin-pytest/) + +## Installing autohooks + +Quick installation of [pylint] and [black] plugins using [poetry]: + +```shell +poetry add --dev autohooks autohooks-plugin-black autohooks-plugin-pylint +poetry run autohooks activate --mode poetry +poetry run autohooks plugins add autohooks.plugins.black autohooks.plugins.pylint +``` + +The output of `autohooks activate` should be similar to +``` + ✓ autohooks pre-commit hook installed at /autohooks-test/.git/hooks/pre-commit using poetry mode. +``` + +Autohooks has an extensible plugin model. Each plugin provides different +functionality which often requires to install additional dependencies. + +For managing these dependencies currently three modes are supported by +autohooks: + +* `pythonpath` for dependency management via [pip] +* `poetry` for dependency management via [poetry] (recommended) +* `pipenv` for dependency management via [pipenv] + +These modes handle how autohooks, the plugins and their dependencies are loaded +during git hook execution. + +If no mode is specified in the [`pyproject.toml` config file](#configure-mode-and-plugins-to-be-run) +and no mode is set during [activation](#activating-the-git-hooks), autohooks +will use the [pythonpath mode](#pythonpath-mode) by default. + +For more details on using [pip], [poetry] or [pipenv] in conjunction with these +modes see the [documentation](https://greenbone.github.io/autohooks). + +## Maintainer + +This project is maintained by [Greenbone AG](https://www.greenbone.net/). + +## Contributing + +Your contributions are highly appreciated. Please +[create a pull request](https://github.com/greenbone/autohooks/pulls) +on GitHub. Bigger changes need to be discussed with the development team via the +[issues section at GitHub](https://github.com/greenbone/autohooks/issues) +first. + +## License + +Copyright (C) 2019 - 2022 [Greenbone AG](https://www.greenbone.net/) + +Licensed under the [GNU General Public License v3.0 or later](LICENSE). + +[black]: https://black.readthedocs.io/en/stable/ +[pip]: https://pip.pypa.io/en/stable/ +[pipenv]: https://pipenv.readthedocs.io/en/latest/ +[poetry]: https://python-poetry.org/ +[pylint]: https://pylint.readthedocs.io/en/latest/ + + + +%prep +%autosetup -n autohooks-23.4.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-autohooks -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 23.4.0-1 +- Package Spec generated |
