Releases: UpliftGames/rojo
v7.5.1-uplift.syncback.rc.23
This release updates rbx-dom, and is otherwise identical to v7.5.1-uplift.syncback.rc.22.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults totrue.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.22
- The paths displayed by the
--listflag are now normalized across platforms - The paths displayed by the
--listflag are now sorted rather than in a random order initfiles are now respected by theignorePathsfield in syncback configuration- Corrected an edge case with reference properties that caused them be rewritten when they shouldn't have been
- Project files now preserve the order fields were originally in when possible
- The paths displayed by the
- rc.20
- Updated rbx-dom to allow loading an external reflection database
- rc.19
- Fixed an issue with unknown properties serializing poorly in project, model, and meta json files
- When the dir to rbxm fallback occurs, the old file will be removed only if the new serialization succeeds
- rc.18
- Remove old folder when a folder is converted to rbxm due to invalid filenames for children.
- Remove old file when rbxm fallback is otherwise triggered.
- Adopt Ustr for string interning (potential performance improvements due to fewer string allocations)
- Turn update checking off by default
- Make ChannelTabsConfiguration serialize as a JSON model
Prior changes
- rc.17
LuaSourceContainer.ScriptGuidno longer serializes in most cases- Internal attributes (such as
RBX_OriginalTechnologyOnFileLoad) are now ignored ignoreTreesis now respected when Instances are removed- Duplicate
Rojo_Idattributes will now trigger reserialization HumanoidDescriptionInstances will no longer serialize differently between runs
- rc.16
- Compatibility update for
rc.14
- Compatibility update for
- rc.15
syncUnscriptablenow defaults totrueinstead offalse.ignoreTreesdoes not include the root of the project's name anymore- Syncback now functions when using model files (
rbxm/rbxmx) as input - Syncback now correctly serializes and syncs
csvfiles NumberRangeproperties will now only serialize if they are not the default- Removed files and directories now respect
ignorePaths - Directories will no longer be serialized unless they've changed
- Heavily reduced the amount of logging
- Synchronized with the upstream Rojo's master branch, so all of the 7.4+ changes are now in this release
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.5.1-uplift.syncback.rc.22
This release has been superseded by v7.5.1-uplift.syncback.rc.23
This release continues the trend of fixing bugs for syncback that we find as we use it in production.Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults totrue.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.22
- The paths displayed by the
--listflag are now normalized across platforms - The paths displayed by the
--listflag are now sorted rather than in a random order initfiles are now respected by theignorePathsfield in syncback configuration- Corrected an edge case with reference properties that caused them be rewritten when they shouldn't have been
- Project files now preserve the order fields were originally in when possible
- The paths displayed by the
- rc.20
- Updated rbx-dom to allow loading an external reflection database
- rc.19
- Fixed an issue with unknown properties serializing poorly in project, model, and meta json files
- When the dir to rbxm fallback occurs, the old file will be removed only if the new serialization succeeds
- rc.18
- Remove old folder when a folder is converted to rbxm due to invalid filenames for children.
- Remove old file when rbxm fallback is otherwise triggered.
- Adopt Ustr for string interning (potential performance improvements due to fewer string allocations)
- Turn update checking off by default
- Make ChannelTabsConfiguration serialize as a JSON model
Prior changes
- rc.17
LuaSourceContainer.ScriptGuidno longer serializes in most cases- Internal attributes (such as
RBX_OriginalTechnologyOnFileLoad) are now ignored ignoreTreesis now respected when Instances are removed- Duplicate
Rojo_Idattributes will now trigger reserialization HumanoidDescriptionInstances will no longer serialize differently between runs
- rc.16
- Compatibility update for
rc.14
- Compatibility update for
- rc.15
syncUnscriptablenow defaults totrueinstead offalse.ignoreTreesdoes not include the root of the project's name anymore- Syncback now functions when using model files (
rbxm/rbxmx) as input - Syncback now correctly serializes and syncs
csvfiles NumberRangeproperties will now only serialize if they are not the default- Removed files and directories now respect
ignorePaths - Directories will no longer be serialized unless they've changed
- Heavily reduced the amount of logging
- Synchronized with the upstream Rojo's master branch, so all of the 7.4+ changes are now in this release
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.5.1-uplift.syncback.rc.21
This release has been superseded by v7.5.1-uplift.syncback.rc.22
This release is functionally identical to rc.20, but it is updated to be based on Rojo 7.5.1. No other fixes have been applied, so if you had a bug in rc.20, it will (probably) still exist here.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults totrue.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.20
- Updated rbx-dom to allow loading an external reflection database
- rc.19
- Fixed an issue with unknown properties serializing poorly in project, model, and meta json files
- When the dir to rbxm fallback occurs, the old file will be removed only if the new serialization succeeds
- rc.18
- Remove old folder when a folder is converted to rbxm due to invalid filenames for children.
- Remove old file when rbxm fallback is otherwise triggered.
- Adopt Ustr for string interning (potential performance improvements due to fewer string allocations)
- Turn update checking off by default
- Make ChannelTabsConfiguration serialize as a JSON model
Prior changes
- rc.17
LuaSourceContainer.ScriptGuidno longer serializes in most cases- Internal attributes (such as
RBX_OriginalTechnologyOnFileLoad) are now ignored ignoreTreesis now respected when Instances are removed- Duplicate
Rojo_Idattributes will now trigger reserialization HumanoidDescriptionInstances will no longer serialize differently between runs
- rc.16
- Compatibility update for
rc.14
- Compatibility update for
- rc.15
syncUnscriptablenow defaults totrueinstead offalse.ignoreTreesdoes not include the root of the project's name anymore- Syncback now functions when using model files (
rbxm/rbxmx) as input - Syncback now correctly serializes and syncs
csvfiles NumberRangeproperties will now only serialize if they are not the default- Removed files and directories now respect
ignorePaths - Directories will no longer be serialized unless they've changed
- Heavily reduced the amount of logging
- Synchronized with the upstream Rojo's master branch, so all of the 7.4+ changes are now in this release
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.4.0-uplift.syncback.rc.20
This release has been superseded by v7.5.1-uplift.syncback.rc.21
This release continues the work on developing syncback. Since syncback is primarily feature complete at this point, this release primarily contains bug fixes.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults totrue.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.20
- Updated rbx-dom to allow loading an external reflection database
- rc.19
- Fixed an issue with unknown properties serializing poorly in project, model, and meta json files
- When the dir to rbxm fallback occurs, the old file will be removed only if the new serialization succeeds
- rc.18
- Remove old folder when a folder is converted to rbxm due to invalid filenames for children.
- Remove old file when rbxm fallback is otherwise triggered.
- Adopt Ustr for string interning (potential performance improvements due to fewer string allocations)
- Turn update checking off by default
- Make ChannelTabsConfiguration serialize as a JSON model
- rc.17
LuaSourceContainer.ScriptGuidno longer serializes in most cases- Internal attributes (such as
RBX_OriginalTechnologyOnFileLoad) are now ignored ignoreTreesis now respected when Instances are removed- Duplicate
Rojo_Idattributes will now trigger reserialization HumanoidDescriptionInstances will no longer serialize differently between runs
- rc.16
- Compatibility update for
rc.14
- Compatibility update for
- rc.15
syncUnscriptablenow defaults totrueinstead offalse.ignoreTreesdoes not include the root of the project's name anymore- Syncback now functions when using model files (
rbxm/rbxmx) as input - Syncback now correctly serializes and syncs
csvfiles NumberRangeproperties will now only serialize if they are not the default- Removed files and directories now respect
ignorePaths - Directories will no longer be serialized unless they've changed
- Heavily reduced the amount of logging
- Synchronized with the upstream Rojo's master branch, so all of the 7.4+ changes are now in this release
Prior changes
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.4.0-uplift.syncback.rc.19
This release has been superseded by v7.4.0-uplift.syncback.rc.20
This release continues the work on developing syncback. Since syncback is primarily feature complete at this point, this release primarily contains bug fixes.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults totrue.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.19
- Fixed an issue with unknown properties serializing poorly in project, model, and meta json files
- When the dir to rbxm fallback occurs, the old file will be removed only if the new serialization succeeds
- rc.18
- Remove old folder when a folder is converted to rbxm due to invalid filenames for children.
- Remove old file when rbxm fallback is otherwise triggered.
- Adopt Ustr for string interning (potential performance improvements due to fewer string allocations)
- Turn update checking off by default
- Make ChannelTabsConfiguration serialize as a JSON model
- rc.17
LuaSourceContainer.ScriptGuidno longer serializes in most cases- Internal attributes (such as
RBX_OriginalTechnologyOnFileLoad) are now ignored ignoreTreesis now respected when Instances are removed- Duplicate
Rojo_Idattributes will now trigger reserialization HumanoidDescriptionInstances will no longer serialize differently between runs
- rc.16
- Compatibility update for
rc.14
- Compatibility update for
- rc.15
syncUnscriptablenow defaults totrueinstead offalse.ignoreTreesdoes not include the root of the project's name anymore- Syncback now functions when using model files (
rbxm/rbxmx) as input - Syncback now correctly serializes and syncs
csvfiles NumberRangeproperties will now only serialize if they are not the default- Removed files and directories now respect
ignorePaths - Directories will no longer be serialized unless they've changed
- Heavily reduced the amount of logging
- Synchronized with the upstream Rojo's master branch, so all of the 7.4+ changes are now in this release
Prior changes
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.4.0-uplift.syncback.rc.18
This release has been superseded by v7.4.0-uplift.syncback.rc.19
This release continues the work on developing syncback. Since syncback is primarily feature complete at this point, this release primarily contains bug fixes.
Please look at the list of changes even if you have previously used syncback. A previous release included some potentially breaking changes.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults totrue.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.18
- Remove old folder when a folder is converted to rbxm due to invalid filenames for children.
- Remove old file when rbxm fallback is otherwise triggered.
- Adopt Ustr for string interning (potential performance improvements due to fewer string allocations)
- Turn update checking off by default
- Make ChannelTabsConfiguration serialize as a JSON model
- rc.17
LuaSourceContainer.ScriptGuidno longer serializes in most cases- Internal attributes (such as
RBX_OriginalTechnologyOnFileLoad) are now ignored ignoreTreesis now respected when Instances are removed- Duplicate
Rojo_Idattributes will now trigger reserialization HumanoidDescriptionInstances will no longer serialize differently between runs
- rc.16
- Compatibility update for
rc.14
- Compatibility update for
- rc.15
syncUnscriptablenow defaults totrueinstead offalse.ignoreTreesdoes not include the root of the project's name anymore- Syncback now functions when using model files (
rbxm/rbxmx) as input - Syncback now correctly serializes and syncs
csvfiles NumberRangeproperties will now only serialize if they are not the default- Removed files and directories now respect
ignorePaths - Directories will no longer be serialized unless they've changed
- Heavily reduced the amount of logging
- Synchronized with the upstream Rojo's master branch, so all of the 7.4+ changes are now in this release
Prior changes
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.4.0-uplift.syncback.rc.17
This release has been superseded by v7.4.0-uplift.syncback.rc.18
This release continues the work on developing syncback. Since syncback is primarily feature complete at this point, this release primarily contains bug fixes.
Please look at the list of changes even if you have previously used syncback. This release includes some potentially breaking changes.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults totrue.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.17
LuaSourceContainer.ScriptGuidno longer serializes in most cases- Internal attributes (such as
RBX_OriginalTechnologyOnFileLoad) are now ignored ignoreTreesis now respected when Instances are removed- Duplicate
Rojo_Idattributes will now trigger reserialization HumanoidDescriptionInstances will no longer serialize differently between runs
- rc.16
- Compatibility update for
rc.14
- Compatibility update for
- rc.15
syncUnscriptablenow defaults totrueinstead offalse.ignoreTreesdoes not include the root of the project's name anymore- Syncback now functions when using model files (
rbxm/rbxmx) as input - Syncback now correctly serializes and syncs
csvfiles NumberRangeproperties will now only serialize if they are not the default- Removed files and directories now respect
ignorePaths - Directories will no longer be serialized unless they've changed
- Heavily reduced the amount of logging
- Synchronized with the upstream Rojo's master branch, so all of the 7.4+ changes are now in this release
Prior changes
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.4.0-uplift.syncback.rc.16
This release has been superseded by v7.4.0-uplift.syncback.rc.17
This release continues the work on developing syncback. Since syncback is primarily feature complete at this point, this release contains maintenance more than major changes or features.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
Please check out the section at the bottom of these notes for a list of changes.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults tofalse.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.16
- Updated internal parser and reflection database to latest version
- rc.15
- Broken release, do not use
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.4.0-uplift.syncback.rc.15
This release has been superseded by v7.4.0-uplift.syncback.rc.16
This release continues the work on developing syncback. Since syncback is primarily feature complete at this point, this release primarily contains bug fixes.
Please look at the list of changes even if you have previously used syncback. This release includes some potentially unwanted changes.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults totrue.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.15
- **
syncUnscriptablenow defaults totrueinstead offalse. - **
ignoreTreesdoes not include the root of the project's name anymore - Syncback now functions when using model files (
rbxm/rbxmx) as input - Syncback now correctly serializes and syncs
csvfiles NumberRangeproperties will now only serialize if they are not the default- Removed files and directories now respect
ignorePaths - Directories will no longer be serialized unless they've changed
- Heavily reduced the amount of logging
- Synchronized with the upstream Rojo's master branch, so all of the 7.4+ changes are now in this release
- **
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.
v7.4.0-uplift.syncback.rc.14
This release has been superseded by v7.4.0-uplift.syncback.rc.15
This release continues the work on developing syncback. Since syncback is primarily feature complete at this point, this release primarily contains bug fixes.
Note that this is a pre-release build. Despite being labeled as a release candidate, it will almost certainly have bugs and you should be careful about using it for serious work. Among other things, syncback can delete files from your disk so you should be careful using it.
Please check out the section at the bottom of these notes for a list of changes.
If you are new to syncback, click here for a rundown!
Syncback is a feature designed to solve the long-standing problem of converting an existing place file into a Rojo project. It is configured by a new field in projects, and is invoked with a CLI subcommand rojo syncback.
The command itself is rojo syncback path/to/project --input path/to/file.rbxl. This will run syncback and pull things from the provided file to place on the operating system. Instances are attempted to be written in a reasonable manner but what Instances become what is still up in the air.
Instances will only be pulled from the file system if they are a descendant of a node in the provided project file. That is, in order to syncback the children of Workspace, Workspace must be in your project file. You may wish to have a separate project.json for running syncback as a result.
To control the behavior of syncback more, there's a new field in project files named syncbackRules:
{
"syncbackRules": {
"ignoreTrees": [
"DataModel/ServerStorage/ImportantSecrets",
],
"ignorePaths": [
"src/ServerStorage/Secrets/*"
],
"ignoreProperties": {
"BasePart": ["Color"]
},
"syncCurrentCamera": false,
"syncUnscriptable": true,
"ignoreReferents": false,
}
}A brief explanation of each field:
ignoreTreesis a list of paths in the roblox file that should be ignoredignorePathsis a list of paths in the file system that should be ignoredignorePropertiesis a list of properties that won't be synced backsyncCurrentCamerais a toggle for whether to sync back the Workspace's CurrentCamera. Defaults tofalse.syncUnscriptableis a toggle for whether to sync back properties that cannot be set by the Roblox Studio plugin. Defaults tofalse.ignoreReferentsis a toggle for whether to sync back referent properties likeModel.PrimaryPart. Defaults tofalse, which means that they will be included.
This feature will have bugs. Please report them to us as you encounter them!
Changes
- rc.14
- Fix a crash caused by project nodes with a name other than their class name
- Properties that do not serialize (like
ScriptGuid) will no longer reserialize. This issue only occurred with XML files.
- rc.13
- Update rbx-dom to include reflection database v629
- Write unknown properties when syncing back to xml
- Instances with multiple potential syncback paths will no londer sync back to all of them
- Improve error message when rbxmx fails to parse
- Fix OptionalCFrame equality when both are null
- rc.12
- Update rbx-dom to include reflection database v628
- Instances related to TextChatService will become model.json files by default now
- NaN values will no longer cause spurious diffs
- rc.11
- Updated rbx-dom to prevent Motor6Ds from duplicating under some circumstances
- rc.10
- Project files should now only reserialize when it's necessary
- In the same vein, missing attributes should now correctly retrigger a serialization
- Also, projects won't get properties when they don't need them as in the case of JSON models or a file with a meta.json
- The old file from Project files are now always respected
- Referent attributes should reserialize if a
Rojo_Idis duplicated or if a Rojo target attribute points to a property that doesn't need to be set. - Properties like
StringValue.ValueandLocalScript.Sourcenow serialize in project files if the node has no$pathset
- rc.9
- Started using
UniqueIdfor referent links instead of a random 128-bit integer - CSV files are now sorted by
Keyinstead ofSourceand preserve theExamplefield now - All Value objects (StringValue, IntValue, etc.) now syncback as a JSON model by default
ignore_pathsglobs now ignoresrcif your glob issrc/**. This behavior can be reverted by settingcreate_ignore_dir_pathstofalseinsyncbackRules.- Made it so diffing takes place after referent links, fixing cases where referents wouldn't be linked in files that were otherwise identical
- Improved performance of writing to file system
- Started using
- rc.8
- Fixed a regression wherein Directories wouldn't fallback to syncing back as an Rbxm if the initial syncback attempt failed
- rc.7
- Rewrote the majority of the path resolution logic, resulting in much more accurate syncback of Project files
- CSV files should now syncback correctly
- Properties are filtered differently now, resulting in less data being stripped out of rbxm and rbxmx files as well as all JSON formats
- SharedString properties should no longer show up unexpectedly in directory metadata
- rc.6
- Ported the fix for model pivots from 7.4.1
- rc.5
- Updated the version tags for Rojo's CLI and Plugin to actually say "7.4.0-uplift.syncback.rc.5" instead of "7.4.0"
- rc.4
- Rewrote syncback for project files to accurately run syncback on nodes with
$path - This rewrite should correct a problem with nested projects, among other things
syncCurrentCameranow does what it says instead of the opposite- SharedString properties (such as the collision of MeshParts and Unions) are saved in rbxm and rbxmx models now
- If a project cannot be serialized as a directory, it will instead be serialized as an
rbxmfile rather than raising an error - Syncback will now emit
rbxmxfiles rather thanrbxmif the enviroment variableROJO_SYNCBACK_DEBUGis set to1 - Similarly, it will emit model.json files if it is set to
2.
- Rewrote syncback for project files to accurately run syncback on nodes with
- rc.3
- Fixes ref properties not saving correctly when a model is saved via syncback
- rc.2
- Fixes cross-file referent support
- Fixes attribute/tag deletion
- Fixes massive diffs
- Added prompt to confirm before writing files. Bypass with
-yor--non-interactive.