vikunja-api/docs/content/doc/development/development.md
Dominik Pschenitschni 36265fcedf feat(docs): document pnpm (#1251)
Co-authored-by: Dominik Pschenitschni <mail@celement.de>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1251
Co-authored-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
Co-committed-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
2022-10-01 15:30:20 +00:00

1.9 KiB

date title toc draft type menu
2022-09-21:00:00+02:00 Development true false doc
sidebar
parent name
development Development

Development

{{< table_of_contents >}}

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]({{< ref "mage.md">}}).

Make sure to check the other doc articles for specific development tasks like [testing]({{< ref "test.md">}}), [database migrations]({{< ref "db-migrations.md" >}}) and the [project structure]({{< ref "structure.md" >}}).

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.