Remove archive settings that defeat reproducible builds
MSALRemove preserveFileTimestamps = true and reproducibleFileOrder = false from archive tasks, in either DSL spelling, so the archive takes Gradle's own default instead. Timestamps written into an archive, and file order that follows the filesystem, both make the same sources produce a different artifact on each build, which means a published artifact cannot be checked against a rebuild of its sources. The reproducible values written explicitly are left alone, since someone who wrote them agrees with the default and said so deliberately. Gradle's own defaults only became the reproducible ones in Gradle 9; on earlier versions removing these settings leaves the archive as it was. See the Gradle best practice.
org. openrewrite. gradle. migrate. tasks. RemoveNonReproducibleArchiveSettingsmod run . --recipe= org. openrewrite. gradle. migrate. tasks. RemoveNonReproducibleArchiveSettingsInstall it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.