summaryrefslogtreecommitdiff
path: root/python-check-python-versions.spec
blob: f98b1be4e81b43ff11d0ca57bbbc33cf601602ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
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.aliyun.com/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 Jun 08 2023 Python_Bot <Python_Bot@openeuler.org> - 0.21.2-1
- Package Spec generated