Show Menu

Development #

General #

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.

API #

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 #

The 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.