.. _help:

.. include:: /migration/deprecation.inc

##############
Help with NaCl
##############

Check the documentation resources below for help with common issues and
problems. For additional questions, reach out to the Native Client
community in the forums below. You can also :ref:`report new issues
<report_issue>` using the Native Client issue tracker.

Documentation
=============

* :doc:`Release Notes <sdk/release-notes>`.
* :doc:`FAQ <faq>`.

.. TODO: Fix the following talk link once ReST-ified.
.. * :doc:`Talks, Demos, and Publications <community/talks>` (see especially Colt McAnlis' talk on porting C++ games to Native Client).

Forums
======

* For new Native Client developers: `Stack Overflow
  <http://stackoverflow.com/questions/tagged/google-nativeclient>`_ is a
  great resource --- check this forum first for answers to your
  questions.
* For in-depth technical discussions: `native-client-discuss mailing
  list <https://groups.google.com/group/native-client-discuss>`_ is a good
  group for detailed technical discussions about bugs and other Native Client
  issues.
* For announcements, follow the `native-client-announce mailing list
  <http://groups.google.com/group/native-client-announce>`_.
* For 140 character goodness follow `@nativeclient
  <https://twitter.com/nativeclient>`_ on Twitter.

.. _report_issue:

Issue tracker
=============

To report a new issue:

#. Go to the `Native Client issue tracker
   <https://code.google.com/p/nativeclient/issues>`_ for a Native Client
   bug, or the `Chromium issue tracker
   <https://code.google.com/p/chromium/issues>`_ for a Chrome/Chromium bug.
#. Before you report an issue, search to see if your issue has already
   been reported. You can add a comment to an existing issue if you have
   additional information.
#. To report a new issue, fill out the Summary and Description fields on
   the issue form and click the "Submit issue" button. You can report:

   * A `Native Client defect
     <https://code.google.com/p/nativeclient/issues/entry?template=Defect%20report>`_.
   * A `Native Client security issue
     <https://code.google.com/p/nativeclient/issues/entry?template=Security%20Bug>`_
     (only visible to the security team).
   * A `Native Client + Chrome integration issue
     <https://code.google.com/p/chromium/issues/entry?template=NaCl%20Issue>`_.
   * A `Native Client + Chrome integration security issue
     <https://code.google.com/p/chromium/issues/entry?template=Security%20Bug>`_
     (only visible to the security team).
