Skip to content

chore(build): prepare shared validation tools - #775

Merged
imbajin merged 11 commits into
apache:masterfrom
hugegraph:java17-build-prep
Oct 5, 2026
Merged

imbajin merged 11 commits into
apache:masterfrom
hugegraph:java17-build-prep

Conversation

@imbajin

@imbajin imbajin commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Purpose of the PR

Prepare shared build and server-fixture tooling for the Java 17 migration while retaining the existing Java bytecode baseline. This PR does not perform the global Java 17 switch.

Shared build and verified server fixtures

Related migration discussion: apache/hugegraph#3242.
Original preparation and review: hugegraph#40.

Main Changes

  • Verify cached server archives against repository, commit and SHA-256 while preserving the exact custom cache directory. Reject unknown or mismatched caches without deleting them; version the Loader CI cache key so the first use builds a verified cache.
  • Centralize compiler, test and coverage versions compatible with the existing modules.
  • Carry the selected server repository, ref and expected commit through CI, and verify checkout provenance.
  • Build server fixtures outside the source workspace without replacing published Maven dependencies; share authenticated HTTP/HTTPS startup.
  • Preserve Loader distribution caching and report missing or ambiguous archives before startup.

Verifying these changes

The cache regression checks use local Git and mocked build/startup fixtures; no additional backend test is required.

  • Trivial rework / code cleanup without any test coverage.
  • Already covered by server-selection, checkout and installer contract tests.
  • Need tests and can be verified as follows:
    • Installer fixtures and shell/workflow checks passed locally.
    • JDK 11 preparation validation used released dependencies; the latest archive-diagnostic regression passed.
    • Current-head organization CI is still running/queued; upstream checks will run separately.

Does this PR potentially affect the following parts?

  • Nope
  • Dependencies (build/test tooling only; runtime payload is unchanged by this preparation)
  • Modify configurations (CI/test configuration)
  • The public API (compatible behavior; signatures unchanged)
  • Other affects: tests and validation tooling

Documentation Status

  • Doc - TODO
  • Doc - Done
  • Doc - No Need

- manage compiler, surefire and coverage plugin versions
- keep Java 8 output and use compatible Mockito 4
- resolve optional server repositories, refs and pins
- verify checkout and package servers without install
- share authenticated startup and filter AppleDouble files
- connect repository and fetch refs to all server installers
- reuse the shared installer for Tools and Spark validation
- preserve Loader source caching with verified checkouts
- isolate fixture builds and retain separate HTTPS RPC ports
- preserve Mockito 2 interaction assertions with the equivalent API
- align test-only Byte Buddy dependencies with Mockito 4
- retain the Spring Boot 2 and Java 11 shared baseline
- run shared server selection and installer tests in one CI job
- document Maven 3.6.3 as the minimum source build version
- report missing or ambiguous server archives before exiting
- trigger push checks for client installer changes
- trigger pull request checks for the same source path
- cover the installer exercised by the existing contracts
- disable persisted checkout credentials in the contract job
- preserve read-only source checkout permissions
- retain the existing local Git fixture contracts
- report missing or ambiguous Loader server archives
- stop before shared server startup
- cover stale archives on a cached install
@codecov

codecov Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 45.95%. Comparing base (b066b80) to head (4c737ff).
⚠️ Report is 244 commits behind head on master.

Additional details and impacted files
@@              Coverage Diff              @@
##             master     #775       +/-   ##
=============================================
- Coverage     62.49%   45.95%   -16.55%     
- Complexity     1903     4386     +2483     
=============================================
  Files           262      602      +340     
  Lines          9541    29361    +19820     
  Branches        886     3432     +2546     
=============================================
+ Hits           5963    13492     +7529     
- Misses         3190    14549    +11359     
- Partials        388     1320      +932     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

- bind cached archives to repository and commit
- reject unverified caches without altering their contents
- version the Loader CI cache key for provenance
- cover cache identity and preservation with local fixtures
- Keep one active run per workflow and PR
- Preserve push and manual workflow executions
- Cover CI workflows on this PR target branch
- group labeler runs by PR and event
- cancel older metadata updates for the same PR
- preserve independent workflow runs
- remove unused Microsoft feeds from the temporary runner
- retain Playwright browser dependency installation
- preserve Ubuntu sources and package signature checks

@bitflicker64 bitflicker64 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.

Blocking: no. Summary: Score 9/10. The server selection, verified checkout, shared HTTP/HTTPS startup and provenance-checked Loader cache behave as described, and the Mockito 4 and plugin-version changes keep every existing test suite running. Evidence: full exact-head diff review of 4c737ff in a dedicated worktree; node --test of resolve, checkout-server and install-server contract tests (25/25 pass); no Mockito APIs removed in v4 remain; CI test totals at head match the latest master runs (loader 11/98/103/4/6, hubble 598, client 72/376/102, tools 18, spark 47); all workflows pass at head. codecov/project fails against a base 244 commits behind master, with the same drop on #776, #778 and #779, so it is not caused by this change.

@imbajin
imbajin merged commit b743e4d into apache:master Oct 5, 2026
16 of 17 checks passed
@imbajin
imbajin deleted the java17-build-prep branch October 8, 2026 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client hugegraph-client hubble hugegraph-hubble loader hugegraph-loader spark tools hugegraph-tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants