123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- .. -*- coding: utf-8 -*-
- .. vim: spelllang=en ts=2 expandtab:
- .. _OfflineIMAP: https://github.com/OfflineIMAP/offlineimap
- .. _Github: https://github.com/OfflineIMAP/offlineimap
- .. _repository: git://github.com/OfflineIMAP/offlineimap.git
- .. _maintainers: https://github.com/OfflineIMAP/offlineimap/blob/next/MAINTAINERS.rst
- .. _mailing list: http://lists.alioth.debian.org/mailman/listinfo/offlineimap-project
- .. _Developer's Certificate of Origin: https://github.com/OfflineIMAP/offlineimap/blob/next/docs/doc-src/dco.rst
- .. _Community's website: http://www.offlineimap.org
- .. _APIs in OfflineIMAP: http://www.offlineimap.org/documentation.html#available-apis
- .. _documentation: http://www.offlineimap.org/documentation.html
- .. _Coding Guidelines: http://www.offlineimap.org/doc/CodingGuidelines.html
- .. _Know the status of your patches: http://www.offlineimap.org/doc/GitAdvanced.html#know-the-status-of-your-patch-after-submission
- .. _How to fix a bug in open source software: https://opensource.com/life/16/8/how-get-bugs-fixed-open-source-software
- =================
- 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`_.
- .. contents:: :depth: 3
- Submit issues
- =============
- 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. :-)
- For the imaptients
- ==================
- - `Coding Guidelines`_
- - `APIs in OfflineIMAP`_
- - `Know the status of your patches`_ after submission
- - All the `documentation`_
- Community
- =========
- 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.
- Getting started
- ===============
- Occasional contributors
- -----------------------
- * Clone the official repository_.
- Regular contributors
- --------------------
- * 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
- Making changes (all contributors)
- ---------------------------------
- 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``).
- Learn more
- ==========
- 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).
|