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

Update Windows download popup and list for 3.9. (#1611) #1655

Merged
merged 1 commit into from Oct 5, 2020

Conversation

@ned-deily
Copy link
Member

@ned-deily ned-deily commented Oct 5, 2020

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..

@ned-deily ned-deily requested a review from berkerpeksag Oct 5, 2020
{% 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' %}

This comment has been minimized.

@berkerpeksag

berkerpeksag Oct 5, 2020
Member

Wouldn't this return False if r.name is 'Python 3.10'?

This comment has been minimized.

@ned-deily

ned-deily Oct 5, 2020
Author Member

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?

This comment has been minimized.

@hugovk

hugovk Oct 5, 2020
Contributor

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' %}

Running https://github.com/asottile/flake8-2020/ doesn't find anything:

$ pip install -qU flake8-2020 && flake8 --select YTT
$

Still worth a more thorough review.

This comment has been minimized.

@ned-deily

ned-deily Oct 5, 2020
Author Member

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.

This comment has been minimized.

@hugovk

hugovk Oct 5, 2020
Contributor

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 packaging import version  # pip install packaging
>>> def parse_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
>>>

This comment has been minimized.

@ned-deily

ned-deily Oct 5, 2020
Author Member

Oh, that looks like a good approach. I forgot about packaging.

This comment has been minimized.

@hugovk

hugovk Oct 5, 2020
Contributor

And rather than the .split()[1], looks like we could use r.get_version():

def parse_version(version_string):
     return version.parse(version_string)

def get_version(self):
version = re.match(r'Python\s([\d.]+)', self.name)
if version is not None:
return version.group(1)
return None

def test_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')

@ambv
Copy link
Contributor

@ambv ambv commented Oct 5, 2020

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.

@ewdurbin ewdurbin merged commit 802aa1e into python:master Oct 5, 2020
1 check passed
1 check passed
Travis CI - Pull Request Build Passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants
You can’t perform that action at this time.