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 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 Skylark rules
See the “Deploying new Skylark rules” section in the docs.
Naming other Bazel 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:
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.
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.
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.
It is not a requirement to use a floral or food theme: Bazel evokes basil, the plant. You do not need to look for a name that is a plant, food or that relates to “basil.”
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. Users will understand that this project relates to building on servers.
Examples of names to avoid:
- Ocimum: The scientific name of basil 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 Google uses when open sourcing a project.