commit | 5bec36cd3928e8e275d6af759e5b2ddb7a1d5448 | [log] [tgz] |
---|---|---|
author | lpino <lpino@google.com> | Thu Mar 21 09:50:52 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Thu Mar 21 09:53:06 2019 -0700 |
tree | 67a8d741d57fbfcfb37c2fdf343fff5591ed2526 | |
parent | adea1a7606289c16cd14c400396c2879d939684e [diff] |
Move Reporter out of the BuildEventStreamer. The Reporter is a general-purpose object for communicating events to the user. When an event is sent (with Reporter#post or Reporter#handle) using the Reporter then those events are forwarded to the set of registered handlers (for #handle) and to the event bus/extended handlers for #post. BuildEventStreamer responsibility is to send BuildEvents to all active transports, it shouldn't be on the business of sending UI messages (via #handle) or posting to the event bus (via #post). With this CL the messages that were sent inside the BuildEventStreamer are now sent in the BuildEventServiceModule allowing us to manage all the UI messages from there instead of scattered around the BES/BEP transports code. From the UI perspective, the ExperimentalStateTracker uses AnnounceBuildEventTransportsEvent and BuildEventTransportClosedEvent to decide whether to print information about the BES upload. We now send those events in the BES module. In summary, there are a few concrete improvements with this CL: - The waiting messages are solely the responsibility of the experimental UI. - The logic for closing the BEP transports in the streamer is simplified. - The streamer doesn't report arbitrary events to the event handlers or the event bus. PiperOrigin-RevId: 239613756
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel only rebuilds what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md
Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.