Skip to content

Latest commit

 

History

History
137 lines (94 loc) · 4.29 KB

CONTRIBUTING.rst

File metadata and controls

137 lines (94 loc) · 4.29 KB

HOW TO CONTRIBUTE

You'll find here the basics to contribute to OfflineIMAP, addressed to users as well as learning or experienced developers to quickly provide contributions.

For more detailed documentation, see the Community's website.

Issues are welcome to both Github and the mailing list, at your own convenience. Provide the following information: - system/distribution (with version) - offlineimap version (offlineimap -V) - Python version - server name or domain - CLI options - Configuration file (offlineimaprc) - pythonfile (if any) - Logs, error - Steps to reproduce the error

Worth the read: How to fix a bug in open source software.

You might help closing some issues, too. :-)

All contributors to OfflineIMAP are benevolent volunteers. This makes hacking to OfflineIMAP fun and open.

Thanks to Python, almost every developer can quickly become productive. Students and novices are welcome. Third-parties patches are essential and proved to be a wonderful source of changes for both fixes and new features.

OfflineIMAP is entirely written in Python, works on IMAP and source code is tracked with Git.

It is expected that most contributors don't have skills to all of these areas. That's why the best thing you could do for you, is to ask us about any difficulty or question raising in your mind. We actually do our best to help new comers. We've all started like this.

  • The official repository is maintained by the core team maintainers.
  • The mailing list is where all the exciting things happen.
  • Clone the official repository.
  • Create an account and login to Github.

  • Fork the official repository.

  • Clone your own fork to your local workspace.

  • Add a reference to your fork (once):

    $ git remote add myfork https://github.com/<your_Github_account>/offlineimap.git
    
  • Regularly fetch the changes applied by the maintainers:

    $ git fetch origin
    $ git checkout master
    $ git merge offlineimap/master
    $ git checkout next
    $ git merge offlineimap/next
    
  1. Create your own topic branch off of next (recently updated) via:

    $ git checkout -b my_topic next
    
  2. Check for unnecessary whitespaces with git diff --check before committing.

  3. Commit your changes into logical/atomic commits. Sign-off your work to confirm you agree with the Developer's Certificate of Origin.

  4. Write a good commit message about WHY this patch (take samples from the git log).

There is already a lot of documentation. Here's where you might want to look first:

  • The directory offlineimap/docs has all kind of additional documentation (man pages, RFCs).
  • The file offlineimap.conf allows to know all the supported features.
  • The file TODO.rst express code changes we'd like and current Work In Progress (WIP).