Skip to content

SOLR-18296: DAGP api promotions — inter-module project() deps (part 2/3, draft)#4613

Draft
serhiy-bzhezytskyy wants to merge 3 commits into
apache:mainfrom
serhiy-bzhezytskyy:dagp-pr2-project-api
Draft

SOLR-18296: DAGP api promotions — inter-module project() deps (part 2/3, draft)#4613
serhiy-bzhezytskyy wants to merge 3 commits into
apache:mainfrom
serhiy-bzhezytskyy:dagp-pr2-project-api

Conversation

@serhiy-bzhezytskyy

Copy link
Copy Markdown
Contributor

Draft, for review — part 2 of 3. Builds on #4612 (which must merge first).

Applies DAGP's implementation -> api advice only for the ~36 inter-module project(...) dependencies where the type is genuinely part of the consuming module's public API — e.g. :solr:core publicly exposes :solr:solrj types, so api is correct and downstream modules compile against them.

The ~91 external-library api promotions DAGP also suggests are deliberately not here — see part 3/3 (draft, not for merge), which shows them for discussion. Per @dsmiley's point that DAGP is "api-happy" and liberal api is viral/transitive, those need case-by-case judgement.

gradlew check -x test passes.

AI-assisted, human-reviewed per AGENTS.md.

Completes the dependency-analysis follow-up deferred from the Gradle 9 upgrade
(SOLR-18289), which dropped the Gradle-9-incompatible ca.cutterslade.analyze
plugin. Adds the Dependency Analysis Gradle Plugin (com.autonomousapps
build-health) configured to REPORT (warn), not fail — its advice is guidance
for human review, not enforcement.

Applies only the uncontroversial advice:
 - removal of genuinely-unused dependency declarations
 - a few test-scope corrections (implementation -> testImplementation)

Deliberately NOT included here (left for separate case-by-case review):
 - implementation -> api promotions (DAGP is aggressive here; per dev@ these
   need human judgement, as liberal api is viral/transitive)

Also forces kotlin-metadata-jvm to match Solr's Kotlin so DAGP can analyze the
:solr:ui (Compose/KMP) module. Lockfiles regenerated.
Applies DAGP's api advice ONLY for inter-module project() dependencies that are
genuinely part of the consuming module's public API (e.g. solr-core's public
types expose solrj), where 'api' is correct so downstream modules compile.

External-library api promotions are intentionally excluded here (see part 3/3);
per dev@ feedback those need case-by-case judgement rather than blanket promotion.

Builds on apache#4612. Lockfiles regenerated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant