mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-22 21:55:15 +00:00
Implement Syncback to support converting Roblox files to a Rojo project (#937)
This is a very large commit. Consider checking the linked PR for more information.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "child_but_not",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"$path": "ReplicatedStorage",
|
||||
"OnlyOneCopy": {
|
||||
"$path": "OnlyOneCopy"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/child_but_not/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/child_but_not/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "csv",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Key,Source,Context,Example,en
|
||||
,,,,
|
||||
|
BIN
rojo-test/syncback-tests/csv/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/csv/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"className": "Folder",
|
||||
"children": [
|
||||
{
|
||||
"name": "value_1",
|
||||
"className": "ObjectValue"
|
||||
},
|
||||
{
|
||||
"name": "value_2",
|
||||
"className": "ObjectValue"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "duplicate_rojo_id",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"container": {
|
||||
"$path": "container.model.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/duplicate_rojo_id/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/duplicate_rojo_id/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "ignore_paths_adding",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
},
|
||||
"syncbackRules": {
|
||||
"ignorePaths": [
|
||||
"src/*.rbxm"
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/ignore_paths_adding/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/ignore_paths_adding/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "ignore_paths_init",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
},
|
||||
"syncbackRules": {
|
||||
"ignorePaths": [
|
||||
"**/init-file/*.luau"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
-- This file SHOULD NOT be updated
|
||||
@@ -0,0 +1 @@
|
||||
-- This module SHOULD be updated
|
||||
BIN
rojo-test/syncback-tests/ignore_paths_init/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/ignore_paths_init/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "ignore_paths_removing",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"$path": "src"
|
||||
}
|
||||
},
|
||||
"syncbackRules": {
|
||||
"ignorePaths": [
|
||||
"*.luau"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
-- This script is not in the input place file.
|
||||
BIN
rojo-test/syncback-tests/ignore_paths_removing/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/ignore_paths_removing/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "ignore_trees_adding",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"$path": "src"
|
||||
}
|
||||
},
|
||||
"syncbackRules": {
|
||||
"ignoreTrees": [
|
||||
"ReplicatedStorage/IgnoreMe"
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/ignore_trees_adding/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/ignore_trees_adding/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "ignore_trees_removing",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"$path": "src"
|
||||
}
|
||||
},
|
||||
"syncbackRules": {
|
||||
"ignoreTrees": [
|
||||
"ReplicatedStorage/KeepMe"
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/ignore_trees_removing/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/ignore_trees_removing/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "json_middleware",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"className": "Configuration"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"className": "StringValue"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "project_json",
|
||||
"tree": {
|
||||
"$className": "Color3Value"
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/json_middlewares/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/json_middlewares/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "nested_projects",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"Nested": {
|
||||
"$path": "nested.project.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "Nested",
|
||||
"tree": {
|
||||
"$className": "Configuration",
|
||||
"BoolValue": {
|
||||
"$className": "BoolValue",
|
||||
"$properties": {
|
||||
"Value": true
|
||||
}
|
||||
},
|
||||
"StringValue": {
|
||||
"$path": "string_value.txt"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
effective cover predict pawn south
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "nested_projects",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"Nested": {
|
||||
"$path": "nested.project.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "Nested",
|
||||
"tree": {
|
||||
"$className": "Configuration",
|
||||
"StringValue": {
|
||||
"$path": "string_value.txt"
|
||||
},
|
||||
"BoolValue": {
|
||||
"$className": "BoolValue"
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/nested_projects/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/nested_projects/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "client_only",
|
||||
"tree": {
|
||||
"$path": "src/modules"
|
||||
},
|
||||
"globIgnorePaths": [
|
||||
"**Server**"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "nested_projects_but_weird",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"modules": {
|
||||
"$path": "client-only.project.json"
|
||||
}
|
||||
},
|
||||
"ServerStorage": {
|
||||
"modules": {
|
||||
"$path": "server-only.project.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "server_only",
|
||||
"tree": {
|
||||
"$path": "src/modules"
|
||||
},
|
||||
"globIgnorePaths": [
|
||||
"**Client**"
|
||||
]
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/nested_projects_weird/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/nested_projects_weird/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "project_init",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"script": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/project_init/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/project_init/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1 @@
|
||||
-- satellite beef psychology response supply
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "project_reserialize",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"Workspace": {
|
||||
"attribute_mismatch": {
|
||||
"$attributes": {
|
||||
"foo": "bar"
|
||||
},
|
||||
"$path": "attribute_mismatch.luau"
|
||||
},
|
||||
"property_mismatch": {
|
||||
"$path": "property_mismatch.project.json"
|
||||
},
|
||||
"$properties": {
|
||||
"EditorLiveScripting": {
|
||||
"Enum": 0
|
||||
},
|
||||
"SignalBehavior": "Deferred",
|
||||
"StreamOutBehavior": "Opportunistic",
|
||||
"StreamingEnabled": true,
|
||||
"StreamingIntegrityMode": "PauseOutsideLoadedArea"
|
||||
},
|
||||
"$attributes": {
|
||||
"Rojo_Target_CurrentCamera": "6d6ae1d713c82fae0620aa1300000375"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "property_mismatch",
|
||||
"tree": {
|
||||
"$className": "BrickColorValue",
|
||||
"$properties": {
|
||||
"Value": {
|
||||
"BrickColor": 345
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "project_reserialize",
|
||||
"tree": {
|
||||
"$className": "Folder",
|
||||
"attribute_mismatch": {
|
||||
"$attributes": {
|
||||
"foo": "bar"
|
||||
},
|
||||
"$path": "attribute_mismatch.luau"
|
||||
},
|
||||
"property_mismatch": {
|
||||
"$path": "property_mismatch.project.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "property_mismatch",
|
||||
"tree": {
|
||||
"$className": "BrickColorValue"
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/project_reserialize/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/project_reserialize/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "rbxm_fallback",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/rbxm_fallback/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/rbxm_fallback/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "ref_properties",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"className": "ObjectValue"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"className": "Folder"
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/ref_properties/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/ref_properties/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "ref_properties_blank",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/ref_properties_blank/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/ref_properties_blank/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "ref_properties_conflict",
|
||||
"tree": {
|
||||
"$className": "DataModel",
|
||||
"ReplicatedStorage": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"className": "ObjectValue",
|
||||
"attributes": {
|
||||
"Rojo_Target_Value": "identical ID"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"className": "ObjectValue",
|
||||
"attributes": {
|
||||
"Rojo_Target_Value": "identical ID"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"className": "Folder",
|
||||
"attributes": {
|
||||
"Rojo_Id": "identical ID"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"className": "Folder",
|
||||
"attributes": {
|
||||
"Rojo_Id": "identical ID"
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/ref_properties_conflict/input.rbxl
Normal file
BIN
rojo-test/syncback-tests/ref_properties_conflict/input.rbxl
Normal file
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "ref_properties_duplicate",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"className": "ObjectValue",
|
||||
"attributes": {
|
||||
"Rojo_Target_Value": "an ID that should not change"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"className": "ObjectValue",
|
||||
"attributes": {
|
||||
"Rojo_Target_Value": "an ID that should not change"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"className": "Folder",
|
||||
"attributes": {
|
||||
"Rojo_Id": "an ID that should not change"
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/ref_properties_duplicate/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/ref_properties_duplicate/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "respect_old_middleware",
|
||||
"tree": {
|
||||
"$path": "src",
|
||||
"project_node": {
|
||||
"$className": "BoolValue"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"className": "StringValue"
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
|
||||
<Meta name="ExplicitAutoJoints">true</Meta>
|
||||
<External>null</External>
|
||||
<External>nil</External>
|
||||
<Item class="Folder" referent="RBX3331BF9CAA2D48DCAD7E3A0C645FDC33">
|
||||
<Properties>
|
||||
<BinaryString name="AttributesSerialize"></BinaryString>
|
||||
<SecurityCapabilities name="Capabilities">0</SecurityCapabilities>
|
||||
<bool name="DefinesCapabilities">false</bool>
|
||||
<string name="Name">rbxmx</string>
|
||||
<int64 name="SourceAssetId">-1</int64>
|
||||
<BinaryString name="Tags"></BinaryString>
|
||||
</Properties>
|
||||
</Item>
|
||||
</roblox>
|
||||
BIN
rojo-test/syncback-tests/respect_old_middleware/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/respect_old_middleware/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "string_value_project",
|
||||
"tree": {
|
||||
"$className": "Folder",
|
||||
"on_file_system": {
|
||||
"$path": "string_value.txt"
|
||||
},
|
||||
"inside_project_file": {
|
||||
"$className": "StringValue"
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/string_value_project/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/string_value_project/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "sync_rules",
|
||||
"tree": {
|
||||
"$path": "src"
|
||||
},
|
||||
"syncRules": [
|
||||
{
|
||||
"use": "text",
|
||||
"pattern": "*.text"
|
||||
},
|
||||
{
|
||||
"use": "moduleScript",
|
||||
"pattern": "*.modulescript"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
-- This should be a in the file 'module.modulescript'. It should be updated to have a second line.
|
||||
@@ -0,0 +1 @@
|
||||
-- This should be a in the file 'text.text'. It should be updated to have a second line.
|
||||
BIN
rojo-test/syncback-tests/sync_rules/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/sync_rules/input.rbxm
Normal file
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "unscriptable_properties",
|
||||
"tree": {
|
||||
"$className": "BinaryStringValue"
|
||||
},
|
||||
"syncbackRules": {
|
||||
"syncUnscriptable": true
|
||||
}
|
||||
}
|
||||
BIN
rojo-test/syncback-tests/unscriptable_properties/input.rbxm
Normal file
BIN
rojo-test/syncback-tests/unscriptable_properties/input.rbxm
Normal file
Binary file not shown.
Reference in New Issue
Block a user