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]