From b8eb765c27e4e63894612c815284ddbaecdbac27 Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Tue, 7 Jan 2025 15:47:22 +0000 Subject: [PATCH] Drop requirements.txt Move the project's dependencies into pyproject.toml so we can stop declaring them as dynamic. This way, consumers can infer the list from sdist package metadata rather than having to resolve it at build-time when PBR injects the requirements.txt contents into the package's install_requires. Change-Id: Idcb73b589db50034a6c7608cbd3f8011070a81cb --- CONTRIBUTING.rst | 5 +++-- noxfile.py | 4 ---- playbooks/bindep/run.yaml | 7 ------- pyproject.toml | 8 +++++++- requirements.txt | 4 ---- 5 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 requirements.txt diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index d772c65..1ca469c 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -32,10 +32,11 @@ testr arguments that are needed to nox. For example, you can run: It is also possible to run the tests inside of a virtual environment you have created, or it is possible that you have all of the dependencies installed locally already. If you'd like to go this route, the requirements -are listed in requirements.txt and the requirements for testing are in +are listed in pyproject.toml and the requirements for testing are in test-requirements.txt. Installing them via pip, for instance, is simply:: - pip install -r requirements.txt -r test-requirements.txt + pip install -r test-requirements.txt + pip install -e . In you go this route, you can interact with the testr command directly. Running `testr run` will run the entire test suite. `testr run --parallel` diff --git a/noxfile.py b/noxfile.py index 24f82c0..75c5214 100644 --- a/noxfile.py +++ b/noxfile.py @@ -17,7 +17,6 @@ def linters(session): @nox.session(python="3") def docs(session): - session.install("-r", "requirements.txt") session.install("-r", "doc/requirements.txt") session.install(".") session.run( @@ -30,7 +29,6 @@ def docs(session): @nox.session(python="3") def venv(session): - session.install("-r", "requirements.txt") session.install("-r", "test-requirements.txt") session.install("-e", ".") session.run(*session.posargs) @@ -39,7 +37,6 @@ def venv(session): # This will attempt to run python3 tests by default. @nox.session(python=["3"]) def tests(session): - session.install("-r", "requirements.txt") session.install("-r", "test-requirements.txt") session.install("-e", ".") session.run("stestr", "run", *session.posargs) @@ -48,7 +45,6 @@ def tests(session): @nox.session(python="3") def cover(session): - session.install("-r", "requirements.txt") session.install("-r", "test-requirements.txt") session.install("-e", ".") session.env["PYTHON"] = "coverage run --source bindep --parallel-mode" diff --git a/playbooks/bindep/run.yaml b/playbooks/bindep/run.yaml index c296894..b0ca1e1 100644 --- a/playbooks/bindep/run.yaml +++ b/playbooks/bindep/run.yaml @@ -4,13 +4,6 @@ vars: bindep_profile: test tasks: - - name: Install requirements - pip: - chdir: "{{ zuul_work_dir }}" - virtualenv: "{{ zuul_work_virtualenv }}" - virtualenv_command: "{{ ensure_pip_virtualenv_command }}" - requirements: requirements.txt - - name: Install the project from source pip: chdir: "{{ zuul_work_dir }}" diff --git a/pyproject.toml b/pyproject.toml index ad63864..0b0bbf3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,8 +29,14 @@ classifiers = [ "Topic :: System :: Archiving :: Packaging", "Topic :: Utilities", ] +dependencies = [ + "distro>=1.7", + "packaging", + "Parsley", + "pbr>=2", +] description = "Binary dependency utility" -dynamic = ["dependencies", "version"] +dynamic = ["version"] keywords = [ "binary", "commandline", diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 0b71a6b..0000000 --- a/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -distro>=1.7.0 -pbr>=2.0.0 # Apache-2.0 -Parsley -packaging