Install instructions for developers#
In order to develop for ezmsg, you need to set up a development environment. This involves installing the necessary dependencies and tools. Additionally, the GitHub repository of ezmsg is protected; you will need to fork the repository and set up ssh keys to access it. Any work can then be done in your forked repository, and the submitted via a Pull Request to the dev branch of the main repository.
Note
It is recommended to use uv to manage the development environment. There are alternatives to this including poetry, but uv is the method used by the ezmsg development team and explained below.
Prerequisites#
Please ensure that your GitHub account is identifiable to you - either the username or email address associated with your account should include your first and last names.
Setup#
Fork the ezmsg repository.
Clone your forked repository to your local machine using ssh.
Change directory to your local ezmsg clone (
$ cd path/to/your/ezmsg)Run
$ uv sync --all-groupsto install all dependencies.
We have tried to keep external dependencies to a minimum. However, for development purposes, we do have some additional dependencies for testing and documentation generation. The --all-extras flag ensures these are also installed. We have not included any pre-commit hooks by default, but expect all code to conform to the style guidelines outlined in the developer standard documentation. uv has both a linter and formatter built-in, so you can use these to ensure your code meets the style guidelines.
Note
the uv sync command will create a virtual environment in the .venv folder in the root of the ezmsg repository. It will then install the dependencies specified in the pyproject.toml file into this virtual environment.