CONTRIBUTING.rst 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. .. -*- coding: utf-8 -*-
  2. .. vim: spelllang=en ts=2 expandtab:
  3. .. _OfflineIMAP: https://github.com/OfflineIMAP/offlineimap
  4. .. _Github: https://github.com/OfflineIMAP/offlineimap
  5. .. _repository: git://github.com/OfflineIMAP/offlineimap.git
  6. .. _maintainers: https://github.com/OfflineIMAP/offlineimap/blob/next/MAINTAINERS.rst
  7. .. _mailing list: http://lists.alioth.debian.org/mailman/listinfo/offlineimap-project
  8. .. _Developer's Certificate of Origin: https://github.com/OfflineIMAP/offlineimap/blob/next/docs/doc-src/dco.rst
  9. .. _Community's website: http://www.offlineimap.org
  10. .. _APIs in OfflineIMAP: http://www.offlineimap.org/documentation.html#available-apis
  11. .. _documentation: http://www.offlineimap.org/documentation.html
  12. .. _Coding Guidelines: http://www.offlineimap.org/doc/CodingGuidelines.html
  13. .. _Know the status of your patches: http://www.offlineimap.org/doc/GitAdvanced.html#know-the-status-of-your-patch-after-submission
  14. .. _How to fix a bug in open source software: https://opensource.com/life/16/8/how-get-bugs-fixed-open-source-software
  15. =================
  16. HOW TO CONTRIBUTE
  17. =================
  18. You'll find here the **basics** to contribute to OfflineIMAP_, addressed to
  19. users as well as learning or experienced developers to quickly provide
  20. contributions.
  21. **For more detailed documentation, see the** `Community's website`_.
  22. .. contents:: :depth: 3
  23. Submit issues
  24. =============
  25. Issues are welcome to both Github_ and the `mailing list`_, at your own
  26. convenience. Provide the following information:
  27. - system/distribution (with version)
  28. - offlineimap version (`offlineimap -V`)
  29. - Python version
  30. - server name or domain
  31. - CLI options
  32. - Configuration file (offlineimaprc)
  33. - pythonfile (if any)
  34. - Logs, error
  35. - Steps to reproduce the error
  36. Worth the read: `How to fix a bug in open source software`_.
  37. You might help closing some issues, too. :-)
  38. For the imaptients
  39. ==================
  40. - `Coding Guidelines`_
  41. - `APIs in OfflineIMAP`_
  42. - `Know the status of your patches`_ after submission
  43. - All the `documentation`_
  44. Community
  45. =========
  46. All contributors to OfflineIMAP_ are benevolent volunteers. This makes hacking
  47. to OfflineIMAP_ **fun and open**.
  48. Thanks to Python, almost every developer can quickly become productive. Students
  49. and novices are welcome. Third-parties patches are essential and proved to be a
  50. wonderful source of changes for both fixes and new features.
  51. OfflineIMAP_ is entirely written in Python, works on IMAP and source code is
  52. tracked with Git.
  53. *It is expected that most contributors don't have skills to all of these areas.*
  54. That's why the best thing you could do for you, is to ask us about any
  55. difficulty or question raising in your mind. We actually do our best to help new
  56. comers. **We've all started like this.**
  57. - The official repository_ is maintained by the core team maintainers_.
  58. - The `mailing list`_ is where all the exciting things happen.
  59. Getting started
  60. ===============
  61. Occasional contributors
  62. -----------------------
  63. * Clone the official repository_.
  64. Regular contributors
  65. --------------------
  66. * Create an account and login to Github.
  67. * Fork the official repository_.
  68. * Clone your own fork to your local workspace.
  69. * Add a reference to your fork (once)::
  70. $ git remote add myfork https://github.com/<your_Github_account>/offlineimap.git
  71. * Regularly fetch the changes applied by the maintainers::
  72. $ git fetch origin
  73. $ git checkout master
  74. $ git merge offlineimap/master
  75. $ git checkout next
  76. $ git merge offlineimap/next
  77. Making changes (all contributors)
  78. ---------------------------------
  79. 1. Create your own topic branch off of ``next`` (recently updated) via::
  80. $ git checkout -b my_topic next
  81. 2. Check for unnecessary whitespaces with ``git diff --check`` before committing.
  82. 3. Commit your changes into logical/atomic commits. **Sign-off your work** to
  83. confirm you agree with the `Developer's Certificate of Origin`_.
  84. 4. Write a good *commit message* about **WHY** this patch (take samples from
  85. the ``git log``).
  86. Learn more
  87. ==========
  88. There is already a lot of documentation. Here's where you might want to look
  89. first:
  90. - The directory ``offlineimap/docs`` has all kind of additional documentation
  91. (man pages, RFCs).
  92. - The file ``offlineimap.conf`` allows to know all the supported features.
  93. - The file ``TODO.rst`` express code changes we'd like and current *Work In
  94. Progress* (WIP).