summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-10-24 18:10:13 -0400
committerNed Batchelder <ned@nedbatchelder.com>2021-10-24 18:42:43 -0400
commit8a0273d15d17d0e00ba4bfa05ffe46d372f979e7 (patch)
treedf197fee491a035b228b388c15c7293d0a284b2e
parent76c1888d0b65035f9fbfc1fd31ae75c019fbb699 (diff)
downloadpython-coveragepy-git-8a0273d15d17d0e00ba4bfa05ffe46d372f979e7.tar.gz
build: use pip-tools to manage *.pip from *.in
The requires.io site stopped working for me, and this is a more automated process anyway.
-rw-r--r--.github/workflows/coverage.yml3
-rw-r--r--.github/workflows/testsuite.yml3
-rw-r--r--MANIFEST.in4
-rw-r--r--Makefile11
-rw-r--r--README.rst3
-rw-r--r--doc/requirements.in16
-rw-r--r--requirements/ci.in14
-rw-r--r--requirements/dev.in26
-rw-r--r--requirements/pins.pip10
-rw-r--r--requirements/pip-tools.in8
-rw-r--r--requirements/pip.in9
-rw-r--r--requirements/pytest.in15
-rw-r--r--requirements/wheel.in11
-rw-r--r--tox.ini2
14 files changed, 117 insertions, 18 deletions
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 1aa3a1fd..c15eac96 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -63,9 +63,8 @@ jobs:
python -VV
python -m site
# Need to install setuptools first so that ci.pip will succeed.
- python -m pip install -c requirements/pins.pip setuptools wheel
+ python -m pip install -c requirements/ci.pip setuptools wheel
python -m pip install -r requirements/ci.pip
- python -m pip install -c requirements/pins.pip tox-gh-actions
- name: "Run tox coverage for ${{ matrix.python-version }}"
env:
diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml
index 6b0de1b3..268eb652 100644
--- a/.github/workflows/testsuite.yml
+++ b/.github/workflows/testsuite.yml
@@ -58,9 +58,8 @@ jobs:
python -VV
python -m site
# Need to install setuptools first so that ci.pip will succeed.
- python -m pip install -c requirements/pins.pip setuptools wheel
+ python -m pip install -c requirements/ci.pip setuptools wheel
python -m pip install -r requirements/ci.pip
- python -m pip install -c requirements/pins.pip tox-gh-actions
- name: "Run tox for ${{ matrix.python-version }}"
continue-on-error: true
diff --git a/MANIFEST.in b/MANIFEST.in
index 50c1f790..e03084e5 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -32,12 +32,12 @@ recursive-include .github *
recursive-include coverage/fullcoverage *.py
recursive-include coverage/ctracer *.c *.h
-recursive-include doc *.py *.pip *.rst *.txt *.png
+recursive-include doc *.py *.in *.pip *.rst *.txt *.png
recursive-include doc/_static *
prune doc/_build
prune doc/_spell
-recursive-include requirements *.pip
+recursive-include requirements *.in *.pip
recursive-include tests *.py *.tok
recursive-include tests/gold *
diff --git a/Makefile b/Makefile
index 4a592753..88534638 100644
--- a/Makefile
+++ b/Makefile
@@ -72,6 +72,17 @@ metacov: ## Run meta-coverage, measuring ourself.
metahtml: ## Produce meta-coverage HTML reports.
python igor.py combine_html
+upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade
+upgrade: ## update the *.pip files with the latest packages satisfying *.in files
+ pip install -q -r requirements/pip-tools.pip
+ pip-compile --upgrade -o requirements/pip-tools.pip requirements/pip-tools.in
+ pip-compile --upgrade -o requirements/pip.pip requirements/pip.in
+ pip-compile --upgrade -o requirements/pytest.pip requirements/pytest.in
+ pip-compile --upgrade -o requirements/ci.pip requirements/ci.in
+ pip-compile --upgrade -o requirements/dev.pip requirements/dev.in
+ pip-compile --upgrade -o requirements/wheel.pip requirements/wheel.in
+ pip-compile --upgrade -o doc/requirements.pip doc/requirements.in
+
# Kitting
kit: ## Make the source distribution.
diff --git a/README.rst b/README.rst
index de045a9f..225e1cbb 100644
--- a/README.rst
+++ b/README.rst
@@ -103,9 +103,6 @@ Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_.
.. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat
:target: https://coverage.readthedocs.io/
:alt: Documentation
-.. |reqs| image:: https://requires.io/github/nedbat/coveragepy/requirements.svg?branch=master
- :target: https://requires.io/github/nedbat/coveragepy/requirements/?branch=master
- :alt: Requirements status
.. |kit| image:: https://badge.fury.io/py/coverage.svg
:target: https://pypi.org/project/coverage/
:alt: PyPI status
diff --git a/doc/requirements.in b/doc/requirements.in
new file mode 100644
index 00000000..fb3c27ad
--- /dev/null
+++ b/doc/requirements.in
@@ -0,0 +1,16 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
+
+# PyPI requirements input for building documentation for coverage.py
+# "make upgrade" turns this into doc/requirements.pip
+
+-c ../requirements/pins.pip
+
+doc8
+pyenchant
+sphinx
+sphinx-autobuild
+sphinx_rtd_theme
+sphinx-tabs
+sphinxcontrib-restbuilder
+sphinxcontrib-spelling
diff --git a/requirements/ci.in b/requirements/ci.in
new file mode 100644
index 00000000..151b1ec9
--- /dev/null
+++ b/requirements/ci.in
@@ -0,0 +1,14 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
+
+-c pins.pip
+
+# Things CI servers need for running tests.
+# "make upgrade" turns this into requirements/ci.pip.
+
+setuptools
+tox
+tox-gh-actions
+wheel
+
+-r pytest.pip
diff --git a/requirements/dev.in b/requirements/dev.in
new file mode 100644
index 00000000..df834108
--- /dev/null
+++ b/requirements/dev.in
@@ -0,0 +1,26 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
+
+# Requirements input for doing local development work on coverage.py.
+# "make upgrade" turns this into requirements/dev.pip.
+
+-c pins.pip
+-r pip.pip
+
+# PyPI requirements for running tests.
+tox
+-r pytest.pip
+
+# for linting.
+greenlet
+pylint
+check-manifest
+readme_renderer
+
+# for kitting.
+requests
+twine
+libsass
+
+# Just so I have a debugger if I want it.
+pudb
diff --git a/requirements/pins.pip b/requirements/pins.pip
index 89794867..7ac8d0c2 100644
--- a/requirements/pins.pip
+++ b/requirements/pins.pip
@@ -3,10 +3,6 @@
# Version pins, for use as a constraints file.
-auditwheel==5.0.0
-cibuildwheel==2.1.2
-tox==3.24.4
-tox-gh-actions==2.8.1
-
-setuptools==58.1.0
-wheel==0.37.0
+# Something in the docs reqs pinned to this version, then readme-renderer pulled
+# in a newer version, so pin this globally.
+docutils==0.16
diff --git a/requirements/pip-tools.in b/requirements/pip-tools.in
new file mode 100644
index 00000000..4a675562
--- /dev/null
+++ b/requirements/pip-tools.in
@@ -0,0 +1,8 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
+
+-c pins.pip
+
+# "make upgrade" turns this into requirements/pip-tools.pip.
+
+pip-tools
diff --git a/requirements/pip.in b/requirements/pip.in
new file mode 100644
index 00000000..15f11991
--- /dev/null
+++ b/requirements/pip.in
@@ -0,0 +1,9 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
+
+-c pins.pip
+
+# "make upgrade" turns this into requirements/pip.pip.
+
+pip
+virtualenv
diff --git a/requirements/pytest.in b/requirements/pytest.in
new file mode 100644
index 00000000..5ff874f1
--- /dev/null
+++ b/requirements/pytest.in
@@ -0,0 +1,15 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
+
+-c pins.pip
+
+# The pytest specifics used by coverage.py
+# "make upgrade" turns this into requirements/pytest.pip.
+
+flaky
+hypothesis
+pytest
+pytest-xdist
+# Use a fork of PyContracts that supports Python 3.9
+#PyContracts==1.8.12
+git+https://github.com/slorg1/contracts@collections_and_validator
diff --git a/requirements/wheel.in b/requirements/wheel.in
new file mode 100644
index 00000000..1d82a2bf
--- /dev/null
+++ b/requirements/wheel.in
@@ -0,0 +1,11 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
+
+-c pins.pip
+
+# Things needed to make wheels for coverage.py
+# "make upgrade" turns this into requirements/wheel.pip.
+
+auditwheel
+setuptools
+wheel
diff --git a/tox.ini b/tox.ini
index d1b89374..e6d2b26c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -13,8 +13,6 @@ extras =
toml
deps =
- # Check here for what might be out of date:
- # https://requires.io/github/nedbat/coveragepy/requirements/
-r requirements/pip.pip
-r requirements/pytest.pip
# gevent 1.3 causes a failure: https://github.com/nedbat/coveragepy/issues/663