Skip to content

add a script to find and apply package updates#1159

Open
jjhelmus wants to merge 1 commit into
mainfrom
jjh/update-script
Open

add a script to find and apply package updates#1159
jjhelmus wants to merge 1 commit into
mainfrom
jjh/update-script

Conversation

@jjhelmus

@jjhelmus jjhelmus commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Add scripts/update_downloads.py, which finds updates to the entries in pythonbuild/downloads.py. The optional --write argument write any updates, including calculated metadata to the file.

Run using:

uv run scripts/update_downloads.py

Add scripts/update_downloads.py, which finds updates to the entries
to pythonbuild/downloads.py. The optional --write argument will write
the necessary updates to the file.

Run using:

    uv run scripts/update_downloads.py
@jjhelmus

Copy link
Copy Markdown
Contributor Author

This script was largely AI generated using Codex. The prompt that began the session was:

Write a Python script that can find possible updated versions of the packages in pythonbuild/downloads.py. The script should have options to list update new versions and then optionally make the necessary changes to pythonbuild/downloads.py. Have the process that checks for new versions be flexible as the projects have different constraints on versions and some are sourced from mirrors and the upstream URL must be checked rather than the mirror.

I have used this script to kick off many of the recent update including #1153, #1156, and #1157.

I plan on testing it with the upcoming 3.15.0b3 release.

@jjhelmus

Copy link
Copy Markdown
Contributor Author

Should have tagged this with ci:skip but CI is already running.

This work could be expanded to include tests and an actions to run + apply changes on a regular schedule. That can be done later if needed.

@jjhelmus

Copy link
Copy Markdown
Contributor Author

Example results:

❯ uv run scripts/update_downloads.py 
autoconf: 2.72 -> 2.73 (mirrored)
  https://ftp.gnu.org/gnu/autoconf/autoconf-2.73.tar.gz
binutils: 2.43 -> 2.46.1 (mirrored)
  https://ftp.gnu.org/gnu/binutils/binutils-2.46.1.tar.xz
bzip2: 1.0.8 (current)
cpython-3.10: 3.10.20 (current)
cpython-3.11: 3.11.15 (current)
cpython-3.12: 3.12.13 (current)
cpython-3.13: 3.13.14 (current)
cpython-3.14: 3.14.6 (current)
cpython-3.15: 3.15.0b2 (current)
expat: 2.8.1 (current)
libedit: 20240808-3.1 -> 20260512-3.1
  https://thrysoee.dk/editline/libedit-20260512-3.1.tar.gz
libffi: 3.4.6 -> 3.4.8
  https://github.com/libffi/libffi/releases/download/v3.4.8/libffi-3.4.8.tar.gz
libpthread-stubs: 0.5 (current)
libX11: 1.8.13 (current)
libXau: 1.0.12 (current)
libxcb: 1.17.0 (current)
m4: 1.4.19 -> 1.4.21 (mirrored)
  https://ftp.gnu.org/gnu/m4/m4-1.4.21.tar.xz
mpdecimal: 4.0.0 -> 4.0.1 (mirrored)
  https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-4.0.1.tar.gz
nasm-windows-bin: 2.16.03 -> 3.01 (mirrored)
  https://www.nasm.us/pub/nasm/releasebuilds/3.01/win64/nasm-3.01-win64.zip
ncurses: 6.5 -> 6.6 (mirrored)
  https://ftp.gnu.org/gnu/ncurses/ncurses-6.6.tar.gz
openssl-3.5: 3.5.7 (current)
patchelf: 0.13.1 -> 0.18.0
  https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0.tar.bz2
pip: 26.1.2 (current)
setuptools: 82.0.1 (current)
tcl: 9.0.3 (current)
tk: 9.0.3 (current)
x11-util-macros: 1.20.2 (current)
xcb-proto: 1.17.0 (current)
xorgproto: 2025.1 (current)
xtrans: 1.6.0 (current)
xz: 5.8.3 (current)
zlib: 1.3.2 (current)

@jjhelmus jjhelmus requested a review from zanieb June 18, 2026 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant