Add Luau-style ref paths migration plan and update related tests

- Introduced a new migration plan for converting `Rojo_Ref_*` attribute paths to Luau require-by-string style, enhancing portability with relative paths.
- Updated existing test snapshots to reflect the new path formats, ensuring consistency across various scenarios.
- Enhanced the `compute_relative_ref_path` and `resolve_ref_path` functions to support the new path semantics, improving path resolution logic.
- Refactored related code in `change_processor`, `syncback`, and `snapshot` modules to accommodate the new reference path handling.

These changes improve the robustness and maintainability of reference path management in the project.
This commit is contained in:
Joe 2026-02-18 04:17:51 -06:00
parent d6169c6d84
commit b8c3520d25
29 changed files with 2147 additions and 179 deletions

View file

@ -7,7 +7,7 @@ expression: container.model.json5
{
attributes: {
Rojo_Id: "value_1",
Rojo_Ref_Value: "ReplicatedStorage/container/value_1.model.json5"
Rojo_Ref_Value: "@self"
},
className: "ObjectValue",
name: "value_1"
@ -15,7 +15,7 @@ expression: container.model.json5
{
attributes: {
Rojo_Id: "value_1",
Rojo_Ref_Value: "ReplicatedStorage/container/value_2.model.json5"
Rojo_Ref_Value: "@self"
},
className: "ObjectValue",
name: "value_2"

View file

@ -4,7 +4,7 @@ expression: src/pointer.model.json5
---
{
attributes: {
Rojo_Ref_Value: "target.model.json5"
Rojo_Ref_Value: "@game/target.model.json5"
},
className: "ObjectValue"
}

View file

@ -4,7 +4,7 @@ expression: src/pointer.model.json5
---
{
attributes: {
Rojo_Ref_Value: "target.txt"
Rojo_Ref_Value: "@game/target.txt"
},
className: "ObjectValue"
}

View file

@ -4,7 +4,7 @@ expression: src/Pointer_2.model.json5
---
{
attributes: {
Rojo_Ref_Value: "Target_2.model.json5"
Rojo_Ref_Value: "@game/Target_2.model.json5"
},
className: "ObjectValue"
}

View file

@ -4,7 +4,7 @@ expression: src/Pointer1.model.json5
---
{
attributes: {
Rojo_Ref_Value: "ReplicatedStorage/Target1.model.json5"
Rojo_Ref_Value: "@game/ReplicatedStorage/Target1.model.json5"
},
className: "ObjectValue"
}

View file

@ -4,7 +4,7 @@ expression: src/Pointer2.model.json5
---
{
attributes: {
Rojo_Ref_Value: "ReplicatedStorage/Target2.model.json5"
Rojo_Ref_Value: "@game/ReplicatedStorage/Target2.model.json5"
},
className: "ObjectValue"
}

View file

@ -4,7 +4,7 @@ expression: src/Pointer3.model.json5
---
{
attributes: {
Rojo_Ref_Value: "ReplicatedStorage/Target3.model.json5"
Rojo_Ref_Value: "@game/ReplicatedStorage/Target3.model.json5"
},
className: "ObjectValue"
}