Contribution
Prerequisites
- Read docs README.md in /backend and /frontend folders, or in library repository
- Run both backend and frontend following the instructions in their respective README.md files (for development)
- Read this file till the end
- Before making lar change, please message Rostislav Dugin via Telegram (@rostislav_dugin) and confirm priority. It is possible that we already have something in the works, it is not needed or it’s not project priority.
How to create a pull request?
We use gitflow approach.
- Create a new branch from main
- Make changes
- Create a pull request to main
- Wait for review
- Merge pull request
Commits should be named in the following format depending on the type of change:
FEATURE (area): What was done
FIX (area): What was fixed
REFACTOR (area): What was refactored
To see examples, look at commit history in main branch.
Branches should be named in the following format:
feature/what_was_done
fix/what_was_fixed
refactor/what_was_refactored
Example:
feature/add_support_of_kubernetes_helm
fix/make_healthcheck_optional
refactor/refactor_navbar
Before any commit, make sure:
- You created critical tests for your changes
make lint
is passing (for backend) andnpm run lint
is passing (for frontend)- All tests are passing
- Project is building successfully
- All your commits should be squashed into one commit with proper message (or to meaningful parts)
- Code do really refactored and production ready
- You have one single PR per one feature (at least, if features not connected)
Automated versioning
This project uses automated versioning based on commit messages:
- FEATURE (area): Creates a minor version bump (e.g., 1.0.0 → 1.1.0)
- FIX (area): Creates a patch version bump (e.g., 1.0.0 → 1.0.1)
- REFACTOR (area): Creates a patch version bump (e.g., 1.0.0 → 1.0.1)
- BREAKING CHANGE: Creates a major version bump (e.g., 1.0.0 → 2.0.0)
The system automatically:
- Analyzes commits since the last release
- Determines the appropriate version bump
- Generates a changelog grouped by area (frontend/backend/etc.)
- Creates GitHub releases with detailed release notes
- Updates package.json version numbers
To skip automated release (for documentation updates, etc.), add [skip-release]
to your commit message.
Docs
If you need to add some explanation, do it in appropriate place in the code. Or in the /docs folder if it is something general. For charts, use Mermaid.
What to do after change?
- Add docs to the main website
- Add docs to the library repository
- Update sitemap.xml and llms.txt (if you change website)
Last updated on