apache / logging-parent

Parent project internally used in Maven-based projects of the Apache Logging Services
https://logging.apache.org/logging-parent
Apache License 2.0
2 stars 6 forks source link

Selectively disable reproducibility check on build #195

Closed ppkarwasz closed 4 months ago

ppkarwasz commented 4 months ago

This PR is against the develocity branch.

We add a reproducibility-check-enabled option to the reusable build that will allow us to turn off the reproducibility check on certain builds.

While the reproducibility check might detect some problems in a release build, IMHO it only increases the build time in most builds.

Reproducibility problems are usually rare and are mostly due to the introduction of additional plugins. Also note that some kinds of reproducibility problems can only be detected by running the build on a different machine. We already encountered problems that only depended on the absolute path of the folder, where the build runs.

vy commented 4 months ago

I think it is okay to confine this to release-specific branches.

Also note that some kinds of reproducibility problems can only be detected by running the build on a different machine.

I don't agree with this sentiment. I think our reproducibility definition is unnecessarily broad: all JDK vendors, all OS'es, etc. We can specialize on a certain setup: Zulu, Linux, x64. If the community cares about reproducibility on a certain other configuration, they are always more than welcome to contribute and maintain it.

ppkarwasz commented 4 months ago

Also note that some kinds of reproducibility problems can only be detected by running the build on a different machine.

I don't agree with this sentiment. I think our reproducibility definition is unnecessarily broad: all JDK vendors, all OS'es, etc. We can specialize on a certain setup: Zulu, Linux, x64. If the community cares about reproducibility on a certain other configuration, they are always more than welcome to contribute and maintain it.

The reproducibility failure I have in mind generated different builds from /home/piotr and /home/volkan.