Developer Guide
Project Setup
With git fork the project on GitHub if you want to contribute and clone this fork locally with
or directly clone the project into your desired location with
Change into the created directory with
Then run
or an equivalent package manager command to also install the development dependencies.
If you want to work on the logo, you will need to install the dependencies from the logo group:
Additionally, run the developer-setup.py for symlinking the shipped git hooks into your local repository:
This ensures that your code adheres to the project style. Alternatively, you could of course just create the symlinks yourself:
ln -sf ../../git/hooks/pre-commit .git/hooks/pre-commit
ln -sf ../../git/hooks/pre-merge-commit .git/hooks/pre-merge-commit
Orientation
- We use
rufffor linting and code formatting. - We use
git-cliffin the Keep a Changelog format for changelog drafting andmkdocsfor documentation. - This project ships both: The end-user facing code in
src/elva/appsand the developer-facing library insrc/elva. - We follow the GitHub flow for collaboration.
- The naming scheme is
MAJOR.MINORand depends on git tags. - The core idea is to combine the libraries
pycrdt,textualand networking libraries likewebsocketsto make useful apps for real-time collaboration.
Version Change Workflow
- Merge pull requests via GitHub's web UI.
-
Create a changelog draft with
git-cliff:This adds only unreleased, i.e. untagged, commit messages with the manually increased
<bumped-tag>. -
Edit the commit messages in
CHANGELOG.mdby hand. - On branch
main, commit and tag this new commit with<bumped-tag>(and perhaps an appropriate tag message as the release notes). - Push to
origin/main. - Build the package and upload it to PyPI.
- Create a new release on GitHub.
- Build and update the documentation website.