2017 FRC Control System

Maven Artifacts

This article talks about the Maven repos, and the various artifacts we publish.

Public Maven Repositories

WPILib maintains 2 public Maven repositories: development and release. These repositories are available at http://first.wpi.edu/FRC/roborio/maven/<release channel>, where <release channel> is substituted by the repository you want to use. For developing WPILib, this defaults to development. However, you are free to use the release channel during the season if you want to use an alternative build system such as Maven or Gradle. However, note that we cannot provide official support for build issues if you take this route.

These repositories are browsable with your web browser: simply navigate to the URL of your chosen repository. Note that there are a few dependencies in the top level (first.wpi.edu/FRC/roborio/maven). These are there for legacy purposes and are not updated: you should not attempt to depend on them.

For each of our Maven artifacts, we use one of 2 versioning schemes, both based on semantic versioning (semver.org). The first scheme is unmodified semantic versioning (referred to as semver in the artifacts list below). The other versioning scheme is similar, but has the following structure: <season>.<mandatory update>.<optional update>. So, the first release of the 2017 season will have the version 2017.1.1. If an optional update was released, the new artifacts would have the version 2017.1.2. If a mandatory update was then released, it would have the version 2017.2.1. This versioning scheme will be referred to as wpilibver in the artifact listing below.

Artifacts

The following is a listing of the available Maven artifacts (build products). The format for each of these listings is as follows: package-id:artifact-id:versioning scheme - Description, including the project and repository it is published by. All artifacts are jar files, unless otherwise specified.

edu.wpi.first.wpilib:athena-runtime:wpilibver - This is the base libraries for the wpilib HAL, including the HAL, NetworkTables, and WPIUtil. It is published as part of the allwpilib project, available here: https://github.com/wpilibsuite/allwpilib. This is a zip archive.

edu.wpi.first.wpilib:hal:wpilibver - This is the base WPILib HAL library. It includes only the HAL and NI Libraries. It is published as part of the allwpilib project, available here: https://github.com/wpilibsuite/allwpilib. This is a zip archive.

edu.wpi.first.wpilib.networktables.cpp:NetworkTables:semver - These are the headers and libraries of the two published C++ NetworkTables libraries. There are several different classifiers available. The arm classifier contains the prebuilt libraries for running on the roboRIO. The desktop classifier contains the libraries for running on x86 and x64 Windows, Mac, and Linux. Finally, the sources classifier contains the sources for ntcore. All of these artifacts are zip files. It is available here: https://github.com/wpilibsuite/ntcore.

edu.wpi.first.wpilib.networktables.java:NetworkTables:wpilibver - This is the Java implementation of NetworkTables. There are several classifiers available. The arm classifier contains the libraries for running on the roboRIO. The desktop classifier contains the libraries for running on x86 and x64 Windows, Mac, and Linux. The sources classifier contains the NetworkTables sources. Finally, the javadoc classifer contains the ntcore-specific javadoc. It is available here: https://github.com/wpilibsuite/ntcore.

edu.wpi.first.wpilib.simulation:simulation:wpilibver - This is installed by the simulation installer, and contains the non WPILibJ/C specific simulation components. This artifact is a zip file. It is published as part of the allwpilib project, available here: https://github.com/wpilibsuite/allwpilib.

edu.wpi.first.wpilib:wpiutil:semver - This is a utility library of useful C++ classes used throughout WPILib C++ projects. It is published as part of the ntcore project currently, available here: https://github.com/wpilibsuite/ntcore. This artifact is a zip file.

edu.wpi.first.wpilibc:athena:wpilibver - This is the WPILibC libraries. Dependencies are distributed via the edu.wpi.first.wpilib:athena-runtime package. It is published as part of the allwpilib project, available here: https://github.com/wpilibsuite/allwpilib. This is a zip archive.

edu.wpi.first.wpilibj:athena-jni:wpilibver - This is the Java JNI bindings for the HAL used by WPILibJ. It depends on the athena-runtime package. It is published as part of the allwpilib project, available here: https://github.com/wpilibsuite/allwpilib.

edu.wpi.first.wpilibj:athena:wpilibver - This is the main WPILibJ library. It depends on edu.wpi.first.wpilibj:athena-jni. It is published as part of the allwpilib project, available here: https://github.com/wpilibsuite/allwpilib.

edu.wpi.first.wpilibj.simulation:SimDS:wpilibver - This is the driverstation used to control the Gazebo Simulator. It is published as part of the allwpilib project, available here: https://github.com/wpilibsuite/allwpilib.

Topics

Last Updated

This manual covers downloading and building the C++ and Java WPILib sources. The topics in this section aren’t needed to program a robot, but if you are interested in seeing how WPILib works under the hood, you can see it here. WPILib is open-source, and we welcome contributions from the general public; how to contribute is talked about in Getting the Source.