-
-
Notifications
You must be signed in to change notification settings - Fork 673
Roadmap
This document describes the major rules_go and Gazelle features the Go team has planned and how those features are prioritized. If you have an idea for a feature which is not mentioned here or if you think something should be prioritized differently, please send a message to bazel-go-discuss, or open an issue.
Note that this document doesn't cover prioties for the overall Go team. Work on Go itself can (and frequently does) take priority over Bazel support for Go. As a result, it's difficult to provide time estimates or release dates.
rules_go follows semantic versioning. A patch release is tagged every few weeks with bug fixes and support for new versions of Go. A minor release is tagged approximately every quarter with new features and updated dependencies. No major release has been tagged yet.
The current minor release branch is maintained together with the previous branch. Earlier release branches are not maintained or supported.
You can subscribe to new releases on GitHub.
At some point a 1.0.0 release will be tagged. This will indicate the API is stable. We try to keep the 0.x.y releases as stable as possible to make upgrades simple, but some incompatible changes may be needed before a 1.0.0 release in order to shed technical debt, enabling long-term maintenance.
We hope not to make any incompatible changes after that. A 2.0.0 should not be needed.
rules_go has no direct support for editors and IDEs. #512 tracks work to develop a driver for golang.org/x/tools/go/packages. This would enable Bazel support in gopls and other tools based on that framework, which would cover VSCode, vim-go, Emacs, and most other editors aside from GoLand. Editor and tool integration describes this further.
Another driver may be needed to other Go analysis and code generation tools that run as Bazel actions. #393 tracks that work.
In the past, rules_go has used aspects, --feature
flags and other hacks
to implement cross-compilation and alternative configurations like race mode.
#2219 tracks an effort to migrate to Bazel's new build setting and configuration transition system. This should fix or at least unblock a lot of bugs related to cross-compilation.
In no particularly order:
- Improved protobuf support
- Improved runfiles
- Improved static analysis
- Coverage support
- Debugging
Gazelle is mostly feature complete. Priorities are:
- Fixing bugs
- Simplifying user experience
- Reducing technical debt and simplifying testing