The hooks can return a single class or a list of classes.
Every class must define an attribute called PLUGIN_NAME that users will select when they wish to use the plugin. So in the example above, the class might be defined like:
It is recommended that plugin project names are prefixed with hatch-. For example, if you wanted to make a plugin that provides some functionality for a product named foo you might do:
You'll need to define your project as a Python plugin for Hatch:
[project.entry-points.hatch]foo="pkg.hooks"
The name of the plugin should be the project name (excluding any hatch- prefix) and the path should represent the module that contains the registration hooks.