From 592ab8b1a2d73a1f77db8a7b7e17238ce3577030 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 12 Aug 2026 07:01:55 +0900 Subject: feat(cli): report Shirabe's own identity instead of Composer's The binary called itself Composer everywhere: the application name, the logo, --version, about, and every warning that talks about the running program. Prompts to file a bug also pointed at Composer's issue tracker. Add SHIRABE_VERSION and SHIRABE_RELEASE_DATE next to the Composer version constants and report those, naming the Composer version this port tracks alongside them. Composer::VERSION and getVersion() are untouched, so the composer platform package, composer-runtime-api and the HTTP User-Agent keep the value plugins and package repositories expect. build.rs stamps the release date with the UTC date of the HEAD commit, the way Composer's Compiler fills in @release_date@ when building the phar. It now also fails the build when git cannot be read, instead of letting COMPOSER_DEV_WARNING_TIME fall back to the tagged-release value and suppress the outdated-build warning forever. Messages about the Composer ecosystem keep their wording. Two of them are pinned by upstream installer fixtures (Rule's "cannot be modified by Composer" and SolverProblemsException's "you can run Composer with") and stay as they are so those fixtures can keep being used verbatim. The e2e list comparison against upstream Composer now skips the banner, which cannot match by design, and compares everything below it as before. Co-Authored-By: Claude Opus 5 (1M context) --- docs/known-incompatibilities.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/known-incompatibilities.md b/docs/known-incompatibilities.md index e8e6a038..79ead94c 100644 --- a/docs/known-incompatibilities.md +++ b/docs/known-incompatibilities.md @@ -3,12 +3,6 @@ NOTE: This is not an exhaustive list. Shirabe is in early development and there are still a number of significant incompatibilities with Composer that are not documented here yet. -## Error Messages - -Error messages, in particular those from PHP built-in functions, are not intended to be mapped exactly. -Plugins or external tools that rely on error messages may break. - - ## Default Home/Cache/Data Directories To avoid conflicting with an existing Composer installation, Shirabe's default system directories @@ -32,6 +26,23 @@ The following are intentionally left unchanged for ecosystem compatibility: TODO: a CLI flag or an environment variable to force Shirabe to use compatible paths. +## Error Messages + +Error messages, in particular those from PHP built-in functions, are not +intended to be mapped exactly. Plugins or external tools that rely on error +messages may break. + + +## Version Reporting + +Shirabe has its own version, separate from the Composer version it is ported +from. `shirabe --version`, `shirabe about` and `shirabe diagnose` report the +Shirabe version and show the Composer version alongside it. + +The pseudo-package `composer` and `composer-runtime-api` keep the original +Composer version in order not to break the version resolution. + + ## Xdebug Composer disables Xdebug on startup. Shirabe emulates it, but the exact -- cgit v1.3.1-4-g156e