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

Version 2.0.0: Drop support for python 3.6 and 3.7 #50

Merged
merged 9 commits into from
Jun 7, 2023

Conversation

frank113
Copy link
Contributor

@frank113 frank113 commented Jun 6, 2023

Summary

This PR responds to issue #39 concerning the removal of support for Python 3.6 and 3.7. As stated in the PR the stated versions of python entered "End of Life" during the following times:

  • Python 3.6: 2021-12-23
  • Python 3.7: 2023-06-27

Changes Made

  1. Add @frank113 to list of contributors
  2. Bump major version from 1.0.0 -> 2.0.0 as per Semantic Versioning point 9.
  3. Standardize typing imports as conditional imports for python>=3.8 is no longer needed
  4. Update tox.ini to include py311 to match tags within setup.py
  5. Update setup.py to remove install_requires and now-irrelevant tags.
  6. Remove 3.7 from CI workflow

Considerations

  • The assumption that py311 was needed within tox.ini to match the given tags within setup.py is an assumption on my end
  • I do not feel strongly about the typing import in argparse_dataclass.py but prefer to avoid repetition of typing.<TYPE>

References

Other

The package results in a very clean interface. Thanks for starting this!

@frank113 frank113 marked this pull request as ready for review June 6, 2023 03:41
@frank113 frank113 changed the title Drop py36 37 Version 2.0.0: Drop support for python 3.6 and 3.7 Jun 6, 2023
@frank113 frank113 marked this pull request as draft June 6, 2023 03:47
@frank113 frank113 marked this pull request as ready for review June 6, 2023 03:48
@mivade
Copy link
Owner

mivade commented Jun 6, 2023

I've never actually been sure if dropping support for a Python version actually counts as a breaking change. I think you meant to refer to Item 8 which talks about breaking changes to the public API, not to things like what versions are supported. However I've also had issues with other libraries that I've used before where they drop support for a version of Python I'm using and only change the minor version or even the patch version which is annoying so I don't feel particularly strongly one way or another.

Copy link
Owner

@mivade mivade left a comment

Choose a reason for hiding this comment

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

Thanks! This looks good to me overall apart from some minor changelog comments.

CHANGELOG.md Outdated
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.0.0] - 2023-06-05
Copy link
Owner

Choose a reason for hiding this comment

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

Can you change this to Unreleased and remove the date? I'll finalize updates here when I'm ready to push a release to PyPI.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Changes made!

CHANGELOG.md Outdated
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.0.0] - 2023-06-05

Support for both python 3.6 and 3.7 is removed.
Copy link
Owner

Choose a reason for hiding this comment

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

I believe there have been some more changes since the last release but if you don't feel like checking I can handle updating this when I make the release.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Using commit 11cf9ef468a9f5d54d83275b9317492bf98c68ce as the starting point the following changes were as follows:

  • AddTypeError for non-Optional Union typing with prompt to use custom type
  • Add support for metavar in metadata
  • Literal types as an alternative for fixed-choice fields
  • Prevent Literal and choices collision
  • Unit tests for:
    • union typing

I added the above points in CHANGELOG.md, feel free to add any that I may have missed!

@frank113
Copy link
Contributor Author

frank113 commented Jun 7, 2023

I've never actually been sure if dropping support for a Python version actually counts as a breaking change. I think you meant to refer to Item 8 which talks about breaking changes to the public API, not to things like what versions are supported. However I've also had issues with other libraries that I've used before where they drop support for a version of Python I'm using and only change the minor version or even the patch version which is annoying so I don't feel particularly strongly one way or another.

Agreed, my thinking was to err on the side of caution and us Item 9 and increment the major version. Luckily python3.8 has EOL October 14, 2024 so we won't encounter this problem in the near future.

@frank113 frank113 requested a review from mivade June 7, 2023 02:23
Copy link
Owner

@mivade mivade left a comment

Choose a reason for hiding this comment

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

Thanks!

@mivade mivade merged commit 83d06d6 into mivade:main Jun 7, 2023
4 checks passed
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.

None yet

2 participants