54 Commits

Author SHA1 Message Date
Ivan Matthew
a2adf2b517 Improves sourcemap path handling with pathdiff (#1217) 2026-02-12 19:17:28 -08:00
Barış
269272983b Changed file extensions of init command from lua to luau (#831) 2024-01-05 16:00:49 -08:00
Lucien Greathouse
eccb95690c Live sync Attributes (#553)
* Add test project for tags

* Update rbx_dom_lua and add attributes project

* Add Attributes shorthand; not working

* Update dependencies

* Update rbx_reflection_database

* Update rbx_types and commit attributes snapshot
2022-06-29 18:53:34 -04:00
Lucien Greathouse
cd5d6fd15c Add test project for tags 2022-06-12 05:05:17 -04:00
Lucien Greathouse
1c319f2fa8 Promote weldconstraint test project to a build test 2021-11-26 16:36:55 -05:00
Lucien Greathouse
5bca244062 Add test project for #458 2021-07-27 12:42:47 -04:00
Lucien Greathouse
7599ef6626 Improve error messages 2021-05-14 15:58:18 -04:00
Lucien Greathouse
59ef5f05ea Upgrade to rbx_dom_weak 2.0 (#377)
* Mostly mechanical port bits

* Almost there

* It builds again!

* Turn on all the code again

* Tests compiling but not passing

* Stub work for value resolution

* Implement resolution minus enums and derived properties

* Implement property descriptor resolution

* Update referent snapshots

* Update unions test project

Using a place file instead of a model yields better
error messages in Roblox Studio.

* Add easy shortcut to testing with local rbx-dom

* Update rbx-dom

* Add enum resolution

* Update init.meta.json to use UnresolvedValue

* Expand value resolution support, add test

* Filter SharedString values from web API

* Add 'property' builder method to InstanceSnapshot

* Change InstanceSnapshot/InstanceBuilder boundary

* Fix remove_file crash

* rustfmt

* Update to latest rbx_dom_lua

* Update dependencies, including rbx_dom_weak

* Update to latest rbx-dom

* Update dependencies

* Update rbx-dom, fixing more bugs

* Remove experimental warning on binary place builds

* Remove unused imports
2021-02-18 20:56:09 -05:00
Lucien Greathouse
5989ab3b85 Add project to test that plugin skips unwritable properties 2021-01-16 15:34:59 -07:00
Lucien Greathouse
9a2893c6bc Remove warnings for upgrading from 0.4.x 2019-11-02 23:41:32 -07:00
Lucien Greathouse
ccf98d7283 Move and tidy up small place benchmark 2019-10-14 11:38:16 -07:00
Lucien Greathouse
dec9ec32df Add small place benchmark 2019-10-12 15:24:57 -07:00
Lucien Greathouse
b093626a21 User plugin foundations for 0.6.0 (#257)
Starts work on #55.

This is similar to the previous work in #125. It's gated behind a new Cargo
feature, `user-plugins`. This time, the config gate is much smaller. The
`plugins` member of projects is still accessible when plugins aren't enabled,
but is always empty. Additionally, user plugins are only enabled if there's a
Lua state present in the snapshot context when the `SnapshotUserPlugins`
snapshot middleware runs. This not ever the case currently.

This code has very little possibility of rotting while we focus on other work,
since it'll be guaranteed to still compile and can be tested in isolation
without the feature being turned on.
2019-10-11 15:45:02 -07:00
Lucien Greathouse
fea303ac8b Major Subsystem Rewrite (Reconciler Mk5) (#217) 2019-08-27 15:00:37 -07:00
Lucien Greathouse
ca61a3e83f Add test case for #201 2019-08-21 15:45:22 -07:00
Lucien Greathouse
36bcb611f1 Port CSV regression tests to insta 2019-08-14 15:50:28 -07:00
Lucien Greathouse
cbe4467a22 Upgrade dependencies and add SpawnLocation test case 2019-08-01 17:53:29 -07:00
Lucien Greathouse
d900887d97 Add a test for meta files attached to Lua scripts 2019-07-02 16:15:24 -07:00
Lucien Greathouse
2a0efe70a5 Add rough tests to ensure broken projects stay broken 2019-07-02 16:09:49 -07:00
Lucien Greathouse
ad5695210d More strict .meta.json files 2019-06-27 22:24:44 -07:00
Lucien Greathouse
125e8766c5 Fix failing snapshot test from previous change 2019-06-16 16:46:38 -07:00
boyned//Kampfkarren
a3dc4fa001 Support for .meta.json files other than init (#189)
* Support for .meta.json files other than init

* Localize .meta.json application
2019-06-12 18:22:47 -07:00
Lucien Greathouse
ff53113358 Add test project for recent project strictness change 2019-06-12 16:02:27 -07:00
Lucien Greathouse
94cbe15b54 Reserve names starting with a dollar sign, closes #191. 2019-06-12 15:54:28 -07:00
Lucien Greathouse
90516e035d Refactor project to start making a little more sense 2019-06-12 15:11:19 -07:00
Lucien Greathouse
68a34dc28b Add a test project with unions 2019-06-10 16:46:05 -07:00
Lucien Greathouse
2e7a8d50b0 Add a warning when trying to load 0.4.x projects 2019-06-07 18:45:30 -07:00
boyned//Kampfkarren
0ed6c57c7f init.meta.json support (#183)
* A minimum viable product for init.meta.json

* Properties support

* Add ignoreUnknownChildren support

* Apply requested changes

* Use reflection guiding

* Add a script to the test

* Change to ignoreUnknownInstances

* Apply requested changes
2019-06-06 16:58:58 -07:00
Lucien Greathouse
9b8a6b1168 Add terrain test project 2019-05-16 18:03:11 -07:00
Lucien Greathouse
f290e7b5b2 Support implicit values in JSON models (#154)
* Support implicit values in JSON models

* Update Changelog
2019-04-05 15:17:58 -07:00
Lucien Greathouse
5d681a72ac Rewrite CSV conversion to dodge Serde (#152)
* Rewrite CSV conversion to dodge Serde

* Update CHANGELOG
2019-04-04 18:21:55 -07:00
Lucien Greathouse
d725970e6e Fix handling of CSV files with empty columns and rows (#149)
* Fix #147

* Add localization test project, fix empty rows in general

* Fill out 'normal' CSV in localization test project

* Update Changelog
2019-04-04 13:16:10 -07:00
Lucien Greathouse
be094d5b7c Make snapshot application communicative (#135)
* Add children sorting to snapshot_reconciler

* Update snapshot tests to include stable children order

* Bump dependencies, which should make this PR work
2019-03-20 10:39:53 -07:00
Lucien Greathouse
ec0a1f1ce4 New snapshot tests (#134)
* Changes project-related structures to use `BTreeMap` instead of `HashMap` for children to aid determiniusm
* Changes imfs-related structures to have total ordering and use `BTreeSet` instead of `HashSet`
* Upgrades dependencies to `bx_dom_weak`1.2.0 and rbx_xml 0.5.0 to aid in more determinism stuff
* Re-exposes the `RbxSession`'s root project via `root_project()`
* Implements `Default` for a couple things
* Tweaks visualization code to support visualizing trees not attached to an `RbxSession`
* Adds an ID-invariant comparison method for `rbx_tree` relying on previous determinism changes
* Adds a (disabled) test to start finding issues in the reconciler with regards to communicativity of snapshot application
* Adds a snapshot testing system that operates on `RbxTree` and associated metadata, which are committed in this change
2019-03-14 14:20:03 -07:00
Lucien Greathouse
20be37dd8b Improve error messages from bad snapshots 2019-02-27 00:47:02 -08:00
Lucien Greathouse
93349ae2dc Use rbx_reflection to allow type inference on projects (#130)
* Start dependency on rbx_reflection

* Alive and working, all tests pass

* Update CHANGELOG
2019-02-26 22:51:21 -08:00
Lucien Greathouse
ecb9b5e28f Support nested partitions and partitions directly targeting services (#122)
* Do the nested partition thing

* Tidy up touched code

* Add nested partition test project, not fully functional

* Clean up variable names, move path_metadata mutation strictly into snapshot_reconciler

* Remove path_metadata, snapshotting is now pure

* Factor out snapshot metadata storage to fix a missing case

* Pull instance_name out of per_path_metadata, closer to what we need

* Refactor to make metadata make more sense, part one

* All appears to be well

* Cull 'metadata_per_path' in favor of 'instances_per_path'

* Remove SnapshotContext

* InstanceMetadata -> PublicInstanceMetadata in web module

* Build in snapshot testing system for testing... snapshots?

* Remove pretty_assertions to see if it fixes a snapshot comparison bug

* Reintroduce pretty assertions, it's not the cause of inequality

* Fix snapshot tests with custom relative path serializer
2019-02-07 14:55:01 -08:00
Lucien Greathouse
785bdb8ecb Implement new project file name, default.project.json (#120)
* Implement new project file name, default.project.json

* Rename all test projects to default.project.json

* Update CHANGELOG

* Fix warning message typo
2019-02-01 17:06:03 -08:00
Lucien Greathouse
8757834e07 Improve error reporting for IO issues 2019-01-29 17:29:47 -08:00
Lucien Greathouse
e5d3204b6c Implement .model.json files
Closes #97.
2019-01-28 14:37:35 -08:00
Lucien Greathouse
4767cbd12b Fix composing-models XML to only contain stuff implemented so far 2019-01-28 14:36:17 -08:00
Lucien Greathouse
0a2810a98b Scaffold out model file support, still needs working decoders 2019-01-10 17:48:19 -08:00
Lucien Greathouse
1e1b409f8b Add support for StringValue instances
Closes #93.
2019-01-10 16:56:43 -08:00
Lucien Greathouse
f2849357f8 Remove crusty example, add property to single-sync-point 2019-01-09 16:28:44 -08:00
Lucien Greathouse
49a2bc8ace Fix example test 2018-11-27 21:17:38 -08:00
Lucien Greathouse
f1c5268670 Support init.lua and client/server scripts 2018-11-27 17:44:17 -08:00
Lucien Greathouse
2340a07408 Use project name for root object name 2018-11-27 15:16:48 -08:00
Lucien Greathouse
5a9d3959e2 Rework RbxSession to drop top-level garbage node, upgrade test-model 2018-11-27 15:11:10 -08:00
Lucien Greathouse
1e0a7dea73 Add test model, shore up 'build' command more 2018-11-27 14:40:19 -08:00
Lucien Greathouse
16c3c1f498 Vfs -> Imfs, clean up and document a bit 2018-11-17 13:51:22 -08:00