🎉 Thank you for considering contributing to Radicalbit AI Monitoring 🎉!
We welcome contributions from developers like you. To ensure a smooth contribution process, please follow the guidelines below.
This project follows the conventional commits specification.
Steps to follow:
-
Install pre-commit because we'll use it as our main linter. It's completely plugin-based, you con follow these instructions to install it onto your machine.
-
Install and configure the conventional-pre-commit plugin that allows to use the linter to enforce the usage of conventional commits.
This repo is already provided with a proper configuration of the plugin, see setup instructions here
In this section we will show how to set up the development environment for the project.
For more info about the development of the ui and api, see ui and api README.md files.
Make sure you have Docker and Docker Compose installed on your machine.
We use docker compose watch as our development environment, so be sure docker compose 2.22.0
or greater is installed.
Run docker compose --profile ui up --watch
to run the app in DEV mode.
By running the above command the following containers are started:
- ui: nginx container with the ui built using yarn (see Dockerfile)
- api: FastAPI application server (see Dockerfile)
- migrations: alembic container to manage database migrations (see Dockerfile). For more info on how to create new migrations please refer to api README.md file
- k3s: K3s cluster where spark jobs are executed
- postgres: PostgreSQL Database
- minio: s3 compatible object storage
- adminer: to interact with the database if needed
- createbucket: container to create the default bucket in minio
Once all the containers are up & running you can make any changes to the api and/or the ui folders and docker compose will restart all the modified containers.
We use Ruff as our main python linter and formatter, and ESLint for Javascript code.
If you find any issues or bugs, please open a GitHub issue with a detailed description of the problem and steps to reproduce it.
- Fork the repository and create a new branch for your feature or bug fix
- Make your changes and ensure all tests pass
- Open a pull request with a clear title and description
- Be ready to address any feedback or comments during the code review process
Notes on Pull Requests:
- We check that all pull request titles follow the conventional commit format.
- All docker image build on pull request events are disabled by default. You can run the build if needed by commenting on the pull request with a command (available commands are:
/build-api
,/build-spark
,/build-ui
,/build-migrations
,/build-all
).