🌐 AI搜索 & 代理 主页
Skip to content

Conversation

@ned-deily
Copy link
Member

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 added the app/downloads Relates to the downloads app label Oct 5, 2020
@ned-deily ned-deily requested a review from berkerpeksag October 5, 2020 13:28
{% 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' %}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Member Author

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?

Copy link
Member

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

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.

Copy link
Member Author

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.

Copy link
Member

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

Copy link
Member Author

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.

Copy link
Member

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 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 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
@ned-deily ned-deily deleted the 39-windows-support branch June 6, 2023 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app/downloads Relates to the downloads app

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants