diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f989ab65..bf11ae72 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,12 +13,27 @@ Code contributions are welcome for features and bugs that have been reported in You'll want these tools to work on Rojo: -* Latest stable Rust compiler +* Rust 1.88 or newer * Rustfmt and Clippy are used for code formatting and linting. -* Latest stable [Rojo](https://github.com/rojo-rbx/rojo) * [Rokit](https://github.com/rojo-rbx/rokit) * [Luau Language Server](https://github.com/JohnnyMorganz/luau-lsp) (Only needed if working on the Studio plugin.) +Rokit installs the pinned Rojo, Selene, StyLua, Lune, and run-in-roblox versions listed in [`rokit.toml`](rokit.toml): + +```bash +rokit install +``` + +Before opening a pull request, run the relevant checks: + +```bash +cargo test +cargo fmt -- --check +cargo clippy +stylua --check plugin/src +selene plugin/src +``` + When working on the Studio plugin, we recommend using this command to automatically rebuild the plugin when you save a change: *(Make sure you've enabled the Studio setting to reload plugins on file change!)* @@ -29,7 +44,7 @@ bash scripts/watch-build-plugin.sh You can also run the plugin's unit tests with the following: -*(Make sure you have `run-in-roblox` installed first!)* +*(If you are not using Rokit, make sure you have `run-in-roblox` installed first!)* ```bash bash scripts/unit-test-plugin.sh @@ -49,7 +64,7 @@ Please file issues and we'll try to help figure out what the best way forward is ## Local Development Gotchas -If your build fails with "Error: failed to open file `D:\code\rojo\plugin\modules\roact\src`" you need to update your Git submodules. +If your build fails with an error about a missing path under `plugin/Packages`, such as `plugin/Packages/Roact`, you need to update your Git submodules. Run the command and try building again: `git submodule update --init --recursive`. ## Pushing a Rojo Release diff --git a/README.md b/README.md index c150ecb7..f3d1aeeb 100644 --- a/README.md +++ b/README.md @@ -25,12 +25,11 @@ Rojo enables: * Versioning your game, library, or plugin using Git or another VCS * Streaming `rbxmx` and `rbxm` models into your game in real time * Packaging and deploying your project to Roblox.com from the command line +* Pulling Instances from Roblox place and model files back into an existing Rojo project with `rojo syncback` -In the future, Rojo will be able to: +Rojo also has an optional two-way sync setting in the Studio plugin for syncing supported Studio edits back to the filesystem. -* Sync instances from Roblox Studio to the filesystem -* Automatically convert your existing game to work with Rojo -* Import custom instances like MoonScript code +Some workflows, like fully automatic conversion of every existing game into a Rojo project, are still limited and may require manual project configuration. ## [Documentation](https://rojo.space/docs) Documentation is hosted in the [rojo.space repository](https://github.com/rojo-rbx/rojo.space).