aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-01 20:54:50 +0900
committernsfisis <nsfisis@gmail.com>2026-05-01 20:54:50 +0900
commit6d36c654b094dbef823850e9a90047d8bafc1adc (patch)
treed5f8fe31a080cd25af5c33a0efa0ca259b51f67c /crates
parentfe210391f59d5fe19d5c3d56d369ab7918117de1 (diff)
downloadphp-mozart-6d36c654b094dbef823850e9a90047d8bafc1adc.tar.gz
php-mozart-6d36c654b094dbef823850e9a90047d8bafc1adc.tar.zst
php-mozart-6d36c654b094dbef823850e9a90047d8bafc1adc.zip
fix(registry): default missing composer.lock _readme to canonical text
Composer treats _readme as write-only metadata: Locker.php injects it on write but the loader never requires it. Mozart's deserializer was strict, so any composer.lock without _readme failed to parse — including most fixtures under composer/tests/.../installer/*.test. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates')
-rw-r--r--crates/mozart-registry/src/lockfile.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/crates/mozart-registry/src/lockfile.rs b/crates/mozart-registry/src/lockfile.rs
index eea9b29..64333e6 100644
--- a/crates/mozart-registry/src/lockfile.rs
+++ b/crates/mozart-registry/src/lockfile.rs
@@ -18,7 +18,7 @@ fn default_empty_object() -> serde_json::Value {
/// Represents the content of a composer.lock file.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LockFile {
- #[serde(rename = "_readme")]
+ #[serde(rename = "_readme", default = "LockFile::default_readme")]
pub readme: Vec<String>,
#[serde(rename = "content-hash")]