diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 00:42:59 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 00:42:59 +0000 |
commit | 65b3bec0e59048cec4981b03cb113f6d858de0c9 (patch) | |
tree | 65e3cb7fed90be5bfef3d4b40c01271614ddc1bf | |
parent | 9bd6771a5d0ebbcab6145f1d999015262c323455 (diff) |
automatic import of python-tox-factor
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-tox-factor.spec | 691 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 693 insertions, 0 deletions
@@ -0,0 +1 @@ +/tox-factor-0.1.2.tar.gz diff --git a/python-tox-factor.spec b/python-tox-factor.spec new file mode 100644 index 0000000..ee25a05 --- /dev/null +++ b/python-tox-factor.spec @@ -0,0 +1,691 @@ +%global _empty_manifest_terminate_build 0 +Name: python-tox-factor +Version: 0.1.2 +Release: 1 +Summary: Run tox testenvs that match a given factor +License: BSD 3-Clause License +URL: https://github.com/rpkilby/tox-factor +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/74/89/235bea4ce5b7e0e5494d145883a57cfeac083b7acec16a59ac8399e62a49/tox-factor-0.1.2.tar.gz +BuildArch: noarch + +Requires: python3-tox + +%description +# tox-factor + +[](https://circleci.com/gh/rpkilby/tox-factor) +[](https://ci.appveyor.com/project/rpkilby/tox-factor) +[](https://codecov.io/gh/rpkilby/tox-factor) +[](https://pypi.python.org/pypi/tox-factor) +[](https://pypi.org/project/tox-factor/) +[](https://pypi.python.org/pypi/tox-factor) + +## What is tox-factor? + +tox-factor enables running a subset of tox test envs, based on factor matching. + + +## Okay, but what does that *actually* mean? + +Take the following tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} +``` + +The above defines 18 test envs, based on three factor groups - the python +version, the django version, and a caching backend. While the above is powerful, +tox does not provide a way to run builds based on a subset of those factors. +For example, the call to run all Python 3.7 builds would be: + +```shell +$ tox -e py37-django20-redis,py37-django20-memcached,py37-django21-redis,py37-django21-memcached,py37-django22-redis,py37-django22-memcached +``` + +tox-factor functions similarly to the `-e <env name>` argument, except it runs +all envs that match the given factor. The six `py37` builds could be ran with: + +```shell +$ tox -f py37 +``` + +In addition to ease of use when running tox locally, this is useful for some CI +setups. For example, two common tox CI patterns are to either: + +- Define a CI job for each tox test env. e.g., + + `tox -e py37-django20-redis` + +- Define a CI job for a common environment that runs multiple test envs. e.g., + + `tox -e py37-django20-redis,py37-django20-memcached,...` + +For the latter case, this plugin eases maintenance of CI, as it could be +shortened to `tox -f py37`. Additionally, take the following update to the above +tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} + py{36,37,38}-django{30}-{redis,memcached} +``` + +By using tox-factor, it wouldn't be necessary to update the Python 3.7 build, as +the new `py37-django30-*` env would be matched automatically. + + + +## Verifying the matched test envs + +If you want to verify which test envs are actually ran, combine the factor +matching with the `-l` flag. This will display all test envs that match. e.g., + +```shell +$ tox -f py37 -l +py37-django20-redis +py37-django20-memcached +py37-django21-redis +py37-django21-memcached +py37-django22-redis +py37-django22-memcached +``` + + +## Usage details + +The factor option accepts a comma-separated list (similar to the `-e` option). +```shell +$ tox -f py27,py37 -l +py27-django111 +py37-django21 +``` + +Alternatively, factors can be provided via the `TOXFACTOR` environment variable: +```shell +$ TOXFACTOR=py27,py37 tox -l +py27-django111 +py37-django21 +``` + +Factors can also match non-generative env names. For example, given the +following tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django20 + +[testenv:list] +``` + +Then the following would match: + +```shell +$ tox -f py37,lint -l +py37-django20 +lint +``` + +Factors are always superseded by a given `toxenv`. For example, tox-factor would +noop in the following cases: + +```shell +$ tox -f py37 -e py35-django21 -l +py35-django21 + +$ TOXENV=py35-django21 tox -f py37 -l +py35-django21 +``` + +Factors do not support partial matching. `tox -f py3` would not match `py37`. +However, factors may match disparate dash-separated parts. Given the following: +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} +``` + +Then `tox -f py37-redis` would match: +``` +py37-django20-redis +py37-django21-redis +py37-django22-redis +``` + + +## Release Process + +- Update changelog +- Update package version in setup.py +- Create git tag for version +- Upload release to PyPI test server +- Upload release to official PyPI server + +```shell +$ pip install -U pip setuptools wheel twine +$ rm -rf dist/ build/ +$ python setup.py sdist bdist_wheel +$ twine upload -r test dist/* +$ twine upload dist/* +``` + + +## Thanks + +This code is largely based off the work done by @ryanhiebert in [tox-travis][1]. +Without his efforts, it would have taken significantly more time to write and +test this package. + +## License + +See: [LICENSE][2] + +[1]: https://github.com/tox-dev/tox-travis +[2]: https://github.com/rpkilby/tox-factor/blob/master/LICENSE + +BSD 3-Clause License + +Copyright (c) 2019, Ryan P Kilby +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + +%package -n python3-tox-factor +Summary: Run tox testenvs that match a given factor +Provides: python-tox-factor +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-tox-factor +# tox-factor + +[](https://circleci.com/gh/rpkilby/tox-factor) +[](https://ci.appveyor.com/project/rpkilby/tox-factor) +[](https://codecov.io/gh/rpkilby/tox-factor) +[](https://pypi.python.org/pypi/tox-factor) +[](https://pypi.org/project/tox-factor/) +[](https://pypi.python.org/pypi/tox-factor) + +## What is tox-factor? + +tox-factor enables running a subset of tox test envs, based on factor matching. + + +## Okay, but what does that *actually* mean? + +Take the following tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} +``` + +The above defines 18 test envs, based on three factor groups - the python +version, the django version, and a caching backend. While the above is powerful, +tox does not provide a way to run builds based on a subset of those factors. +For example, the call to run all Python 3.7 builds would be: + +```shell +$ tox -e py37-django20-redis,py37-django20-memcached,py37-django21-redis,py37-django21-memcached,py37-django22-redis,py37-django22-memcached +``` + +tox-factor functions similarly to the `-e <env name>` argument, except it runs +all envs that match the given factor. The six `py37` builds could be ran with: + +```shell +$ tox -f py37 +``` + +In addition to ease of use when running tox locally, this is useful for some CI +setups. For example, two common tox CI patterns are to either: + +- Define a CI job for each tox test env. e.g., + + `tox -e py37-django20-redis` + +- Define a CI job for a common environment that runs multiple test envs. e.g., + + `tox -e py37-django20-redis,py37-django20-memcached,...` + +For the latter case, this plugin eases maintenance of CI, as it could be +shortened to `tox -f py37`. Additionally, take the following update to the above +tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} + py{36,37,38}-django{30}-{redis,memcached} +``` + +By using tox-factor, it wouldn't be necessary to update the Python 3.7 build, as +the new `py37-django30-*` env would be matched automatically. + + + +## Verifying the matched test envs + +If you want to verify which test envs are actually ran, combine the factor +matching with the `-l` flag. This will display all test envs that match. e.g., + +```shell +$ tox -f py37 -l +py37-django20-redis +py37-django20-memcached +py37-django21-redis +py37-django21-memcached +py37-django22-redis +py37-django22-memcached +``` + + +## Usage details + +The factor option accepts a comma-separated list (similar to the `-e` option). +```shell +$ tox -f py27,py37 -l +py27-django111 +py37-django21 +``` + +Alternatively, factors can be provided via the `TOXFACTOR` environment variable: +```shell +$ TOXFACTOR=py27,py37 tox -l +py27-django111 +py37-django21 +``` + +Factors can also match non-generative env names. For example, given the +following tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django20 + +[testenv:list] +``` + +Then the following would match: + +```shell +$ tox -f py37,lint -l +py37-django20 +lint +``` + +Factors are always superseded by a given `toxenv`. For example, tox-factor would +noop in the following cases: + +```shell +$ tox -f py37 -e py35-django21 -l +py35-django21 + +$ TOXENV=py35-django21 tox -f py37 -l +py35-django21 +``` + +Factors do not support partial matching. `tox -f py3` would not match `py37`. +However, factors may match disparate dash-separated parts. Given the following: +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} +``` + +Then `tox -f py37-redis` would match: +``` +py37-django20-redis +py37-django21-redis +py37-django22-redis +``` + + +## Release Process + +- Update changelog +- Update package version in setup.py +- Create git tag for version +- Upload release to PyPI test server +- Upload release to official PyPI server + +```shell +$ pip install -U pip setuptools wheel twine +$ rm -rf dist/ build/ +$ python setup.py sdist bdist_wheel +$ twine upload -r test dist/* +$ twine upload dist/* +``` + + +## Thanks + +This code is largely based off the work done by @ryanhiebert in [tox-travis][1]. +Without his efforts, it would have taken significantly more time to write and +test this package. + +## License + +See: [LICENSE][2] + +[1]: https://github.com/tox-dev/tox-travis +[2]: https://github.com/rpkilby/tox-factor/blob/master/LICENSE + +BSD 3-Clause License + +Copyright (c) 2019, Ryan P Kilby +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + +%package help +Summary: Development documents and examples for tox-factor +Provides: python3-tox-factor-doc +%description help +# tox-factor + +[](https://circleci.com/gh/rpkilby/tox-factor) +[](https://ci.appveyor.com/project/rpkilby/tox-factor) +[](https://codecov.io/gh/rpkilby/tox-factor) +[](https://pypi.python.org/pypi/tox-factor) +[](https://pypi.org/project/tox-factor/) +[](https://pypi.python.org/pypi/tox-factor) + +## What is tox-factor? + +tox-factor enables running a subset of tox test envs, based on factor matching. + + +## Okay, but what does that *actually* mean? + +Take the following tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} +``` + +The above defines 18 test envs, based on three factor groups - the python +version, the django version, and a caching backend. While the above is powerful, +tox does not provide a way to run builds based on a subset of those factors. +For example, the call to run all Python 3.7 builds would be: + +```shell +$ tox -e py37-django20-redis,py37-django20-memcached,py37-django21-redis,py37-django21-memcached,py37-django22-redis,py37-django22-memcached +``` + +tox-factor functions similarly to the `-e <env name>` argument, except it runs +all envs that match the given factor. The six `py37` builds could be ran with: + +```shell +$ tox -f py37 +``` + +In addition to ease of use when running tox locally, this is useful for some CI +setups. For example, two common tox CI patterns are to either: + +- Define a CI job for each tox test env. e.g., + + `tox -e py37-django20-redis` + +- Define a CI job for a common environment that runs multiple test envs. e.g., + + `tox -e py37-django20-redis,py37-django20-memcached,...` + +For the latter case, this plugin eases maintenance of CI, as it could be +shortened to `tox -f py37`. Additionally, take the following update to the above +tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} + py{36,37,38}-django{30}-{redis,memcached} +``` + +By using tox-factor, it wouldn't be necessary to update the Python 3.7 build, as +the new `py37-django30-*` env would be matched automatically. + + + +## Verifying the matched test envs + +If you want to verify which test envs are actually ran, combine the factor +matching with the `-l` flag. This will display all test envs that match. e.g., + +```shell +$ tox -f py37 -l +py37-django20-redis +py37-django20-memcached +py37-django21-redis +py37-django21-memcached +py37-django22-redis +py37-django22-memcached +``` + + +## Usage details + +The factor option accepts a comma-separated list (similar to the `-e` option). +```shell +$ tox -f py27,py37 -l +py27-django111 +py37-django21 +``` + +Alternatively, factors can be provided via the `TOXFACTOR` environment variable: +```shell +$ TOXFACTOR=py27,py37 tox -l +py27-django111 +py37-django21 +``` + +Factors can also match non-generative env names. For example, given the +following tox config: + +```ini +[tox] +envlist = + py{35,36,37}-django20 + +[testenv:list] +``` + +Then the following would match: + +```shell +$ tox -f py37,lint -l +py37-django20 +lint +``` + +Factors are always superseded by a given `toxenv`. For example, tox-factor would +noop in the following cases: + +```shell +$ tox -f py37 -e py35-django21 -l +py35-django21 + +$ TOXENV=py35-django21 tox -f py37 -l +py35-django21 +``` + +Factors do not support partial matching. `tox -f py3` would not match `py37`. +However, factors may match disparate dash-separated parts. Given the following: +```ini +[tox] +envlist = + py{35,36,37}-django{20,21,22}-{redis,memcached} +``` + +Then `tox -f py37-redis` would match: +``` +py37-django20-redis +py37-django21-redis +py37-django22-redis +``` + + +## Release Process + +- Update changelog +- Update package version in setup.py +- Create git tag for version +- Upload release to PyPI test server +- Upload release to official PyPI server + +```shell +$ pip install -U pip setuptools wheel twine +$ rm -rf dist/ build/ +$ python setup.py sdist bdist_wheel +$ twine upload -r test dist/* +$ twine upload dist/* +``` + + +## Thanks + +This code is largely based off the work done by @ryanhiebert in [tox-travis][1]. +Without his efforts, it would have taken significantly more time to write and +test this package. + +## License + +See: [LICENSE][2] + +[1]: https://github.com/tox-dev/tox-travis +[2]: https://github.com/rpkilby/tox-factor/blob/master/LICENSE + +BSD 3-Clause License + +Copyright (c) 2019, Ryan P Kilby +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + + +%prep +%autosetup -n tox-factor-0.1.2 + +%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-tox-factor -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.2-1 +- Package Spec generated @@ -0,0 +1 @@ +5cdfaec1ad7c42451b2dd89de71aa899 tox-factor-0.1.2.tar.gz |