firrtl
firrtl copied to clipboard
Update protobuf-java to 3.12.4
Updates com.google.protobuf:protobuf-java from 3.5.1 to 3.12.4.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf
file.
Have a fantastic day writing Scala!
Ignore future updates
Add this to your .scala-steward.conf
file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.google.protobuf", artifactId = "protobuf-java" } ]
labels: library-update, semver-minor
There is an advantage to sticking with older Protobuf. Whereas with most JVM dependencies are handled well by the tools and don't impact the larger system, Protobuf has to stay relatively in sync (there was a hard break somewhere, maybe protobuf 3.8) with the protoc binary which is often installed as a standard Linux dependency.
We probably should bump protobuf at some point, but such a bump would affect anyone building FIRRTL (eg. https://github.com/sifive/api-firrtl-sifive/issues/6)
So does that mean we should maybe bump this with the 1.4 release?
I think Jack wants to hold off on this since upgrading protobuf-java
might also require a newer version of protoc
to be available on user's computers.
So, fortunately for building via SBT, the SBT plugin takes care of downloading the right version of protoc for the system, but going a different route runs into this issue (see api-scala-sifive link). That being said, we can't just never upgrade so we should probably just go for it. It's not that hard to download the statically linked binaries of protoc
I'm leaving this open until either I can fix it or we tell it to ignore protobuf. Unfortunately we can't bump the Java library without also bumping protoc. It is passing tests so maybe it's actually okay, but typically having those too far out of sync is a problem. I tried to bump it manually, but get some incredibly bizarre issues only on the Scala 2.11 build, which is especially strange because the Protobuf stuff is the same for all versions of Scala.