Skip to content
Toolchain manager for Roblox projects
Rust
Branch: master
Clone or download

Latest commit

Latest commit 23c6913 Mar 17, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows GitHub Actions Feb 14, 2020
resources Add foreman github-auth. Feb 25, 2020
src Add foreman github-auth. Feb 25, 2020
.gitignore Initial prototype Feb 12, 2020
CHANGELOG.md Release 1.0.1 Mar 17, 2020
Cargo.lock Release 1.0.1 Mar 17, 2020
Cargo.toml Release 1.0.1 Mar 17, 2020
LICENSE.txt Initial prototype Feb 12, 2020
README.md New logo, releasing 1.0.0 Mar 4, 2020
foreman.png New logo, releasing 1.0.0 Mar 4, 2020

README.md

Foreman

Actions Status Latest Release on crates.io

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!

Installation

GitHub Releases

You can download pre-built Foreman releases for Windows, macOS, and Linux from the Releases page.

GitHub Actions

You can use the official setup-foreman action to install Foreman as part of your GitHub Actions workflow.

From Source

If you have Rust 1.41.0 or newer installed, you can also compile Foreman by installing it from crates.io:

cargo install foreman

Usage

Foreman downloads tools from GitHub and references them by their user/repo name, like rojo-rbx/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.

System Tools

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!

Project Tools

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.

Authentication

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.

Troubleshooting

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.

License

Foreman is available under the MIT license. See LICENSE.txt or https://opensource.org/licenses/MIT for details.

You can’t perform that action at this time.