Welcome to axem's contribution guide. We would like to work together with anyone and everyone in a fun, enjoyable, and educational way. To achieve this please follow our CoC.
All contributions, including new features, bug fixes, new docs, graphics, and more are welcome. Please create new issues for bugs, feature ideas, or any improvements.
Reach out to us at
- Discussions
- Discord
- Send a DM on GitHub or an email to info@axemsoutions.io
Before contributing don't forget to read the DEM's documentation or try the tutorial for hand-on experience.
- Select 'New issue'
- Select issue type
- Write a small description as the Title
- Fill the issue template
- Set extra labels if needed
- Set the project to DEM Open and status to 🆕 New
- Submit the new issue
- Select an issue which has the status 🔖 Ready to implement under the issue's project settings
- Discuss the selected issue with the maintainers -> you can reach out at the Discussions or Discord
- Set the selected issue's status to 🏗️ In progress when you start to work on it
- Fork the DEM, if you haven't done it already
- Create a new feature branch for your modifications (you can name it as you wish, but our best practice is to name it after the issue ID)
- Create the implementation
- Open a PR from your fork to the upstream main and fill the PR template
- Set the persea group as reviewer, then set the issue's status to 👀 In review
- Fix the findings if there is any
- The reviewer who approved the PR can set the status to ✅ Done
- The branch can be merged to the upstream main
You can use DEM as a Python module. To do this, you must add the -m
flag to your command.
For example:
python -m dem list --local --env
We use poetry to manage dependencies and create a virtual environment for DEM. You should enter the preconfigured virtual environment to ensure that you use the correct version of the required modules.
First, install the environment with the required dependencies:
poetry install
Enter the virtual environment:
poetry shell
The recommended way to test your modifications is to use the poetry shell.
Run unit tests:
pytest tests
Run unit tests with coverage information as HTML:
pytest --cov-report=html --cov=dem tests/
If you'd like the coverage results right in your terminal:
pytest --cov-report term-missing --cov=dem tests/