Mercurial is a Command Based library. It leverages systems from Core and Pasteurized to allow users to create powerful Commands with reduced boilerplate. It has a large focus on ease of use, in comparison to FTCLib.

Features:

  • Improved DX (developer experience) over alternate solutions
    • Nearly no need to write Commands as Classes
    • Helpful error messages for exceptions in Commands
    • All common command structures available
    • Easy to use and read, “Nothing like FTCLib, and exactly the same at the same time”
  • A thin wrapper over Pasteurized for gamepad utilities
  • A thin wrapper over Core for subsystem utilities
  • Unit tested command scheduler
  • Unit tested error messages

Installation:

Mercurial bundles a copy of Pasteurized along with itself, however, it may have newer updates than the current version of Mercurial, so check if you need to install it separately.

Currently, Mercurial depends on Util 1.0.1 (or newer), which is ahead of Core 1.0.0, it must be installed separately.

  1. Install Core

This only needs to be done once, if you already have this, no need to add it again.

Follow these instructions to install Core.

  1. Implementation

Add the newest version of Mercurial found here to the dependencies block:

dependencies {
	// ...
	implementation "dev.frozenmilk.mercurial:Mercurial:<MAJ.MIN.ENG>"
	// ...
}

The repo will give you the line to add.

  1. Sync

Run a gradle sync.