\hypertarget{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22605}{}\doxysection{Questions}\label{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22605}
Please first read through the \href{https://github.com/angular/protractor/blob/master/docs/faq.md}{\texttt{ FAQ}}.

Please ask questions on \href{http://stackoverflow.com/questions/tagged/protractor}{\texttt{ Stack\+Overflow}}, \href{https://groups.google.com/forum/?fromgroups\#!forum/angular}{\texttt{ Google Group discussion list}}, or \href{https://gitter.im/angular/protractor}{\texttt{ Gitter}}.

Any questions posted to Protractor\textquotesingle{}s Github Issues will be closed with this note\+:

Please direct general support questions like this one to an appropriate support channel, see \href{https://github.com/angular/protractor/blob/master/CONTRIBUTING.md\#questions}{\texttt{ https\+://github.\+com/angular/protractor/blob/master/\+CONTRIBUTING.\+md\#questions}}

Thank you!\hypertarget{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22606}{}\doxysection{Issues}\label{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22606}
If you have a bug or feature request, please file an issue. Before submitting an issue, please search the issue archive to help reduce duplicates, and read the \href{https://github.com/angular/protractor/blob/master/docs/faq.md}{\texttt{ FAQ}}.

Try running with troubleshooting messages ({\ttfamily protractor -\/-\/troubleshoot}) against your configuration to make sure that there is not an error with your setup.

When submitting an issue, please include a reproducible case that we can actually run. Protractor has a test Angular application available at {\ttfamily \href{http://www.protractortest.org/testapp}{\texttt{ http\+://www.\+protractortest.\+org/testapp}}} which you can use for the reproducible test case. If there\textquotesingle{}s an error, please include the error text.

Please format code and markup in your issue using \href{https://help.github.com/articles/github-flavored-markdown}{\texttt{ github markdown}}.\hypertarget{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22607}{}\doxysection{Contributing to Source Code (\+Pull Requests)}\label{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22607}
Loosely, follow the \href{https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md}{\texttt{ Angular contribution rules}}.


\begin{DoxyItemize}
\item If your PR changes any behavior or fixes an issue, it should have an associated test.
\item New features should be general and as simple as possible.
\item Breaking changes should be avoided if possible.
\item All pull requests require review. No PR will be merged without a comment from a team member stating LGTM (Looks good to me).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22608}{}\doxysubsection{Protractor specific rules}\label{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22608}

\begin{DoxyItemize}
\item Java\+Script style should generally follow the \href{https://google.github.io/styleguide/javascriptguide.xml}{\texttt{ Google JS style guide}}.
\item Wrap code at 80 chars.
\item Document public methods with jsdoc.
\item Be consistent with the code around you!
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22609}{}\doxysubsection{Commit Messages}\label{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22609}
Please write meaningful commit messages -\/ they are used to generate the changelog, so the commit message should tell a user everything they need to know about a commit. Protractor follows Angular\+JS\textquotesingle{}s \href{https://docs.google.com/a/google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit\#heading=h.z8a3t6ehl060}{\texttt{ commit message format}}.

In summary, this style is \begin{DoxyVerb}<type>(<scope>): <subject>
<BLANK LINE>
<body>
\end{DoxyVerb}
 Where {\ttfamily $<$type$>$} is one of \mbox{[}feat, fix, docs, refactor, test, chore, deps\mbox{]} and {\ttfamily $<$scope$>$} is a quick descriptor of the location of the change, such as cli, client\+Side\+Scripts, element.\hypertarget{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22610}{}\doxysubsection{Testing your changes}\label{md_sfcode_node_modules_protractor_CONTRIBUTING_autotoc_md22610}
Test your changes on your machine by running {\ttfamily npm start} to start up the test application, then {\ttfamily npm test} to run the test suite. This assumes you have a Selenium Server running at localhost\+:4444.

When you submit a PR, tests will also be run on the Continuous Integration environment through Travis. If your tests fail on Travis, take a look at the logs -\/ if the failures are known flakes in Internet Explorer or Safari you can ignore them, but otherwise Travis should pass. 