ammachado opened a new pull request, #25030: URL: https://github.com/apache/camel/pull/25030
# Description Adds CI that validates the Camel CLI launcher distribution the way real package managers consume it, plus the installer/manifest hardening that validation depends on. **CI workflow** (`.github/workflows/package-native-validation.yml`) - Builds the launcher distribution and validates it on macOS + Linux (POSIX validators) and Windows (installer unit tests), triggered on changes under `dsl/camel-jbang/camel-launcher/**` and `tooling/camel-exe/**`. - Stages a synthetic (non-`SNAPSHOT`) release version offline so `camel-package.sh prepare` runs without publishing anything, then runs the validators host-gated. **POSIX validators** (`src/jreleaser/bin/camel-validate.sh` + `lib/assert-camel-cli.sh`) - A dispatcher that validates the local archive directly, plus host-gated Homebrew (audit `--strict` + install/version/init/uninstall via a throwaway local tap, with an offline `file://` formula rewrite in test mode) and SDKMAN (descriptor + archive-structure checks) legs. Any genuine failure exits nonzero; absent package managers `SKIP`. **Installer + manifest hardening** - `install.sh` / `install.ps1` tolerate `#`/`##` comment lines in the release manifest (so the manifest can carry an ASF license header) while still rejecting blank lines and enforcing the four required keys. - `install.sh` surfaces `wget`/`tar` errors instead of silencing them (`-nv`, captured stderr). - `WebsiteManifestGenerator` prepends an ASF license header to generated manifests; its strict re-parser and both installers skip the comment lines. **Docs**: new "Installing the Camel CLI Launcher" guide, plus nav / launcher-page / upgrade-guide updates. **Tests**: `PackageNativeValidationTest` (host-gated orchestration of the validators and assertion library), installer license-header tolerance tests, manifest generator tests, and an `expected-init-route.txt` fixture. ### Verification - `dsl/camel-jbang/camel-launcher` unit suite: 170 run, 0 failures (35 OS-gated skips). - Native-exe IT (`CamelLauncherNativeExeIT`): 4/4 pass with the pinned llvm-mingw `20260616` toolchain (`-Dcamel.exe.build=true`). - `camel-package.sh prepare` reproduced offline end to end: it now exits 0 and generates the Homebrew formula the validator consumes. # 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) filed for the change (usually before you start working on it). — [CAMEL-23703](https://issues.apache.org/jira/browse/CAMEL-23703) # 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. <sub>Formatting/import-sort ran clean via the repo pre-push hook and the launcher module builds and tests pass; a full-root `mvn clean install -DskipTests` has not been re-run for this push.</sub> # 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. <sub>The two most recent commits (WinGet stand-in staging in the validation workflow, and collapsing a single-use assertion helper) were AI-assisted with Claude Code (Opus 4.8) and carry `Co-Authored-By` trailers. _Claude Code on behalf of ammachado._</sub> -- 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]
