Skip to content

Declare runtime deps in pyproject.toml for all platforms#87

Open
elliott-ruebush wants to merge 5 commits into
mainfrom
feature/pyproject-deps-ci
Open

Declare runtime deps in pyproject.toml for all platforms#87
elliott-ruebush wants to merge 5 commits into
mainfrom
feature/pyproject-deps-ci

Conversation

@elliott-ruebush

@elliott-ruebush elliott-ruebush commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Change Overview

  • This PR makes pyproject.toml the single install source on all platforms, with the goal being to enable folks from various different platforms to more quickly get started with development on the repo.
  • Also simplify CI to pip install GDAL==$(gdal-config --version) then pip install -e ".[dev]"
  • Remove requirements.txt in favor of pyproject.toml dependencies and update README with updated setup instructions for both direct pip installs from GitHub and editable installs of the cloned repo
  • I also moved the template config descriptions from the README into the template config file that we now have

Some General Notes

  • psycopg2 on Windows, psycopg2-binary elsewhere.
  • Note on GDAL - Windows installs GDAL directly from the wheel we've used historically, but I chose to go with a standard install for Unix systems + folks may already have a viable GDAL installed
  • pandas pinned to <3 for the moment just to avoid any unexpected issues from bumping pandas versions.
  • In the future, the GDAL wheel URL in pyproject.toml must be updated when bumping Python (currently cp312 win_amd64).

Test plan

  • pip install -e ".[dev]" succeeds locally
  • pytest tests/ passes locally (80 tests) after installing in a fresh venv (and smoketesting -h for a script or two also works)
  • GitHub Actions workflow passes on this PR
  • Windows pip install -e ".[dev]" + pytest and run a script from a fresh clone on a Windows host

@arpitjain099 arpitjain099 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Checked that the deps dropped from requirements.txt (beautifulsoup4, requests, contextily, pyogrio, etc.) aren't directly imported in the main codebase, so the trimmed dependency list is correct. The sys_platform markers for psycopg2 are a nice touch. CI simplification to a single pip install is much cleaner.

Move package discovery to setuptools packages.find, add [dev] extra with
pytest, and make pyproject.toml the single install source on Windows,
Linux, and macOS. CI installs via pip install -e ".[dev]" after matching
system GDAL. Remove requirements.txt and document pip install from GitHub.

Co-authored-by: Cursor <cursoragent@cursor.com>
@elliott-ruebush elliott-ruebush force-pushed the feature/pyproject-deps-ci branch from 0de84c5 to 87f1411 Compare July 9, 2026 00:54
Comment thread pyproject.toml
name = "NPS-ActiveSpace"
version = "2.0"
description = "An NPS Sound Active Space Project."
version = "3.0"

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I bumped this version to 3.0 since we had mentioned it was inadvertently left out of date

Comment thread setup.cfg

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unneeded file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants