Development Information

Development Source

calcurse is released under the BSD license, so feel free to download, modify and redistribute it.

The whole source code currently is under version control using Git as VCS. You can either view recent changes and stats, browse the source tree, and download snapshot tarballs through our cgit web interface or retrieve a local copy of the development tree using:

$ git clone git://git.calcurse.org/calcurse.git

That creates a new directory calcurse containing the cloned repository. A graphical view of recent development can be requested using the gitk(1) frontend:

$ gitk --all

To update your existing local working copy to the current point of development, run:

$ git pull origin master

If you'd like to follow the maintenance branch (maint) as well, setting up a tracking branch is recommended:

$ git branch -t maint origin/maint

Subsequently, just use git pull which will sync both master and maint branches.

For further documentation and tutorials, check the Git website.

Building calcurse

To build calcurse from development sources, run:

$ ./autogen.sh
$ ./configure
$ make

Submitting Patches

Patches are always appreciated and should be sent to misc at calcurse dot org for discussion or to bugs at calcurse dot org if they are mere bug fixes. You will need to subscribe to the mailing lists before submitting. Signed-off patches produced by git-format-patch(1) and submitted as an inline attachments via git-send-email(1) are preferred.

If you've never used Git before, try to stick to following workflow:

  1. Whenever you want to work on a new feature, do it in a separate branch. Having custom commits in the master branch might cause conflicts when pulling in new changes. Creating a new development branch before doing any changes is good practice. And even before doing that, you should update the master branch of your working copy:

    $ git checkout master
    $ git pull origin master
    $ git checkout -b foo
    

    Maintenance patches such as bug fixes and stability improvements should be based on the maint branch instead:

    $ git checkout maint
    $ git pull origin maint
    $ git checkout -b foo
    
  2. Edit files in the source tree and test your changes. When everything seems to be fine, you're ready to commit to your local working tree:

    $ git commit -as
    

    If you added or removed files, you probaly need to run git add or git rm before committing so that Git is aware of them.

    If you work on more than a small bug fix, you should split your work into several commits. Try to keep your commits small and focused. Smaller patches are way easier to review and have a better chance of being included in mainline development. Also try to make your commit messages brief and descriptive.

  3. As soon as you finished all your work, test everything again and create a patch series:

    $ git format-patch master
    

    Replace master by maint if your development branch is based on the maintenance branch:

    $ git format-patch maint
    
  4. Send your patch series to one of the mailing lists:

    $ git send-email *.patch
    
  5. Optionally switch back to any other branch and delete your working branch if you don't need it anymore:

    $ git checkout master
    $ git branch -D foo
    

In case you are interested in more details and features of Git, check the Git website. Version Control with Git by Jon Loeliger also is a good book to start with.

Getting Started

If you are interested in contributing to calcurse development, the following steps are good to start with:

Translations

We currently use Transifex to manage calcurse translations. Following languages are available:


To find out more about our translation workflow, check the calcurse i18n section in the manual. Translation contributions are highly appreciated!

Statistics

The following graphs have been generated using pepper's built-in reports:

The reports are currently regenerated manually and therefore might be slightly out of date at times.