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

   # Description
   
   This is the package-distribution layer of the unified Camel CLI distribution 
work (CAMEL-23703),
   built on top of the shared Java 17+ runtime discovery that merged in #24664. 
It gives the
   `camel-launcher` module a way to publish and install the CLI without any 
Java-discovery logic of
   its own; that already lives in `camel.sh` / `camel.bat` from the merged 
discovery PR.
   
   What it adds:
   
   - **JReleaser configuration** (`jreleaser.yml`) for five packagers: Homebrew 
and SDKMAN (POSIX),
     and WinGet, Scoop, and Chocolatey (Windows), pinned to JReleaser 1.25.0 
(unbound, non-inherited
     plugin execution) plus a Homebrew formula template and SDKMAN release 
notes.
   - **Website installer scripts** `src/install/install.sh` and 
`src/install/install.ps1`. Both
     resolve the latest (or a pinned `X.Y.Z`) release, download the archive 
from Maven Central, verify
     it against a SHA-256 pulled from a manifest served over HTTPS from 
`camel.apache.org`, validate
     the archive before extraction (rejecting absolute paths, `../` traversal, 
symlink/hardlink/reparse
     entries, multiple top-level roots, or a missing launcher), stage and run 
the launcher once as a
     smoke test, then activate atomically. The manifest is parsed line-by-line 
and never sourced or
     eval'd.
   - **Immutable release manifests** via a JDK-only single-file tool 
`WebsiteManifestGenerator.java`:
     per-version manifests cannot change once written, and `latest.properties` 
can only move forward to
     a higher semantic version, never silently re-point or change a checksum. 
Writes are atomic.
   - **Supported-LTS allowlist** (`supported-lts.yml`) and **prepare wrappers**
     (`camel-package.sh` / `camel-package.bat`) that drive a channel plan 
(stable/lts) with LTS
     validation.
   - Unit tests for the manifest generator, the installer scripts (POSIX and 
PowerShell, against a
     loopback HTTPS fixture), and the channel/prepare plans.
   
   This is the third of four PRs from splitting the original 
`feature/CAMEL-23703-phase1` branch:
   A (#24664, merged) shared runtime discovery, B (#24665) the native 
`camel.exe`, this PR C the
   package distribution, and D (package-native validation) which will follow 
stacked on this branch.
   
   # Target
   
   - [x] I checked that the commit is targeting the correct branch (Camel 4 
uses the `main` branch)
   
   # Tracking
   - [x] If this is a large change, bug fix, or code improvement, I checked 
there is a [JIRA issue](https://issues.apache.org/jira/browse/CAMEL-23703) 
filed for the change (usually before you start working on it).
   
   # Apache Camel coding standards and style
   
   - [x] I checked that each commit in the pull request has a meaningful 
subject line and body.
   
   - [ ] I have run `mvn clean install -DskipTests` locally from root folder 
and I have committed all auto-generated changes.
   
     _`mvn formatter:format impsort:sort` ran clean on push (no changes). A 
full `mvn clean install`
     of `camel-launcher` has not yet been run locally; CI is the source of 
truth here._
   
   # AI-assisted contributions
   
   - [x] If this PR includes AI-generated code, commits have proper 
co-authorship attribution (e.g., `Co-authored-by` trailers) and the PR 
description identifies the AI tool used.
   
   ---
   _Claude Code (Opus 4.8) on behalf of ammachado_
   


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