Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Selectively disable reproducibility check on build #195

Merged
merged 1 commit into from
Jun 19, 2024

Conversation

ppkarwasz
Copy link
Contributor

@ppkarwasz ppkarwasz commented Jun 19, 2024

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.

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.
@ppkarwasz ppkarwasz merged commit 926b488 into develocity Jun 19, 2024
7 checks passed
@ppkarwasz ppkarwasz deleted the feature/disable-reproducibility branch June 19, 2024 12:51
@vy
Copy link
Member

vy commented Jun 19, 2024

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
Copy link
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants