Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automate populating version targets in tox #3808

Open
sentrivana opened this issue Nov 19, 2024 · 0 comments
Open

Automate populating version targets in tox #3808

sentrivana opened this issue Nov 19, 2024 · 0 comments
Assignees
Labels
Component: DX Dealing with developer experience

Comments

@sentrivana
Copy link
Contributor

sentrivana commented Nov 19, 2024

Right now, we add new versions of integrations to test against to tox.ini whenever someone notices there has been a release (not very often).

Write a script that instead does this automatically:

  • parse tox.ini to figure out the lowest supported version of each integration (i.e., the lowest version we test with)
  • fetch package releases from PYPI
  • find out what the latest release of the integration is
  • pick out a handful of releases in between oldest supported and latest
  • figure out which Python versions they should be tested on
  • generate tox.ini with the new targets
  • regenerate the workflow yaml files as well (scripts/split-tox-gh-actions/split-tox-gh-actions.py)

Additionally, would be great to define a deprecation policy for old framework versions.

@sentrivana sentrivana self-assigned this Nov 19, 2024
@antonpirker antonpirker added the Component: DX Dealing with developer experience label Dec 11, 2024
sentrivana added a commit that referenced this issue Jan 9, 2025
For [populating tox
automatically](#3808),
we need to store min versions of frameworks/libraries in a
programmatically accessible place.

The obvious place for this would be in each integration; however, since
integrations can't be imported unless the respective framework is
installed, this couldn't be used from the script (unless we'd always
install all requirements of all integrations prior to running it, which
takes a non trivial amount of time). So instead I've opted for a central
place within `sentry_sdk/integrations/__init__.py`.

Note: the min versions probably need updating. Not sure when this was
last done, but some of them look quite ancient and we probably don't
support them because we'd already dropped the last Python version they'd
be able to run on.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: DX Dealing with developer experience
Projects
None yet
Development

No branches or pull requests

2 participants