-
Notifications
You must be signed in to change notification settings - Fork 518
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
Request for a v5.4.1.post1 release to set Cython<3
#728
Comments
@nitzmahone answered here. |
With the release of Cython3 the build of PyYAML 5.4.1 is broken [1]. There seems to be no plan to fix 5.4.x branch [2]. Tox tests and a real world example runs fine with 6.0.1 [1] yaml/pyyaml#724 [2] yaml/pyyaml#728 Signed-off-by: Jan Remmet <[email protected]>
I hadn't seen that PR; thanks for the link! That comment explains the situation much better than some of the other threads. To extract some specific detail from that,
This speaks to the issue as seen from the perspective of not wanting to break existing (working) installs of 5.4.1 wheels by releasing new/different packages from newer infrastructure. I think that rules out the possibility of using 5.4.2 or 5.4.1.post1. I don't like that we're in this situation, but now that we're here, it doesn't seem productive to continue considering those options. What about the possibility of publishing a dev or alpha release such that it can be explicitly selected? If
That doesn't risk breaking anyone except those who are relying on If the backported pre-release idea isn't viable, or simply too unsightly to consider, I'd ask a maintainer to simply close this issue. |
With the release of Cython3 the build of PyYAML 5.4.1 is broken [1]. There seems to be no plan to fix 5.4.x branch [2]. Tox tests and a real world example runs fine with 6.0.1 [1] yaml/pyyaml#724 [2] yaml/pyyaml#728 Signed-off-by: Jan Remmet <[email protected]>
With the release of Cython3 the build of PyYAML 5.4.1 is broken [1]. There seems to be no plan to fix 5.4.x branch [2]. Tox tests and a real world example runs fine with 6.0.1 [1] yaml/pyyaml#724 [2] yaml/pyyaml#728 Signed-off-by: Jan Remmet <[email protected]>
With the release of Cython3 the build of PyYAML 5.4.1 is broken [1]. There seems to be no plan to fix 5.4.x branch [2]. Tox tests and a real world example runs fine with 6.0.1 [1] yaml/pyyaml#724 [2] yaml/pyyaml#728 Signed-off-by: Jan Remmet <[email protected]>
Instead of explicitly asking for a known workaround (i.e., Cython < 3 dependency as in #726 and #702), this issue should be asking for a resolution of #601 for a 5.x release (e.g., 5.4.1.post1). Perhaps a better solution for this issue would be to close it as a duplicate of #724 (which reports it as a more generic issue on 5.x). I look forward to a #731 (and formerly #602) type of fix for a 5.x release. |
I'm not entirely sure, but I think that |
Post releases and dev releases are both well defined by pep 440 and are supported by the mainstream installers and solvers. If you have a third order dependency which does exact pinning ( At this point, there isn't very much point in discussing the finer points of the version semantics. The pyyaml maintainers first need to demonstrate some interest in this approach. |
I'm less opposed to doing an sdist-only pre-release of 5.4.1 with the packaging metadata capped at
Long answer short: we can do a |
PS: if you don't follow Python packaging carefully, the entire Python ecosystem will likely start having this problem x1000 in the next few months, when all the projects that have uncapped build-time |
I feel like I've somehow not understood something regarding the wheel builds. Let's suppose we agree that the new version will be I understand not wanting to try to move 5.x to support the platforms supported by 6.x or other aggressive efforts -- the goal I have here is to be as narrow as possible and demand the least from maintainers to get wedged users unstuck. But can we not build a very strict subset of the wheels where the builds are possible? Regarding two specific points above, I think there are easy answers:
Yep, there's no improvement for these cases, but I consider them completely out of scope. I'm mostly concerned with dependency chains which include completely dead projects which specify
Mostly by bumping into these threads on github and it becoming the canonical answer. I don't think it's a problem that it's obscure or arcane. Plus, the pyyaml maintainers get to close all of these related discussions aggressively with some standard-ish text of "You can use 5.4.1.1rc1 and see if that works for you. If it doesn't, that's as far as we're willing to go to accommodate these old toolchains, so you'll need to find a way to constrain the cython version in your build environment." |
What about making |
sdist-only for 3.10+ is an interesting idea.
As long as there's at least one version of |
Can you try the workaround in #736? Python-version limited releases don't solve a lot of the problems we're likely to face here... |
I think that the workarounds mostly do work, but require all the effected projects to apply they. |
Closing- see proposed workarounds. We won't be accepting any backports or doing any releases for older PyYAML branches. |
As broken by yaml/pyyaml#728
Solution taken from yaml/pyyaml#724 Main issue yaml/pyyaml#728 Recommended workaround yaml/pyyaml#736
Solution taken from yaml/pyyaml#724 Main issue yaml/pyyaml#728 Recommended workaround yaml/pyyaml#736
Solution taken from yaml/pyyaml#724 Main issue yaml/pyyaml#728 Recommended workaround yaml/pyyaml#736
Solution taken from yaml/pyyaml#724 Main issue yaml/pyyaml#728 Recommended workaround yaml/pyyaml#736
There is an issue with pyyaml 5.4.1, see yaml/pyyaml#728 for details Signed-off-by: Szilard Parrag <[email protected]>
With the release of Cython3 the build of PyYAML 5.4.1 is broken [1]. There seems to be no plan to fix 5.4.x branch [2]. Tox tests and a real world example runs fine with 6.0.1 [1] yaml/pyyaml#724 [2] yaml/pyyaml#728 Signed-off-by: Jan Remmet <[email protected]>
With the release of Cython3 the build of PyYAML 5.4.1 is broken [1]. There seems to be no plan to fix 5.4.x branch [2]. Tox tests and a real world example runs fine with 6.0.1 [1] yaml/pyyaml#724 [2] yaml/pyyaml#728 Signed-off-by: Jan Remmet <[email protected]>
I would like to propose and hear pyyaml maintainers' feedback on the suggestion that a new release be cut off of the 5.4.1 release, the only change being an update to
build-system.requires
inpyproject.toml
to listCython<3
.This issue is intended to separate discussion of this potential workaround from all of the other discussion of the Cython 3.0 release impact, pyyaml 6.x, etc.
Why do this?
It's important to answer why this particular workaround is valuable, rather than a few of the other options.
First, to the matter of upgrading. This is likely the best approach for any code over which pyyaml users have direct control.
Unfortunately, some of us are working with second or third-order dependencies or other situations in which we have limited control.
I've followed this a bit in my own case and found myself at an EOL project which pins pyyaml<6.
Just as I want my dependencies to upgrade, I'd like for my dependencies to move off of EOL libraries, but this is the unfortunate reality of some existing toolchains.
Second, controlling the build environment. This is possible, but it gets harder the further you are, as a user, from the direct
pip
invocation used to do the install.In particular,
tox
installation ofdeps
andpoetry
installation of dependencies have been noted among end-users ofpyyaml
-based projects as situations in which the--no-build-isolation
workaround isn't highly feasible.How can this get done?
Basically, there needs to be a new branch for 5.4.1.post1, a commit on that branch with the
Cython<3
fix, and then whatever the "normal" release process looks like forpyyaml
(twine upload
, etc).It looks like the build infrastructure has advanced a bit in the intervening 2 years, but not so much that a release should be impossible.
There isn't very much room for community involvement on this. I could create a branch off of 5.4.1 with the necessary build-system update, but there isn't a valid PR target for such a change.
Will this imply that 5.x is still maintained? Why 5.4.1.post1 rather than 5.4.2?
No. This risks getting into somewhat ideological territory about how package maintainers behave, but I don't think any reasonable direct user of pyyaml would read a 2-years-after-the-fact fix to make installs possible as a signal that 5.x is now safe to use.
This is also why I propose doing this as a post release. There is very little difference between 5.4.1.post1 and 5.4.2 other than the cosmetics. PEP 440 specifies that 5.4.1.post1 sorts after 5.4.1, which is all we need for this fix to be effective.
The text was updated successfully, but these errors were encountered: