Skip to content

Conversation

@vineetbansal
Copy link
Collaborator

@vineetbansal vineetbansal commented Jan 15, 2026

Summary

Once CI on this PR passes, this should simplify things quite a bit by hard-coding dependencies that are guaranteed to work on all platforms (and supported python versions) in a requirements.txt file, in addition to the CI workflows on floating dependencies that already exist.

If the goal is reproducibility-if-all-else-fails from the point of view of the users, then they'll find dealing with a requirements.txt much easier. The added workflow will give the developers some time to fix the code in case the code does start failing on account of an updated dependency.

AFAIK no workflow is utilizing the platform-specific files in the requirements/ folder at all.

Checklist

  • Google format doc strings added.
  • Code linted with ruff. (For guidance in fixing rule violates, see rule list)
  • Type annotations included. Check with mypy.
  • Tests added for new features/fixes.
  • I have run the tests locally and they passed.

@codecov
Copy link

codecov bot commented Jan 15, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.68%. Comparing base (8391a32) to head (8e998ba).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #314   +/-   ##
=======================================
  Coverage   85.68%   85.68%           
=======================================
  Files          10       10           
  Lines        1607     1607           
  Branches      285      285           
=======================================
  Hits         1377     1377           
  Misses        194      194           
  Partials       36       36           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@rkingsbury rkingsbury added dependencies Pull requests that update a dependency file pkg Package and repository health labels Jan 15, 2026
@rkingsbury rkingsbury merged commit 0278a8b into main Jan 15, 2026
44 of 45 checks passed
@rkingsbury rkingsbury added the github_actions Pull requests that update GitHub Actions code label Jan 15, 2026
@rkingsbury
Copy link
Member

Looks good, thanks @vineetbansal . I see the floating dependencies remain in pyproject.toml which I think is what we want. The requirements.txt would only be used if a user wants a specifically reproducible, guaranteed to work installation, correct, e.g.

pip install -r requirements.txt

? Otherwise, the floating deps in pyproject.toml would be used?

@vineetbansal
Copy link
Collaborator Author

@rkingsbury - yes, that's correct. The way we've seen it widely used is:

  • The dependencies in pyproject.toml is what the developer declares that they need to get things working. If anything is pinned there, there better be a good programmatic reason for it, and when dependencies change and break things, the developers want to know. Regular CI testing in this repo would alert us of this.

  • The requirements.txt is what the end user can use to get things working reliably, if for some reason doing a regular pip install breaks things.

The new workflow introduced here helps us check if we broke our code w.r.t. dependencies which were working before.

The requirements.txt can be occasionally updated (based on dependabot) or if dependencies change and break things and we ended up modifying our pyproject.toml to fix it.

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

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code pkg Package and repository health

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants