Master branch vs Google branch
The Bazel IntelliJ plugin has had two main branches (master
and google
) for almost two years now. We created this structure to more easily accept contributions from the community, including those that are not too applicable or relevant for Google.
The Bazel plugins for IntelliJ and CLion are built and released from the master branch. An external team of maintainers addresses IntelliJ and CLion plugin issues and pull requests. The Android Studio plugin is built and released from the google branch. Internal Google teams review Android Studio plugin issues and pull requests on a case-by-case basis.
These two branches are now diverging from each other.
- Changes for IntelliJ and CLion plugins are only merged into the master branch. Few fixes that are also needed for the Android Studio plugin can be merged into the google branch after the internal teams’ approval.
- Changes made by the internal Google teams are automatically exported to the google branch. Only relevant commits (security and selected bug fixes, and feature requests) are cherry-picked from the google branch to the master branch.
- The master branch is not intended to be used to build the Android Studio with Bazel plugin; failures of the Android Studio plugin built from the master branch will not be addressed.
Significant changes
The following is a list of significant changes made to the plugin from Q2 2023 to Q1 2024. Take a look at the complete list of closed issues and merged PRs. A big thank you to all PR authors and issue reporters!
Performance improvements
- Avoid scanning convenience symlink directories during initial import (#6082)
- Improve performance of Java package parser by making it a Bazel worker (#3686)
- Sync process optimizations by avoiding unnecessary computations (#5219)
Bzlmod support
- Recognize workspace root with
MODULE.bazel
as a valid workspace (#6127)
Go development
- Enable debugging the gazelle binary (#5816)
- Support embedded
go_source
rule type ingo_test
andgo_library
rules (#5205)
CLion
- Full Xcode toolchain support on macOS (#4654, #4651, #4976, #5010)
- Support for
strip_include_prefix
andinclude_prefix
attributes; CLion will search for include headers using the correct paths (#145, #510, #5300) - Code insight support for third party libraries stored within the project; breakpoints and other features are available for external targets stored inside the project and imported with
local_repository
ornew_local_repository
(#4774) - Run main function-style tests in CLion (#4786).
- Fixed the bug causing invalid CLI arguments to be passed to the executable during GDB debugging. (#4783)
Plugin development
Others
- Buildifier calls now use the configuration from the default config file at the root of the workspace (#6158)
- Allow environment variables in run configurations (#5885)
- Introduce
try_import
section to allow importing optional .projectview files (#5689) - Fix references for repo-relative labels in external workspaces (#5164)
- Allow targets with
manual
tag to be synced to the project (#5085) - Allow setting custom Bazel run script file location (#4690)
Releases
New versions of the plugin are continuing to be released every 2 weeks for IntelliJ, CLion, and Android Studio. The new versions are first released to the Beta channel for users to experiment and report regressions that will be fixed before releasing to the Stable channel after 2 weeks.
Take a look at all recent releases along with release notes. We’re currently releasing for the following IDE versions:
- IntelliJ & CLion: 2023.3 and 2024.1
- Android Studio: 2023.1 and 2023.2
Resources
- GitHub repository: https://github.com/bazelbuild/intellij
- IntelliJ plugin: https://plugins.jetbrains.com/plugin/8609-bazel
- CLion plugin: https://plugins.jetbrains.com/plugin/9554-bazel
- Android Studio plugin: https://plugins.jetbrains.com/plugin/9185-bazel
- Release notes: https://github.com/bazelbuild/intellij/releases
- Slack chat: https://slack.bazel.build (#intellij channel)
- Google group: intellij-bazel-plugin@googlegroups.com
- Special Interest Group (SIG) meeting: Held on the 3rd Thursday of every month. Take a look at our charter and reach out to messa@google.com to be added to the invite.
Ideas, feedback, and submissions are welcome!
Thank you for reading this edition! Let us know if you'd like to see any new information or changes in future community updates by reaching out to product@bazel.build. We look forward to hearing from you.
Thanks,
Intellij Bazel Plugin Maintainers (intellij-bazel-plugin-maintainers@googlegroups.com)
*Copyright © 2024 JetBrains s.r.o. JetBrains and IntelliJ are registered trademarks of JetBrains s.r.o.