v1.2.0 — two-level cwmSiblings config
Added
-
dev.cwmSiblingsdeclaration incwm-build.config.json— a project
now declares the list of CWM sibling packages it expects to find as
Composer path repositories:{ "dev": { "cwmSiblings": [ "joomla-bible-study/lib-cwmscripture", "cwm/scripture-links" ] } }This is the project-level "I depend on these siblings via local
checkouts" declaration — committed, shared across all developers. -
[paths]block inbuild.properties— per-developer mapping
from each declared CWM sibling to its absolute path on the local
machine:[paths] joomla-bible-study/lib-cwmscripture = /Users/brent/GitHub/lib_cwmscripture cwm/scripture-links = /Users/brent/GitHub/CWMScriptureLinks
Gitignored (per-developer). Companion to the existing per-install
configuration sections.PropertiesReader::paths(): array<string, string>reads the block.PropertiesReader::writePaths(array $paths)rewrites it while
preserving every install section.PropertiesReader::write()reciprocally preserves any existing
[paths]block when re-emitting installs — neither path can
accidentally drop the other's state.
-
cwm-setupCWM-siblings flow — after the Joomla install
configuration step, the wizard now:- Reads
dev.cwmSiblingsfromcwm-build.config.json. - For each sibling, surfaces the existing
[paths]entry,
or auto-detects a sibling checkout at../<name>next to
the project root. - Prompts to confirm or change the path per sibling.
- Writes the resulting paths to
build.properties [paths]. - Synchronises
composer.json'srepositories[]block so each
declared sibling has a matching{"type":"path","url":"..."}
entry pointing at the developer's local checkout.
Subsequent
composer install/composer updatepicks up the
configured paths automatically — no hand-editing ofcomposer.json. - Reads
Changed (non-breaking)
PropertiesReader::fromSections()now excludes[paths]from the
install auto-discovery branch (wheninstalls =is omitted), so
a paths-only or paths-plus-sections file parses correctly.
Migration
Consumers using v1.1.0 path repositories (e.g. CWMLivingWord) can
adopt the new schema by:
- Adding
dev.cwmSiblingstocwm-build.config.jsonlisting each
Composer package consumed via a local path repo. - Running
composer setup— the wizard prompts for each sibling's
local path, writes them tobuild.properties, and rewrites
composer.json'srepositories[]block accordingly. - Re-running
composer install.