[WPILib Blog] 2024 Kickoff Release of WPILib

Thanks for everyone’s patience! As a bonus (not mentioned below), because it was released after kickoff, the kickoff release includes the 2024 field image and AprilTag locations! As announced in other threads, I would expect vendors to make their 2024 initial non-beta releases in the coming week.

Posted 20240106 on 2024 Kickoff Release of WPILib — WPILib

We are pleased to announce the availability of the 2024 kickoff release (2024.1.1) of WPILib, the official FIRST libraries for robot programming in Java and C++.

Changes for 2024

The big news is we are adding Python to our pantheon of WPILib text-based languages–thanks to the efforts of the RobotPy project team, WPILib now has support for Java, C++, and Python! We’ve also worked with FRC Team 6328, Mechanical Advantage, to bundle their powerful data log analysis tool (AdvantageScope) into the WPILib installer to make it more accessible to teams.

There have been many additions and new features added by the WPILib development team over the past year. We encourage all teams to read the New for 2024 page in the documentation for all the details! Some statistics (just for the main WPILib repository): 646 commits were made since 2023.4.3 by 45 contributors, touching nearly 3,800 files, with 394,976 added and 137,086 removed lines.

Installation Instructions

Note: Minimum system requirements: WPILib requires 64-bit Windows 10 or 11, Ubuntu 22.04, or macOS 12 or higher. C++ teams should note that Visual Studio 2022 is required for desktop builds. Mac users will need to have the Xcode Command Line Tools installed before running the installer. This can be done by running xcode-select --install in the Terminal.

Thanks and an Ask

WPILib is run by a small team of volunteers and the community. Many of the features and tools included in WPILib started as community projects or ideas. As the new season begins, we challenge you when writing the next exciting project or feature to think about how you can best share your work with the community! Some projects would be great additions to WPILib and we would love the chance to include them. This is also true of any issues you run into using the current library, we are always looking to make things better for teams! We encourage you to talk to us and discuss what you are doing and how it could fit into future plans. You can reach us on GitHub, Discord, and Chief Delphi.

WPILib’s core members are as follows.

  • Amanda Bessette @ arbessette
  • Ryan Blue @ Ryan_Blue
  • Jonah Bonner @ jonahb55
  • Sam Carlberg @ SamCarlberg
  • Jason Daming @ jdaming
  • Thad House @ Thad_House
  • Peter Johnson @ Peter_Johnson
  • Prateek Machiraju @ Prateek_M
  • Brad Miller @ BradAMiller
  • Joe Pokorny @ jpokornyiii
  • Joe Ross @ Joe_Ross
  • Austin Shalit @ AustinShalit
  • Yotam Shlomi @ starlight220
  • Dalton Smith @ Daltz3
  • Dustin Spicuzza @ virtuald
  • Tyler Veness @ calcmogul
  • David Vo @ auscompgeek
  • Vasista Vovveti @ Vasista
  • Zhiquan Yeo @ zeequeue

We would also like to call out the translation coordinators for the documentation. These people help make WPILib accessible to teams all around the world.

  • Ofek Ashery (Hebrew)
  • Regis Bekale (French)
  • Hasan Bilgin (Turkish)
  • Luca Carvalho (Portuguese)
  • Miguel Angel de León Adame (Spanish)
  • Jacob Lubecki (Japanese)
  • Bruno Toso (Portuguese)
  • Atlus Zhang (Chinese)
  • Min Zhang (Chinese)

Major past contributors to WPILib include Eli Barnett, Jaci Brunning, Evan Gilgenbach, Alex Henning, Jonathan Leitschuh, James Kuszmaul, Toby Macaluso, Paul Malmsten, Peter Mitrano, Kevin O’Brien, Grant Perkins, Patrick Plenefisch, Fred Silberberg, and Griffin Tabor.

In addition to these volunteers, many members of the community contribute code, open issues, give ideas, and provide feedback. A huge thanks to these members of the community for their amazing contributions to the library and to the many beta testers this fall.

54 Likes

Thank you to you and the volunteers for working hard to get this out as soon as possible.

8 Likes

WOOP WOOP!

1 Like

Unresolved dependency: org.junit.platform junit-platform-launcherJava(0)

when creating either a Command based or teleop based project in build.gradle

1 Like

Same error here, but it doesn’t seem to affect the build of robot code. It is building successfully, so I am largely ignoring it. Do not know what might be causing this.

Thanks WPIlib contributors!

3 Likes

I just commented out the dependency

This is a known issue we just found out about. See the post below for the fix.

3 Likes

We actually have a different fix. We don’t actually have the setup in VS Code to update gradle options mid season (This is actually why the project importer exists), so we want to solve this another way.

If you’re on Windows, run the following 2 commands in a Powershell Window

Invoke-WebRequest -Uri https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter/5.10.1/junit-jupiter-5.10.1.module -OutFile C:\Users\Public\wpilib\2024\maven\org\junit\jupiter\junit-jupiter\5.10.1\junit-jupiter-5.10.1.module
Invoke-WebRequest -Uri https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.10.1/junit-bom-5.10.1.module -OutFile C:\Users\Public\wpilib\2024\maven\org\junit\junit-bom\5.10.1\junit-bom-5.10.1.module

If you’re on Linux/macOS, run the following 2 commands

curl https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter/5.10.1/junit-jupiter-5.10.1.module -o ~/wpilib/2024/maven/org/junit/jupiter/junit-jupiter/5.10.1/junit-jupiter-5.10.1.module
curl https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.10.1/junit-bom-5.10.1.module -o ~/wpilib/2024/maven/org/junit/junit-bom/5.10.1/junit-bom-5.10.1.module

The next installer release will include these files, so you only need to do this if you’ve installed 2024.1.1. Future versions will not need this.

After running this, you’ll need to refresh Java intellisense in VS Code for it to pick up the new files. You can do so by running the Clean Java Language Server Workspace command in VS Code.

8 Likes

Came from discord for this fix.

Having just tried this and verified the .module files updated after running the above powershell commands. It did not resolve the dependency issue.

( I’ll restart just to make sure that isn’t a contributing factor. )

But is there any next steps to further verify / debug that you’d recommend? Or just wait for a future release where this is resolved?

I ask as I don’t have the full understanding of the importance of junit.

You ran both commands? It won’t work with just 1 or the other. Also what platform are you running on?

Junit is just a dependency, but the way it’s set up it requires those module files to exist. And the way the installer was set up it didn’t copy those module files.

After running the commands, try running the Clean Java Language Server Workspace command in VS Code (Its in the command palette).

2 Likes

Windows 10

Ran both commands.

Verified both files updated.
image

image


Cleaning the Java Language Server Workspace resolved the issue! Good catch!

Has anyone used the WPILib 2024 Linux installer? When I ran the executable, it kept failing on the extraction step, saying it was a bad file type. I also tried to manually extract the artifacts tar.gz with 7z, and it claimed corruption. I did verify the SHA256 checksum with the one posted on GitHub.

My system is Arch Linux with glibc at the newest version (above min specs). I know this distribution of Linux is not supported, but would it affect the install?

Thank you.

It doesn’t seem corrupted to me (I’m on mac). I ran tar -xvf on the archives file and received no corruption message. Perhaps it’s your download that’s corrupted. I used curl -LJO https://packages.wpilib.workers.dev/installer/v2024.1.1/Linux/WPILib_Linux-2024.1.1.tar.gz to download. Perhaps curl will let you know if there’s something wrong with the download process.

Ok. Something must have been wrong with my download. Thank you for your help.

Thad, I am running Windows 11. I ran both commands, and the Clean Java Language Server Workspace from the Command Palatte. I am still having the unresolved dependancy issue. So, what’s my next step(s)?
Keep in mind, I am a noob to Java, VSCode and WPILib.

Are there any alternative links to download like how you guys did with the beta? My school blocks github and for some reason they also blocked packages.wpilib.workers.dev. If there aren’t, that is fine, I will just download it at my house and send it to my school computer.

While waiting for a reply I tried a couple things:
I completely removed the WPILib code.
Reinstalled from the release package.
Ran the two commands.
Ran the clean up.
Opened our robot project again.
It still has the same depenecy error in build.gradle.
Building the code still succeeds.

Were you using tar xf?

Yes, we still also upload to Artifactory. The JFrog links from the beta should work (with the version number updated as appropriate). We are looking at making the docs download link smarter for machines that have .dev blocked.