Commit graph

1555 commits

Author SHA1 Message Date
Joe
69774fd546 Update .gitmodules for rbx-dom URL and enhance UnresolvedValue handling
- Changed the rbx-dom submodule URL in .gitmodules from SSH to HTTPS for easier access.
- Introduced a new method to handle OptionalCFrame variants in UnresolvedValue, allowing for better serialization by returning `None` for `OptionalCFrame(None)`.
- Updated various files to utilize the new handling logic, ensuring properties are only inserted when resolved values are available.
2026-01-21 16:07:24 -06:00
Joe
4ccef46540 Add rbx-dom submodule and update dependencies in Cargo files
- Introduced rbx-dom as a submodule, updating the .gitmodules file to include its path and repository URL.
- Modified Cargo.toml to reference rbx-dom dependencies using local paths instead of Git URLs, facilitating easier local development.
- Updated Cargo.lock to include new dependencies and versions, enhancing the project's dependency management.
- Added logic in meta_file.rs to skip None OptionalCFrame values during serialization, improving data handling.
2026-01-21 15:58:13 -06:00
Joe
c64aec6132 Enhance WhitespaceUtil with LCS-based diff algorithm for improved change detection
- Implemented a Longest Common Subsequence (LCS) algorithm to accurately compute line differences, enhancing the detection of whitespace-only changes.
- Refactored the CountLineDifferences function to utilize LCS for both exact and normalized comparisons, improving performance and clarity.
- Added normalization option to handle whitespace discrepancies effectively, ensuring more precise diff results.
2026-01-21 00:38:33 -06:00
Joe
1af3a18bcd Update snapshot files to remove unnecessary attributes and improve consistency in property handling
- Cleared out redundant attributes from various snapshot files, specifically removing `Rojo_Target_Value` and `Rojo_Target_PrimaryPart` where applicable.
- Ensured that attributes are consistently represented as empty objects when not needed, enhancing clarity in the snapshot structure.
- Adjusted related test cases to reflect these changes, ensuring alignment with the updated snapshot expectations.
2026-01-20 23:12:43 -06:00
Joe
cd05690d8a Refactor PatchTree and applyPatch for improved readability and logic consistency
- Restructured property change checks in PatchTree.build to enhance clarity and maintainability.
- Updated applyPatch to improve the handling of instance retrieval logic for removed instances.
- Simplified the findDuplicateNames function in diff.lua for better readability and consistency in handling duplicate names.
2026-01-20 23:05:16 -06:00
Joe
d21331cb65 Enhance fuzzy equality function for improved precision handling
- Updated the fuzzyEq function to utilize both absolute and relative epsilon for better precision when comparing numbers. This change improves the handling of small and large values, ensuring more accurate equality checks in the reconciliation process.
2026-01-20 23:02:14 -06:00
Joe
3c33054afd Add support for ignoring auto-created instances in sync process
- Introduced a new configuration for ignored class names in Config.lua to streamline the sync process by skipping instances that are auto-created by Roblox, such as TouchTransmitter and Camera.
- Updated PatchTree, applyPatch, and diff functions to utilize this configuration, enhancing efficiency by preventing unnecessary processing of these instances.
2026-01-20 22:58:44 -06:00
Joe
c5c6bf9a10 Update PatchTree and applyPatch to skip TouchTransmitter instances during patch processing
- Modified the logic in PatchTree.build and applyPatch functions to skip instances of ClassName "TouchTransmitter", which are auto-created by Roblox for touch events.
- This change enhances the efficiency of patch applications by preventing unnecessary processing of these instances.
2026-01-20 22:54:07 -06:00
Joe
aa09717545 Enhance PatchTree and applyPatch to skip TouchInterest instances during patch processing
- Added logic in PatchTree.build and applyPatch functions to skip instances of ClassName "TouchInterest", which are auto-created by Roblox for touch events.
- This change improves the handling of patch applications by preventing unnecessary processing of these instances.
2026-01-20 22:17:26 -06:00
Joe
4a09689090 Enhance WhitespaceUtil and Reconciler to handle duplicate names and improve diffing logic
- Updated WhitespaceUtil to return distinct values for totalDiff and whitespaceDiff when differences exceed 100 lines, based on content changes.
- Introduced findDuplicateNames function in Reconciler to identify and skip instances with duplicate names, ensuring reliable syncing.
- Enhanced diffing logic to account for ambiguous paths and log skipped duplicates during the sync process.
- Improved error handling in syncback_dir_no_meta to log and skip children with duplicate names in the file system.
2026-01-20 22:10:19 -06:00
Joe
06457bc0db Enhance property handling in PatchTree.build function to support EnumItem conversion for incoming raw numbers. Improved readability by restructuring property change checks and maintaining line change calculations for Source properties. 2026-01-20 21:49:42 -06:00
Joe
196cf7aed7 Refactor reference handling in Rojo system to prioritize path-based attributes
- Updated attribute prefixes to use REF_PATH_ATTRIBUTE_PREFIX for path-based references.
- Enhanced PatchApplyContext and related functions to support path-based linking, falling back to ID-based references when necessary.
- Implemented cleanup for legacy attributes to ensure they do not persist in the live game.
- Improved error handling and logging for reference resolution processes.
2026-01-20 21:34:37 -06:00
Joe
3cf452cb7b Refactor property extension in finalize_patch_application for improved readability 2026-01-20 21:12:31 -06:00
Joe
a1e270949d Add support for external references in RojoTree and syncback process
- Introduced REF_EXTERNAL_ATTRIBUTE_PREFIX for attributes pointing to external instances.
- Enhanced PatchApplyContext to track external references and apply them during patch application.
- Implemented get_instance_by_path method in RojoTree for resolving paths to external instances.
- Updated collect_referents function to handle external references and preserve their paths during syncback.
- Refactored link_referents to include external reference handling in the linking process.
2026-01-20 21:05:28 -06:00
Joe
9e270bd847 Refactor get_best_middleware function by removing static JSON model classes and simplifying middleware selection logic for improved clarity and maintainability. 2026-01-20 20:56:34 -06:00
Joe
2dfcac4ef7 Refactor code for improved readability by consolidating multi-line statements into single lines across various modules, including JSON serialization, snapshot middleware, and file name validation. 2026-01-20 20:48:52 -06:00
Joe
4caac7a31c Refactor line change calculations in PatchTree.build function for improved readability and maintainability. 2026-01-20 20:46:51 -06:00
Joe
a9a9d930d3 Update Cargo.toml and Cargo.lock to use rbx-dom dependencies from GitHub, replacing local paths with Git sources for improved version control and collaboration. 2026-01-20 20:45:43 -06:00
Joe
d0f7dffd2e Expand GUI element support in get_best_middleware function by adding various UI components and layout classes for enhanced middleware selection. 2026-01-20 20:23:23 -06:00
Joe
d1ea2feed7 Update dependencies in Cargo.lock and Cargo.toml; adjust rbx-dom paths and versions for improved compatibility and functionality. 2026-01-20 20:15:35 -06:00
Joe
7453dfdbe4 Enhance middleware selection in get_best_middleware function to include additional GUI types (ScreenGui, SurfaceGui, BillboardGui, AdGui) for improved directory handling. 2026-01-20 20:10:55 -06:00
CoderJoey
c36421626d
Merge branch 'rojo-rbx:master' into master 2026-01-20 20:10:14 -06:00
Joe
7045c460ab Implement component lifecycle management in DomLabel. Added isMounted flag to prevent updates after unmounting and ensured proper disconnection of motor step connection during component unmounting, enhancing stability and performance. 2026-01-20 19:56:04 -06:00
boatbomber
68eab3479a
Fix notification unmount thread cancel bug (#1211) 2026-01-19 16:35:19 -08:00
Ivan Matthew
2a1102fc55
Implement VFS Path normalization for improved cross-platform tree synchronization (#1201) 2026-01-19 15:04:59 -08:00
Ken Loeffler
02b41133f8
Use post for ref patch and serialize (#1192) 2026-01-19 22:44:42 +00:00
Joe
5cfc803094 Add installation directory creation and PATH update in installation script. The script now ensures the installation directory exists before copying the Rojo executable and adds it to the system PATH if not already present, improving accessibility for users. 2026-01-19 15:43:20 -06:00
Joe
033dec4e18 Refactor metadata file name generation in syncback_lua and AdjacentMetadata to strip known script type suffixes (.server, .client, .plugin) for improved compatibility. This change ensures accurate base name extraction for meta files while maintaining handling of Windows-invalid characters. 2026-01-15 16:08:53 -06:00
Joe
73684a97bb Merge branch 'master' of github.com:UserGeneratedLLC/rojo 2026-01-13 21:47:09 -06:00
Joe
9bedbd70fd Add whitespace change detection utility and integrate into PatchTree. Enhanced PatchTree to count line changes specifically for Source properties, distinguishing between total and whitespace-only changes. Updated theme colors for visual representation of whitespace changes in the UI. 2026-01-13 21:46:57 -06:00
Joe
b1a409b4a3 Add installation script for building and deploying Rojo plugin 2026-01-02 09:50:33 -06:00
Joe
00872e65a4 Remove syncback PowerShell and shell scripts. These files have been deleted as part of a cleanup process, streamlining the project structure and eliminating redundant scripts. 2025-12-29 00:46:40 -06:00
Joe
5ad50e65d4 Enhance syncback error handling by including full instance paths in duplicate name error messages. Updated the syncback_project function to provide clearer context when instances with duplicate names are detected. 2025-12-29 00:40:13 -06:00
Joe
777b060428 Add renormalization support in syncback scripts. Updated both PowerShell and shell scripts to include 'git add --renormalize .' when the clean flag is active, ensuring proper handling of line endings. 2025-12-29 00:25:44 -06:00
Joe
f6dc37e400 Enhance syncback functionality by implementing tree filtering based on ignoreTrees patterns. Added support for glob pattern matching to filter instances during serialization in both rbxm and rbxmx. Updated SyncbackSnapshot to compile and utilize these patterns efficiently. 2025-12-29 00:02:40 -06:00
Joe
cf5f7788fc Add clean flag functionality to syncback scripts for directory management. Implemented logic to delete and recreate the 'src/' directory structure when the 'clean' argument is provided, while filtering out the clean flag from other arguments passed to the syncback command. 2025-12-28 23:46:07 -06:00
Joe
978dd41047 Refactor metadata file name generation in syncback_lua to utilize the file stem from the script path, ensuring proper handling of Windows-invalid characters while maintaining compatibility with existing naming conventions. 2025-12-28 23:24:41 -06:00
Joe
f54367e5e0 Refactor metadata file name generation in read_and_apply_all to use the file stem from the actual path, ensuring correct handling of encoded characters for Windows-invalid filenames. 2025-12-28 23:04:59 -06:00
Joe
8c776c09b3 Implement encoding for Windows-invalid characters in syncback metadata file names across CSV, Lua, and TXT handlers. Updated file name generation to conditionally encode names based on the presence of invalid characters. 2025-12-28 22:43:21 -06:00
Joe
81f72681c6 Add syncback scripts 2025-12-28 22:22:04 -06:00
Joe
63f849e735 Refactor executable path handling in Windows install script for improved clarity and consistency. Updated variable names for better readability and ensured correct path usage in gsudo commands. 2025-12-20 20:59:30 -06:00
Joe
cc7d2e3848 Refactor Windows install script to streamline executable path handling and improve readability. Updated the path variable for the executable and simplified the gsudo commands for stopping the process and copying the executable. 2025-12-20 20:59:10 -06:00
Joe
83bbf0ef6b Update Windows install script to use a direct path for copying the executable, removing the commented-out item removal line. 2025-12-20 20:56:31 -06:00
Joe
7a7243f78a Comment out the removal of items in the deploy folder in the Windows install script to prevent accidental deletion during installation. 2025-12-20 20:51:11 -06:00
Joe
a598416d74 Windows install script 2025-12-20 20:45:07 -06:00
Joe
88beb1d8d7 scriptsOnly mode 2025-12-20 20:44:35 -06:00
Joe
6d8c85682d Implement encoding and decoding for Windows-invalid characters in file names
- Added `encode_path_name` and `decode_path_name` functions to handle encoding and decoding of invalid characters.
- Updated `SyncbackRules` to include an option for encoding Windows-invalid characters during syncback.
- Modified `name_for_inst` to conditionally encode invalid characters based on the new option.
- Adjusted `ServeSession` and `InstanceContext` to support the new encoding feature.
- Updated tests and snapshots to reflect changes in encoding behavior.
2025-12-19 22:50:53 -06:00
Joe
db87fa010f ignore classes feature 2025-12-19 01:15:14 -06:00
Joe
929bc254fa Sorted keys 2025-12-09 00:28:13 -06:00
Micah
d08780fc14
Ensure that pruned Instances aren't treated as existing in syncback (#1179)
Closes #1178.
2025-11-29 21:21:48 -08:00