diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..7c6c35d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,19 @@ +# Reference: +# - https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/keeping-your-actions-up-to-date-with-dependabot + +version: 2 +updates: + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + target-branch: "dependencies" + labels: ["dependencies"] + + - package-ecosystem: "pip" + directory: "/requirements" + schedule: + interval: "daily" + target-branch: "dependencies" + labels: ["dependencies"] diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 361ec15..754077d 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -16,6 +16,6 @@ sphinx: python: install: - - requirements: requirements-docs.txt + - requirements: requirements-docs.in - method: pip path: . diff --git a/noxfile.py b/noxfile.py index 4b01190..49c930a 100644 --- a/noxfile.py +++ b/noxfile.py @@ -14,12 +14,14 @@ @nox.session def test(session: nox.Session) -> None: """Run the tests.""" - session.install(".[units,testing]") + session.install("-r", "requirements/required.txt", ".[units,testing]") args = ["--cov", PROJECT, "-vvv"] + session.posargs if "CI" in os.environ: args.append(f"--cov-report=xml:{ROOT.absolute()!s}/coverage.xml") + + session.run("pip", "list") session.run("pytest", *args) if "CI" not in os.environ: @@ -29,9 +31,10 @@ def test(session: nox.Session) -> None: @nox.session(name="test-cli", python=PYTHON_VERSION, venv_backend="conda") def test_cli(session: nox.Session) -> None: """Run the tests.""" - session.install(".[units]") + session.install("-r", "requirements/required.txt", ".[units,testing]") session.conda_install("pymt_topography", channel=["nodefaults", "conda-forge"]) + session.run("pip", "list") session.run("bmi-test", "pymt_topography:Topography") @@ -57,11 +60,7 @@ def build_docs(session: nox.Session) -> None: build_generated_docs(session) - session.install( - *("-r", "requirements-docs.txt"), - *("-r", "requirements.txt"), - ) - session.install(".") + session.install("-r", "requirements-docs.in", ".[units]") pathlib.Path("build").mkdir(exist_ok=True) @@ -83,7 +82,7 @@ def build_generated_docs(session: nox.Session) -> None: # FOLDER["docs_generated"].mkdir(exist_ok=True) session.install("sphinx") - session.install("-e", ".") + session.install("-e", ".[units]") with session.chdir(ROOT): os.makedirs("src/docs/_generated/api", exist_ok=True) diff --git a/pyproject.toml b/pyproject.toml index 30feaa6..a3b31d2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,7 @@ text = "MIT" [project.optional-dependencies] units = [ - "gimli.units>=0.3.2" + "gimli.units>=0.3.2", ] dev = [ "black", @@ -61,6 +61,9 @@ testing = [ "pytest>=3.6", ] docs = [ + "myst-parser", + "sphinx-copybutton", + "sphinx-inline-tabs", "sphinx>=1.5.1", ] build = [ diff --git a/requirements-docs.txt b/requirements-docs.in similarity index 100% rename from requirements-docs.txt rename to requirements-docs.in diff --git a/requirements-testing.txt b/requirements-testing.in similarity index 100% rename from requirements-testing.txt rename to requirements-testing.in diff --git a/requirements.in b/requirements.in new file mode 100644 index 0000000..b10d0eb --- /dev/null +++ b/requirements.in @@ -0,0 +1,7 @@ +gimli.units>=0.3.2 +importlib-resources; python_version < '3.12' +model-metadata>=0.8.1 +numpy +pytest +pytest-dependency +standard-names>=0.2.8 diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 881f1d5..0000000 --- a/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -model_metadata -numpy -pytest -pytest-dependency -standard_names diff --git a/requirements/required.txt b/requirements/required.txt new file mode 100644 index 0000000..3f422b2 --- /dev/null +++ b/requirements/required.txt @@ -0,0 +1,3 @@ +gimli.units==0.3.2 +model-metadata==0.8.1 +standard-names==0.2.8