posit-dev / posit-dev/images-shared
RHEL 10 falls through to `multi` in `_parse_download_json_os_identifier` for Connect and Package Manager
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2
- Forks
- 0
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 22
Description
Problem
_parse_download_json_os_identifier (posit_bakery/config/image/posit_product/main.py) hardcodes RHEL-family version handling per product and silently falls through to a "multi" OS identifier for RHEL 10 in two of three branches:
ProductEnum.CONNECT: handles versions 8 (redhat8) and 9 (rhel9); nothing for 10.ProductEnum.PACKAGE_MANAGER: handles versions 7 (rhel7_64), 8 (fedora28), 9 (rhel9); nothing for 10.ProductEnum.WORKBENCH/WORKBENCH_SESSION: already generic ("rhel" + _os.version), unaffected.
The fallthrough means the release-channel resolver silently looks up the wrong download_json_os key when fetching version/download-URL metadata for a RHEL 10 build, instead of failing loudly.
Where
posit_bakery/config/image/posit_product/main.py:296-334(_parse_download_json_os_identifier)
Why fix it here, not in each product repo
images-package-manager#130 already plans to patch the PACKAGE_MANAGER branch as part of its own RHEL 10 (UBI) work. This file is shared library code in images-shared (posit-bakery), consumed by every product repo — patching only the PACKAGE_MANAGER branch there doesn't help images-connect#143, which will independently hit the identical fallthrough for the CONNECT branch and need the same file patched again, plus a new posit-bakery release either way. Fixing both branches together here avoids that duplication.
Note
Package Manager's own version-to-identifier mapping isn't a clean function of version number (rhel7_64, fedora28, rhel9), so this likely isn't a one-line elif. Confirm what identifier Connect's and Package Manager's downloads.json actually publish for RHEL 10 once artifacts exist there, for both branches, before wiring in a value.
Related
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in posit_bakery/config/image/posit_product/main.py at _parse_download_json_os_identifier, focusing on the CONNECT and PACKAGE_MANAGER branches. Confirm the RHEL 10 identifiers published in each product's downloads.json, then update both mappings and verify that RHEL 10 no longer falls through to "multi" during release-channel resolution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100