Skip to content

[build] Fail incomplete Maven artifact mirroring - #12412

Merged
jonathanpeppers merged 1 commit into
mainfrom
jonathanpeppers-fix-gradle-mirror-feedback
Aug 18, 2026
Merged

jonathanpeppers merged 1 commit into
mainfrom
jonathanpeppers-fix-gradle-mirror-feedback

Conversation

@jonathanpeppers

Copy link
Copy Markdown
Member

Summary

  • return explicit success and failure counts from Invoke-Mirror
  • evaluate direct Maven mirroring per requested coordinate
  • fail -MavenArtifact when any coordinate mirrors no payloads

Addresses the eng/gradle/mirror-dependencies.ps1 feedback from #12397 without modifying the release backport.

Validation

  • parsed mirror-dependencies.ps1 with the PowerShell parser
  • verified a coordinate succeeds when at least one payload returns HTTP 200
  • verified all-failed payloads exit with code 1
  • verified multiple coordinates exit with code 1 when any coordinate has no successful payload
  • git diff --check

Return explicit mirror success and failure counts, and require every requested Maven coordinate to mirror at least one payload.

Co-authored-by: Copilot App <[email protected]>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 updates eng/gradle/mirror-dependencies.ps1 to make Maven artifact mirroring fail when any requested Maven coordinate mirrors zero payloads, and to return explicit success/failure counts from Invoke-Mirror so callers can distinguish “no URLs found” from “URLs found but all failed”.

Changes:

  • Change Invoke-Mirror to return a structured result (SuccessCount/FailureCount) instead of a single integer.
  • Mirror Maven artifacts per coordinate and fail the command if any coordinate mirrors no payloads.
  • Update the Gradle mirroring loop to use the new Invoke-Mirror return shape.

Comment thread eng/gradle/mirror-dependencies.ps1
@jonathanpeppers jonathanpeppers added the ready-to-review This PR is ready to review/merge, I think any CI failures are just flaky (ignorable). label Aug 18, 2026
@jonathanpeppers

Copy link
Copy Markdown
Member Author

@dalexsoto review

@jonathanpeppers
jonathanpeppers enabled auto-merge (squash) August 18, 2026 14:34

@dalexsoto dalexsoto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Maven artifact mirroring now reports per-coordinate success and failure correctly and exits nonzero when any requested artifact is incomplete.

@jonathanpeppers
jonathanpeppers merged commit 1c4d41c into main Aug 18, 2026
45 checks passed
@jonathanpeppers
jonathanpeppers deleted the jonathanpeppers-fix-gradle-mirror-feedback branch August 18, 2026 16:13
jonathanpeppers added a commit that referenced this pull request Aug 24, 2026
## Summary

- backport `1c4d41c09eec` so direct Maven mirroring fails when any requested coordinate produces no payloads
- update `external/Java.Interop` from `33992194b9373e9322244612c94ed9941b9bc2fd` to dotnet/java-interop#1498's single release backport commit `7c110bfad3ee0a87f303609426167722ccb4ba77`
- include the release-applicable Java.Interop Maven test and java-source-utils routing that could not be carried by the main-branch subtree patch
- seed the release JavaParser 3.18.0 dependency graph into `dotnet-public-maven` for anonymous CI resolution

## Backport mapping

| Main change | Release equivalent |
| --- | --- |
| `ce636392a229` / #11711, `3c62389651c2` / #12055, Android portions of `466da4a84dc2` / #12199, and `adffb38fd731` / #12368 | `659cd98e7fb9` / #12397 |
| `8df1e87799f1` / #12198, `7ace3137a4fa` / #12336, `c09c89aa1f2e` / #12338, `13727e665929` / #12335, and `d57b8c42f131` / #12367 | `352831edcba6` / #12396 |
| approved .NET tool feed portion of `fa00357649bb` / #11701 | `dc9a8524138e` / #12420 |
| `1c4d41c09eec` / #12412 | `24252012aaf6` in this PR |
| Java.Interop hardening plus release-applicable routing from `466da4a84dc2` | dotnet/java-interop#1498, pinned here at `7c110bfad3ee0a87f303609426167722ccb4ba77` |

The later Dependabot-only Google Maven exposure and unrelated Gradle/dependency version churn are intentionally excluded. The final Java.Interop pin supersedes the earlier hardening-only candidate without amending or force-pushing commits.

## Validation

- Java.Interop.Tools.Maven tests: 106 passed, 0 failed
- CI-mode `java-source-utils` `jar` build resolved through `dotnet-public-maven` and succeeded after the mirror helper seeded the full transitive graph
- `mirror-dependencies.ps1` parsed successfully with the PowerShell parser
- Java.Interop final SHA is exactly one commit on top of the release pin
- `git diff --check origin/release/10.0.1xx..HEAD`

Co-authored-by: Copilot App <[email protected]>
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

ready-to-review This PR is ready to review/merge, I think any CI failures are just flaky (ignorable).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants