- Notifications
You must be signed in to change notification settings - Fork624
Update Windows download popup and list for 3.9. (#1611)#1655
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
{% if os.slug == 'windows' and r.name >= 'Python 3.5' %} | ||
<p><strong>Note that {{ r.name }} <em>cannot</em> be used on Windows XP or earlier.</strong></p> | ||
{% if os.slug == 'windows' %} | ||
{% if r.name >= 'Python 3.9' %} |
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.
Wouldn't this returnFalse
ifr.name
is'Python 3.10'
?
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.
Probably! But that's just what the existing code does. I was going to open a separate issue to go through the whole repo to fix all similar version checks prior to 3.10.0 a year from now. Do you have any idea if there are other such version checks?
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.
Yep!
>>>'Python 3.10'>='Python 3.9'False
A quick grep doesn't show any more of this pattern:
$git grep -E"[23]\..* [<>][=]?"$git grep -E" [<>][=]? .*[23]\."static/sass/_layout.scss: & > .column { width: 33.3333%; }templates/downloads/os_list.html: {% if os.slug == 'windows' and r.name >= 'Python 3.5' %}
Runninghttps://github.com/asottile/flake8-2020/ doesn't find anything:
$pip install -qU flake8-2020&& flake8 --select YTT$
Still worth a more thorough review.
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.
If anyone wants to come up with a proper version test, please feel free to do so! My immediate concern is the imminent 3.9.0 release.
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.
Agreed, this PR looks good for 3.9.0, and we've a year to fix it properly for 3.10.0.
Something like this?
>>>from packagingimport version# pip install packaging>>>defparse_version(version_string):...return version.parse(version_string.split()[1])...>>> parse_version("Python 3.10")>= parse_version("Python 3.9")True>>> parse_version("Python 3.10")<= parse_version("Python 3.9")False>>> parse_version("Python 3.10")== parse_version("Python 3.10")True>>>
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.
Oh, that looks like a good approach. I forgot about packaging.
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.
And rather than the.split()[1]
, looks like we could user.get_version()
:
defparse_version(version_string):returnversion.parse(version_string)
pythondotorg/downloads/models.py
Lines 121 to 125 in0f07e9d
defget_version(self): | |
version=re.match(r'Python\s([\d.]+)',self.name) | |
ifversionisnotNone: | |
returnversion.group(1) | |
returnNone |
pythondotorg/downloads/tests/test_models.py
Lines 63 to 66 in0f07e9d
deftest_get_version_27(self): | |
release=Release.objects.create(name='Python 2.7.12') | |
self.assertEqual(release.name,'Python 2.7.12') | |
self.assertEqual(release.get_version(),'2.7.12') |
OK, including this is urgent for 3.9 to not mislead the users to think 3.9 works on Windows Vista and Windows 7. My vote is: let's merge the current state, unblocking 3.9.0, and fix forward for 3.10. |
As of Python 3.9, only Windows 7 and later systems are supported. With the release of 3.9.0, change the download popup to state that (since we assume the download popup button will never move back to 3.8.x or earlier) and change the Windows download list to show Windows 7 for 3.9 and later releases and continue to show Windows XP for 3.5 through 3.8..