Epic: Support reproducible builds
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 20/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- github-actions, macos, vim
- Ambito
- build-system, ci-cd, release
Direzione di ricerca
L’issue non indica file o test specifici; inizia esaminando gli script di build esistenti e il binary-release CI workflow. Il lavoro è completato quando le build locali e CI usano flag e dati dell’ambiente coerenti, è possibile confrontare app non firmate o firmate ad-hoc e CI convalida la riproducibilità negli ambienti di build supportati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
We currently distribute binary releases that people can use to download and install MacVim. We should add reproducible builds so that the binary we release is deterministic and reproducible and can be easily built on a local machine by any third party in an identical fashion.
Some motivations include the fact that supply chain attacks are real and while MacVim is unlikely a high-value target, it's still useful to reduce the likelihood of such problem happening to begin with. Also, with the deprecation of the macos-12 GitHub Action runner we will need to find another way to build the legacy MacVim binaries (either via a custom VM, or another CI service like Circle CI), and it would be nice to have some standard way to compare the generated artifacts and to have trust in the process working.
Note that we distribute signed apps, which is signed by a private key that only the maintainer controls, so it's impossible to have an artifact (MacVim.app) that can be compared bit-by-bit to a local build. We will need to provide a script that could strip the app signature before comparing.
- Use relative paths for debug symbols and reproducible linker flags when building Vim
- Use
SOURCE_DATE_EPOCHto make builds not dependent on date/time. - Add documentation, and refactor build scripts (also necessary when adding another CI system) to make it more easily to build locally with the same flags.
- Add CI output artifacts that contain necessary environment info.
- #1586
- Add user script that could compare two apps by stripping the signature, resign with adhoc signature, and then compare the result binaries. We also need to compare the entitlements.
- CI test to validate reproducible builds.
- Test in older versions of Xcode to make sure didn't break anything.
Related:
- Add support for exporting dSYM files as part of build steps. These contain debug symbols and help diagnose crash issues for users. Make sure to use relative paths as it's necessary for reproducibility. This is a bit annoying to do due to a clang issue llvm/llvm-project#113973.
- Lingua principale
- Vim Script
- Stelle
- 7.9k
- Fork
- 691
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
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 macvim-dev/macvim
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
macvim-dev/macvim#1697 · 5 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
macvim-dev/macvim#1658 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
macvim-dev/macvim#1657 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
macvim-dev/macvim#1655 ·
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
macvim-dev/macvim#1653 ·
Tutte le issue di macvim-dev/macvim
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
freedomofpress/dangerzone#1562 ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
carbon-design-system/ibm-products#9907 ·
-
intake mcp-intake needs-ac needs-human-review priority:medium type:feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Ikalus1988/MisakaNet#2102 · 2 commenti ·
-
onnx-ir re-exports ModelProto and GraphProto but not NodeProto, AttributeProto and AttributeType Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
llvm/lighthouse#283 ·