Skip to content

docs(migration): split-map / replace-map / opening order (task 1.0) - #34

Open
agissept wants to merge 1 commit into
masterfrom
migration/1.0-split-monolith-replace-map
Open

docs(migration): split-map / replace-map / opening order (task 1.0)#34
agissept wants to merge 1 commit into
masterfrom
migration/1.0-split-monolith-replace-map

Conversation

@agissept

Copy link
Copy Markdown
Member

Task 1.0 dari migrasi framework-first (rencana: #33). Prasyarat yang membuka semua — memetakan tiap komponen fork ke target Laravel 13 + menghitung urutan pelepasan composer replace.

⚠️ Depend lunak pada #33 (roadmap framework-first): doc ini me-refer MIGRATION-ROADMAP.md §2/§1a. Cross-ref resolve penuh setelah #33 merge. Base tetap master (independen, mergeable sendiri).

Isi MIGRATION-SPLIT-MAP.md

  • SPLIT-MAP — 27 komponen fork src/Illuminate/<Comp> → target v13: 23 real-swap + 4 evaporate (exception, foundation [core-absorbed, tak ada package terpisah], html, workbench; + cachedrouting custom). Hard-require otoritatif dari composer.json tiap sub-package v13.
  • REPLACE-MAP — 27 entry replace fork → target + kapan dicabut (per-cluster, saat swap — bukan sekarang). Sebab: namespace Illuminate\* + package-name laravel/framework sama-sama collide → tak bisa co-install.
  • OPENING ORDER (bottom-up)seed copy-source → SCC-1 window (11 entry flip bareng) → L2 (View→Console gate) → SCC-2 flip → require-late fitur.
  • INTRODUCE — 5 copy-source-early (tabrakan tree: contracts/collections/macroable/conditionable/reflection) + 9 require-late (pipeline dep-gated + 8 fitur baru).
  • EVAPORATE — dihapus, tak pernah di-swap.

Verifikasi

Disusun via workflow multi-agent (grounding: composer.json fork vs stock + .migration-verified-records.json), lalu kritik adversarial (0 blocker, 3 issue dilipat & dicek vs kode):

  • Mail illuminate/http = suggest (bukan hard-require) — Mail tak menggerbang http; sedangkan Auth http = hard-require (dibedakan eksplisit di §5).
  • spatie/once = entry ke-38 stock (satu-satunya non-illuminate/*), datang transitif di metapackage.
  • Graf hard-require v13 = DAG murni; label SCC = cycle source fork 4.2, co-flip dipaksa co-install collision, bukan require-cycle v13.

🤖 Generated with Claude Code

Task 1.0 of the framework-first migration: map each fork src/Illuminate/<Comp>
to its Laravel 13 target and compute the composer `replace` opening order.

- SPLIT-MAP: 27 fork components -> v13 target (real-package / core-absorbed /
  evaporate), with authoritative illuminate/* hard-require per v13 sub-package
  composer.json.
- REPLACE-MAP: 27 fork replace entries -> target + when the entry is dropped
  (per-cluster swap; namespace + laravel/framework package-name collision means
  packages cannot co-install, so entries are removed AT swap, not up front).
- OPENING ORDER: bottom-up by v13 hard-require -- seed copy-source foundation
  (contracts/collections/macroable/conditionable/reflection/pipeline) -> SCC-1
  window (11 entries flip together) -> L2 (View->Console gate) -> SCC-2 flip ->
  require-late feature packages.
- INTRODUCE: copy-source-early (tree-colliding) vs require-late (dep-gated).
- EVAPORATE: exception / foundation(core-absorbed) / html / workbench / cachedrouting.

Grounded in fork vs stock composer.json + .migration-verified-records.json;
adversarially verified (Mail http is a `suggest` not a hard-require; Auth http
is a hard-require).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@agissept
agissept force-pushed the migration/1.0-split-monolith-replace-map branch from 823ab80 to 6696e4a Compare September 11, 2026 08:46
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