Closed abruceme closed 3 weeks ago
I think this is new: for individual projects there is a feed.
For example, https://pypi.org/project/setuptools/#history has a link to this RSS feed: https://pypi.org/rss/project/setuptools/releases.xml
Sorry, I misread, you're asking about CPython releases!
Yeah I think an RSS feed for CPython releases is a great idea!
Oh look, GitHub has a feed for tags!
Should this be added to python.org, perhaps somewhere on https://www.python.org/downloads/?
Thanks @hugovk for the discovery! It seems to be that should suffice for our purposes. I've pinged the other release managers for their opinions. If no one objects, I will add it to the downloads page.
Related to this, would it be possible to have a feed for https://docs.python.org/3/whatsnew/changelog.html ? I would like an easy way to keep informed of changes for new releases.
There's an RSS feed for https://blog.python.org/
It's "Python core development news and information" and mostly release news, but not quite a feed of the changelog.
@maxking, here's an already open issue about providing a releases feed.
FWIW, I've also been interested in a CPython releases feed, and I recently put one together built on a Github Action that scrapes the stable and prerelease download pages once a day and generates an RSS feed from them:
I think it's working correctly, but it's not exactly easy to test quickly. 😜 The primary link for each feed entry takes you directly to the release detail page, e.g. https://www.python.org/downloads/release/python-392/.
Suggestions for improvements welcome from anyone interested. @warsaw, per https://github.com/python/pythondotorg/issues/1634#issuecomment-691375544, if you have a different format you'd find useful (Markdown summary in README, perhaps?), I'd be happy to give a go at implementing it alongside the RSS.
Thanks @ned-deily for the pointer.
As it turns out, there is already a Json API which exposes the releases and the downloads: https://www.python.org/api/v2/ I understand that this issue is about an RSS/atom feed instead of a Json API but this does most of the job and clients can infer a new release based on the length of objects under https://www.python.org/api/v2/downloads/release/
Thanks @ned-deily for the pointer.
As it turns out, there is already a Json API which exposes the releases and the downloads: https://www.python.org/api/v2/ I understand that this issue is about an RSS/atom feed instead of a Json API but this does most of the job and clients can infer a new release based on the length of objects under https://www.python.org/api/v2/downloads/release/
Is there an equivalent interface for active python releases ala the downloads page https://www.python.org/downloads/?
i.e. 3.10, 3.9, 3.8, 3.7, 2.7
@grepusername Do you mean to check if an x.y release is not-EOL?
The https://endoflife.date/python page has an API at https://endoflife.date/api/python.json that gives the EOL dates for each x.y release, so we can see 3.7-3.10 are currently active.
Does that help?
thanks @hugovk that could work, though I was hoping there might be an official option.
I will proceed with that one for now.
It looks like the API at https://www.python.org/api/v2/downloads/release/ might no longer be receiving events correctly: there are no versions listed for CPython 3.10 or 3.11, only 3.9 (the latest being 3.9.16).
@woodruffw My homebrewed RSS that scrapes the python.org download pages once a day is working fine for all active minor versions, including 3.10 and 3.11, and also reports 3.12 prereleases.
It may not be official, but it's been working stably for nearly two years now.
Yep! I'm probably going to go with yours, that was more just to flag an "official looking" API that isn't doing quite what's expected :wink:
It looks like the API at python.org/api/v2/downloads/release might no longer be receiving events correctly: there are no versions listed for CPython 3.10 or 3.11, only 3.9 (the latest being 3.9.16).
Looks okay now, I can see lots for 3.10 and 3.11, and the newest 3.10.9, 3.11.1 and 3.12.0a4 are there:
{
"name": "Python 3.10.9",
"slug": "python-3109",
"version": 3,
"is_published": true,
"is_latest": false,
"release_date": "2022-12-06T20:30:39Z",
"pre_release": false,
"release_page": null,
"release_notes_url": "https://docs.python.org/release/3.10.9/whatsnew/changelog.html#python-3-10-9-final",
"show_on_download_page": true,
"resource_uri": "https://www.python.org/api/v2/downloads/release/774/"
},
{
"name": "Python 3.11.1",
"slug": "python-3111",
"version": 3,
"is_published": true,
"is_latest": true,
"release_date": "2022-12-06T21:04:21Z",
"pre_release": false,
"release_page": null,
"release_notes_url": "https://docs.python.org/release/3.11.1/whatsnew/changelog.html#python-3-11-1",
"show_on_download_page": true,
"resource_uri": "https://www.python.org/api/v2/downloads/release/772/"
},
{
"name": "Python 3.12.0a4",
"slug": "python-3120a4",
"version": 3,
"is_published": true,
"is_latest": false,
"release_date": "2023-01-10T16:23:52Z",
"pre_release": true,
"release_page": null,
"release_notes_url": "",
"show_on_download_page": false,
"resource_uri": "https://www.python.org/api/v2/downloads/release/775/"
},
@bskinn Thank you for that! I see the RSS feed is still up-to-date with 3.13.0b1 and 3.12.3 accounted for.
@hugovk this seem still be working... is this something we can use or do we need to munge it into an rss feed or something
If its the latter, we could use feedgen to maybe generate that from our JSON endpoint? https://docs.djangoproject.com/en/4.2/ref/contrib/syndication/
Let me know if there is more you would like to see here/if it is not sufficient.
Thanks!
And the feed is: https://www.python.org/downloads/feed.rss
Although it doesn't validate:
line 2, column 609: guid must be a full URL, unless isPermaLink attribute is false: 925 (10 occurrences) [help]
... p 2024 01:32:54 +0000</pubDate><guid>925</guid></item><item><title>Pytho ...
https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fwww.python.org%2Fdownloads%2Ffeed.rss
https://validator.w3.org/feed/docs/error/InvalidHttpGUID.html says:
guid
must be a full URL, unless isPermaLink attribute is false
I think it would be most useful to re-use the URL from link
:
<link>https://www.python.org/downloads/release/python-31015/</link>
Also, please could you add it with the other feeds in the <head>
of all the pages to make it discoverable?
<link rel="alternate" type="application/rss+xml" title="Python Enhancement Proposals"
href="https://peps.python.org/peps.rss">
<link rel="alternate" type="application/rss+xml" title="Python Job Opportunities"
href="https://www.python.org/jobs/feed/rss/">
<link rel="alternate" type="application/rss+xml" title="Python Software Foundation News"
href="https://feeds.feedburner.com/PythonSoftwareFoundationNews">
<link rel="alternate" type="application/rss+xml" title="Python Insider"
href="https://feeds.feedburner.com/PythonInsider">
It's in the <head>
and valid now, thanks!
https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fwww.python.org%2Fdownloads%2Ffeed.rss
This is great, thanks a ton for your hard work here @JacobCoffee!
Is your feature request related to a problem? Please describe. There seems to be no really easy and obvious way to automate the monitoring of python releases.
Describe the solution you'd like It would be great if there was an up-to-date and reliable feed for python releases.