Skip to content

fix(deps): the dev dependency on core declares a range instead of anything - #11

Merged
rodrigoteamx merged 1 commit into
mainfrom
fix/bound-core-dev-range
Sep 8, 2026
Merged

rodrigoteamx merged 1 commit into
mainfrom
fix/bound-core-dev-range

Conversation

@rodrigoteamx

Copy link
Copy Markdown
Contributor

milpa/core sat in require-dev as * — a constraint that admits 1.0, 2.0 and every major after them, whose contract this package has never seen. The family writes >=X <1.0; thirteen siblings already do, and this is one of seven still saying *.

Nothing moves to require, and that is the measured answer. src imports nothing from milpa/* at all: its nine files contain zero use statements — positive control on the same grep, nine namespace lines — and the only non-Milpa\Data symbol anywhere in src or tests is a {@see \Milpa\Live\Contracts\Component\ListsComponents} cross-reference inside the prose of a PagesResults docblock. That one nearly read as a hidden dependency; the generated docs settle it: the family generator leaves every {@see} unrendered, this package's own {@see RepositoryInterface} included, so the tag links nothing and requires nothing.

The single consumer of milpa/core here is tools/gen-docs.php, which runs the family generator (Milpa\Docs\SiteGenerator) shipped inside core's dist — dev-only tooling, and the reason autoload-dev maps Milpa\Docs\ into vendor/milpa/core/tools/gen-docs/.

The floor is measured, not assumed. With core pinned to v0.6.2 the generator still produced its 10 pages, and it does the same on v0.12.0 — so >=0.6.2 <1.0 is a range this package has actually been run against at both ends, and it is the floor agent, container, devtools, http, ops, resolver and workflow already declare.

before (* → v0.12.0) after (>=0.6.2 <1.0 → v0.12.0)
PHPUnit 120 tests / 233 assertions, 28 skipped 120 tests / 233 assertions, 28 skipped
PHPStan src no errors no errors
composer validate --strict valid valid
gen-docs 10 pages 10 pages (also 10 on core v0.6.2)

The 28 skips are local only — they are MysqlRepository's integration tests, and CI runs the MySQL 8.0 service that unskips them.

Closes a residue greenhouse evidence/0571 recorded.

…thing

`milpa/core` sat in `require-dev` as `*` — a constraint that admits 1.0, 2.0
and every major after them, whose contract this package has never seen. The
family writes `>=X <1.0`, and thirteen siblings already do; this is one of
seven still saying `*`.

Nothing moves to `require`, and that is the measured answer, not a judgement
call: src imports nothing from `milpa/*` at all. Its nine files contain zero
`use` statements (positive control on the same grep: nine `namespace` lines),
and the only non-`Milpa\Data` symbol anywhere in src or tests is a
`{@see \Milpa\Live\...}` cross-reference in the prose of a PagesResults
docblock — the family docs generator leaves every `{@see}` unrendered,
including this package's own, so it links nothing and requires nothing.

The one consumer of `milpa/core` here is `tools/gen-docs.php`, which runs the
family generator (`Milpa\Docs\SiteGenerator`) shipped inside core's dist — a
dev-only tool, and the reason for `autoload-dev`'s `Milpa\Docs\` mapping.

The floor is measured, not assumed: with core pinned to v0.6.2 the generator
still produced its 10 pages, so `>=0.6.2 <1.0` is a range this package has been
run against at both ends, and it is the same floor `agent`, `container`,
`devtools`, `http`, `ops`, `resolver` and `workflow` declare.

Suite unchanged either way: 120 tests, 233 assertions, 28 skipped without a
local MySQL (CI runs the 8.0 service). PHPStan clean, docblocks OK,
composer validate --strict valid.

Greenhouse evidence/0571 filed this as a residue.
@rodrigoteamx
rodrigoteamx merged commit b157d2c into main Sep 8, 2026
2 checks passed
@rodrigoteamx
rodrigoteamx deleted the fix/bound-core-dev-range branch September 8, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant