This document explains the workflow of a typical BEdita contribution.

If you are interested to help BEdita to grow and become always better, here you can find some simple rules you should follow.

Reporting a bug

BEdita bug tracker is hosted at Github. You can use it to submit a bug issue and/or a feature you would see in a future version of BEdita.

Before submitting a bug

Submitting a bug

If your problem seems a bug then you should open an issue on the official bug tracker paying attention to:

  • fill the title with a clear and short description of the issue
  • describe the steps to reproduce the bug
  • give us your enviroment information as OS, BEdita version, PHP version, etc... 

Code contribution

BEdita code is hosted at Github so the best way to contribute code is through pull requests. BEdita is under Git DVCS so you should install and configure it and Github as first step. You can find an easy guide on Github. If you are new to Git, we recommend you to read the excellent and free ProGit book.

After you configure you have to fork the BEdita repository by clicking the Fork button.
Then clone your fork locally:

git clone

Add the upstream repository as remote

cd bedita
git remote add upstream

Working on a patch

Each time you want to work on a bug, feature or enhancement create a topic branch.
Choose the right branch on which you would work. If you work on a bug fix for the current stable release, you should use the master branch, If you want to fix a bug in some other branch as 3.1-ulmus you should switch to that branch, for example

git checkout -t upstream/3.1-ulmus

When you are on the right branch you create a topic branch for the issue you want to work on, so assuming to use master branch

git checkout -b YOUR-TOPIC-BRANCH upstream/master

a good name for the topic branch is the number of the related issue, for example issue-123.

You are ready to work on YOUR-TOPIC-BRANCH making commits of logical units and writing clear commit messages.

Submitting a pull request

Once you finished your work you are ready to ask to merge the changes in BEdita, so first you have to update your branch:

git checkout master
git fetch upstream
git merge upstream/master
git checkout YOUR-TOPIC-BRANCH
git rebase master

This will fetch and merge in any changes that have happened in BEdita since you started. It will then rebase your changes on top of the current code to maintain a more clear and compact history.
Sometimes you might encounter a conflict during the rebase. In this case you can see which files are conflicted with git status. Resolve each conflict, and then continue the rebase:

git add  filename # do this for each conflicted file
git rebase --continue

Now you can push YOUR-TOPIC-BRANCH to your forked repository

git push origin YOUR-TOPIC-BRANCH

Finally you can submit a pull request using YOUR-TOPIC-BRANCH on the relative BEdita branch. Have a look at Github pull request documentation.

Remember that every patch pushed to BEdita repository will be released following the license that the relative branch provides (LGPL for BEdita 3.2 and AGPL for BEdita 3.1).