Add compiler source download integrity values #1749
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Eliminates the "canonical reproducible form" warnings that often appear for users that enable compiler dependency tracking. Fixes #1743.
Emits a detailed error message if the configured Scala version is unknown to rules_scala, and isn't provided by a
scala_deps.compiler_srcjar
object. This message provides guidance on how to create a suitablescala_deps.compiler_srcjar
object.Details:
Adds
scripts/update_compiler_sources_integrity.py
to generatescala/private/macros/compiler_sources_integrity.bzl
. Refactored code fromscripts/update_protoc_integrity.py
intoscripts/lib/update_integrity.py
for reuse by the new script.Adds
test/shell/test_compiler_sources_integrity.sh
and adds it totest_rules_scala.sh
. Adds thetest/compiler_sources_integrity
repo for use by the new test suite. The test suite is fast due to the test repo only containing an alias to@scala_compiler_sources//:src
.Fixes a problem with the regex in
run_tests
fromtest_helper.sh
that prevented the test skipping mechanism from working.Motivation
This eliminates an annoying warning for users, while providing improved build integrity. Win/win!
The refactoring of common code into
scripts/lib
eliminated a lot of potential duplication. It's also exposed a common pattern for generating download integrity files for different artifacts.