Table of contents
To contribute to Vikunja, fork the project and work on the main branch. Once you feel like your changes are ready, open a PR in the respective repo. A maintainer will take a look and give you feedback. Once everyone is happy, the PR gets merged and released.
If you plan to do a bigger change, it is better to open an issue for discussion first.
The code for the api is located at code.vikunja.io/api.
We use go modules to manage third-party libraries for Vikunja, so you’ll need at least go
1.17 to use these.
A lot of developing tasks are automated using a Magefile, so make sure to take a look at it.
Make sure to check the other doc articles for specific development tasks like testing, database migrations and the project structure.
Frontend requirements #
The code for the frontend is located at code.vikunja.io/frontend. More instructions can be found in the repo’s README.
You need to have pnpm and nodejs in version 16 or 18 installed.
Git flow #
main branch is the latest and bleeding edge branch with all changes. Unstable releases are automatically created from this branch.
A release gets tagged from the main branch with the version name as tag name.
Backports and point-releases should go to a
release/version branch, based on the tag they are building on top of.
Conventional Commits #
We’re using Conventional Commits because they greatly simplify generating release notes.
It is not required to use them when creating a PR, but appreciated.