| --- | |
| title: 'Naming a Bazel related project' | |
| --- | |
| First, thank you for contributing to the Bazel ecosystem! Please reach out to | |
| the Bazel community on the | |
| [bazel-discuss mailing list](https://groups.google.com/forum/#!forum/bazel-discuss | |
| ) to share your project and its suggested name. | |
| If you are building a Bazel related tool or sharing your Skylark rules, | |
| we recommend following these guidelines for the name of your project: | |
| ## Naming Starlark rules {#name-starlark-rules} | |
| See [Deploying new Starlark rules](/versions/9.3.0/rules/deploying) | |
| in the docs. | |
| ## Naming other Bazel related tools {#name-related-tools} | |
| This section applies if you are building a tool to enrich the Bazel ecosystem. | |
| For example, a new IDE plugin or a new build system migrator. | |
| Picking a good name for your tool can be hard. If we’re not careful and use too | |
| many codenames, the Bazel ecosystem could become very difficult to understand | |
| for newcomers. | |
| Follow these guidelines for naming Bazel tools: | |
| 1. Prefer **not introducing a new brand name**: "*Bazel*" is already a new brand | |
| for our users, we should avoid confusing them with too many new names. | |
| 2. Prefer **using a name that includes "Bazel"**: This helps to express that it | |
| is a Bazel related tool, it also helps people find it with a search engine. | |
| 3. Prefer **using names that are descriptive about what the tool is doing**: | |
| Ideally, the name should not need a subtitle for users to have a first good | |
| guess at what the tool does. Using english words separated by spaces is a good | |
| way to achieve this. | |
| 4. **It is not a requirement to use a floral or food theme**: Bazel evokes | |
| [basil](https://en.wikipedia.org/wiki/Basil), the plant. You do not need to | |
| look for a name that is a plant, food or that relates to "basil." | |
| 5. **If your tool relates to another third party brand, use it only as a | |
| descriptor**: For example, use "Bazel migrator for Cmake" instead of | |
| "Cmake Bazel migrator". | |
| These guidelines also apply to the GitHub repository URL. Reading the repository | |
| URL should help people understand what the tool does. Of course, the repository | |
| name can be shorter and must use dashes instead of spaces and lower case letters. | |
| Examples of good names: | |
| * *Bazel for Eclipse*: Users will understand that if they want to use Bazel | |
| with Eclipse, this is where they should be looking. It uses a third party brand | |
| as a descriptor. | |
| * *Bazel buildfarm*: A "buildfarm" is a | |
| [compile farm](https://en.wikipedia.org/wiki/Compile_farm). Users | |
| will understand that this project relates to building on servers. | |
| Examples of names to avoid: | |
| * *Ocimum*: The [scientific name of basil](https://en.wikipedia.org/wiki/Ocimum) | |
| does not relate enough to the Bazel project. | |
| * *Bazelizer*: The tool behind this name could do a lot of things, this name is | |
| not descriptive enough. | |
| Note that these recommendations are aligned with the | |
| [guidelines](https://opensource.google.com/docs/releasing/preparing/#name) | |
| Google uses when open sourcing a project. |