| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 | 
							- .. _contributing:
 
- ==============
 
-  Contributing
 
- ==============
 
- .. contents::
 
-     :local:
 
- .. _community-code-of-conduct:
 
- Community Code of Conduct
 
- =========================
 
- The goal is to maintain a diverse community that is pleasant for everyone.
 
- That is why we would greatly appreciate it if everyone contributing to and
 
- interacting with the community also followed this Code of Conduct.
 
- The Code of Conduct covers our behavior as members of the community,
 
- in any forum, mailing list, wiki, website, Internet relay chat (IRC), public
 
- meeting or private correspondence.
 
- The Code of Conduct is heavily based on the `Ubuntu Code of Conduct`_, and
 
- the `Pylons Code of Conduct`_.
 
- .. _`Ubuntu Code of Conduct`: http://www.ubuntu.com/community/conduct
 
- .. _`Pylons Code of Conduct`: http://docs.pylonshq.com/community/conduct.html
 
- Be considerate.
 
- ---------------
 
- Your work will be used by other people, and you in turn will depend on the
 
- work of others.  Any decision you take will affect users and colleagues, and
 
- we expect you to take those consequences into account when making decisions.
 
- Even if it's not obvious at the time, our contributions to Ubuntu will impact
 
- the work of others.  For example, changes to code, infrastructure, policy,
 
- documentation and translations during a release may negatively impact
 
- others work.
 
- Be respectful.
 
- --------------
 
- The Celery community and its members treat one another with respect.  Everyone
 
- can make a valuable contribution to Celery.  We may not always agree, but
 
- disagreement is no excuse for poor behavior and poor manners.  We might all
 
- experience some frustration now and then, but we cannot allow that frustration
 
- to turn into a personal attack.  It's important to remember that a community
 
- where people feel uncomfortable or threatened is not a productive one.  We
 
- expect members of the Celery community to be respectful when dealing with
 
- other contributors as well as with people outside the Celery project and with
 
- users of Celery.
 
- Be collaborative.
 
- -----------------
 
- Collaboration is central to Celery and to the larger free software community.
 
- We should always be open to collaboration.  Your work should be done
 
- transparently and patches from Celery should be given back to the community
 
- when they are made, not just when the distribution releases.  If you wish
 
- to work on new code for existing upstream projects, at least keep those
 
- projects informed of your ideas and progress.  It many not be possible to
 
- get consensus from upstream, or even from your colleagues about the correct
 
- implementation for an idea, so don't feel obliged to have that agreement
 
- before you begin, but at least keep the outside world informed of your work,
 
- and publish your work in a way that allows outsiders to test, discuss and
 
- contribute to your efforts.
 
- When you disagree, consult others.
 
- ----------------------------------
 
- Disagreements, both political and technical, happen all the time and
 
- the Celery community is no exception.  It is important that we resolve
 
- disagreements and differing views constructively and with the help of the
 
- community and community process.  If you really want to go a different
 
- way, then we encourage you to make a derivative distribution or alternate
 
- set of packages that still build on the work we've done to utilize as common
 
- of a core as possible.
 
- When you are unsure, ask for help.
 
- ----------------------------------
 
- Nobody knows everything, and nobody is expected to be perfect.  Asking
 
- questions avoids many problems down the road, and so questions are
 
- encouraged.  Those who are asked questions should be responsive and helpful.
 
- However, when asking a question, care must be taken to do so in an appropriate
 
- forum.
 
- Step down considerately.
 
- ------------------------
 
- Developers on every project come and go and Celery is no different.  When you
 
- leave or disengage from the project, in whole or in part, we ask that you do
 
- so in a way that minimizes disruption to the project.  This means you should
 
- tell people you are leaving and take the proper steps to ensure that others
 
- can pick up where you leave off.
 
- .. _reporting-bugs:
 
- Reporting a Bug
 
- ===============
 
- Bugs can always be described to the :ref:`mailing-list`, but the best
 
- way to report an issue and to ensure a timely response is to use the
 
- issue tracker.
 
- 1) Create a GitHub account.
 
- You need to `create a GitHub account`_ to be able to create new issues
 
- and participate in the discussion.
 
- .. _`create a GitHub account`: https://github.com/signup/free
 
- 2) Determine if your bug is really a bug.
 
- You should not file a bug if you are requesting support.  For that you can use
 
- the :ref:`mailing-list`, or :ref:`irc-channel`.
 
- 3) Make sure your bug hasn't already been reported.
 
- Search through the appropriate Issue tracker.  If a bug like yours was found,
 
- check if you have new information that could be reported to help
 
- the developers fix the bug.
 
- 4) Collect information about the bug.
 
- To have the best chance of having a bug fixed, we need to be able to easily
 
- reproduce the conditions that caused it.  Most of the time this information
 
- will be from a Python traceback message, though some bugs might be in design,
 
- spelling or other errors on the website/docs/code.
 
- If the error is from a Python traceback, include it in the bug report.
 
- We also need to know what platform you're running (Windows, OSX, Linux, etc),
 
- the version of your Python interpreter, and the version of Celery, and related
 
- packages that you were running when the bug occurred.
 
- 5) Submit the bug.
 
- By default `GitHub`_ will email you to let you know when new comments have
 
- been made on your bug. In the event you've turned this feature off, you
 
- should check back on occasion to ensure you don't miss any questions a
 
- developer trying to fix the bug might ask.
 
- .. _`GitHub`: http://github.com
 
- .. _issue-trackers:
 
- Issue Trackers
 
- --------------
 
- Bugs for a package in the Celery ecosystem should be reported to the relevant
 
- issue tracker.
 
- * Celery: http://github.com/ask/celery/issues/
 
- * Django-Celery: http://github.com/ask/django-celery/issues
 
- * Flask-Celery: http://github.com/ask/flask-celery/issues
 
- * Celery-Pylons: http://bitbucket.org/ianschenck/celery-pylons/issues
 
- * Kombu: http://github.com/ask/kombu/issues
 
- If you are unsure of the origin of the bug you can ask the
 
- :ref:`mailing-list`, or just use the Celery issue tracker.
 
- .. _coding-style:
 
- Coding Style
 
- ============
 
- You should probably be able to pick up the coding style
 
- from surrounding code, but it is a good idea to be aware of the
 
- following conventions.
 
- * All Python code must follow the `PEP-8`_ guidelines.
 
- `pep8.py`_ is an utility you can use to verify that your code
 
- is following the conventions.
 
- .. _`PEP-8`: http://www.python.org/dev/peps/pep-0008/
 
- .. _`pep8.py`: http://pypi.python.org/pypi/pep8
 
- * Docstrings must follow the `PEP-257`_ conventions, and use the following
 
-   style.
 
-     Do this:
 
-     .. code-block:: python
 
-         def method(self, arg):
 
-             """Short description.
 
-             More details.
 
-             """
 
-     or:
 
-     .. code-block:: python
 
-         def method(self, arg):
 
-             """Short description."""
 
-     but not this:
 
-     .. code-block:: python
 
-         def method(self, arg):
 
-             """
 
-             Short description.
 
-             """
 
- .. _`PEP-257`: http://www.python.org/dev/peps/pep-0257/
 
- * Lines should not exceed 78 columns.
 
- * Import order
 
-     * Python standard library (`import xxx`)
 
-     * Python standard library ('from xxx import`)
 
-     * Third party packages.
 
-     * Other modules from the current package.
 
-     or in case of code using Django:
 
-     * Python standard library (`import xxx`)
 
-     * Python standard library ('from xxx import`)
 
-     * Third party packages.
 
-     * Django packages.
 
-     * Other modules from the current package.
 
-     Within these sections imports should be sorted by name.
 
-     Example:
 
-     .. code-block:: python
 
-         import threading
 
-         import time
 
-         from collections import deque
 
-         from Queue import Queue, Empty
 
-         from celery.datastructures import TokenBucket
 
-         from celery.utils import timeutils
 
-         from celery.utils.compat import all, izip_longest, chain_from_iterable
 
- * Wildcard imports must not be used (`from xxx import *`).
 
 
  |