.. NOTE TO DOCS AUTHORS: keep this as short as humanly possible, or nobody will
   read it.

.. _help:

Asking for Help
###############

You can ask for help on a mailing list or on Slack. Please send bug reports and
feature requests to GitHub.

* **Mailing Lists**: users@lists.zephyrproject.org is usually the right list to
  ask for help. `Search archives and sign up here`_.
* **Slack**: Zephyr's workspace is https://zephyrproject.slack.com; you can
  register with this `Slack invite`_.
* **GitHub**: Use `GitHub issues`_ for bugs and feature requests.

How to Ask
**********

.. important::

   Please search this documentation and the mailing list archives first. Your
   question may have an answer there.

Don't just say "this isn't working" or ask "is this working?". Include as much
detail as you can about:

#. What you want to do
#. What you tried (commands you typed, etc.)
#. What happened (output of each command, etc.)

Use Copy/Paste
**************

Please **copy/paste text** instead of taking a picture or a screenshot of it.
Text includes source code, terminal commands, and their output.

Doing this makes it easier for people to help you, and also helps other users
search the archives.

When copy/pasting more than 5 lines of text into Slack, create a `snippet`_.

.. _Search archives and sign up here: https://lists.zephyrproject.org/g/users
.. _Slack invite: https://tinyurl.com/yarkuemx
.. _GitHub issues: https://github.com/zephyrproject-rtos/zephyr/issues
.. _snippet: https://get.slack.help/hc/en-us/articles/204145658-Create-a-snippet
