Cisco Network Elements support a rich set of features to make networks robust, efficient and secure. The GitHub project cisco-network-puppet-module defines a set of Puppet resource types and providers to manage the network element. Similarly, the GitHub project cisco-network-chef-cookbook defines a set of Chef resources and providers for network element management. The providers defined in these projects leverage a common set of Ruby API Objects defined in this project. This object set is expected to grow with contributions from Cisco, Cisco-Partners and third-party alike. Contributions to this project are welcome. To ensure code quality, contributors will be requested to follow few guidelines.
- Create a GitHub account
- Please note: For Cisco Nexus 9k platforms, a virtual Nexus N9000 may be helpful for development and testing. Users with a valid cisco.com user ID can download the software on CCO. If you do not have a cisco.com user ID please register for one at https://tools.cisco.com/IDREG/guestRegistration
-
Fork and clone the repository
- Run the
bin/git/update-hooks
script to install our recommended Git hooks into your local repository. (Note: some of the hooks require additional tools, such as therubocop
ruby gem, be installed and available in your$PATH
. See Ruby Prerequisites for a list of recommended ruby gems.) - Pull a branch under the "develop" branch for your changes.
- Follow all guidelines documented in README-develop-node_utils-APIs
- Make changes in your branch.
- Run the
-
Testing
- Create a minitest script for any new APIs or new functionality
- Run all the tests to ensure there was no collateral damage to existing code. See README-test-execution for details.
-
Committing
- Check for unnecessary whitespace with
git diff --check
before committing. - Run
rubocop
against all changed files. See https://rubygems.org/gems/rubocop - Make sure your commit messages clearly describe the problem you are trying to solve and the proposed solution.
- Be sure to update
CHANGELOG.md
with a note about what you have added or fixed.
- Check for unnecessary whitespace with
All contributions submitted to this project are voluntary and subject to the terms of the Apache 2.0 license
- Submit a pull request to the repository
- Include output of all added or modified minitest scripts.
- A core team consisting of Cisco and Cisco-Partner employees will review the Pull Request and provide feedback.
- After feedback has been given we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity.
- All code commits must be associated with your github account and email address. Before committing any code use the following commands to update your workspace with your credentials:
git config --global user.name "John Doe"
git config --global user.email [email protected]