-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Use gapic-generator-java jar in the client library generation process #918
Conversation
More files removed that are noteworthy: Note:
|
|
Sorry for the unintentional pushes to this branch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Deferring to @ddixit14 on the CI config changes.
Kudos, SonarCloud Quality Gate passed! 0 Bugs No Coverage information |
…ary generation process (#918)"" This reverts commit 16d552c8a0225eb6c561eadc67921518c5664544.
🤖 I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
The repository has been renamed to sdk-platform-java, which caused issues with the strip_prefix and the sha256 checksum. In the long term we probably want to look into googleapis/sdk-platform-java#918 and update our dependency accordingly if needed, but for now this should be good enough. Change-Id: I0388c103d7dda729c30d28995517880336ba9d42
Note(Updated on 12/29/2022): The description is now almost re-written since a lot of the implementation details changed. Thanks to @chanseokoh who created this PR originally and enlightened me the new approach.
The main goal of this PR is to use the gapic-generator-java jar in the client library generation process, with both released jars and local SNAPSHOT jars. Hence, Bazel will not be used for loading dependencies and building the generator from source going forward. Instead, Maven is now used for building a gapic-generator-jar first, and the jar is passed into the Bazel plugin to generate the client libraries. This PR also removed as much Bazel files/configs as possible.
Nothing changes from the "UI" or "interface" side where how currently outsiders (including googleapis/googleapis) generate GAPIC libraries. The way gapic-generator-java is built is an implementation detail (that changed from Bazel to Maven) and is completely hidden from outsiders.
Local development is almost the same like before, two notable changes:
Next Steps[Must haves]:
dependencies.properties
file fromgax-java
repo, which may include different versions from the pom.xml that is used during generation runtime. It is to be determined to find the best way to manage the versions for the generated Gradle files.Next Steps[Nice to haves, not an exhaustive list]:
rules_java_gapic
folder, which is referenced by googleapis in the generation process, hence googleapis will need to dependent on both the jar and the source of gapic-generator-java. We could move these Bazel rules to googleapis so that gapic-generator-java is completely self-contained.