mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-20 17:41:37 +00:00
Merge remote-tracking branch 'origin/master' into rojo-open
This commit is contained in:
commit
63a370e624
10 changed files with 4431 additions and 1691 deletions
|
|
@ -32,14 +32,19 @@ Making a new release? Simply add the new header with the version and date undern
|
|||
## Unreleased
|
||||
|
||||
* Added the `rojo open` command, which serves a project and opens a place in Roblox Studio that automatically connects to it. The place can be an existing place file (`--place`), a fresh build of the project (`--output`), or a published place (`--place-id` and `--universe-id`). ([#1326])
|
||||
|
||||
[#1326]: https://github.com/rojo-rbx/rojo/pull/1326
|
||||
|
||||
## [7.7.1] (October 1st, 2026)
|
||||
|
||||
* Fixed `$path` values that point outside the project folder failing to match `syncRule`s on Windows, which broke `rojo sourcemap` with a "could not be turned into a Roblox Instance" error. ([#1290])
|
||||
* Fixed `rojo serve` silently stopping syncing file changes on Windows when the served project path was a verbatim (`\\?\`) path, because tree paths and file-watcher event paths were canonicalized to different forms. ([#1290])
|
||||
* Fixed `rojo sourcemap --absolute` emitting verbatim (`\\?\`) paths on Windows, which broke require types in luau-lsp. ([#1290])
|
||||
* The plugin now disables the `Check for Updates` setting if you block access to `api.github.com`. ([#1297])
|
||||
|
||||
[7.7.1]: https://github.com/rojo-rbx/rojo/releases/tag/v7.7.1
|
||||
[#1290]: https://github.com/rojo-rbx/rojo/pull/1290
|
||||
[#1297]: https://github.com/rojo-rbx/rojo/pull/1297
|
||||
[#1326]: https://github.com/rojo-rbx/rojo/pull/1326
|
||||
|
||||
## [7.7.0] (July 1st, 2026)
|
||||
|
||||
|
|
@ -60,6 +65,7 @@ Making a new release? Simply add the new header with the version and date undern
|
|||
* `rojo serve` now validates the `Host`/`Origin` headers to protect the local/private server against DNS rebinding, gates `/api/open` to local clients, and warns when bound to a network-reachable address. The accepted hosts can be extended with the `--allowed-hosts` option or a project's `serveAllowedHosts` field, for example to reach a network-exposed server by hostname. ([#1270])
|
||||
* Fixed syncback not removing stale `$properties` entries when Studio resets a property to its engine default. ([#1244])
|
||||
|
||||
[7.7.0]: https://github.com/rojo-rbx/rojo/releases/tag/v7.7.0
|
||||
[#1176]: https://github.com/rojo-rbx/rojo/pull/1176
|
||||
[#1179]: https://github.com/rojo-rbx/rojo/pull/1179
|
||||
[#1192]: https://github.com/rojo-rbx/rojo/pull/1192
|
||||
|
|
|
|||
14
Cargo.lock
generated
14
Cargo.lock
generated
|
|
@ -1806,9 +1806,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "rbx_binary"
|
||||
version = "3.0.0"
|
||||
version = "3.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d0a6f15a595fab79d15d50799335543ac5b97618c31ad3d0c93e2713a8bf8d34"
|
||||
checksum = "4f57d390e10fc236919088e9d973774bf006dcab137b443d1341a39317ebee4a"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"log",
|
||||
|
|
@ -1847,9 +1847,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "rbx_reflection_database"
|
||||
version = "3.0.0+roblox-728"
|
||||
version = "3.0.1+roblox-741"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3f5dd357c4c95d43e12283b9065b8b7b41788219db7a0f3a77a6e111f51522e6"
|
||||
checksum = "74d54d92786425d3fd3e4ba8f006b17d83f5e93dad6eb4fccf6f1d9d86222a7b"
|
||||
dependencies = [
|
||||
"dirs 6.0.0",
|
||||
"log",
|
||||
|
|
@ -1875,9 +1875,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "rbx_xml"
|
||||
version = "3.0.0"
|
||||
version = "3.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f2e38c283450c4874262c61e68f70f037c9394a08b36fd59468657a4d8761e5e"
|
||||
checksum = "df4dba3154bef50fe1ba41cf06a066b9cd33bcfbf1c103e8db0818d8b4528b31"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"base64 0.13.1",
|
||||
|
|
@ -2062,7 +2062,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "rojo"
|
||||
version = "7.7.0"
|
||||
version = "7.7.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"backtrace",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "rojo"
|
||||
version = "7.7.0"
|
||||
version = "7.7.1"
|
||||
rust-version = "1.88"
|
||||
authors = [
|
||||
"Lucien Greathouse <me@lpghatguy.com>",
|
||||
|
|
@ -57,11 +57,11 @@ memofs = { version = "0.4.0", path = "crates/memofs" }
|
|||
# rbx_reflection_database = { path = "../rbx-dom/rbx_reflection_database" }
|
||||
# rbx_xml = { path = "../rbx-dom/rbx_xml" }
|
||||
|
||||
rbx_binary = { version = "3.0.0", features = ["unstable_text_format"] }
|
||||
rbx_binary = { version = "3.0.1", features = ["unstable_text_format"] }
|
||||
rbx_dom_weak = "4.2.0"
|
||||
rbx_reflection = "7.0.0"
|
||||
rbx_reflection_database = "3.0.0"
|
||||
rbx_xml = "3.0.0"
|
||||
rbx_reflection_database = "3.0.1"
|
||||
rbx_xml = "3.0.1"
|
||||
|
||||
anyhow = "1.0.80"
|
||||
backtrace = "0.3.69"
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
7.7.0
|
||||
7.7.1
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -304,7 +304,7 @@ fn find_descriptor(
|
|||
return Some(descriptor);
|
||||
}
|
||||
|
||||
current_class_name = class.superclass.as_deref()?;
|
||||
current_class_name = class.superclass?;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -481,7 +481,7 @@ fn get_property_filter(project: &Project, new_inst: &Instance) -> Option<UstrSet
|
|||
}
|
||||
|
||||
let class = database.classes.get(current_class_name)?;
|
||||
if let Some(super_class) = class.superclass.as_ref() {
|
||||
if let Some(super_class) = class.superclass {
|
||||
current_class_name = super_class;
|
||||
} else {
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ fn should_property_serialize(class_name: &str, prop_name: &str) -> bool {
|
|||
}
|
||||
kind => unimplemented!("unknown property kind {kind:?}"),
|
||||
};
|
||||
} else if let Some(super_class) = class_data.superclass.as_ref() {
|
||||
} else if let Some(super_class) = class_data.superclass {
|
||||
current_class_name = super_class;
|
||||
} else {
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -8,10 +8,8 @@ use rbx_dom_weak::{
|
|||
ustr, Instance, Ustr, WeakDom,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
multimap::MultiMap, syncback::snapshot::inst_path, REF_ID_ATTRIBUTE_NAME,
|
||||
REF_POINTER_ATTRIBUTE_PREFIX,
|
||||
};
|
||||
use crate::syncback::snapshot::inst_path;
|
||||
use crate::{multimap::MultiMap, REF_ID_ATTRIBUTE_NAME, REF_POINTER_ATTRIBUTE_PREFIX};
|
||||
|
||||
pub struct RefLinks {
|
||||
/// A map of referents to each of their Ref properties.
|
||||
|
|
|
|||
|
|
@ -222,19 +222,7 @@ pub fn filter_out_property(inst: &Instance, prop_name: &str) -> bool {
|
|||
}
|
||||
|
||||
pub fn inst_path(dom: &WeakDom, referent: Ref) -> String {
|
||||
let mut path = Vec::new();
|
||||
|
||||
let mut inst = dom.get_by_ref(referent);
|
||||
while let Some(instance) = inst {
|
||||
path.push(instance.name.as_str());
|
||||
inst = dom.get_by_ref(instance.parent());
|
||||
}
|
||||
// This is to avoid the root's name from appearing in the path. Not
|
||||
// optimal, but should be fine.
|
||||
path.pop();
|
||||
|
||||
path.reverse();
|
||||
path.join("/")
|
||||
dom.full_path_of(referent, "/")
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue