Skip to content

Commit 93d17e3

Browse files
authored
Add Android release support (#2762)
Add Android support
1 parent 2a81f76 commit 93d17e3

File tree

3 files changed

+366
-2
lines changed

3 files changed

+366
-2
lines changed

fixtures/downloads.json

Lines changed: 335 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,18 @@
3535
"slug": "source"
3636
}
3737
},
38+
{
39+
"model": "downloads.os",
40+
"pk": 4,
41+
"fields": {
42+
"created": "2025-08-06T17:02:24.294Z",
43+
"updated": "2025-08-06T17:02:24.296Z",
44+
"creator": 1,
45+
"last_modified_by": null,
46+
"name": "Android",
47+
"slug": "android"
48+
}
49+
},
3850
{
3951
"model": "downloads.release",
4052
"pk": 1,
@@ -7441,6 +7453,29 @@
74417453
"_content_rendered": "<p><strong>Note:</strong> The release you are looking at is <strong>Python 3.7.14</strong>, a <strong>security bugfix release</strong> for the legacy <strong>3.7</strong> series which is now in the <strong>security fix</strong> phase of its life cycle. See the <a class=\"reference external\" href=\"/downloads/\">downloads page</a> for currently supported versions of Python and for the most recent source-only <strong>security fix</strong> release for 3.7. The final <strong>bugfix release</strong> with binary installers for 3.7 was <a class=\"reference external\" href=\"/downloads/release/python-379/\">3.7.9</a>.</p>\n<p>Please see the <a class=\"reference external\" href=\"https://docs.python.org/release/3.7.14/whatsnew/changelog.html#changelog\">Full Changelog</a> link for more information about the contents of this release and see <a class=\"reference external\" href=\"https://docs.python.org/release/3.7.14/whatsnew/3.7.html\">What\u2019s New In Python 3.7</a> for more information about 3.7 features.</p>\n<div class=\"section\" id=\"security-content-in-this-release\">\n<h1>Security content in this release</h1>\n<ul class=\"simple\">\n<li><a class=\"reference external\" href=\"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10735\">CVE-2020-10735</a>: converting between int and str in bases other than 2 (binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) <a class=\"reference external\" href=\"https://docs.python.org/release/3.7.14/whatsnew/3.7.html#notable-security-feature-in-3-7-14\">now raises a ValueError</a> if the number of digits in string form is above a limit to avoid potential denial of service attacks due to the algorithmic complexity.</li>\n<li>gh-87389: http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //.</li>\n<li>gh-93065: Fix contextvars HAMT implementation to handle iteration over deep trees to avoid a potential crash of the interpreter.</li>\n<li>gh-80254: Raise ProgrammingError instead of segfaulting on recursive usage of cursors in sqlite3 converters.</li>\n</ul>\n</div>\n<div class=\"section\" id=\"more-resources\">\n<h1>More resources</h1>\n<ul class=\"simple\">\n<li><a class=\"reference external\" href=\"https://docs.python.org/release/3.7.14/\">Online Documentation</a></li>\n<li><a class=\"reference external\" href=\"http://www.python.org/dev/peps/pep-0537\">PEP 537</a>, 3.7 Release Schedule</li>\n<li>Report bugs at <a class=\"reference external\" href=\"https://github.com/python/cpython/issues\">https://github.com/python/cpython/issues</a>.</li>\n<li><a class=\"reference external\" href=\"/psf/donations/\">Help fund Python and its community</a>.</li>\n</ul>\n</div>\n"
74427454
}
74437455
},
7456+
{
7457+
"model": "downloads.release",
7458+
"pk": 729,
7459+
"fields": {
7460+
"created": "2025-08-06T20:41:07.457Z",
7461+
"updated": "2025-08-06T20:44:16.512Z",
7462+
"creator": 1,
7463+
"last_modified_by": 1,
7464+
"name": "Python 3.14.0rc1",
7465+
"slug": "python-3140rc1",
7466+
"version": 3,
7467+
"is_latest": false,
7468+
"is_published": true,
7469+
"pre_release": true,
7470+
"show_on_download_page": true,
7471+
"release_date": "2025-08-06T20:39:16Z",
7472+
"release_page": null,
7473+
"release_notes_url": "https://docs.python.org/3.14/whatsnew/3.14.html",
7474+
"content": "[It's](https://www.youtube.com/watch?v=ydyXFUmv6S4) the first 3.14 release candidate!",
7475+
"content_markup_type": "markdown",
7476+
"_content_rendered": "<p><a href=\"https://www.youtube.com/watch?v=ydyXFUmv6S4\">It's</a> the first 3.14 release candidate!</p>"
7477+
}
7478+
},
74447479
{
74457480
"model": "downloads.releasefile",
74467481
"pk": 1,
@@ -63032,4 +63067,304 @@
6303263067
"download_button": false
6303363068
}
6303463069
}
63070+
{
63071+
"model": "downloads.releasefile",
63072+
"pk": 3880,
63073+
"fields": {
63074+
"created": "2025-08-06T21:13:43.643Z",
63075+
"updated": "2025-08-06T21:13:43.647Z",
63076+
"creator": null,
63077+
"last_modified_by": null,
63078+
"name": "Android embeddable package (aarch64)",
63079+
"slug": "3140-rc1-Android-embeddable-package-aarch64",
63080+
"os": 4,
63081+
"release": 729,
63082+
"description": "",
63083+
"is_source": false,
63084+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-aarch64-linux-android.tar.gz",
63085+
"gpg_signature_file": "",
63086+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-aarch64-linux-android.tar.gz.sig",
63087+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-aarch64-linux-android.tar.gz.crt",
63088+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-aarch64-linux-android.tar.gz.sigstore",
63089+
"sbom_spdx2_file": "",
63090+
"md5_sum": "4a1b2748bf64b54b226b40f845de9e6a",
63091+
"filesize": 29099264,
63092+
"download_button": false
63093+
}
63094+
},
63095+
{
63096+
"model": "downloads.releasefile",
63097+
"pk": 3881,
63098+
"fields": {
63099+
"created": "2025-08-06T21:13:43.664Z",
63100+
"updated": "2025-08-06T21:13:43.667Z",
63101+
"creator": null,
63102+
"last_modified_by": null,
63103+
"name": "Windows installer (64-bit)",
63104+
"slug": "3140-rc1-Windows-installer-64-bit",
63105+
"os": 1,
63106+
"release": 729,
63107+
"description": "Recommended",
63108+
"is_source": false,
63109+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-amd64.exe",
63110+
"gpg_signature_file": "",
63111+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-amd64.exe.sig",
63112+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-amd64.exe.crt",
63113+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-amd64.exe.sigstore",
63114+
"sbom_spdx2_file": "",
63115+
"md5_sum": "b674030fe04f2d5c4c1385237998a10c",
63116+
"filesize": 29924384,
63117+
"download_button": true
63118+
}
63119+
},
63120+
{
63121+
"model": "downloads.releasefile",
63122+
"pk": 3882,
63123+
"fields": {
63124+
"created": "2025-08-06T21:13:43.678Z",
63125+
"updated": "2025-08-06T21:13:43.681Z",
63126+
"creator": null,
63127+
"last_modified_by": null,
63128+
"name": "Windows embeddable package (64-bit)",
63129+
"slug": "3140-rc1-Windows-embeddable-package-64-bit",
63130+
"os": 1,
63131+
"release": 729,
63132+
"description": "",
63133+
"is_source": false,
63134+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-amd64.zip",
63135+
"gpg_signature_file": "",
63136+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-amd64.zip.sig",
63137+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-amd64.zip.crt",
63138+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-amd64.zip.sigstore",
63139+
"sbom_spdx2_file": "",
63140+
"md5_sum": "58da6dd39544a56d8d387d42c3397460",
63141+
"filesize": 11972759,
63142+
"download_button": false
63143+
}
63144+
},
63145+
{
63146+
"model": "downloads.releasefile",
63147+
"pk": 3883,
63148+
"fields": {
63149+
"created": "2025-08-06T21:13:43.692Z",
63150+
"updated": "2025-08-06T21:13:43.695Z",
63151+
"creator": null,
63152+
"last_modified_by": null,
63153+
"name": "Windows release manifest",
63154+
"slug": "3140-rc1-Windows-release-manifest",
63155+
"os": 1,
63156+
"release": 729,
63157+
"description": "Install with 'py install 3.14'",
63158+
"is_source": false,
63159+
"url": "https://www.python.org/ftp/python/3.14.0/windows-3.14.0rc1.json",
63160+
"gpg_signature_file": "",
63161+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/windows-3.14.0rc1.json.sig",
63162+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/windows-3.14.0rc1.json.crt",
63163+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/windows-3.14.0rc1.json.sigstore",
63164+
"sbom_spdx2_file": "",
63165+
"md5_sum": "3a140287b276a6d661790687b9fdd081",
63166+
"filesize": 15669,
63167+
"download_button": false
63168+
}
63169+
},
63170+
{
63171+
"model": "downloads.releasefile",
63172+
"pk": 3884,
63173+
"fields": {
63174+
"created": "2025-08-06T21:13:43.707Z",
63175+
"updated": "2025-08-06T21:13:43.709Z",
63176+
"creator": null,
63177+
"last_modified_by": null,
63178+
"name": "Windows installer (32-bit)",
63179+
"slug": "3140-rc1-Windows-installer-32-bit",
63180+
"os": 1,
63181+
"release": 729,
63182+
"description": "",
63183+
"is_source": false,
63184+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1.exe",
63185+
"gpg_signature_file": "",
63186+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1.exe.sig",
63187+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1.exe.crt",
63188+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1.exe.sigstore",
63189+
"sbom_spdx2_file": "",
63190+
"md5_sum": "bad58261535240afd04f6e98510321df",
63191+
"filesize": 28481000,
63192+
"download_button": false
63193+
}
63194+
},
63195+
{
63196+
"model": "downloads.releasefile",
63197+
"pk": 3885,
63198+
"fields": {
63199+
"created": "2025-08-06T21:13:43.719Z",
63200+
"updated": "2025-08-06T21:13:43.722Z",
63201+
"creator": null,
63202+
"last_modified_by": null,
63203+
"name": "macOS 64-bit universal2 installer",
63204+
"slug": "3140-rc1-macOS-64-bit-universal2-installer",
63205+
"os": 2,
63206+
"release": 729,
63207+
"description": "for macOS 10.13 and later",
63208+
"is_source": false,
63209+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-macos11.pkg",
63210+
"gpg_signature_file": "",
63211+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-macos11.pkg.sig",
63212+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-macos11.pkg.crt",
63213+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-macos11.pkg.sigstore",
63214+
"sbom_spdx2_file": "",
63215+
"md5_sum": "88d1bed73bde571e5cae6afaeb636331",
63216+
"filesize": 74569591,
63217+
"download_button": true
63218+
}
63219+
},
63220+
{
63221+
"model": "downloads.releasefile",
63222+
"pk": 3886,
63223+
"fields": {
63224+
"created": "2025-08-06T21:13:43.732Z",
63225+
"updated": "2025-08-06T21:13:43.734Z",
63226+
"creator": null,
63227+
"last_modified_by": null,
63228+
"name": "Windows installer (ARM64)",
63229+
"slug": "3140-rc1-Windows-installer-ARM64",
63230+
"os": 1,
63231+
"release": 729,
63232+
"description": "Experimental",
63233+
"is_source": false,
63234+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-arm64.exe",
63235+
"gpg_signature_file": "",
63236+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-arm64.exe.sig",
63237+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-arm64.exe.crt",
63238+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-arm64.exe.sigstore",
63239+
"sbom_spdx2_file": "",
63240+
"md5_sum": "19956541e2ccfea8d9c1be2843271fc9",
63241+
"filesize": 29132600,
63242+
"download_button": false
63243+
}
63244+
},
63245+
{
63246+
"model": "downloads.releasefile",
63247+
"pk": 3887,
63248+
"fields": {
63249+
"created": "2025-08-06T21:13:43.743Z",
63250+
"updated": "2025-08-06T21:13:43.746Z",
63251+
"creator": null,
63252+
"last_modified_by": null,
63253+
"name": "Windows embeddable package (32-bit)",
63254+
"slug": "3140-rc1-Windows-embeddable-package-32-bit",
63255+
"os": 1,
63256+
"release": 729,
63257+
"description": "",
63258+
"is_source": false,
63259+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-win32.zip",
63260+
"gpg_signature_file": "",
63261+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-win32.zip.sig",
63262+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-win32.zip.crt",
63263+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-win32.zip.sigstore",
63264+
"sbom_spdx2_file": "",
63265+
"md5_sum": "20c52ba256be93ef49a87f462a324723",
63266+
"filesize": 10571221,
63267+
"download_button": false
63268+
}
63269+
},
63270+
{
63271+
"model": "downloads.releasefile",
63272+
"pk": 3888,
63273+
"fields": {
63274+
"created": "2025-08-06T21:13:43.754Z",
63275+
"updated": "2025-08-06T21:13:43.756Z",
63276+
"creator": null,
63277+
"last_modified_by": null,
63278+
"name": "XZ compressed source tarball",
63279+
"slug": "3140-rc1-XZ-compressed-source-tarball",
63280+
"os": 3,
63281+
"release": 729,
63282+
"description": "",
63283+
"is_source": true,
63284+
"url": "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tar.xz",
63285+
"gpg_signature_file": "",
63286+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tar.xz.sig",
63287+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tar.xz.crt",
63288+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tar.xz.sigstore",
63289+
"sbom_spdx2_file": "",
63290+
"md5_sum": "48c4518c06dcb675c24276c56f69b9fd",
63291+
"filesize": 23661916,
63292+
"download_button": true
63293+
}
63294+
},
63295+
{
63296+
"model": "downloads.releasefile",
63297+
"pk": 3889,
63298+
"fields": {
63299+
"created": "2025-08-06T21:13:43.766Z",
63300+
"updated": "2025-08-06T21:13:43.768Z",
63301+
"creator": null,
63302+
"last_modified_by": null,
63303+
"name": "Windows embeddable package (ARM64)",
63304+
"slug": "3140-rc1-Windows-embeddable-package-ARM64",
63305+
"os": 1,
63306+
"release": 729,
63307+
"description": "",
63308+
"is_source": false,
63309+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-arm64.zip",
63310+
"gpg_signature_file": "",
63311+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-arm64.zip.sig",
63312+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-arm64.zip.crt",
63313+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-embed-arm64.zip.sigstore",
63314+
"sbom_spdx2_file": "",
63315+
"md5_sum": "709fc10a10cf3ad9633222827ca2abf5",
63316+
"filesize": 11165022,
63317+
"download_button": false
63318+
}
63319+
},
63320+
{
63321+
"model": "downloads.releasefile",
63322+
"pk": 3890,
63323+
"fields": {
63324+
"created": "2025-08-06T21:13:43.776Z",
63325+
"updated": "2025-08-06T21:13:43.778Z",
63326+
"creator": null,
63327+
"last_modified_by": null,
63328+
"name": "Gzipped source tarball",
63329+
"slug": "3140-rc1-Gzipped-source-tarball",
63330+
"os": 3,
63331+
"release": 729,
63332+
"description": "",
63333+
"is_source": true,
63334+
"url": "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tgz",
63335+
"gpg_signature_file": "",
63336+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tgz.sig",
63337+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tgz.crt",
63338+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tgz.sigstore",
63339+
"sbom_spdx2_file": "",
63340+
"md5_sum": "11fba5eb7576c1889498af3f8555ed2d",
63341+
"filesize": 30639704,
63342+
"download_button": false
63343+
}
63344+
},
63345+
{
63346+
"model": "downloads.releasefile",
63347+
"pk": 3891,
63348+
"fields": {
63349+
"created": "2025-08-06T21:13:43.786Z",
63350+
"updated": "2025-08-06T21:13:43.788Z",
63351+
"creator": null,
63352+
"last_modified_by": null,
63353+
"name": "Android embeddable package (x86_64)",
63354+
"slug": "3140-rc1-Android-embeddable-package-x86_64",
63355+
"os": 4,
63356+
"release": 729,
63357+
"description": "",
63358+
"is_source": false,
63359+
"url": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-x86_64-linux-android.tar.gz",
63360+
"gpg_signature_file": "",
63361+
"sigstore_signature_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-x86_64-linux-android.tar.gz.sig",
63362+
"sigstore_cert_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-x86_64-linux-android.tar.gz.crt",
63363+
"sigstore_bundle_file": "https://www.python.org/ftp/python/3.14.0/python-3.14.0rc1-x86_64-linux-android.tar.gz.sigstore",
63364+
"sbom_spdx2_file": "",
63365+
"md5_sum": "3eb6b0c0c03a81c8444300c00724cac5",
63366+
"filesize": 29272204,
63367+
"download_button": false
63368+
}
63369+
}
6303563370
]

0 commit comments

Comments
 (0)