.. _mailing:

Open Source Mailing List Collaboration Tips
###########################################

Below are some recommended guidelines for using the Zephyr Project's mailing list.
When submitting feedback and contribution ideas to the listserv, please follow
these guidelines:

* Use the mailing list as much as possible.

* Learn the rules.

* Read the archives when in doubt.

* Choose a meaningful subject line.

* Ask questions and write to the subject matter experts directly and
  CC the mailing list.

* Before doing any large-scale code changes, send a design document with
  the proposed changes to the mailing list. This will prevent wasted
  time implementing a solution that the community may reject.

* Write briefly and to the point, yet give enough context for someone
  to respond without re-creating your thought process.

* Be persistent, but measured, if you are not getting a response.

* Write a separate email for each work item. If work items are connected,
  explicity state so in each email.

* Don't rehash old issues.

* Reply only when you're offering new information or a new perspective;
  avoid "me-too" posts.

* When replying in-line to message that was CC'ed to the list, trim out
  unnecessary context between replies and at the end of your message.

* Refrain from using capital letters to emphasize a point.

* Check your line length; keep it under 72-76 characters.

References
**********

* General info:

   + http://linux.sgms-centre.com/misc/netiquette.php

   + http://www.ietf.org/rfc/rfc1855.txt

   + http://www.infradead.org/~dwmw2/email.html

   + http://www.arm.linux.org.uk/mailinglists/etiquette.php #e3

   + http://lifehacker.com/5473859/basic-etiquette-for-email-lists-and-forums

* Why top posting is considered harmful:

   + https://lkml.org/lkml/2005/1/11/111

   + http://www.dickgaughan.co.uk/usenet/guide/faq08-topp.html

   + http://www.mail-archive.com/brin-l@coollist.com/msg00178.html