commit | 4ca768e9f87701fb92598d0a8325a5fc8881a852 | [log] [tgz] |
---|---|---|
author | Ricky Pai <ricky+github@vsco.co> | Mon Jun 03 13:24:46 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Mon Jun 03 13:25:47 2019 -0700 |
tree | b1a4c523ba4fc82fb66156a535379765e3928fa8 | |
parent | 3ed9d3681c3e130aafcf3c405ff1795c601bdf95 [diff] |
standardize graph output indentation with 2 spaces Currently, when outputting graphs from Bazel with `bazel query --output=graph`, the indentations for different types of lines are inconsistent: - `node` is indented with 2 spaces - edges and vertices are not indented - labels are indented with 1 space Example using [rules_go](https://github.com/bazelbuild/rules_go): ``` $ bazel query "deps(//gg/platform:darwin)" --output=graph digraph mygraph { node [shape=box]; "//gg/platform:darwin" "//gg/platform:darwin" -> "//gg/toolchain:darwin" "//gg/toolchain:darwin" "//gg/toolchain:darwin" -> "@bazel_tools//platforms:osx" "@bazel_tools//platforms:osx" "@bazel_tools//platforms:osx" -> "@bazel_tools//platforms:os" "@bazel_tools//platforms:os" } Loading: 0 packages loaded ``` It would be nice for the indentations to be present (for edges and vertices), and consistent. As for the indentation scheme, it seems inconclusive as to which type the language prefers: - the [DOT Language Spec](https://www.graphviz.org/doc/info/lang.html) does not really specify tabs or spaces, but the examples used either contained no indentation (!) or one with 2 spaces - the official [examples](https://www.graphviz.org/gallery/) contain samples of no indentation, tabs, or 2 spaces, with tabs being most popular - the [Wikipedia page](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) uses tabs I'm using 2 spaces to conform with skylark. This is the result from the same query with this PR: ```plaintext $ /Users/ricky/workspace/bazel/bazel-bin/src/bazel query "deps(//gg/platform:darwin)" --output=graph Starting local Bazel server and connecting to it... DEBUG: /private/var/tmp/_bazel_ricky/5c63e3be3c60ec773878bdf16f25adcc/external/bazel_toolchains/rules/version_check.bzl:45:9: Current running Bazel is not a release version and one was not defined explicitly in rbe_autoconfig target. Falling back to '0.23.0' digraph mygraph { node [shape=box]; "//gg/platform:darwin" "//gg/platform:darwin" -> "//gg/toolchain:darwin" "//gg/toolchain:darwin" "//gg/toolchain:darwin" -> "@bazel_tools//platforms:osx" "@bazel_tools//platforms:osx" "@bazel_tools//platforms:osx" -> "@bazel_tools//platforms:os" "@bazel_tools//platforms:os" } Loading: 3 packages loaded ``` Closes #8007. PiperOrigin-RevId: 251296052
{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.