-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
fixed #1042 -- corrected an import #1043
Conversation
👍 |
Presumably this should be force-merged since the former released version's breakage is what's breaking the build? |
That does appear to be the case. |
Please merge and release asap |
^ Seconded, we really would appreciate this getting merged as soon as possible. |
I'm sure they're already aware that everyone would like this merged, so can we please not all chime in with the equivalent of "+1"? It just spams everyone's notifications, which I want to watch to see when actual progress is made. Use the reaction buttons. |
The reaction buttons don't get an email sent to any maintainers/watchers of the project. Adding comments does. It really is not acceptable to break the world, then when notified leave the breakage for hours (at this point it has been 4+ hours) |
You're almost certainly sending notifications to someone who is asleep, which isn't productive. |
I kinda feel that for packages as core to basically everything python as pip is, maybe schedule the release for the start of the day, rather then right before leaving to go to sleep? Having someone who can do an emergency rollback/fix available for a few hours after a new version is released doesn't seem like a huge overhead. Just put that late-afternoon release off to the next morning. As an aside, I do find it amusing that all the failing CI builds I looked at are failing because they can't install packages due to this bug. So much for testing. |
Seems like this bug affects majority of OpenStack bug. Guess this is how it sounds like by looking at the IRC discussions and my local experiences from today's morning. |
Guys it's super critical for me. All deployment process was broken. |
@jaraco all python ecosystem was broken. Please merge it ASAP!!! |
When installing
|
@@ -4,7 +4,7 @@ | |||
|
|||
import platform | |||
|
|||
import six | |||
from setuptools.extern import six |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why using six???
In package six the Python version is determined by calling sys.
PY2 = sys.version_info[0] == 2
See: https://bitbucket.org/gutworth/six/src/92e1c746e1abfbdb94705b821bc93766083efc54/six.py?at=default&fileviewer=file-view-default
Best solution is to use "sys" to check if it is python 2 version.
If it must be version 2.7 check for major and minor version!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert 1d928cb ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually reverting should looks better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, reverting is a much cleaner solution.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all people still wait, if you can please revert this shortly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
six
is already used elsewhere, so it makes sense to use it here as well (after the import is corrected).
@westsouthnight This was worked around by pulling the affected version from PyPI, so things should be fine again for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have seen that it was used in other parts to check if an object is of the type "isinstance(value, six.string_types)". Does that mean that this part of the code must have six? I just can't see that "import sys" must be replaced by six. It doesn't solve a problem in my opinion.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fwdevmobile It doesn't mean it must have six. But it makes sense for it to use it when available, to - even if only for a tiny bit - increase readability and reduce technical debt. It's unfortunate that there was a mistake in it, but generally, it - IMHO - is a slight improvement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do agree with the new import will solve all deployment issues. Please merge.
from setuptools.extern import six
This reverts commit 461e77e. Looks like setuptools has a problem which breaks CI builds, see: pypa/setuptools#1043
Thanks @jaraco! |
Thanks for providing this change. I apologize that I wasn't available to review and cut a release. I have made the release process thoroughly documented and readily available to anybody on PyPA. I typically also leave time after cutting a release to respond to any regressions, but due to the two botched attempts, I ran out of time and was relying on the passing tests to assure the release. Perhaps setuptools test suite needs a test that it can be installed in a clean environment. |
I for one don't believe I'm owed an apology here. We've all broken the build/production from time-to-time, but I don't think I'm capable of imaging the enormous pressure that must come with breaking everyone's builds. 😉 Python, and the tooling around it like PyPI, A patch for the problem was available within minutes, and I got an instant response on IRC channel. I think if anything, we owe you an apology for the incessant clamoring for an instant fix/release.
👍 Thanks for this. There were also several good suggestions for us as users on the issue. |
@jaraco unless you have a paid SLA with anyone you don’t owe us any apologies. It’s incredible how robust Python’s packaging has become due to PyPA’s tireless efforts. So thank you once more! The complaining wouldn’t be half as loud if the baseline reliability weren’t so good. Those complaining loudly about broken deployments should be thankful for this reminder that everything can break and it’s part of your jobs to deal with it. Google goes internally as far as introducing outages if a system has been too reliable for too long (see “Don’t overachieve” in the SLO chapter of the SRE book). This one was a minor incident that got fixed within a short period. There are totally scenarios where infrastructure you take for granted – and have no influence over! – goes away for a week or longer. How will you cope? |
@jaraco Thank you! I agree with @hynek that you and PyPA's maintainers and contributors have done a fantastic job the past few years. Thank you for being professional, responsive, helpful, and enhancing the user experience tremendously. 🌷 🌹 🌷 @hynek Thank you for adding thoughtful perspective on this too. |
I apologize if I offended someone. However, I wrote only the facts. The ecosystem was actually broken. The worst thing is that there was no way to get around this problem for me. @jaraco did everything right after all. Everyone could make such a mistake. Setuptools is a very reliable package. Thank you. |
@jaraco and other setuptools maintainers I sincerely apologise for my comment, and the strife it has caused. I've been getting a lot of flack for my comment above, especially on the Twitter sphere, and in private via email. Lot of people saying people should have known to pin the package or anything along those lines. Let me state up front that when I posted that comment I was incredibly frustrated, mainly because it wasn't until this started happening that I found out that Ansible with a pip statement will run The Sure there are work-arounds, and I am sure there is a place in the I maintain a variety of open source projects, I know how thankless of a job it is, and had I put on my maintainer hat when I posted the comment above I wouldn't have hit the comment button, I don't envy the position that |
Expanding on @bertjwregeer's excellent point about |
We're likely going to be able to stop excluding setuptools in |
This isn't really the place for this discussion, but if you recall #940 from a couple of months ago, this isn't the first time virtualenv behaviour has been broken with setuptools in recent history. Some kind of mitigation for this repeated type of failure should be put in place. Where's the best place to take this discussion to move it forward? |
As someone who, using
The trick is that |
Patch Set 2: The fix for setuptools was merged: pypa/setuptools#1043 Patch-set: 2 Reviewer: Gerrit User 20033 <20033@4a232e18-c5a9-48ee-94c0-e04e7cca6543> Label: Verified=0
No description provided.