Skip to content
Snippets Groups Projects
Forked from gajim / gajim
1198 commits behind, 4 commits ahead of the upstream repository.
After you've reviewed these contribution guidelines, you'll be all set to contribute to this project.

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