Deterministic/reproducible packaging for `Compress-PSResource`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
Direzione di ricerca
Begin at the Compress-PSResource entry point and trace package generation, including timestamps, PSMDCP naming, .rels, and [Content_Types].xml ordering. Done means default output is reproducible and -Timestamp applies to all packaged files, with deterministic names and XML ordering.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary of the new feature / enhancement
Deterministic/reproducible builds are an undeniably important feature for auditability and security. Currently, Compress-PSResource doesn't provide support for that, and it should.
Currently, I post-process my packages to ensure fully reproducible output, which takes significant time in a build.
Proposed technical implementation details (optional)
There are a few sources of non-determinism I have observed in Compress-PSResource:
- The timestamps of files in the zipped package.
- The PSMDCP file name is non-deterministic. Consequently, the
.relsfile content is non-deterministic. - The
[Content_Types].xmlcontent, notably the order of children, is non-deterministic. (? I remember observing this but couldn't give a stable reproduction at the moment.)
Suggestion.
- Make
Compress-PSResourcedeterministic by default. PSMDCP name can be a hash of non-.relsnon-.psmdcpfiles, and[Content_Types].xmlchildren should be sorted. - Provide a new parameter
-Timestamp. When this parameter is set, all files in the package should use this timestamp.
- Lingua principale
- C#
- Stelle
- 576
- Fork
- 114
- Merge medio
- 23h 17m
- PR unite (30g)
- 8
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 PowerShell/PSResourceGet
-
Create parent directories only after the containment check in InstallHelper.TryExtractToDirectory Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PowerShell/PSResourceGet#2056 ·
-
feature_request
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
PowerShell/PSResourceGet#2013 · 3 commenti ·
-
feature_request Needs-Triage
PowerShell/PSResourceGet#2057 · 1 assegnatario ·
-
Needs-Triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
PowerShell/PSResourceGet#2055 ·
-
Needs-Triage
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
PowerShell/PSResourceGet#2054 ·
Tutte le issue di PowerShell/PSResourceGet
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
nightscout/nocturne#1425 ·
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
cake-build/cake#5024 ·
-
Frontend status/draft TechnicalDebt
Difficoltà 2/5 1-2 giorni Idoneità per principianti 75/100
Altinn/altinn-auth#4143 ·