Skip to content

Commit

Permalink
build: specify dependencies directly in setup.cfg
Browse files Browse the repository at this point in the history
In tox v4, "reuse of environments" was disabled [1]. This is then later
explained [2] to refer to exactly that thing which we were using for
inheriting the dependencies from the top-level testenv all the way to
the docs build. That's why the docs build in GitHub CI started failing.

IMHO, The Correct Way™ of specifying what dependencies are used for
which feature are the so-called "extra dependencies". Once they are in
place, it is be possible to install gnpy via, e.g., `pip install
oopt-gnpy[docs]`. However, this process is (as far as I can tell)
incompatible with `requirements.txt`; all my attempts at using the
standard dependency syntax in that file have failed for me.

So, in order to make this happen, let's move all the dependencies from a
more-or-less ad-hoc collection of files to this declarative approach
right in setup.cfg. That way, the deps are listed on a single place, in
a declarative manner, and as a result, the installation is now a trivial
pip oneliner.

As a result, one can also remove that duplication of dependencies in
docs requirements.

[1] https://tox.wiki/en/4.11.4/upgrading.html#reuse-of-environments
[2] https://tox.wiki/en/4.11.4/upgrading.html#packaging-configuration-and-inheritance

Change-Id: I34aa0c71e993b39e2b805a7de40e133b4d290318
Fixes: 47c8962 fix docs requirements
  • Loading branch information
jktjkt committed Mar 13, 2024
1 parent bc71823 commit 2d68b94
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 39 deletions.
6 changes: 2 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,7 @@ jobs:
with:
python-version: ${{ matrix.python_version }}
- run: |
pip install -r tests/requirements.txt
pip install --editable .
pip install --editable .[tests]
pytest -vv
strategy:
fail-fast: false
Expand Down Expand Up @@ -136,8 +135,7 @@ jobs:
with:
python-version: ${{ matrix.python_version }}
- run: |
pip install -r tests/requirements.txt
pip install --editable .
pip install --editable .[tests]
pytest -vv
strategy:
fail-fast: false
Expand Down
1 change: 0 additions & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,3 @@ build:
image: latest
python:
version: 3.8
requirements_file: docs/requirements.txt
12 changes: 0 additions & 12 deletions docs/requirements.txt

This file was deleted.

11 changes: 0 additions & 11 deletions requirements.txt

This file was deleted.

32 changes: 32 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,35 @@ console_scripts =
gnpy-transmission-example = gnpy.tools.cli_examples:transmission_main_example
gnpy-path-request = gnpy.tools.cli_examples:path_requests_run
gnpy-convert-xls = gnpy.tools.convert:_do_convert

[options]
install_requires =
# matplotlib 3.8 removed support for Python 3.8
matplotlib>=3.7.3,<4
# networkx 3.2 removed support for Python 3.8
networkx>=3.1,<4
# numpy 1.25 removed support for Python 3.8
numpy>=1.24.4,<2
pbr>=6.0.0,<7
# scipy 1.11 removed support for Python 3.8
scipy>=1.10.1,<2
# xlrd 2.x removed support for .xlsx, it's only .xls now
xlrd>=1.2.0,<2

[options.extras_require]
tests =
build>=1.0.3,<2
pytest>=7.4.3,<8
# pandas 2.1 removed support for Python 3.8
pandas>=2.0.3,<3
# flake v6 killed the --diff option
flake8>=5.0.4,<6

docs =
alabaster>=0.7.12,<1
docutils>=0.17.1,<1
myst-parser>=0.16.1,<1
Pygments>=2.11.2,<3
rstcheck
Sphinx>=5.3.0,<6
sphinxcontrib-bibtex>=2.4.1,<3
7 changes: 0 additions & 7 deletions tests/requirements.txt

This file was deleted.

6 changes: 2 additions & 4 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@
skipsdist = True

[testenv]
extras = tests
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/tests/requirements.txt
cover: pytest-cov
linters: flake8
linters: pep8-naming
Expand All @@ -22,8 +21,7 @@ commands =
python -m build

[testenv:docs]
deps =
-r{toxinidir}/docs/requirements.txt
extras = docs
allowlist_externals =
/bin/sh
commands =
Expand Down

0 comments on commit 2d68b94

Please sign in to comment.