-
Philipp Hörist authoredPhilipp Hörist authored
Project
If you want to create a fork and use an external account (Github, Google) drop us a message at the Gajim support group chat so we can give you the necessary rights
Versioning
┌────── Major (Will not change unless we switch GTK version)
│ ┌───── Minor (Changes when new features are introduced
│ │ ┌──── Micro (Used for hotfixes and small changes)
│ │ │ ┌─── Only used while developing
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
1.3.3-dev1
Branches
Currently there is only one stable/development branch - master. The master branch must always be in a releasable state.
Development for bigger changes need to happen in feature branches or forks.
Previously the project maintained multiple versions of Gajim in different stable branches, but from Gajim 1.4.0 on this approach was changed to lower the maintenance burden and release faster.
Commit Messages
If you are not familiar with Git please read the HowTo
A good article regarding good commit messages
Every commit message must be prefixed with one of the following tags:
Changelog relevant
- feat (a new feature was added)
- fix (something was fixed)
- perf (performance related changes)
- imprv (improvements)
- change (existing functionality was changed)
Prefixes for development
- new (new code, but the end user will not notice)
- ci (ci related changes)
- cq (code quality changes e.g. formatting, typing, codestyle)
- cfix (code fixes which should not show up in the changelog)
- refactor (code was changed, but the end user will not notice)
- chore (reoccuring tasks which need to be done)
- release (only used for release commits)
- revert (used when a commit needs to be reverted)
- other
Further the first letter after the tag must be upper case
Example:
feat: New Button which does something
Use pre-commit
Execute the following inside the repository dir
$ pip install pre-commit
$ pre-commit install
Now pre-commit will run various checks before code can be committed.
To update to the newest versions
$ pre-commit autoupdate
Man Pages
Man pages are written in markdown and converted with pandoc
While developing this command is useful to preview the manpage
$ pandoc gajim.1.md -s -t man | /usr/bin/man -l -
To convert the markdown
$ pandoc gajim.1.md -s -t man -o gajim.1