Foreman is a toolchain manager to help Roblox developers manage their installations of tools like Rojo, Remodel, Tarmac, and Selene.
Foreman is inspired by rustup and asdf.
It's an early prototype, but feedback at this stage is welcome!
You can download pre-built Foreman releases for Windows, macOS, and Linux from the Releases page.
You can use the official setup-foreman action to install Foreman as part of your GitHub Actions workflow.
If you have Rust 1.41.0 or newer installed, you can also compile Foreman by installing it from crates.io:
cargo install foreman
Foreman downloads tools from GitHub and references them by their user/repo
name, like Roblox/foreman
.
On first run (try foreman list
), Foreman will create a .foreman
directory in your user folder (usually ~/.foreman
on Unix systems, %USERPROFILE%/.foreman
on Windows).
It's recommended that you add ~/.foreman/bin
to your PATH
to make the tools that Foreman installs for you accessible on your system.
To start using Foreman to manage your system's default tools, create the file ~/.foreman/foreman.toml
.
A Foreman config that lists Rojo could look like:
[tools]
rojo = { source = "rojo-rbx/rojo", version = "0.5.0" }
Run foreman install
from any directory to have Foreman pick up and install the tools listed in your system's Foreman config.
Now, if you run rojo
inside of a directory that doesn't specify its own version of Rojo, Foreman will run the most recent 0.5.x release for you!
Managing a project's tools with Foreman is similar to managing system tools. Just create a foreman.toml
file in the root of your project.
A Foreman config that lists Remodel might look like this:
[tools]
remodel = { source = "rojo-rbx/remodel", version = "0.6.1" }
Run foreman install
to tell Foreman to install any new binaries from this config file.
When inside this directory, the remodel
command will run the latest 0.6.x release of Remodel installed on your system.
To install tools from a private GitHub repository, Foreman supports authenticating with a Personal Access Token.
Use foreman github-auth
to pass an authentication token to Foreman, or open ~/.foreman/auth.toml
and follow the contained instructions.
Foreman is a work in progress tool and has some known issues. Check out the issue tracker for known bugs.
If you have issues with configuration, you can delete ~/.foreman
to delete all cached data and start from scratch. This directory contains all of Foreman's installed tools and configuration.
Foreman is available under the MIT license. See LICENSE.txt or https://opensource.org/licenses/MIT for details.