Skip to content

Conversation

@vinnybod
Copy link
Member

Integrates these two upstream changes that are not yet merged to master
bazel-contrib#1454
bazel-contrib#1500

Copilot AI review requested due to automatic review settings December 10, 2025 17:24
@vinnybod vinnybod requested a review from a team as a code owner December 10, 2025 17:24
@vinnybod vinnybod enabled auto-merge December 10, 2025 17:24
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR integrates V3 lockfile format support by updating the lockfile version from "2" to "3" and refactoring hash calculation to use per-artifact hashes instead of a single aggregate hash. The key changes enable more granular dependency tracking and better change detection.

  • Updates lockfile format version from "2" to "3" across all test fixtures and production code
  • Refactors hash calculation to compute individual hashes for each artifact and repository instead of a single aggregate hash
  • Adds support for both V2 and V3 lockfile formats with migration path

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/unit/coursier_test.bzl Adds assertion to verify excluded artifacts affect hash calculation
tests/integration/pom_file/*.golden.xml Adds golden files for new POM generation test scenarios
tests/integration/pom_file/BUILD Adds comprehensive tests for transitive dependencies with exclusions in POMs
tests/custom_maven_install/*.json Updates all lockfiles to V3 format with per-artifact hashes
tests/com/github/bazelbuild/rules_jvm_external/resolver/lockfile/V3LockFileTest.java Renames test class from V2 to V3 and adds hash validation test
tests/com/github/bazelbuild/rules_jvm_external/resolver/lockfile/BUILD Updates test configuration for renamed test class
private/tools/java/.../V3LockFile.java Renames class from V2LockFile to V3LockFile and updates version string
private/tools/java/.../ResolverConfig.java Changes input hash from String to Map and updates CLI argument handling
private/tools/java/.../AbstractMain.java Completely refactors hash calculation to compute per-artifact hashes with dependency tracking
private/tools/java/.../LockFileConverter.java Updates reference from V2LockFile to V3LockFile
private/rules/v3_lock_file.bzl Renames from v2_lock_file.bzl and adds V3 hash computation logic with dependency-aware hashing
private/rules/pin_dependencies.bzl Updates to write input hash to separate JSON file instead of passing as command-line argument
private/rules/maven_utils.bzl Removes validation that prevented exclusions on transitive dependencies
private/rules/coursier.bzl Updates hash signature computation to return per-artifact hashes and adds V3 lockfile support
private/extensions/maven.bzl Adds V3 lockfile format detection and imports
maven_install.json Updates root lockfile to V3 format
BUILD Exports maven_install.json for use in tests

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@vinnybod vinnybod merged commit 947aa24 into master Dec 11, 2025
1 check passed
@vinnybod vinnybod deleted the vinnybod/v3-lockfiles branch December 11, 2025 05:06
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.

4 participants