vikunja/docs/content/doc/development/development.md

58 lines
1.9 KiB
Markdown
Raw Normal View History

2019-02-17 19:53:04 +00:00
---
date: "2019-02-12:00:00+02:00"
title: "Development"
toc: true
draft: false
type: "doc"
menu:
sidebar:
parent: "development"
name: "Development"
---
# Development
2021-11-13 17:20:23 +00:00
{{< table_of_contents >}}
## General
2019-02-17 19:53:04 +00:00
2021-05-17 10:53:12 +00:00
To contribute to Vikunja, fork the project and work on the main branch.
2021-11-13 17:20:23 +00:00
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](https://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.
2019-02-17 19:53:04 +00:00
2020-09-03 15:34:44 +00:00
A lot of developing tasks are automated using a Magefile, so make sure to [take a look at it]({{< ref "mage.md">}}).
2021-11-13 17:20:23 +00:00
Make sure to check the other doc articles for specific development tasks like [testing]({{< ref "test.md">}}),
2021-07-13 22:25:12 +00:00
[database migrations]({{< ref "db-migrations.md" >}}) and the [project structure]({{< ref "structure.md" >}}).
2021-11-13 17:20:23 +00:00
## Frontend requirements
The code for the frontend is located at [code.vikunja.io/frontend](https://code.vikunja.io/frontend).
More instructions can be found in the repo's README.
2021-11-13 17:20:23 +00:00
You need to have [pnpm](https://pnpm.io/) and nodejs in version 16 or 18 installed.
2021-11-13 17:20:23 +00:00
## 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](https://www.conventionalcommits.org/en/v1.0.0/) because they greatly simplify
generating release notes.
It is not required to use them when creating a PR, but appreciated.