Repository navigation
Make Dependency Analysis green + refresh CLAUDE.md/README - #118
Merged
Merged
Conversation
…lysystem split)
The shipmonk analyser job resolves the plugin's require-ONLY (it strips require-dev),
so it never sees the sylius/sylius monorepo — it pulls the split component packages.
Two problems:
1. My earlier league/flysystem ^3.15 floor made the require-only resolution
UNSATISFIABLE: the split sylius/core caps league/flysystem at ^2.4, and
league/flysystem-local is a 3.x-only package needing flysystem ^3.x. Fix: require
allows league/flysystem ^2.4 || ^3.0 and no longer hard-requires flysystem-local;
the ^3.15 floor + flysystem-local move to require-dev (the test app + the full
install still get flysystem 3.15 + flysystem-local 3.15 matched, keeping
ChecksumProvider present so the full-install lowest legs stay green).
2. Real analyser findings, now fixed:
- Declare the Sylius components the M7 feed types use (currency/customer/order/
promotion/review/taxonomy) + symfony/event-dispatcher-contracts (shadow deps).
- Drop deps not used in src/ (knp-menu, psr/event-dispatcher, sylius/channel,
sylius/inventory, symfony/mime, property-access, serializer, translation-contracts,
uid) — all remain transitively available.
- Ignore two false-positive 'unknown classes' (the XmlWriter {@see} docblock + the
LOCALE enum case) that only the lowest-leg php-parser misresolves;
disableReportingUnmatchedIgnores so it's a no-op on the highest leg.
Analyser now reports 'No composer issues found' on both require-only lowest + highest;
highest full suite (747 tests) + PHPStan max (incl. PHP 8.1) unchanged.
CLAUDE.md: rewrite the Architecture section for the new async flow (ProcessFeed -> GenerateFeedContext -> inline or fan-out via GenerateFeedChunk/FinalizeFeedContext -> FeedContextFinalizer -> publish gate -> per-context gated promotion + delivery), the FeedGraph states (ready/processing/completed/failed), the tagged extension-point registries, field-mapping-and-writer output model, preview/audit diagnostics, delivery/split/gzip, and LookupTable enrichment. Document the dependency-analysis require-only gotcha (split Sylius packages + the flysystem constraint split) and that only English translations ship so far. README.md: describe the resource-agnostic engine + its capabilities, fix the routing import to the real files (routes.yaml + routes/admin.yaml), and align the usage/cron section with setono:feed:process.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 1.x #118 +/- ##
=========================================
Coverage 92.17% 92.17%
Complexity 1727 1727
=========================================
Files 228 228
Lines 4382 4382
=========================================
Hits 4039 4039
Misses 343 343 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
The newer ECS run on CI enforces strict_types on this root config file (the local lock's ECS did not flag it); surfaced because this PR edits the file.
Putting league/flysystem in both require (^2.4 || ^3.0, for the sylius/core-capped require-only analysis) and require-dev (^3.15) tripped 'composer validate --strict' (same package in both sections). Replace it with a conflict on 'league/flysystem >=3.0 <3.15': league/flysystem-local's earliest 3.x is 3.15 (it needs ChecksumProvider, added in flysystem 3.14), so whenever flysystem-local is present (test app + full install) flysystem is forced to >=3.15 and the pair stays matched; the require-only resolution still takes flysystem 2.4 via sylius/core (2.x is below the conflict range). composer.json valid + normalized; require-only Dependency Analysis green on lowest + highest; highest full suite (747) + PHPStan max (incl. PHP 8.1) green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The shipmonk Dependency Analysis job resolves the plugin's
require-only (it strips require-dev), so it never sees thesylius/syliusmonorepo and pulls the split component packages instead.Fixes:
league/flysystem: ^3.15floor made the require-only resolution unsatisfiable (splitsylius/corecaps flysystem at^2.4;league/flysystem-localis 3.x-only). Moved the 3.x floor +flysystem-localto require-dev;requirekeepsleague/flysystem: ^2.4 || ^3.0. The full install still resolves flysystem 3.15 + flysystem-local 3.15 (matched,ChecksumProviderpresent), so the Unit/Integration/Static lowest legs stay green.symfony/event-dispatcher-contracts(were shadow deps).src/(knp-menu, psr/event-dispatcher, sylius/channel, sylius/inventory, symfony/mime, property-access, serializer, translation-contracts, uid) — all remain transitively available.{@see XmlWriter}docblock + theLOCALEenum case) that only the lowest-leg php-parser misresolves.Analyser now reports No composer issues found on both require-only lowest + highest. Highest full suite (747 tests) + PHPStan max (incl. PHP 8.1) unchanged.
Also refreshes CLAUDE.md (new architecture, dependency gotcha) and README.md (engine description, correct routing import, cron usage).