serhiy-bzhezytskyy opened a new pull request, #4614:
URL: https://github.com/apache/solr/pull/4614

   **Draft — NOT for merge. Part 3 of 3, for discussion only.** Builds on #4613 
→ #4612.
   
   This shows the ~76 **external-library** `implementation -> api` promotions 
DAGP suggests (slf4j, guava, junit, jakarta.*, jackson, log4j, opentelemetry, 
…), so the full picture is visible as code rather than a list.
   
   **I do not recommend merging this as-is.** Per @dsmiley's point on the dev@ 
thread: liberal `api` is viral/transitive — it leaks each of these onto every 
downstream consumer's compile classpath, often for trivial exposure. The right 
call is human judgement on which (if any) are genuinely part of Solr's public 
contract.
   
   **Concrete evidence this advice is harmful, not just stylistically 
undesirable:** DAGP also advised promoting `jersey-core-server` to `api`, but 
doing so *fails to resolve* — its version comes from the jersey BOM (declared 
`implementation`), so as `api` it has no version. I excluded it here to make 
the branch build. That's a real example of api-promotion breaking the build.
   
   **Proposed use:** rather than accept/reject the whole set, pick any deps 
that are genuinely public API and I'll fold just those into #4613. Everything 
else stays `implementation`.
   
   Layering: #4612 (safe advice, ready) → #4613 (inter-module project() api, 
draft) → this (external api, illustrative).
   
   AI-assisted, human-reviewed per AGENTS.md.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to