feat!: drop Python 3.10 support and remove python-dateutil dependency - #158
Open
hakandilek wants to merge 3 commits into
Open
feat!: drop Python 3.10 support and remove python-dateutil dependency#158hakandilek wants to merge 3 commits into
hakandilek wants to merge 3 commits into
Conversation
The production parser delegates timestamp deserialization to py-serializable and never imports python-dateutil. Remove the test-only wrapper rather than relocating it to a Poetry development group that tox environments do not install. Keep timestamp coverage on the actual parser path with a non-UTC offset fixture. Closes #157
Python 3.10 reaches end of life in October 2026. Raising the floor also makes timestamp parsing behavior consistent across every supported interpreter. Keep the project version at 4.3.0 so the 5.0.0 release bump can land separately at release time. BREAKING CHANGE: the minimum supported Python version is now 3.11.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
build(deps): remove python-dateutil runtime dependencyremoves the unused runtime package, its type stubs, and the test-only parsing wrapper. Timestamp coverage now exercises the production parser with a non-UTC offset.feat!: drop support for Python 3.10raises the package, tox, CI, release, and documented minimum to Python 3.11.chore: bump version to 5.0.0applies the corresponding major version bump as an isolated commit.Rationale
python-dateutilwas only imported by a test helper. Production timestamp deserialization is handled bypy-serializablethrough the standard library. Moving the dependency only to Poetry's development group would also leave tox environments broken because they install the built package plus tox-specific dependencies, not the Poetry development group.Removing the helper avoids testing
python-dateutilitself. The replacement fixture verifies a+04:30timestamp throughStandardBomParser. Dropping Python 3.10, which reaches end of life in October 2026, also removes the supported-version discrepancy for compact ISO 8601 offsets such as+01.Breaking Change
Removing the unused runtime dependency is not itself a breaking change. Requiring Python 3.11 or newer is breaking, so this PR bumps the package to 5.0.0 in a separate commit.
Verification
poetry run tox run -rpoetry installreports version 5.0.0 through installed package metadatapoetry buildproduces the 5.0.0 wheel and source distributionCloses #157
Thanks @suliuzh for identifying the unnecessary runtime dependency.