xolstice / protobuf-maven-plugin

Maven Plugin that executes the Protocol Buffers (protoc) compiler
https://www.xolstice.org/protobuf-maven-plugin/
Other
232 stars 76 forks source link

Compare with other plugins #15

Closed paulvi closed 7 years ago

paulvi commented 7 years ago

As of my research on November 2016 there have been several other plugins like

It would be nice to have their status shown together with some comparison/ ideas behind.

Or/and explain history of this plugin as it is
-> https://github.com/sergei-ivanov/maven-protoc-plugin -> https://github.com/dtrott/maven-protoc-plugin

sergei-ivanov commented 7 years ago

I can only explain the lineage of this plugin, because even if though I am aware of the alternative implementations, I am not actively tracking them.

The original code for this plugin was submitted by members of Google Protobuf project. It was made available on a branch, but that branch had never been merged into master, and it was eventually abandoned. The Google chaps cited their lack of expertise in Maven and a lack of resources as a reason for giving up.

The code from that branch was lifted to GitHub by dtrott and some improvements were made. The initial version of the plugin did not work across multiple projects or modules. That was fixed, together with various other issues.

Then at some point we tried to contribute, but the development on dtrott's branch stalled, also because of a lack of resources on his part. So we forked it and made further improvements on sergei-ivanov/maven-protoc-plugin branch. The main improvements were the support for toolchains, because we wanted to make the plugin configuration truly platform and environment agnostic. We also added support for additional outputs. Added proper documentation and maven site. Added support for custom protoc plugins (both native and written in java).

Because the origins of the plugin went back to Google, we never attempted to push the plugin to Maven Central, despite numerous requests from the community. I was approached by people from Google on several occasions, but they could not commit their own resources to the plugin development, and the licensing issue remained unresolved. In the end, the plugin was endorsed by the gRPC team, and I was contacted by Google again, and finally we managed to agree on all the licensing and maintenance issues.

As a result, I transferred the plugin under the ownership of an open-source part of my company, added the licence, the source attributions and changed the package names and maven coordinates. This is how xolstice/protobuf-maven-plugin came to life. Google are still a joint author of the plugin, but I remain the principal maintainer.