forked from rojo-rbx/rojo
Compare commits
10 Commits
fix/git-si
...
v0.5.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7b4455ed51 | ||
|
|
5b57025b0b | ||
|
|
ece454e6dd | ||
|
|
afa480b07d | ||
|
|
c9b695d533 | ||
|
|
71c77a09a6 | ||
|
|
d309a1359c | ||
|
|
b0bb486d9a | ||
|
|
2c7c3348cf | ||
|
|
4caac5e6cb |
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
## Unreleased Changes
|
## Unreleased Changes
|
||||||
|
|
||||||
|
## [0.5.1](https://github.com/rojo-rbx/rojo/releases/tag/v0.5.1) (October 4, 2019)
|
||||||
|
* Fixed an issue where Rojo would drop changes if they happened too quickly ([#252](https://github.com/rojo-rbx/rojo/issues/252))
|
||||||
|
* Improved diagnostics for when the Rojo plugin cannot create an instance.
|
||||||
|
* Updated dependencies
|
||||||
|
* This brings Rojo's reflection database from client release 395 to client release 404.
|
||||||
|
|
||||||
## [0.5.0](https://github.com/rojo-rbx/rojo/releases/tag/v0.5.0) (August 27, 2019)
|
## [0.5.0](https://github.com/rojo-rbx/rojo/releases/tag/v0.5.0) (August 27, 2019)
|
||||||
* Changed `.model.json` naming, which may require projects to migrate ambiguous cases:
|
* Changed `.model.json` naming, which may require projects to migrate ambiguous cases:
|
||||||
* The file name now takes precedence over the `Name` field in the model, like Rojo 0.4.x.
|
* The file name now takes precedence over the `Name` field in the model, like Rojo 0.4.x.
|
||||||
|
|||||||
871
Cargo.lock
generated
871
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -26,12 +26,14 @@ The Rojo CLI must be run from the command line, like Terminal.app on MacOS or `c
|
|||||||
### Installing from Cargo
|
### Installing from Cargo
|
||||||
If you have Rust installed, the easiest way to get Rojo is with Cargo!
|
If you have Rust installed, the easiest way to get Rojo is with Cargo!
|
||||||
|
|
||||||
To install the latest 0.5.0 alpha, use:
|
To install the latest 0.5.x release, use:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cargo install rojo --version 0.5.0-alpha.13
|
cargo install rojo
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you're upgrading from a previous version of Rojo, you may need to pass `--force` to tell Cargo to overwrite your existing version.
|
||||||
|
|
||||||
## Installing the Plugin
|
## Installing the Plugin
|
||||||
|
|
||||||
### Installing from GitHub
|
### Installing from GitHub
|
||||||
@@ -43,4 +45,4 @@ Download the attached `rbxm` file and put it into your Roblox Studio plugins fol
|
|||||||
{: align="center" }
|
{: align="center" }
|
||||||
|
|
||||||
### Installing from Roblox.com
|
### Installing from Roblox.com
|
||||||
Visit [Rojo's Roblox.com Plugin page](https://www.roblox.com/library/1997686364/Rojo-0-5-0-alpha-3) in Roblox Studio and press **Install**.
|
Visit [Rojo's Roblox.com Plugin page](https://www.roblox.com/library/1997686364) in Roblox Studio and press **Install**.
|
||||||
@@ -60,4 +60,4 @@ Unknown files are now ignored in Rojo instead of being converted to `StringValue
|
|||||||
## Migrating `init.model.json` files
|
## Migrating `init.model.json` files
|
||||||
In Rojo 0.4.x, it's possible to create a file named `init.model.json` that lets you describe a model that becomes the container for all of the other files in the folder, just like `init.lua`.
|
In Rojo 0.4.x, it's possible to create a file named `init.model.json` that lets you describe a model that becomes the container for all of the other files in the folder, just like `init.lua`.
|
||||||
|
|
||||||
In Rojo 0.5.x, this feature has been replaced with `init.meta.json` files. See [Sync Details](../reference/sync-details) for more information about these new files.
|
In Rojo 0.5.x, this feature has been replaced with `init.meta.json` files. See [Sync Details](../../reference/sync-details) for more information about these new files.
|
||||||
|
|||||||
7
docs/help.md
Normal file
7
docs/help.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Rojo is a fairly complex tool to adopt, but there's a community willing to help!
|
||||||
|
|
||||||
|
The [Roblox Open Source Community Discord](https://discord.gg/wH5ncNS) currently hosts a Rojo support channel, **#rojo**, that is a great place to get help as problems come up.
|
||||||
|
|
||||||
|
If you find anything that looks like a bug or have ideas for how to improve Rojo, feel free to file an issue on [Rojo's GitHub issue tracker](https://github.com/rojo-rbx/rojo/issues).
|
||||||
|
|
||||||
|
Rojo's primary maintainer is also available on Twitter, [@LPGhatguy](https://twitter.com/LPGhatguy).
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
This is the documentation home for Rojo 0.5.x.
|
This is the documentation home for **Rojo 0.5.x**.
|
||||||
|
|
||||||
Available versions of these docs:
|
Available versions of these docs:
|
||||||
|
|
||||||
* [Latest version (currently 0.5.x)](https://rojo.space/docs/latest)
|
* [Latest version from `master` branch](https://rojo.space/docs/latest)
|
||||||
* [0.5.x](https://rojo.space/docs/0.5.x)
|
* [0.5.x](https://rojo.space/docs/0.5.x)
|
||||||
* [0.4.x](https://rojo.space/docs/0.4.x)
|
* [0.4.x](https://rojo.space/docs/0.4.x)
|
||||||
|
|
||||||
**Rojo** is a flexible multi-tool designed for creating robust Roblox projects.
|
**Rojo** is a tool designed to enable Roblox developers to use professional-grade software engineering tools.
|
||||||
|
|
||||||
This documentation is a continual work in progress. If you find any issues, please file an issue on [Rojo's issue tracker](https://github.com/rojo-rbx/rojo/issues)!
|
This documentation is a continual work in progress. If you find any issues, please file an issue on [Rojo's issue tracker](https://github.com/rojo-rbx/rojo/issues)!
|
||||||
@@ -11,6 +11,7 @@ theme:
|
|||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
- Home: index.md
|
||||||
- Why Rojo?: why-rojo.md
|
- Why Rojo?: why-rojo.md
|
||||||
|
- Get Help with Rojo: help.md
|
||||||
- Guide:
|
- Guide:
|
||||||
- Installation: guide/installation.md
|
- Installation: guide/installation.md
|
||||||
- Creating a Game with Rojo: guide/new-game.md
|
- Creating a Game with Rojo: guide/new-game.md
|
||||||
|
|||||||
@@ -131,13 +131,15 @@ function ApiContext:read(ids)
|
|||||||
return Promise.reject("Server changed ID")
|
return Promise.reject("Server changed ID")
|
||||||
end
|
end
|
||||||
|
|
||||||
self.messageCursor = body.messageCursor
|
|
||||||
|
|
||||||
return body
|
return body
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
function ApiContext:retrieveMessages()
|
function ApiContext:retrieveMessages(initialCursor)
|
||||||
|
if initialCursor ~= nil then
|
||||||
|
self.messageCursor = initialCursor
|
||||||
|
end
|
||||||
|
|
||||||
local url = ("%s/api/subscribe/%s"):format(self.baseUrl, self.messageCursor)
|
local url = ("%s/api/subscribe/%s"):format(self.baseUrl, self.messageCursor)
|
||||||
|
|
||||||
local function sendRequest()
|
local function sendRequest()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
return {
|
return {
|
||||||
codename = "Epiphany",
|
codename = "Epiphany",
|
||||||
version = {0, 5, 0},
|
version = {0, 5, 1},
|
||||||
expectedServerVersionString = "0.5.0 or newer",
|
expectedServerVersionString = "0.5.0 or newer",
|
||||||
protocolVersion = 2,
|
protocolVersion = 2,
|
||||||
defaultHost = "localhost",
|
defaultHost = "localhost",
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ function Reconciler:reconcile(virtualInstancesById, id, instance)
|
|||||||
-- If an instance changes ClassName, we assume it's very different. That's
|
-- If an instance changes ClassName, we assume it's very different. That's
|
||||||
-- not always the case!
|
-- not always the case!
|
||||||
if virtualInstance.ClassName ~= instance.ClassName then
|
if virtualInstance.ClassName ~= instance.ClassName then
|
||||||
|
Logging.trace("Switching to reify for %s because ClassName is different", instance:GetFullName())
|
||||||
|
|
||||||
-- TODO: Preserve existing children instead?
|
-- TODO: Preserve existing children instead?
|
||||||
local parent = instance.Parent
|
local parent = instance.Parent
|
||||||
self.instanceMap:destroyId(id)
|
self.instanceMap:destroyId(id)
|
||||||
@@ -93,6 +95,12 @@ function Reconciler:reconcile(virtualInstancesById, id, instance)
|
|||||||
unvisitedExistingChildren[existingChildInstance] = nil
|
unvisitedExistingChildren[existingChildInstance] = nil
|
||||||
self:reconcile(virtualInstancesById, childId, existingChildInstance)
|
self:reconcile(virtualInstancesById, childId, existingChildInstance)
|
||||||
else
|
else
|
||||||
|
Logging.trace(
|
||||||
|
"Switching to reify for %s.%s because it does not exist",
|
||||||
|
instance:GetFullName(),
|
||||||
|
virtualInstancesById[childId].Name
|
||||||
|
)
|
||||||
|
|
||||||
self:__reify(virtualInstancesById, childId, instance)
|
self:__reify(virtualInstancesById, childId, instance)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -148,7 +156,13 @@ function Reconciler:__reify(virtualInstancesById, id, parent)
|
|||||||
|
|
||||||
local virtualInstance = virtualInstancesById[id]
|
local virtualInstance = virtualInstancesById[id]
|
||||||
|
|
||||||
local instance = Instance.new(virtualInstance.ClassName)
|
local ok, instance = pcall(function()
|
||||||
|
return Instance.new(virtualInstance.ClassName)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if not ok then
|
||||||
|
error(("Couldn't create an Instance of type %q, a child of %s"):format(virtualInstance.ClassName, parent:GetFullName()))
|
||||||
|
end
|
||||||
|
|
||||||
for key, value in pairs(virtualInstance.Properties) do
|
for key, value in pairs(virtualInstance.Properties) do
|
||||||
setCanonicalProperty(instance, key, rojoValueToRobloxValue(value))
|
setCanonicalProperty(instance, key, rojoValueToRobloxValue(value))
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ function Session.new(config)
|
|||||||
end
|
end
|
||||||
|
|
||||||
self.reconciler:reconcile(response.instances, api.rootInstanceId, game)
|
self.reconciler:reconcile(response.instances, api.rootInstanceId, game)
|
||||||
return self:__processMessages()
|
return self:__processMessages(response.messageCursor)
|
||||||
end)
|
end)
|
||||||
:catch(function(message)
|
:catch(function(message)
|
||||||
self.disconnected = true
|
self.disconnected = true
|
||||||
@@ -43,12 +43,12 @@ function Session.new(config)
|
|||||||
return not self.disconnected, setmetatable(self, Session)
|
return not self.disconnected, setmetatable(self, Session)
|
||||||
end
|
end
|
||||||
|
|
||||||
function Session:__processMessages()
|
function Session:__processMessages(initialCursor)
|
||||||
if self.disconnected then
|
if self.disconnected then
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
end
|
end
|
||||||
|
|
||||||
return self.api:retrieveMessages()
|
return self.api:retrieveMessages(initialCursor)
|
||||||
:andThen(function(messages)
|
:andThen(function(messages)
|
||||||
local promise = Promise.resolve(nil)
|
local promise = Promise.resolve(nil)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rojo"
|
name = "rojo"
|
||||||
version = "0.5.0"
|
version = "0.5.1"
|
||||||
authors = ["Lucien Greathouse <me@lpghatguy.com>"]
|
authors = ["Lucien Greathouse <me@lpghatguy.com>"]
|
||||||
description = "Enables professional-grade development tools for Roblox developers"
|
description = "Enables professional-grade development tools for Roblox developers"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ impl InterfaceService {
|
|||||||
<h2 class="subtitle">
|
<h2 class="subtitle">
|
||||||
"Version " { self.server_version }
|
"Version " { self.server_version }
|
||||||
</h2>
|
</h2>
|
||||||
<a class="docs" href="https://lpghatguy.github.io/rojo">
|
<a class="docs" href="https://rojo.space/docs">
|
||||||
"Rojo Documentation"
|
"Rojo Documentation"
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user