Skip to content

Split requirements.txt and manage versions using dependabot #20

@wbkboyer

Description

@wbkboyer
  • Create a new requirements/ directory and split the requirements.txt into requirements/build-requirements.txt (containing setuptools, wheel, and cython) and requirements/test-requirements.txt (containing networkx, matplotlib, and pytest), then lock the version numbers for these dependencies.
    • NOTE: Might need to discuss whether test-requirements.txt should be further split into test-requirements.txt (containing pytest and networkx) and example-requriements.txt (containing only matplotlib)
  • Update the main.yaml workflow to run pip install -r for both files
    • NOTE: The Step labelled "Test with pytest" will run all the contents of tests/, which includes tests/test_planarity_networkx.py; this requires the ability to import networkx (otherwise we SkipTest for TestPlanarityNetworkX), which is why we have to install both requirements/build-requirements.txt (in order to build and install the project) and requirements/test-requirements.txt (which contains networkx).
  • Set up dependabot to regularly update these requirements.
    • NOTE: Dependabot supported ecosystems and repositories indicates pip is supported (all requirements files must end with requirements.txt, according to this StackOverflow response), and indicates the dependabot.yaml must include the line to use package-ecosystem: "pip" in the dependabot.yml file. Then, we must indicate the directories in which to look for manifest files (i.e. /requirements for these two new files; there are no package dependencies in setup.py (in the future pyproject.toml), nor do we need to update any GitHub Actions using dependabot, so we likely don't need to add configuration for /)

See also

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions