Upgrade rbx_dom_weak, rbx_reflection, and rbx_xml

This commit is contained in:
Lucien Greathouse
2019-05-12 12:57:24 -07:00
parent 3ea432ef2d
commit 27e2612fc9
16 changed files with 52 additions and 48 deletions

View File

@@ -1,6 +1,17 @@
# Rojo Changelog # Rojo Changelog
## [Unreleased] ## [Unreleased]
* Upgraded significant dependencies:
* rbx_dom_weak 1.6.0
* `Content` properties can now be specified in projects and model files as strings
* Added support for `BrickColor`, but with no handy conversions yet
* rbx_reflection 3.0.384
* Updated reflection database to client release 384
* Adds support for new enum variants like `Lighting.Technology` as `"ShadowMap"`
* rbx_xml 0.7.0
* Performance improvements dealing with model/place files due to smaller error type
* Fixed serializing empty `Content` properties
* Improved content compatibility utilizing the reflection database
* Added support for implicit property values in JSON model files ([#154](https://github.com/LPGhatguy/rojo/pull/154)) * Added support for implicit property values in JSON model files ([#154](https://github.com/LPGhatguy/rojo/pull/154))
## [0.5.0 Alpha 9](https://github.com/LPGhatguy/rojo/releases/tag/v0.5.0-alpha.9) (April 4, 2019) ## [0.5.0 Alpha 9](https://github.com/LPGhatguy/rojo/releases/tag/v0.5.0-alpha.9) (April 4, 2019)

35
Cargo.lock generated
View File

@@ -1115,12 +1115,12 @@ dependencies = [
"byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"lz4 1.23.1 (registry+https://github.com/rust-lang/crates.io-index)", "lz4 1.23.1 (registry+https://github.com/rust-lang/crates.io-index)",
"rbx_dom_weak 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rbx_dom_weak 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "rbx_dom_weak" name = "rbx_dom_weak"
version = "1.4.0" version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1130,27 +1130,24 @@ dependencies = [
[[package]] [[package]]
name = "rbx_reflection" name = "rbx_reflection"
version = "2.0.377" version = "3.0.384"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rbx_dom_weak 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rbx_dom_weak 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "rbx_xml" name = "rbx_xml"
version = "0.6.0" version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "rbx_dom_weak 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"paste 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "rbx_reflection 3.0.384 (registry+https://github.com/rust-lang/crates.io-index)",
"rbx_dom_weak 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@@ -1285,15 +1282,14 @@ dependencies = [
"paste 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "paste 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"rbx_binary 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rbx_binary 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rbx_dom_weak 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rbx_dom_weak 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rbx_reflection 2.0.377 (registry+https://github.com/rust-lang/crates.io-index)", "rbx_reflection 3.0.384 (registry+https://github.com/rust-lang/crates.io-index)",
"rbx_xml 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "rbx_xml 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"reqwest 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)",
"ritz 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "ritz 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rlua 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)", "rlua 0.16.2 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
"tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1379,6 +1375,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
name = "serde" name = "serde"
version = "1.0.90" version = "1.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
@@ -1982,9 +1981,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
"checksum rbx_binary 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b147f236284747ac1b4643476265dd36b402877d97adb7cbd0fafc1d247de0a5" "checksum rbx_binary 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b147f236284747ac1b4643476265dd36b402877d97adb7cbd0fafc1d247de0a5"
"checksum rbx_dom_weak 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d581dcb6e5eb395a5923e1efe39883124115d725dacae07cdf084204345611e7" "checksum rbx_dom_weak 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9af92582e8ac283fce50fe223d741e8f7f865a13ec99fdecc38cfb431de3ccf"
"checksum rbx_reflection 2.0.377 (registry+https://github.com/rust-lang/crates.io-index)" = "21ba49260081530590ee48dd1ce6014ac5abc79f581ccb4be0626d436af59e92" "checksum rbx_reflection 3.0.384 (registry+https://github.com/rust-lang/crates.io-index)" = "8bf0e45a2f1abeddf8096591c1081151e9114f4426fed97cab1d123b3fe4010f"
"checksum rbx_xml 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "891a97bd72d0c6847fe624e724ff3080e3369de74e4ef3b3dab07c6d8ce2bc23" "checksum rbx_xml 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1142b88066f633c05a6589b8c19b69f04e9474dc9d1b659df6fc523ca8712ead"
"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
"checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252" "checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252"
"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"

View File

@@ -1,4 +1,7 @@
[workspace] [workspace]
members = [ members = [
"server", "server",
] ]
[profile.dev]
opt-level = 1

View File

@@ -30,15 +30,14 @@ log = "0.4"
maplit = "1.0.1" maplit = "1.0.1"
notify = "4.0" notify = "4.0"
rbx_binary = "0.4.0" rbx_binary = "0.4.0"
rbx_dom_weak = "1.3.0" rbx_dom_weak = "1.6.0"
rbx_xml = "0.6.0" rbx_xml = "0.7.0"
rbx_reflection = "2.0.374" rbx_reflection = "3.0.384"
regex = "1.0" regex = "1.0"
reqwest = "0.9.5" reqwest = "0.9.5"
rlua = "0.16" rlua = "0.16"
ritz = "0.1.0" ritz = "0.1.0"
serde = "1.0" serde = { version = "1.0", features = ["derive"] }
serde_derive = "1.0"
serde_json = "1.0" serde_json = "1.0"
uuid = { version = "0.7", features = ["v4", "serde"] } uuid = { version = "0.7", features = ["v4", "serde"] }

View File

@@ -100,7 +100,7 @@ pub fn build(options: &BuildOptions) -> Result<(), BuildError> {
// descendants. // descendants.
let root_id = tree.get_root_id(); let root_id = tree.get_root_id();
rbx_xml::encode(&tree, &[root_id], &mut file)?; rbx_xml::to_writer_default(&mut file, &tree, &[root_id])?;
}, },
OutputKind::Rbxlx => { OutputKind::Rbxlx => {
// Place files don't contain an entry for the DataModel, but our // Place files don't contain an entry for the DataModel, but our
@@ -108,7 +108,7 @@ pub fn build(options: &BuildOptions) -> Result<(), BuildError> {
let root_id = tree.get_root_id(); let root_id = tree.get_root_id();
let top_level_ids = tree.get_instance(root_id).unwrap().get_children_ids(); let top_level_ids = tree.get_instance(root_id).unwrap().get_children_ids();
rbx_xml::encode(&tree, top_level_ids, &mut file)?; rbx_xml::to_writer_default(&mut file, &tree, top_level_ids)?;
}, },
OutputKind::Rbxm => { OutputKind::Rbxm => {
let root_id = tree.get_root_id(); let root_id = tree.get_root_id();

View File

@@ -80,10 +80,10 @@ pub fn upload(options: &UploadOptions) -> Result<(), UploadError> {
match options.kind { match options.kind {
Some("place") | None => { Some("place") | None => {
let top_level_ids = tree.get_instance(root_id).unwrap().get_children_ids(); let top_level_ids = tree.get_instance(root_id).unwrap().get_children_ids();
rbx_xml::encode(&tree, top_level_ids, &mut contents)?; rbx_xml::to_writer_default(&mut contents, &tree, top_level_ids)?;
}, },
Some("model") => { Some("model") => {
rbx_xml::encode(&tree, &[root_id], &mut contents)?; rbx_xml::to_writer_default(&mut contents, &tree, &[root_id])?;
}, },
Some(invalid) => return Err(UploadError::InvalidKind(invalid.to_owned())), Some(invalid) => return Err(UploadError::InvalidKind(invalid.to_owned())),
} }

View File

@@ -8,7 +8,7 @@ use std::{
}; };
use failure::Fail; use failure::Fail;
use serde_derive::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use crate::project::{Project, ProjectNode}; use crate::project::{Project, ProjectNode};

View File

@@ -3,7 +3,7 @@ use std::{
collections::{HashMap, HashSet}, collections::{HashMap, HashSet},
}; };
use serde_derive::Serialize; use serde::Serialize;
use log::warn; use log::warn;
#[derive(Debug, Serialize)] #[derive(Debug, Serialize)]

View File

@@ -10,7 +10,7 @@
//! //!
//! ``` //! ```
//! # use std::path::PathBuf; //! # use std::path::PathBuf;
//! # use serde_derive::{Serialize, Deserialize}; //! # use serde::{Serialize, Deserialize};
//! //!
//! #[derive(Serialize, Deserialize)] //! #[derive(Serialize, Deserialize)]
//! struct Mine { //! struct Mine {

View File

@@ -9,8 +9,7 @@ use std::{
use log::warn; use log::warn;
use failure::Fail; use failure::Fail;
use rbx_dom_weak::{UnresolvedRbxValue, RbxValue}; use rbx_dom_weak::{UnresolvedRbxValue, RbxValue};
use serde_derive::{Serialize, Deserialize}; use serde::{Serialize, Serializer, Deserialize};
use serde::{Serialize, Serializer};
static DEFAULT_PLACE: &'static str = include_str!("../assets/place.project.json"); static DEFAULT_PLACE: &'static str = include_str!("../assets/place.project.json");

View File

@@ -7,7 +7,7 @@ use std::{
}; };
use rlua::Lua; use rlua::Lua;
use serde_derive::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use log::{info, trace, error}; use log::{info, trace, error};
use rbx_dom_weak::{RbxTree, RbxId}; use rbx_dom_weak::{RbxTree, RbxId};

View File

@@ -14,7 +14,7 @@ use failure::Fail;
use log::info; use log::info;
use maplit::hashmap; use maplit::hashmap;
use rbx_dom_weak::{RbxTree, RbxValue, RbxInstanceProperties, UnresolvedRbxValue}; use rbx_dom_weak::{RbxTree, RbxValue, RbxInstanceProperties, UnresolvedRbxValue};
use serde_derive::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use rbx_reflection::{try_resolve_value, ValueResolveError}; use rbx_reflection::{try_resolve_value, ValueResolveError};
use crate::{ use crate::{
@@ -653,20 +653,13 @@ fn snapshot_xml_model_file<'source>(
.file_stem().expect("Could not extract file stem") .file_stem().expect("Could not extract file stem")
.to_str().expect("Could not convert path to UTF-8"); .to_str().expect("Could not convert path to UTF-8");
let mut temp_tree = RbxTree::new(RbxInstanceProperties { let temp_tree = rbx_xml::from_reader_default(file.contents.as_slice())
name: "Temp".to_owned(),
class_name: "Folder".to_owned(),
properties: HashMap::new(),
});
let root_id = temp_tree.get_root_id();
rbx_xml::decode(&mut temp_tree, root_id, file.contents.as_slice())
.map_err(|inner| SnapshotError::XmlModelDecodeError { .map_err(|inner| SnapshotError::XmlModelDecodeError {
inner, inner,
path: file.path.clone(), path: file.path.clone(),
})?; })?;
let root_instance = temp_tree.get_instance(root_id).unwrap(); let root_instance = temp_tree.get_instance(temp_tree.get_root_id()).unwrap();
let children = root_instance.get_children_ids(); let children = root_instance.get_children_ids();
match children.len() { match children.len() {

View File

@@ -1,4 +1,4 @@
use serde_derive::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use uuid::Uuid; use uuid::Uuid;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]

View File

@@ -11,7 +11,7 @@ use std::{
}; };
use rbx_dom_weak::{RbxTree, RbxId, RbxInstanceProperties, RbxValue}; use rbx_dom_weak::{RbxTree, RbxId, RbxInstanceProperties, RbxValue};
use serde_derive::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use crate::{ use crate::{
path_map::PathMap, path_map::PathMap,

View File

@@ -21,7 +21,7 @@ use hyper::{
Request, Request,
Response, Response,
}; };
use serde_derive::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use rbx_dom_weak::{RbxId, RbxInstance}; use rbx_dom_weak::{RbxId, RbxInstance};
use crate::{ use crate::{

View File

@@ -20,7 +20,7 @@ use std::{
}; };
use log::error; use log::error;
use serde_derive::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use rbx_dom_weak::{RbxId, RbxTree}; use rbx_dom_weak::{RbxId, RbxTree};
use librojo::{ use librojo::{