2017 WPILib Update #17
|
Coincidentally this is issue 17 - Illuminati confirmed |
|
This is somewhat amusing, because I remember that during the 2016 offseason the WPILib repo WA mistakenly returning the 2017 version... I haven't built a 2017 project yet but shouldn't it be as simple as refreshing the Gradle dependencies? |
|
Thanks Jamie, coincidentally I just linked my team's new programmers to your guide on setting up GradleRIO with IDEA. |
|
I'm in the process of updating now. Unfortunately it's a lot more difficult than just changing the artifact version, as the native libraries have been decoupled from the jar, and adding support for device libraries like the SRX and NavX libraries. This should be ready soon enough, I'm currently working on getting CTRE's SRX libraries available through maven, and then updating the GradleRIO spec. For 2017, the GradleRIO plugin location will be moved to the official repository (see #11), and the build system extensions specification will be changed. This is a full rewrite to accomodate future versions much simpler |
|
Thank you for everything Jaci! |
|
All good. If I have access to an imaged RoboRIO it should be updated by tonight (I need to test deployment, I believe some libraries have changed), if not, tomorrow. This is all going off my timezone (Perth, WA) |
|
@JamieSinn @19lmyers @P1n3appl3 the repository has been updated. Follow the readme to give it a test and get back to me whether it works or not. If it passes for all of you, I'll push it out as an official release. Please direct any questions to this issue. Closing #16 in favour of this issue |
|
Jaci, you're amazing. Thank you for getting to this so quickly! I'll do a test build-and-deploy after work this evening and let you know how it goes. |
|
I tried the new version, and I get this error:
My build.gradle:
|
|
@HeroCC please run with |
|
Have you been able to get the wpilibj from the maven repo to work with the 2017 roboRIO? |
|
I hit the same problem as @HeroCC. Here's my stacktrace: And here's my build.gradle (renamed for github): Note that I tried it with both plugin syntax variations. |
|
OK, here is the stacktrace: |
|
I'm having the same problem as the others above. Stacktrace: https://hastebin.com/dovovunuwi.vbs |
|
@cyocom following the example, it should link correctly. This is using the 2017 WPILibJ 'athena' package. @BenBernardCIS @HeroCC @chrislo27 does the problem persist if you change the top of your build.gradle to the following? plugins {
id "java"
id "eclipse"
id "idea"
id "jaci.openrio.gradle.GradleRIO" version "2017.0.1"
}Note that the version of GradleRIO has been updated to |
|
That takes care of it for me. Thanks! I do get an error when I try to "Import Project from Gradle" in intellij: That doesn't seem to be a show-stopper though. For reference by others, here's my updated build.gradle: |
|
That's probably because you don't have Java 8 installed. |
|
@19lmyers Indeed...I have Java 8 installed, but accidentally selected my Java 7 JVM in the import window. Thanks for pointing that out! It's all set now. |
|
The fix worked, thanks so much! Build worked and it got the dependencies, can't deploy tonight because I don't have the roboRIO with me but I'll report back tomorrow when I get a chance to try it. |
|
I am having trouble now getting gradleRIO to pull in cscore...all the other dependencies pulled in fine (ntcore, opencv, etc). Do I need to specify it in my build.gradle? |
|
Quick question: Is the build.gradle template majorly different from the old (2016) version for a specific reason? |
|
@BenBernardCIS I'll take a look shortly. Is gradle panicking or is the IDE just not picking them up? @19lmyers the general gist of things is still the same ( A lot of the old The WPILib dependency isn't linked automatically. This is for a few reasons, but most prominently is that which is mentioned above, and allows for the specifications of This is mostly trying to converge to GradleRIO-C, which has a better backend overall than the previous versions of GradleRIO for Java, which were written poorly. The new version conforms much more tightly to Gradle's internal model |
|
Neither the ide nor gradle see the cscore lib. |
|
On my end, IntelliJ IDEA is only detecting the 2016 version of the library in its dependencies. Gradle works fine, but the IDE is ignoring the Gradle dependencies... |
|
@BenBernardCIS I can confirm that cscore isn't being found. I will look into this. @19lmyers it seems to be working correctly for me. Ensure your build.gradle is close to that in the quickstart, and try running |
|
I may have found the problem...in WPIPlugin.groovy, the wpilibNative block has opencv and cscore swapped: |
|
@JacisNonsense That solved it for me, thanks! |
|
I think the cscoreVersion typo is unrelated. It's probably a problem, but not this problem. FYI, manually adding cscore.jar to my lib folder (and including |
|
@BenBernardCIS Good spotting. Although that was an issue, it didn't cause any issues (both |
|
Yes, that did the trick for me. Thanks again for the quick responses, and the great tool! |
|
Before testing deployment, please use version |
|
I'm having trouble deploying the code to the RIO. The roboRIO is running image version
Edit: It looks like as part of the ant build script WPI deploys <deploy-libs libs.name="netconsole-host" libs.basedir="${wpilib.ant.dir}" libs.deployDir="/usr/local/frc/bin">
<libs.local>
<fileset id="netconsole.local" dir="${wpilib.ant.dir}">
<include name="netconsole-host"/>
</fileset>
</libs.local>
</deploy-libs>Should I just copy it via FTP? |
|
@timtim17 Pull |
|
So, after deploying a basic, Quickstart project, it worked. It looks like after deploying netconsole once, the build fails at the deploy step - the code still works though (stacktrace). However, with a more complex project (navX & talon), Java crashes immediately after teleop is enabled.
There's probably something wrong with the way I imported the navX library, and our Is there a correct way to add the navX library? |
|
@timtim17 the if I'm correct in saying that the NavX library doesn't require the JNI, it should be a simple case of putting the following in your dependencies {
compile wpilib()
compile talonSrx()
compile fileTree(dir: "<libs directory>", include: "**/*.jar")
} |
|
|
|
Failing each time? I know the build isn't always consistent, but is it
always failing after the netconsole deploy?
…
|
|
I think the issue is that the Java process isn't dieing fast enough. I'll look into it soon. Any logs would help |
|
Here's a stacktrace (that's my entire stacktrace, from starting the build to deploying it. there is another stacktrace from Gradle about Also, after doing more work on the navX all the methods work when deploying with the WPI plugin, so it looks like it may actually be a GradleRIO issue. However, I'm not quite sure why they wouldn't work. (Core dump) Edit: For some reason, adding a random line into |
|
@timtim17 with the deploy issue, I'm assuming this is because netconsole itself isn't being killed before the deploy. I will take a look into this tomorrow As for the java issue, my only observation is an issue with Network Tables. I believe the WPILib plugins and GradleRIO are using the same library versions, so I'm not exactly sure what is going on. |
|
Deploy is not working (2017.0.5). Stacktrace: https://hastebin.com/asomileqeq.vbs |
|
@chrislo27 remove the space from your project folder |
|
Works now, thank you! |
|
@chrislo27 @BenBernardCIS are you guys receiving the same sort of error as @timtim17 when the code is running on the RoboRIO? If possible, I want to determine whether this is a common issue. @timtim17 would you mind linking your code repo? |
|
I believe I am receiving the same error as @timtim17 |
|
Our repo is here. It is a little messy, particularly in the Edit: If you're referring to the Java/ntcore issue, I'm not sure if that's related to GradleRIO. Although it had to do with the deployed |
|
Also, regarding the Java/ntcore issue, I removed my "magic, nonsensical" line of code that fixed things earlier, and it appears that after deploying, running code that puts values on At this point, I'm just confused. It doesn't really make sense why it would crash only if certain things are in certain places. However, I do know that the same navX code (without the |
|
@JacisNonsense Our deploy went smoothly first try (we updated to 2017.0.5 first) and I haven't heard any reports of runtime issues--we're testing on our Stronghold bot and driving seems normal. I'll ask the team to keep an eye on the logs, but so far so good. |
|
@Masterzach32 @timtim17 can you run deploy using the |
|
@JacisNonsense Tried the 2017.0.6 version. No more "build failed" message, but the robot code doesn't start automatically. When the code is deployed, the driver station shows robot code, but then after netconsole-host is deployed, the robot code doesn't start again, and the DS shows "No Robot Code". Edit: It looks like it doesn't start if you reboot the RIO either. |
|
@timtim17 try 2017.0.7 |
|
Looks like it works pretty well. Thanks! |
|
Ahh, neato. Looks like netconsole must have had a lock on something from NetworkTables. @Masterzach32 @BenBernardCIS can you confirm 2017.0.7 fixes your issues? If so I'll increment to 2017.1.0 and do a full release |
|
Ill be at the shop later tonight to test that version |
|
Our programmers report that 2017.0.7 worked fine for them. No issues with build, deploy, startup, and running. This includes our camera code using cscore, our dashboard/networktables usage, and our NavX code. All-clear from us. |
|
@BenBernardCIS that's fantastic news. I'll do some more house-cleaning commits in the morning and do a full release |
|
I will be able to test code in about one and a half hours. If you want to release 2017.1.0 before then, that's fine but I could test 2017.0.7 as well if you'd like. |
|
@chrislo27 I'm about to head out to bed, it's quite late over here. Run the tests and post a reply here and I'll take a look in the morning |
|
It works now, but deploying seems to push the same libraries on each deploy to the robot, causing deploys to take up to 10 minutes, which is kinda annoying. Any fix to check whether the deps are already on the rio, or can i implement something like that myself? |
|
Deploy and test works. |
|
Nvm about what I said earlier. Deploy and test work perfectly. |
|
@Masterzach32 that will only happen on library updates / first deploy. GradleRIO stores a checksum to ensure this doesn't happen every single deploy. Thanks for your help everyone, you've been integral to making sure GradleRIO is stable for 2017 |
Hey Jaci,
No huge rush, but would you mind updating your repo for the 2017 wpilib updates?
We're currently working off the 2016 version, but we're waiting on the 2017 update for the actual robot code.
Thanks!
PS. I plan to re-write the documentation on how to get started for this year too. I'll probably do it in LaTeX for easier updating and community input.