============
Contributing
============

Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.

You can contribute in many ways:

Types of Contributions
----------------------

Report Bugs
~~~~~~~~~~~

Report bugs at https://github.com/ciscoucs/ucscsdk/issues.

If you are reporting a bug, please include:

* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.

Submitting pull requests to change the documentation or code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Changes can be proposed by sending a pull request (PR). A maintainer will
review the changes and provide feedback.

The pull request will be merged into the master branch after discussion.

Please make sure to run the tests and that the tests pass before submitting the
PR. Please keep in mind that some changes might not be merged if the
maintainers decide they can't be merged.

Please squash your commits to one commit per fix or feature. The resulting
commit should have a single meaningful message.

Commit message guidelines
~~~~~~~~~~~~~~~~~~~~~~~~~

The short summary should include the name of the directory or file affected by
the commit (e.g.: utils: added a new utility method to get status).

A longer description of what the commit does should start on the third line
when such a description is deemed necessary.

If you have trouble with the appropriate git commands to handle these
requirements, please let us know! We're happy to help.

Legal Stuff: Sign your work
~~~~~~~~~~~~~~~~~~~~~~~~~~~

You must sign off on your work by adding your signature at the end of the
commit message. Your signature certifies that you wrote the patch or otherwise
have the right to pass it on as an open-source patch.

If you set your user.name and user.email git configuration options, you can
sign your commits automatically with `git commit -s`.

    git config user.name "Joe Smith"

    git config user.email joe.smith@email.com

`git commit -s` should be used now to sign the commits automatically, instead of
git commit.

Submit Feedback
~~~~~~~~~~~~~~~

The best way to send feedback is to file an issue at https://github.com/ciscoucs/ucscsdk/issues.

If you are proposing a feature:

* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
  are welcome :)

