From 8316450887d8843b7e21bbad21002c9708ff59cf Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sat, 24 Feb 2024 21:03:27 -0500 Subject: [PATCH] Fix `KeyError` when running `add_miniforge.py` I was attempting to run the script to generate build files for new versions, but it failed because version `23.1.0-4`[^1] contained a malformed `.sha256` file.[^2] I looked at the miniforge repo's script `releases.py`[^3] and copied the logic about which release artifacts should be skipped when generating a list of downloads. [^1]: https://github.com/conda-forge/miniforge/releases/tag/23.1.0-4 [^2]: https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Miniforge3-uninstaller-patch-Windows-x86_64.exe.sha256 [^3]: https://github.com/conda-forge/miniforge/blob/a15762906ba6f339a95b218b784e91605a24a681/docs/releases.py#L35-L36 --- plugins/python-build/scripts/add_miniforge.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index e9701b8c..1290b5cb 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -71,8 +71,9 @@ def supported(filename): return ('pypy' not in filename) and ('Windows' not in filename) def add_version(release): + tag_name = release['tag_name'] download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] } - shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256')]) + shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256') and tag_name in name]) specs = [create_spec(filename, sha, download_urls[filename]) for (filename, sha) in shas.items() if supported(filename)] for distribution in DISTRIBUTIONS: