Deterministic/reproducible packaging for `Compress-PSResource`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C#
- Estrellas
- 576
- Forks
- 114
- Merge medio
- 1 d 2 h
- PR fusionados (30 d)
- 7
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de PowerShell/PSResourceGet
-
Create parent directories only after the containment check in InstallHelper.TryExtractToDirectory Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
PowerShell/PSResourceGet#2056 ·
-
feature_request
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
PowerShell/PSResourceGet#2013 · 3 comentarios ·
-
Needs-Triage
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
PowerShell/PSResourceGet#2055 ·
-
Needs-Triage
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
PowerShell/PSResourceGet#2054 ·
-
(dsc): Export ignores `--input` filter for `Repository` and `PSResourceList` on DSC 3.3.* or above AbiertoNeeds-Triage
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
PowerShell/PSResourceGet#2053 ·
Todos los issues de PowerShell/PSResourceGet
Issues similares
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
sillsdev/languageforge-lexbox#2665 ·
-
bug documentation frontend
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
azurenoops/spin_agent#975 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Dificultad 2/5 1-3 horas Aptitud para principiantes 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
SubtitleEdit/subtitleedit#15108 · 1 comentario ·