Skip to content

Commit

Permalink
Merge pull request #302 from dbarrosop/develop
Browse files Browse the repository at this point in the history
Added contributing file
  • Loading branch information
dbarrosop committed Sep 13, 2016
2 parents bdfdddd + b36774a commit 86b239c
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.napoleon',
]

# Add any paths that contain templates here, relative to this directory.
Expand Down
52 changes: 52 additions & 0 deletions docs/contributing/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
Contributing
============

Contributing is very easy and you can do it many ways; documentation, bugfixes, new features, etc. Any sort of contribution is useful.

How to Contribute
-----------------

In order to speed up things we recommend you to follow the following rules when doing certain types of contributions. If something is not clear don't worry, just ask or send your contribution back and we will help you.

New Feature
-----------

New features are going to mostly be either a new method that is not yet defined or implementing a method already defined for a particular driver.

Proposing a new method
______________________

The best way to propose a new method is as follows to send a PR with the proposed method. That will probably spark some debate around the format. The PR will not only have to include the proposed method but some testing.

In addition, before merging we will want an implementation for any driver of your choice.

For example:
- `get_config proposal <https://github.com/napalm-automation/napalm-base/pull/69/files>`_ - That particular example had an issue that some had raised as a refernce but that's not mandatory. You can create an issue first but that's optional.
- `get_config implementation for EOS <https://github.com/napalm-automation/napalm-eos/pull/38/files>`_ - Before the PR was merged an implementation was provided as a proof of concept. This is mandatory. This PRs doesn't have to arrive at the same time as the previous one but it will be required. Note that the rules for "`Implementing an already defined method`_" apply to this PR.

Implementing an already defined method
______________________________________

Adding an already defined method to a driver has three very simple steps:

1. Implement the code.
2. Add necessary mocked data.
3. Enable the test and ensure it passes.

Again `get_config implementation for EOS <https://github.com/napalm-automation/napalm-eos/pull/38/files>`_ is a good example.


Bugfixes
--------

If you found a bug and know how to fix just contribute the bugfix. It might be interesting to provide a test to make sure we don't introduce the bug back in the future but this step is optional.

Documentation
-------------

Just do it! :)

Proposing a new driver
----------------------

This is a but more complex but completely doable. You can find more information `here <https://github.com/napalm-automation/napalm-skeleton>`_.
3 changes: 3 additions & 0 deletions docs/doc-requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
sphinx
sphinx-rtd-theme
sphinxcontrib-napoleon
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,5 @@ Documentation
support/index
cli
base
contributing/index
hackathons/index

0 comments on commit 86b239c

Please sign in to comment.