Skip to content

Update packaging and CI - #98

Open
waddell wants to merge 3 commits into
devfrom
maintenance/packaging-ci
Open

Update packaging and CI#98
waddell wants to merge 3 commits into
devfrom
maintenance/packaging-ci

Conversation

@waddell

@waddell waddell commented Aug 21, 2026

Copy link
Copy Markdown
Member

Summary

Establish the first reviewable maintenance baseline from #95 before recovering implementation and feature work from #94.

This PR:

  • adds a PEP 517 build-system declaration while retaining the existing setuptools configuration;
  • removes obsolete Python 2 and Python 3.5–3.8 package declarations;
  • declares the currently validated Python 3.10–3.11 support window;
  • records a conservative NumPy 1.26 / Pandas 1.5 / Pandana 0.7 dependency envelope; declares tested lower bounds for runtime dependencies, with upper bounds only where incompatibility is confirmed (Pandas 2, NumPy 2);
  • adds pinned constraints for a repeatable CI maintenance baseline; adds requirements-lower-bound.txt, pinning each dependency at its declared minimum;
  • runs deterministic tests on Python 3.10 and 3.11; runs tests against lower-bound dependencies on Python 3.10 and latest dependencies on Python 3.11;
  • builds both source and wheel distributions, validates their metadata, installs the wheel, runs pip check, and imports it outside the source tree;
  • marks six tests that require live external services so they do not make required CI nondeterministic;
  • corrects two legacy test assertions exposed by the restored baseline without changing runtime behavior;

Python 3.12, Pandas 2+, NumPy 2, and Pandana 0.8 are intentionally deferred to the compatibility and Pandana-integration work tracked in #95.

Related work

This PR does not incorporate implementation code from #94. It creates the tested baseline against which that work can be recovered and credited in topical PRs.

Verification

  • Python 3.10 with minimum dependencies: all tests pass.
  • Python 3.11 with current dependencies: all tests pass.
  • Source distribution, wheel build, and metadata validation pass.
  • The built wheel installs, passes dependency validation, and imports outside the source tree as UrbanAccess 0.2.2.
  • git diff --check passes.

Source and provenance

Not applicable. No code from #94 or another fork is incorporated in this PR.

@smmaurer smmaurer changed the title Establish packaging and deterministic CI baseline Update packaging and CI Aug 26, 2026
@smmaurer

Copy link
Copy Markdown
Member

Pushed a follow-up commit adjusting the CI design to match the test matrix in the UDST CI and Release Plan and the pattern already used in Pandana. The original PR body is edited with strikethrough.

  • Test matrix. Replaces the two identically pinned jobs with a lower-bound job (Python 3.10, requirements-lower-bound.txt) and a latest-dependencies job (Python 3.11, unpinned).
  • Dependency metadata. Lower bounds raised to the tested versions (NumPy 1.26, Matplotlib 3.7, scikit-learn 1.3, GeoPy 2.4, Requests 2.32). Upper bounds removed except pandas < 2 and numpy < 2, which are confirmed incompatibilities.
  • Matplotlib. The latest-dependencies job caught that matplotlib.cm.get_cmap was removed in Matplotlib 3.9. Updated our code to use pyplot.get_cmap, same behavior. This is the only runtime change.
  • Code style. Restores the pycodestyle urbanaccess check that Travis ran.
  • Travis. Removes .travis.yml and points the README badge at the Actions workflow.

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

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants