davsclaus opened a new pull request, #29473:
URL: https://github.com/apache/camel/pull/29473

   JIRA: [CAMEL-21049](https://issues.apache.org/jira/browse/CAMEL-21049)
   
   A design proposal, for review and discussion: move the 
`apache/camel-kamelets` catalog into `apache/camel`, build it in the Camel 
reactor, and release it with Camel under the Camel version. This PR only adds 
the design document (`design/kamelets-in-camel.adoc`) and its entry in 
`AGENTS.md`; no code changes.
   
   ## Why
   
   - **Adoption.** Kamelets are released as a separate project, with their own 
version, release pages, docs component and GitHub issues. The website search 
even leaves the `/camel-kamelets/` pages out. Users take up what comes with the 
Camel release; Kamelets should feel like ordinary Camel.
   - **The version cycle.** The catalog needs a released Camel to build, and 
Camel bundles the catalog, so every Camel release ships the catalog of the 
previous minor (Camel 4.22.0 shipped catalog 4.21.0). Some Camel releases never 
get a catalog with their number (4.19.0, 4.18.4, 4.18.5, ...), and the Camel K 
operator then has no catalog to install.
   - **Breakage found late.** 80 Kamelets name Camel Java classes, but they are 
checked against the *released* Camel only. The motivating case is the Jackson 3 
switch (CAMEL-22857, #29461): 24 Kamelets name Jackson 2 classes and would be 
broken in Camel JBang on 4.24.0, which ships the 4.23.0 catalog.
   
   ## What the document proposes
   
   - A top-level `kamelets/` directory with one copy of the YAML, the catalog 
API and the Citrus tests; same Maven coordinates 
(`org.apache.camel.kamelets:camel-kamelets`, `camel-kamelets-catalog`), because 
Camel K, older JBang releases, Camel Quarkus, Kaoto and Karavan use them.
   - The Kamelet docs as a module of the `components` Antora component, 
versioned and searched like components.
   - A fast in-process test that loads every Kamelet and resolves the classes 
it names (it would have caught the Jackson case), and the Citrus tests nightly 
or on a label.
   - The old repository keeps its `4.18.x` and `4.22.x` branches until those 
LTS lines end, then is archived.
   - A migration in small PRs, and the open questions for the PMC, starting 
with: move and same version, target release, the interim fix for 4.24, and the 
coordinates.
   
   Facts are cited with paths in both repositories; what could not be checked 
is listed at the end of the document. Feedback welcome, here or on dev@.
   
   _Claude Code on behalf of davsclaus_
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
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]

Reply via email to