Skip to content

Make Dependency Analysis green + refresh CLAUDE.md/README - #118

Merged
loevgaard merged 4 commits into
1.xfrom
fix/dependency-analysis
Jul 2, 2026
Merged

loevgaard merged 4 commits into
1.xfrom
fix/dependency-analysis

Conversation

@loevgaard

Copy link
Copy Markdown
Member

The shipmonk Dependency Analysis job resolves the plugin's require-only (it strips require-dev), so it never sees the sylius/sylius monorepo and pulls the split component packages instead.

Fixes:

  • My earlier league/flysystem: ^3.15 floor made the require-only resolution unsatisfiable (split sylius/core caps flysystem at ^2.4; league/flysystem-local is 3.x-only). Moved the 3.x floor + flysystem-local to require-dev; require keeps league/flysystem: ^2.4 || ^3.0. The full install still resolves flysystem 3.15 + flysystem-local 3.15 (matched, ChecksumProvider present), so the Unit/Integration/Static lowest legs stay green.
  • Declared the Sylius components the M7 feed types use (currency/customer/order/promotion/review/taxonomy) + symfony/event-dispatcher-contracts (were shadow deps).
  • Dropped 9 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.
  • Ignored two false-positive 'unknown classes' (the {@see XmlWriter} docblock + the LOCALE enum 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).

loevgaard added 2 commits July 2, 2026 21:51
…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

codecov Bot commented Jul 2, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.17%. Comparing base (930d362) to head (38c113a).

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

loevgaard added 2 commits July 2, 2026 21:59
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.
@loevgaard
loevgaard merged commit 38220d0 into 1.x Jul 2, 2026
29 of 30 checks passed
@loevgaard
loevgaard deleted the fix/dependency-analysis branch July 2, 2026 20:14
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