Releases: rojo-rbx/rojo
6.0.0 Release Candidate 2
This is the second release candidate for Rojo 6!
We've decided that it's time for Rojo to come out of being a 0.x version project, as it is already used in production on many large-scale projects. We also chose to skip over 1.0, like many projects, to avoid needing to call a version of Rojo "1.0".
This release contains bugfixes, an updated reflection database and a few small tweaks.
Major Changes
Glob Ignores
Ever wanted to make Rojo ignore some of the files in your project? The previously-unstable glob ignores feature is now live! One good use case is to create a version of your project that excludes all of your TestEZ test files:
{
"name": "ignore_glob_spec",
"tree": {
"$path": "src"
},
"globIgnorePaths": [
"**/*.spec.lua"
]
}
Rojo uses the globset crate for its glob implementation. Check out its documentation for details on what patterns are valid.
More Robust Plugin
As part of this release, Rojo's Studio plugin received a major refactor to make it more robust against failures. When encountering errors, Rojo will no longer disconnect your session, and will instead tell you all the things it failed to do.
This opens the door for us to start using other techniques to sync the fiddly instances that Rojo cannot sync today. This will likely happen after the first stable release of Rojo 6.0, so stay tuned!
Trying the Release Candidate
To install the Roblox Studio plugin, there are a few options now:
- Run
rojo plugin install
from the Rojo 6 CLI - Download the attached
Rojo.rbxm
and install it manually - Install from the Roblox plugin page
There are now a few ways to download the Rojo CLI.
With Foreman
Add a line to the [tools]
section in foreman.toml
:
rojo = { source = "rojo-rbx/rojo", version = "6.0.0-rc.2" }
From GitHub Release
Download one of the attached binaries on this release page!
From the VS Code Extension
Change your release channel in the extension's setting page to 6.x
:
From Crates.io
You can use Cargo (1.43.1+) to build the release yourself from crates.io:
cargo install rojo --version 6.0.0-rc.2
All Changes Since 6.0.0-rc.1
- Fixed crash when malformed CSV files are put into a project. (#310)
- Fixed incorrect string escaping when producing Lua code from JSON files. (#314)
- Fixed performance issues introduced in Rojo 6.0.0-rc.1. (#317)
- Fixed
rojo plugin install
subcommand failing for everyone except Rojo developers. (#320) - Updated default place template to take advantage of #210.
- Enabled glob ignore patterns by default and removed the
unstable_glob_ignore
feature.globIgnorePaths
can be set on a project to a list of globs to ignore.
- The Rojo plugin now completes as much as it can from a patch without disconnecting. Warnings are shown in the console.
- Fixed 6.0.0-rc.1 regression causing instances that changed ClassName to instead... not change ClassName.
Rojo 6.0.0 Release Candidate 1
This is the first release candidate for Rojo 6!
We've decided that it's time for Rojo to come out of being a 0.x version project, as it is already used in production on many large-scale projects. We also chose to skip over 1.0, like many projects, to avoid needing to call a version of Rojo "1.0".
This release contains the last new features before Rojo 6.0 will be released. If all goes well, we should have one or two more release candidates with bug fixes before that happens.
Major Changes
.json
files now turn into ModuleScript
instances
Ever need to get some data into Roblox? Now, you can use Rojo to transform any JSON file into a Lua ModuleScript
that's ready to be loaded!
$className
now optional for services
Tired of writing "ReplicatedStorage": { "$className": "ReplicatedStorage" }
? Now, Rojo is smart enough to no longer need these hints for services.
This change also works for the children of StarterPlayer
: StarterPlayerScripts
and StarterCharacterScripts
!
{
"name": "Hello, Rojo 6!",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"$path": "src/ReplicatedStorage"
},
"StarterPlayer": {
"StarterPlayerScripts": {},
"StarterCharacterScripts": {}
}
}
}
rojo plugin install
The Rojo CLI is now able to install its plugin for you with a single command. This can help make sure that the plugin you're using is the correct version.
Two-Way Sync Option
This option is very very unstable, but it's now possible to toggle two-way sync in the Rojo plugin:
This feature is likely to blow up in all sorts of exciting ways and is known to cause several problems right now.
Open Scripts Externally
Another option has appeared next to two-way sync: the ability to open scripts in your external editor instead of the built-in Studio editor.
Turning this on will make the Rojo plugin intercept any attempt to open a script and open the corresponding .lua
file in your default program.
Trying the Release Candidate
To install the Roblox Studio plugin, there are a few options now:
- Run
rojo plugin install
from the Rojo 6 CLI - Download the attached
Rojo.rbxm
and install it manually - Install from the Roblox plugin page
There are now a few ways to download the Rojo CLI.
With Foreman
Add a line to the [tools]
section in foreman.toml
:
rojo = { source = "rojo-rbx/rojo", version = "6.0.0-rc.1" }
From GitHub Release
Download one of the attached binaries on this release page!
From the VS Code Extension
Change your release channel in the extension's setting page to 6.x
:
From Crates.io
You can use Cargo (1.40.0+) to build the release yourself from crates.io:
cargo install rojo --version 6.0.0-rc.1
All Changes Since 0.6.0-alpha.3
- Added basic settings panel to plugin, with two settings:
- "Open Scripts Externally": When enabled, opening a script in Studio will instead open it in your default text editor.
- "Two-Way Sync": When enabled, Rojo will attempt to save changes to your place back to the filesystem. Very early feature, very broken, beware!
- Added
--color
option to force-enable or force-disable color in Rojo's output. - Added support for turning
.json
files intoModuleScript
instances (#308) - Added
rojo plugin install
androjo plugin uninstall
to allow Rojo to manage its Roblox Studio plugin. (#304) - Class names no longer need to be specified for Roblox services in Rojo projects. (#210)
- The server half of experimental two-way sync is now enabled by default.
- Increased default logging verbosity in commands like
rojo build
. - Rojo now requires a project file again, just like 0.5.4.
v0.6.0 Alpha 3
Welcome to the third alpha for Rojo 0.6.0. This release includes some important structural simplifications in the core of Rojo, lots of bugfixes, and some new quality of life features.
Everything in this alpha release is considered experimental and may eat your lunch and steal your dog.
Plugin Dark Theme
You've probably been waiting for this for awhile. 😅
rojo build --watch
Do you use Rojo for working on plugins? You can now use Rojo to automatically rebuild your plugin rbxm
or rbxmx
files on each file change!
rojo build --watch --output MyPlugin.rbxmx
rojo init
2.0
rojo init
is now implemented for the 0.6.x release series. Moreover, it has some new powers.
In addition to creating a default.project.json
file, rojo init
will now create a src
folder with some common patterns for places and models, a README, a .gitignore
file, and initialize a Git repo if you don't already have one!
rojo doc
Do you find yourself opening the Rojo docs often? Now there's a command to open your browser to the docs automatically!
rojo doc
Trying the Alpha
To install the Roblox Studio plugin, either copy the attached Rojo.rbxm
into your Studio plugins folder, or install it here, from the Roblox website. The Rojo 0.5.x plugin will not work with the Rojo 0.6.x server!
There are now a few ways to download the Rojo CLI.
With Foreman
Add a line to the [tools]
section in foreman.toml
:
rojo = { source = "rojo-rbx/rojo", version = "0.6.0-alpha.3" }
From GitHub Release
Download one of the attached binaries on this release page!
From the VS Code Extension
Switch your release channel to 0.6.x
to try out the latest alpha. You can switch back to 0.5.x
to revert to the current stable channel.
From Crates.io
You can use Cargo (1.40.0+) to build the release yourself from crates.io:
cargo install rojo --version 0.6.0-alpha.3
Changes since 0.6.0-alpha.2
- Added
--watch
argument torojo build
. (#284) - Added dark theme support to plugin. (#241)
- Added a revamped
rojo init
command, which will now create more complete projects. - Added the
rojo doc
command, which opens Rojo's documentation in your browser. - Fixed many crashes from malformed projects and filesystem edge cases in
rojo serve
. - Simplified filesystem access code dramatically.
- Improved error reporting and logging across the board.
- Log messages have a less noisy prefix.
- Any thread panicking now causes Rojo to abort instead of existing as a zombie.
- Errors now have a list of causes, helping make many errors more clear.
v0.6.0 Alpha 2
Welcome to the second 0.6.0 alpha! This release fixes a regression with the rojo upload
command and improves its functionality.
Everything in this alpha release is considered experimental and may blow up without warning.
Trying the Alpha
To install the Roblox Studio plugin, either copy the attached Rojo.rbxm
into your Studio plugins folder, or install it here, from the Roblox website. The Rojo 0.5.x plugin will not work with the Rojo 0.6.x server!
There are now a few ways to download the Rojo CLI.
With Foreman
Add a line to the [tools]
section in foreman.toml
:
rojo = { source = "rojo-rbx/rojo", version = "0.6.0-alpha.2" }
From GitHub Release
Download one of the attached binaries on this release page!
From the VS Code Extension
Switch your release channel to 0.6.x
to try out the latest alpha. You can switch back to 0.5.x
to revert to the current stable channel.
From Crates.io
You can use Cargo (1.40.0+) to build the release yourself from crates.io:
cargo install rojo --version 0.6.0-alpha.2
Changes since 0.6.0-alpha.1
- Fixed
rojo upload
command always uploading models. - Removed
--kind
parameter torojo upload
; Rojo now automatically uploads the correct kind of asset based on your project file. - Upgraded various dependencies
v0.5.4
This release is a minor maintenance release for the 0.5.x series and comes with no feature changes.
There were a couple mis-tagged releases, sorry! The release process has shifted around a bit since the release of 0.5.3 and I struggled to backport some of those things onto the v0.5.x branch.
Upgrading
This is the first stable Rojo release to include binaries for all platforms. If you previously compiled Rojo from source, please try the binaries released here.
You can also install Rojo via Foreman, a new toolchain manager for Roblox tools like Rojo and Remodel.
You can also use Rust (1.40+) to install Rojo from the command line:
cargo install rojo --force
To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm
from this release and put it into your Roblox Studio plugins folder.
Changes Since 0.5.3
- Updated reflection database and other dependencies.
- First stable release with binaries for macOS and Linux.
v0.6.0 Alpha 1
It's that time of year! This release is an alpha release of the latest stuff that Rojo has gained over the past few months.
Everything in this alpha release is considered experimental and may blow up without warning.
Trying the Alpha
This is the first release where you should no longer need to compile the Rojo server yourself on any platform.
Download the attached release for the correct platform below, or use Cargo to build the release yourself from crates.io:
cargo install rojo --version 0.6.0-alpha.1 --force
To install the Roblox Studio plugin, either copy the attached Rojo.rbxm
into your Studio plugins folder, or install it here, from the Roblox website. The Rojo 0.5.x plugin will not work with the Rojo 0.6.x server!
Changes in this Alpha
General
- Added support for nested project files. (#95)
- Added project file hot-reloading. (#10])
- Fixed Rojo dropping Ref properties (#142)
- This means that properties like
PrimaryPart
now work!
- This means that properties like
- Improved live sync protocol to reduce round-trips and improve syncing consistency.
- Improved support for binary model files and places.
Command Line
- Added
--verbose
/-v
flag, which can be specified multiple times to increase verbosity. - Added support for automatically finding Roblox Studio's auth cookie for
rojo upload
on Windows. - Added support for building, serving and uploading sources that aren't Rojo projects.
- Improved feedback from
rojo serve
. - Removed support for legacy
roblox-project.json
projects, deprecated in an early Rojo 0.5.0 alpha. - Rojo no longer traverses directories upwards looking for project files.
- Though undocumented, Rojo 0.5.x will search for a project file contained in any ancestor folders. This feature was removed to better support other 0.6.x features.
Roblox Studio Plugin
- Added "connecting" state to improve experience when live syncing.
- Added "error" state to show errors in a place that isn't the output panel.
- Improved diagnostics for when the Rojo plugin cannot create an instance.
v0.5.3
This release includes a fix for Rojo users using Rojo with versions of Roblox that have unreleased kinds of instance, notably engineers at Roblox.
Upgrading
If you're on Windows, download rojo-0.5.3-win64.zip
, and extract it somewhere. In previous releases, this file was just rojo.exe
, but is now compressed to make the download smaller.
You can also use Rust (1.34+) to install Rojo from the command line:
cargo install rojo --force
To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm
from this release and put it into your Roblox Studio plugins folder.
Changes Since 0.5.2
- Fixed an issue where Rojo would throw an error when encountering recently-added instance classes.
v0.5.2
This release includes a bugfix aimed at Rojo users that rely on .csv
files turning into LocalizationTable
instances. Before this release, Rojo's output in projects using these files was not deterministic.
This resulted in minor issues for engineers at Roblox working on Roblox Studio!
Upgrading
If you're on Windows, download rojo-0.5.2-win64.zip
, and extract it somewhere. In previous releases, this file was just rojo.exe
, but is now compressed to make the download smaller.
You can also use Rust (1.34+) to install Rojo from the command line:
cargo install rojo --force
To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm
from this release and put it into your Roblox Studio plugins folder.
Changes Since 0.5.1
- Fixed an issue where
LocalizationTable
instances would have their column order randomized. (#173)
v0.5.1
This is release includes a couple maintenance changes and a fix for a bug that has been plaguing many Rojo users, #252.
Upgrading
If you're on Windows, download rojo-0.5.1-win64.zip
, and extract it somewhere. In previous releases, this file was just rojo.exe
, but is now compressed to make the download smaller.
You can also use Rust (1.34+) to install Rojo from the command line:
cargo install rojo --force
To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm
from this release and put it into your Roblox Studio plugins folder.
Changes Since 0.5.0
- Fixed an issue where Rojo would drop changes if they happened too quickly (#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.
v0.5.0 (stable!)
This stable release has been in progress for a very long time.
If you're coming from the previous 0.5.0 alpha releases, not a whole lot has changed in this release except its name.
If you're coming from Rojo 0.4.x, check out the 0.5.x Migration Guide in the official docs to get yourself up to date. At this point, Rojo 0.4.x will no longer officially receive any further updates.
Upgrading
To install the Rojo CLI, either download rojo.exe
attached here or run (requires Rust 1.34):
cargo install rojo --force
To install the plugin, either install it from Roblox (https://www.roblox.com/catalog/1997686364) or download Rojo.rbxm
and put it into your Roblox Studio plugins folder.
The Rojo Visual Studio Code extension should automatically upgrade you from the 0.5.0 alphas onto the 0.5.0 stable release track.
Changes Since 0.4.x
- Brand new project format,
default.project.json
instead ofrojo.json
- Added support for
rbxm
andrbxmx
models as part of your project - Added new commands:
rojo build
,rojo upload
,rojo init
- Added support for
csv
localization tables - New plugin that's more efficient and more beautiful!
Changes Since 0.5.0 Alpha 13
- 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
Name
field of the top-level instance is now optional. It's recommended that you remove it from your models. - Rojo will emit a warning when
Name
is specified and does not match the name from the file.
- The file name now takes precedence over the
- Fixed
Rect
values being set to0, 0, 0, 0
when synced with the Rojo plugin. (#201) - Fixed live-syncing of
PhysicalProperties
,NumberSequence
, andColorSequence
values
Known Issues
- #142: Rojo still does not support ref properties, this will be fixed as part of a refactor and release 0.6.0
- #215, #214, #213, #193, #132: Various issues around changes being dropped that we weren't quite able to pinpoint. After #217 merges, we'll be working on fresh foundations, which means fresh bugs!