2019 Kickoff Release of WPILib

I’m pleased to announce the availability of the kickoff release (2019.1.1) of WPILib, the official FIRST libraries for robot programming in C++ and Java.

As previously announced both on CD and on the FRC blog, 2019 brings major changes to the development environment for WPILib. For both C++ and Java, Eclipse has been replaced with a combination of Visual Studio Code (not Visual Studio) for the graphical environment, GradleRIO for the build and deploy, and a Visual Studio Code extension to integrate the two. Please make sure you read the ScreenSteps documentation as the installation process has changed significantly this year! For Windows, an integrated installer is provided to make installing everything required as easy as possible. For Mac and Linux, there isn’t an installer, but a single tarball provides everything except Java and Visual Studio Code.

Other notable changes: Java 8 has been replaced by Java 11 on both the desktop and on the RoboRio; the C++ compiler has been upgraded to GCC 6.3.0; a new graphical interface for Pathfinder, PathWeaver, has been added to the suite of WPI tools; and the Shuffleboard dashboard has seen significant improvements and upgrades.

Vendor plugins from CTRE, NavX, and others are not yet available, but expect announcements in the next couple of days from these vendors about how to install their 2019 tools and libraries.

Please note these won’t be able to be used on a robot until kickoff, as the 2019 RoboRio image from the NI 2019 update installer is required. Also, for anyone that used the alpha vscode release, you will need to recreate your project and copy your code over (it’s not possible to upgrade in place).

I want to thank all of the other volunteers on the WPILib development team for their efforts over the past year in making this release a success, in particular Jaci Brunning (GradleRIO), Thad House (Visual Studio Code extension and Windows installer), Sam Carlberg (Shuffleboard), Tyler Veness (WPILib) and Austin Shalit (WPILib), and to Brad Miller at WPI for leading the team.

ScreenSteps installation instructions: http://wpilib.screenstepslive.com/s/currentCS/m/getting_started/l/999999-installing-c-and-java-development-tools-for-frc (this page is still being tweaked, make sure you expand the correct section for your OS)

GitHub download page: https://github.com/wpilibsuite/allwpilib/releases

18 Likes

A lot of great changes this year! I look forward to trying all the new tools :smile:.

2 Likes

Maybe 2020 will be the year everything is ready in time for kickoff?

25 Likes

Awesome! Thanks!

Anyone tried getting 3rd party libraries installed via Manage Vendor Libraries?
I was looking at these instructions: https://wpilib.screenstepslive.com/s/currentCS/m/getting_started/l/682619-3rd-party-libraries

I just get either “No Dependencies Available” or I need a URL that I can’t find;
Kauai Labs (NavX) link throws a security error ( www.pdocs.kauailabs.com uses an unsupported protocol. ERR_SSL_VERSION_OR_CIPHER_MISMATCH)

As stated in the announcement:

Ah, reading too fast, missed it. Thanks

Following the instructions for mac, there doesn’t seem to be a ToolsUpdater.sh file, should I run ToolsUpdater.py instead?

We download the 3rd party libraries through the dependencies function in our build.gradle file. Should we use another method?

kFramework_ROS = 5

We good.

3 Likes

I’m editing the instructions as we speak, wait 10 minutes and refresh and it should be expanded and correct. Thanks for asking!

Brad

Yes, dependencies are now distributed via .json files which handle tying into the Gradle build system in all the right places. Directly using the dependencies function in the build.gradle file is not recommended.

why is this flagged?

3 Likes

This page explains what flags are for, and I think that post fits the criteria (I wasn’t the one who flagged, fwiw). https://meta.discourse.org/t/what-are-flags-and-how-do-they-work/32783

We used the dependencies function in build.gradle during the off-season, and it worked fine. Will the JSON file work in IntelliJ IDEA, too?

Yes, the JSON file is automatically read by GradleRIO, so will work regardless of IDE. The vscode extension provides a guided install method, but it’s fundamentally just copying the JSON file into the vendordeps folder in the project.

1 Like

thank you for protecting us

1 Like

Presumably you claimed it was “inappropriate” ?

offensive, abusive, or a violation of our community guidelines

So which was it? Or was it simply “I didn’t like that my project was being called out for what seems to be a consistent problem”?

Matt’s post is actually a useful comment (for once) - why does it seem like WPILib seems to perpetually break things right before kickoff mostly invalidating preseason work? And why is documentation and such not ready on kickoff?

Edit - and lest the WPIlib folks be offended, it’s an honest question. Why is it the case? Are their project management techniques that could alleviate this? Is it simply that something else is forcing your hand to release at this time? Guess it’s the same “why on earth are betas closed” question I keep running into.

10 Likes

Is there an explanation somewhere of what the vendordeps JSON files do over just declaring dependencies in native build.gradle directly?
Are “vendor libraries” intended to be used solely for hardware vendors, or for any teams looking to release libraries? 5190 has a library release post in the Programming category, 166 has a library under development, I know there are others.

I believe the vendordeps makes it easier to organize Java, C++, and JNI (native libs needed to run on the RoboRIO) libraries all in once place.

Our library is a software library and only requires one line to be added to the build.gradle. If a library requires JNIs, etc., I assume a vendordeps JSON would be preferable for the end user instead of adding several lines of code to the Gradle file.

1 Like

On vscode for Mac, when I tried to install JavaLang.vsix (2nd item in the ordered list), I get the following error message:

Did I miss any step or should I try installing the JavaDeps.vsix and JavaDebug.vsix first?

Thanks.

Update: Never mind… I got it to work. I had to uninstall some more of the previously installed extensions before trying to install the vsix files. Earlier I uninstalled only the WPILIB extension from the alpha release.