Replace munki-pkg with swiftpkg for managed Python packaging
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- shell
- Ambito
- build-system, ci-cd, tooling
Direzione di ricerca
Inizia da build_python_framework_pkgs.zsh, in particolare da build_pkg(), dalle variabili di bootstrap di munki-pkg e dalla generazione esistente di build-info.json. Poi esamina i file di workflow per Python 3.11–3.14 e i prerequisiti del README. Confronta i pacchetti baseline e quelli sostitutivi su Apple Silicon e usa i controlli elencati per shell, firma, notarizzazione, smoke test e artefatti per verificare il completamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Objective
Migrate this repository's managed Python installer packaging to codecarton/swiftpkg and retire the munki-pkg build dependency.
Current behavior
build_python_framework_pkgs.zsh downloads a pinned munki-pkg commit using MP_SHA, MP_BINDIR, and MP_ZIP. Its build_pkg() function generates recommended/build-info.json, stages preinstall-cleanup, invokes munkipkg, and moves the signed package into outputs/. Notarization and stapling run separately. Without an installer identity, the script skips package creation and still produces the framework ZIP.
Implementation scope
- Select and pin a published swiftpkg CLI release compatible with Apple Silicon build hosts; verify the downloaded artifact against a pinned SHA-256 and document prerequisites.
- Replace the munki-pkg download, temporary paths, and invocation with swiftpkg; propagate failures clearly.
- Validate compatibility of every generated build-info setting, especially
ownership,suppress_bundle_relocation,preserve_xattr,distribution_style, andsigning_info. Implement equivalent behavior for any unsupported settings. - Preserve the package identifier (
io.macadmins.python.recommended), version derivation, output filename/location, payload layout, permissions, symlinks, extended attributes, and preinstall cleanup behavior. - Preserve framework code signing and the existing installer signing/notarization/stapling sequence; avoid duplicate notarization.
- Ensure Python 3.11, 3.12, 3.13, and 3.14 workflows use the replacement and continue publishing expected artifacts; update workflows only where necessary.
- Update README build prerequisites and credits. Remove active munki-pkg dependencies and obsolete bootstrap references while retaining appropriate historical attribution.
Acceptance criteria
- Local and CI packaging use the pinned swiftpkg CLI with verified artifact integrity; no active build path downloads or executes munki-pkg.
- All generated build-info options have verified equivalent behavior, with any migration differences documented.
- On Apple Silicon, inspect a baseline munki-pkg package and replacement package to confirm equivalent receipts, version, install paths, payload, ownership/modes, symlinks, extended attributes, installer scripts, and non-relocation behavior.
- Signed packages pass signature checks, notarization, and stapling validation using the existing signing credentials.
- Clean-install and upgrade smoke tests on a disposable Apple Silicon Mac confirm preinstall cleanup, framework installation at
/Library/ManagedFrameworks/Python/Python3.framework, themanaged_python3symlink, and execution/imports of the managed runtime and bundled dependencies. - The no-installer-identity path continues producing the framework ZIP without requiring signing credentials.
- Each supported Python workflow builds and publishes the expected package artifact.
-
zsh -n build_python_framework_pkgs.zshpasses; any modified workflow YAML parses successfully. - README documents the replacement tool, pinned version/update procedure, and prerequisites.
Boundaries
This change replaces the package builder. It does not remove support for deploying the resulting installer through Munki, change Python/runtime dependencies, add the Swiftpkgr desktop app, or change the managed framework's installation contract.
- Lingua principale
- Shell
- Stelle
- 257
- Fork
- 29
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di macadmins/python
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Tutte le issue di macadmins/python
Issue simili
-
Issue-Enhancement Needs-Triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
PowerShell/PowerShell#28061 · 2 reazioni ·
-
Feature Request: Add ability to load custom environment variables in linux-exec-server-installer.sh Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/vscode-remote-release#11867 ·
-
AuTest Bug Tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/trafficserver#13714 ·
-
Update to NCCL 2.32 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
conda-forge/nccl-feedstock#166 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
vllm-project/agentic-api#358 · 1 commento ·