Replies: 1 comment 2 replies
-
Right. A production-ready software, which we'd like to think ruyaml is 😎, should not use major number zero. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
One of the things I don't like about ruamel.yaml is the versioning scheme that makes it impossible to safely set a version for it like ">= X, < X+1" because there were API breaking changes within the minor version update:
YAML()
instance will need to be created.I would like to propose this project to have versioning based on semantic versioning because I want users of this module to feel safe and confident that their apps will not suddenly break.
I propose to not try to keep our versioning aligned with upstream in any way - I would NOT try to have our version numbers somehow "automatically" be generated out of upstream version (like major version +1 or sth like that) and NOT promise to release each upstream release as a separate release.
What we should do is to have clear information in the changelog and GitHub release descriptions about what upstream version has been merged into our one. And each time we would merge upstream changes we should reevaluate according to semver and common sense if a given release should be upticked in the patch, minor or major version.
As the new major versions are a big pain to roll out, they should be discussed with the project community before being made to ensure that this is really necessary - perhaps they are some backward-compatible options to move forward too.
We should create pre-releases (as defined by PEP 440) and ask users to test them and report their issues. This together with automated tests should minimize the problemss like the yanked versions 0.17.0 and 0.17.1 of the upstream.
To prevent too quick jump of the major version numbers from 1 to 2, as Python 3.5 is EOL since September 2020, let's drop support for it already before ruyaml 1.0 release. Otherwise whenever upstream 0.18.0 is released - and this may happen any moment now - and we will merge it, we would like to uptick the major version to 2. This would not look great if it happens f.e. just weeks or days after 1.0 release if we promise better API stability. (Of course if 0.18.0 will also have a backward-incompatible API change that will affect Python 3.6+ users, then we would have to uptick the major version.)
(I was considering dropping Python 3.6 support as well, as it will be EOL at the end of December 2021, but it's the latest Python 3 version available under Centos/RHEL 7 - according to my knowledge - and the latter will be EOL only in June 2024 so I would personally prefer to keep Python 3.6 support for at least a few more months, until hopefully a new Python version will be at least (semi)officially released for Centos/RHEL 7.)
What do you think about this? Any objections, counterproposal, would you change some parts?
Beta Was this translation helpful? Give feedback.
All reactions