|
1 |
| -# Aspect CLI |
| 1 | +The `aspect` CLI is a drop-in replacement for the `bazel` CLI that comes with Bazel. |
2 | 2 |
|
3 |
| -The [Aspect CLI](https://github.com/aspect-build/aspect-cli) is a drop-in replacement for the `bazel` CLI that comes with Bazel. |
| 3 | +# Why Aspect CLI |
| 4 | + |
| 5 | +Every organization has a different engineering culture and developer stack. |
| 6 | +Bazel was designed for Google's workflows, not yours. |
| 7 | +Many companies have found they have to write a wrapper around Bazel. |
| 8 | +This starts out as a small need to shim something in the developer workflow, and is often an |
| 9 | +untested Bash script living in `/tools/bazel` which Bazelisk understands as a wrapper script. |
| 10 | + |
| 11 | +Over time, the wrapper accumulates more code, and is a constant source of developer distress. |
| 12 | + |
| 13 | +See more on our product webpage: <https://aspect.build/cli> |
| 14 | + |
| 15 | +# Installation |
| 16 | + |
| 17 | +## Homebrew (MacOS) |
| 18 | + |
| 19 | +On MacOS, you can run |
| 20 | + |
| 21 | +```sh |
| 22 | +% brew install aspect-build/aspect/aspect |
| 23 | +``` |
| 24 | + |
| 25 | +This installs the `aspect` command and also links it to `bazel`, just like the [bazelisk] installer does. |
| 26 | + |
| 27 | +> We plan to have a standard "core" homebrew formula so this will just be `brew install aspect` in the future. |
| 28 | +
|
| 29 | +## Bazelisk (MacOS / Linux / Windows) |
| 30 | + |
| 31 | +On any platform, so long as you already have [bazelisk] installed, you can have [bazelisk] |
| 32 | +install the Aspect CLI just like it can install the standard Bazel CLI. |
| 33 | +Add this to your `.bazeliskrc` in your project folder to install Aspect for all developers: |
| 34 | + |
| 35 | +From the release you wish to use: https://github.com/aspect-build/aspect-cli/releases copy the `.bazeliskrc` snippet |
| 36 | +into your `.bazeliskrc` file to install Aspect for all developers in this repository. |
| 37 | + |
| 38 | +Note that in all cases, the `.bazelversion` file continues to indicate which version of the |
| 39 | +Bazel tool is fetched and run beneath the wrapper. |
| 40 | + |
| 41 | +## Manual (MacOS / Linux / Windows) |
| 42 | + |
| 43 | +On any platform, you can download the `aspect` binary for your platform on our |
| 44 | +[Releases](https://github.com/aspect-build/aspect-cli/releases) page and add it to your `PATH` manually. |
| 45 | + |
| 46 | +Note, if you manually install for MacOS, you can bypass the "Unknown Developer" dialog by running |
| 47 | +`xattr -c $(which aspect)` before launching `aspect`. |
| 48 | + |
| 49 | +# Usage |
| 50 | + |
| 51 | +Just run `aspect help` to see the available commands. |
| 52 | +Some are the standard ones you know from Bazel, and others are new, such as `print` and `docs`. |
| 53 | + |
| 54 | +## Write a plugin |
| 55 | + |
| 56 | +Aspect's plugin system allows you to fit Bazel into your team's development process, |
| 57 | +with custom commands, behaviors, and integrations. |
| 58 | + |
| 59 | +A plugin is any program (written in any language) that serves our gRPC protocol. |
| 60 | +The easiest way to get started is to clone our |
| 61 | +[starter template repo](https://github.com/aspect-build/aspect-cli-plugin-template). |
| 62 | + |
| 63 | +See the [Plugin Documentation](./docs/help/topics/plugins.md) for more information on how to write a plugin. |
| 64 | + |
| 65 | +# Need help or having issues? |
| 66 | + |
| 67 | +If you think you've hit a bug please file a [Bug Report](https://github.com/aspect-build/aspect-cli/issues/new/choose). |
| 68 | + |
| 69 | +You can also find us on [Bazel Slack](https://slack.bazel.build/) on the #aspect-dev channel. |
| 70 | + |
| 71 | +# For Enterprise |
| 72 | + |
| 73 | +`aspect` is sponsored by Aspect Development, a Bazel consulting company. |
| 74 | +If your organization needs more help to make your Bazel migration a success, |
| 75 | +come find us at [aspect.dev](https://aspect.dev) |
| 76 | + |
| 77 | +We also offer a Professional edition of the Aspect CLI. |
| 78 | +This adds features that big codebases rely on, like BUILD file generation. |
| 79 | +See our website at <http://aspect.build> to learn more about our offerings. |
| 80 | + |
| 81 | +[bazel]: http://bazel.build |
| 82 | +[github releases]: https://github.com/aspect-dev/aspect-cli/releases |
| 83 | +[bazelisk]: https://github.com/bazelbuild/bazelisk |
0 commit comments