Migration notes: godot-composition-apps
Incremental upgrade for topics this skill covers. Apply one hop, stabilize/test, then next. Never skip hops.
If the project is < 4.0, follow godot-version-migration era bridges (legacy → 3→4) until 4.0, then these hops. Official 3→4: Upgrading from Godot 3 to Godot 4.
4.0 → 4.1
Official: Upgrading to Godot 4.1
SubViewportContainer.mouse_filtermust be STOP/PASS for embedded editor panes.Object.get_meta_list()returnsArray[StringName].WorkerThreadPool.wait_for_task_completion()returnsError— handle failures in background import jobs.
4.1 → 4.2
Official: Upgrading to Godot 4.2
GraphEdit/GraphNodeAPI moves (see dialogue graph notes) — update composable node-tool UIs.NOTIFICATION_NODE_RECACHE_REQUESTEDremoved.
4.2 → 4.3
Official: Upgrading to Godot 4.3
auto_translate_modeinherit semantics — tool UI strings may need explicit locale nodes.- Binary serialization of custom
Resourcecomponents changed — re-test saved workspace layouts.
4.3 → 4.4
Official: Upgrading to Godot 4.4
@export_filestoresuid://paths — component graphs referencing files byres://string need UID resolution.FileAccess.store_*()returnsbool— check failures when persisting app layouts touser://.Curveenforces min/max — remap animation curves used in UI tweens.
4.4 → 4.5
Official: Upgrading to Godot 4.5
Resource.duplicate(true)deep-copies internal resources only — useduplicate_deep(DEEP_DUPLICATE_ALL)when cloning nested component trees.ProjectSettings.add_property_info()stricter validation for plugin-declared settings.
4.5 → 4.6
Official: Upgrading to Godot 4.6
EditorFileDialogAPIs moved toFileDialog— update@toolcomposition editors.- TSCN unique node IDs — first save after upgrade produces large diffs in tool scenes.
FileAccess.get_as_text()dropsskip_crparameter.
4.6 → 4.7
Official: Upgrading to Godot 4.7
- New project stretch defaults
canvas_items+expand— dockable tool UIs may need anchor pass. - Packed array element assignment no longer triggers property setter — reactive UI binding via typed arrays needs audit.
- Typed-return overrides must explicitly
return— fix@toolscripts with typed_get()/_set(). Control.accessibility_liveenum — expose live regions in accessible tool palettes.