- FRC Game Manual
- FRC Game Q&A

# pyproject.toml usage

Note

RobotPy projects are not required to have a `pyproject.toml`, but when you run `robotpy sync` one will automatically be created for you.

`pyproject.toml` has become a standard way to store build and tooling configuration for Python projects. The `[tool.XXX]` section(s) of the TOML file is a place where tools can store their configuration information.

Currently RobotPy only stores deployment related information in `pyproject.toml`, in the `[tool.robotpy]` section. Users can customize the other sections however they want, and `robotpy` will ignore them.

The `pyproject.toml` file looks something like this:

    #
    # Use this configuration file to control what RobotPy packages are installed
    # on your RoboRIO
    #
    [tool.robotpy]
    # Version of robotpy this project depends on
    robotpy_version = "2026.1.1"
    # Which extra RobotPy components should be installed
    # -> equivalent to `pip install robotpy[extra1, ...]
    components = [
        # "all",
        # "apriltag",
        # "commands2",
        # "cscore",
        # "romi",
        # "sim",
        # "xrp",
    ]
    # Other pip packages to install
    requires = []

Each of the following will instruct the deploy process to install packages to the roboRIO:

`robotpy_version` is the version of the `robotpy` PyPI package that this robot code depends on.

`components` defines extra RobotPy components that can be installed, as only the core RobotPy libraries are installed by default.

Note

`components` is equivalent to `robotpy_extras` in prior years

`requires` is a list of strings, and each item is equivalent to a line of a requirements.txt file. You can install any pure python packages on the roboRIO and they will likely work, but any packages that have binary dependencies must be cross-compiled for the roboRIO. For example, if you needed to use `numpy` in your robot code:

    [tool.robotpy]
    ...
    requires = ["numpy"]

Binary packages that can be installed are stored on the WPILib Artifactory server. If you find that you need a package that isn’t available on artifactory, consult the roborio-wheels repository.