diff options
Diffstat (limited to 'python-check-python-versions.spec')
| -rw-r--r-- | python-check-python-versions.spec | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/python-check-python-versions.spec b/python-check-python-versions.spec new file mode 100644 index 0000000..4a13ad5 --- /dev/null +++ b/python-check-python-versions.spec @@ -0,0 +1,177 @@ +%global _empty_manifest_terminate_build 0 +Name: python-check-python-versions +Version: 0.21.2 +Release: 1 +Summary: Compare supported Python versions in setup.py vs tox.ini et al. +License: GPL +URL: https://github.com/mgedmin/check-python-versions +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ab/3a/44d34b75ef2bfe8b2944aeb666a3c6b9344fcd8c29fe536df524c47aea56/check-python-versions-0.21.2.tar.gz +BuildArch: noarch + +Requires: python3-pyyaml +Requires: python3-tomlkit +Requires: python3-typing-extensions + +%description +This is a tool for Python package maintainers who want to explicitly state +which Python versions they support. +**The problem**: to properly support e.g. Python 2.7 and 3.6+ you have to +run tests with these Pythons. This means +- you need a tox.ini with envlist = py27, py36, py37, py38, py39 +- you need a .travis.yml with python: [ 2.7, 3.6, 3.7, 3.8, 3.9 ] +- if you support Windows, you need an appveyor.yml with %PYTHON% set to + C:\\Python2.7, C:\\Python3.5, and so on +- if you're building manylinux wheels you need to ... you get the idea +- you have to tell the users which Python versions you support by specifying + trove classifiers like "Programming Language :: Python :: 2.7" +- you probably also want to tell pip which versions you support by specifying + python_requires=">= 2.7, !=3.0.* ..." because AFAIU PyPI classifiers are + not fine-grained enough +Keeping all these lists consistent is a pain. +**The solution**: ``check-python-versions`` will compare these lists and warn +you if they don't match :: + $ check-python-versions ~/projects/* + /home/mg/projects/check-manifest: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy + - python_requires says: 2.7, 3.6, 3.7, 3.8, 3.9 + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + /home/mg/projects/dozer: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9 + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + /home/mg/projects/eazysvn: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + all ok! + +%package -n python3-check-python-versions +Summary: Compare supported Python versions in setup.py vs tox.ini et al. +Provides: python-check-python-versions +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-check-python-versions +This is a tool for Python package maintainers who want to explicitly state +which Python versions they support. +**The problem**: to properly support e.g. Python 2.7 and 3.6+ you have to +run tests with these Pythons. This means +- you need a tox.ini with envlist = py27, py36, py37, py38, py39 +- you need a .travis.yml with python: [ 2.7, 3.6, 3.7, 3.8, 3.9 ] +- if you support Windows, you need an appveyor.yml with %PYTHON% set to + C:\\Python2.7, C:\\Python3.5, and so on +- if you're building manylinux wheels you need to ... you get the idea +- you have to tell the users which Python versions you support by specifying + trove classifiers like "Programming Language :: Python :: 2.7" +- you probably also want to tell pip which versions you support by specifying + python_requires=">= 2.7, !=3.0.* ..." because AFAIU PyPI classifiers are + not fine-grained enough +Keeping all these lists consistent is a pain. +**The solution**: ``check-python-versions`` will compare these lists and warn +you if they don't match :: + $ check-python-versions ~/projects/* + /home/mg/projects/check-manifest: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy + - python_requires says: 2.7, 3.6, 3.7, 3.8, 3.9 + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + /home/mg/projects/dozer: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9 + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + /home/mg/projects/eazysvn: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + all ok! + +%package help +Summary: Development documents and examples for check-python-versions +Provides: python3-check-python-versions-doc +%description help +This is a tool for Python package maintainers who want to explicitly state +which Python versions they support. +**The problem**: to properly support e.g. Python 2.7 and 3.6+ you have to +run tests with these Pythons. This means +- you need a tox.ini with envlist = py27, py36, py37, py38, py39 +- you need a .travis.yml with python: [ 2.7, 3.6, 3.7, 3.8, 3.9 ] +- if you support Windows, you need an appveyor.yml with %PYTHON% set to + C:\\Python2.7, C:\\Python3.5, and so on +- if you're building manylinux wheels you need to ... you get the idea +- you have to tell the users which Python versions you support by specifying + trove classifiers like "Programming Language :: Python :: 2.7" +- you probably also want to tell pip which versions you support by specifying + python_requires=">= 2.7, !=3.0.* ..." because AFAIU PyPI classifiers are + not fine-grained enough +Keeping all these lists consistent is a pain. +**The solution**: ``check-python-versions`` will compare these lists and warn +you if they don't match :: + $ check-python-versions ~/projects/* + /home/mg/projects/check-manifest: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy + - python_requires says: 2.7, 3.6, 3.7, 3.8, 3.9 + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + /home/mg/projects/dozer: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9 + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + /home/mg/projects/eazysvn: + setup.py says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy + tox.ini says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + .travis.yml says: 2.7, 3.6, 3.7, 3.8, 3.9, PyPy, PyPy3 + appveyor.yml says: 2.7, 3.6, 3.7, 3.8, 3.9 + all ok! + +%prep +%autosetup -n check-python-versions-0.21.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-check-python-versions -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 0.21.2-1 +- Package Spec generated |
