diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-12 07:01:55 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-15 09:27:59 +0900 |
| commit | 592ab8b1a2d73a1f77db8a7b7e17238ce3577030 (patch) | |
| tree | ccd0e3d550c9591557a84112f110bea355cb7444 /crates/shirabe/src/composer.rs | |
| parent | bb4684f7d1c51bc1be9c1bda1b00cb52c839cd25 (diff) | |
| download | php-shirabe-592ab8b1a2d73a1f77db8a7b7e17238ce3577030.tar.gz php-shirabe-592ab8b1a2d73a1f77db8a7b7e17238ce3577030.tar.zst php-shirabe-592ab8b1a2d73a1f77db8a7b7e17238ce3577030.zip | |
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) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/composer.rs')
| -rw-r--r-- | crates/shirabe/src/composer.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/crates/shirabe/src/composer.rs b/crates/shirabe/src/composer.rs index e714f85d..1c6bbaed 100644 --- a/crates/shirabe/src/composer.rs +++ b/crates/shirabe/src/composer.rs @@ -14,13 +14,21 @@ use crate::util::r#loop::Loop; use shirabe_pcre::Preg; use shirabe_php_shim::php_regex; -// TODO(distribution): change this information to Shirabe version. +/// The Composer version this port tracks. Kept as-is so `Composer::VERSION`, the `composer` +/// platform package and the HTTP User-Agent keep reporting a value plugins and servers can +/// interpret. What Shirabe calls itself is `SHIRABE_VERSION`. pub const VERSION: &str = "2.9.7"; pub const BRANCH_ALIAS_VERSION: &str = ""; pub const RELEASE_DATE: &str = "2026-04-14 13:31:52"; pub const SOURCE_VERSION: &str = ""; pub const RUNTIME_API_VERSION: &str = "2.2.2"; +pub const SHIRABE_VERSION: &str = env!("CARGO_PKG_VERSION"); + +/// The UTC date of the commit this build was made from. Baked in by `build.rs`, the way Composer's +/// Compiler stamps `RELEASE_DATE` when it builds the phar. +pub const SHIRABE_RELEASE_DATE: &str = include!(concat!(env!("OUT_DIR"), "/release_date.rs")); + /// The deadline after which a development build reports itself as outdated, or `None` for a build /// made from a tagged revision. Baked in by `build.rs`. /// |
