Remove unnecessary puppet-lint config
[integration/packaging/puppet-opendaylight.git] / CONTRIBUTING.markdown
index f1526929f1e4b30bcc0182a6b2917d5d8321b1c0..65c5a07c19d5b8ce7dac52314e7b070f3cb9f07c 100644 (file)
@@ -4,17 +4,18 @@ We work to make contributing easy. Please let us know if you spot something
 we can do better.
 
 #### Table of Contents
+
 1. [Overview](#overview)
-1. [Communication](#communication)
-    * [Issues](#issues)
-    * [IRC channel](#irc-channel)
-1. [Patches](#patches)
-1. [Testing](#testing)
-    * [Test Dependencies](#test-dependencies)
-    * [Syntax and Style Tests](#syntax-and-style-tests)
-    * [Unit Tests](#unit-tests)
-    * [System Tests](#system-tests)
-    * [Tests in Continuous Integration](#tests-in-continuous-integration)
+2. [Communication](#communication)
+   - [Issues](#issues)
+   - [IRC channel](#irc-channel)
+3. [Patches](#patches)
+4. [Testing](#testing)
+   - [Test Dependencies](#test-dependencies)
+   - [Syntax and Style Tests](#syntax-and-style-tests)
+   - [Unit Tests](#unit-tests)
+   - [System Tests](#system-tests)
+   - [Tests in Continuous Integration](#tests-in-continuous-integration)
 
 ## Overview
 
@@ -64,31 +65,34 @@ of other key words][6]).
 
 ### IRC channel
 
-Feel free to join us at **#opendaylight-integration** on `chat.freenode.net`. You can also use web client for Freenode to join us at [webchat][19].
+Feel free to join us at **#opendaylight-integration** on `chat.freenode.net`.
+You can also use web client for Freenode to join us at [webchat][19].
 
 ## Patches
 
 Please use [Pull Requests][2] to submit patches.
 
 Basics of a pull request:
-* Use the GitHub web UI to fork our repo.
-* Clone your fork to your local system.
-* Make your changes.
-* Commit your changes, using a [good commit message][7] and referencing any
-applicable issues.
-* Push your commit.
-* Submit a pull request against the project, again using GitHub's web UI.
-* We'll give feedback and get your changed merged ASAP.
-* You contributed! [Thank you][8]!
+
+- Use the GitHub web UI to fork our repo.
+- Clone your fork to your local system.
+- Make your changes.
+- Commit your changes, using a [good commit message][7] and referencing any
+  applicable issues.
+- Push your commit.
+- Submit a pull request against the project, again using GitHub's web UI.
+- We'll give feedback and get your changed merged ASAP.
+- You contributed! [Thank you][8]!
 
 Other tips for submitting excellent pull requests:
-* If you'd like to make more than one logically distinct change, please submit
-them as different pull requests (if they don't depend on each other) or
-different commits in the same PR (if they do).
-* If your PR contains a number of commits that provide one logical change,
-please squash them using `git rebase`.
-* Please provide test coverage for your changes.
-* If applicable, please provide documentation updates to reflect your changes.
+
+- If you'd like to make more than one logically distinct change, please submit
+  them as different pull requests (if they don't depend on each other) or
+  different commits in the same PR (if they do).
+- If your PR contains a number of commits that provide one logical change,
+  please squash them using `git rebase`.
+- Please provide test coverage for your changes.
+- If applicable, please provide documentation updates to reflect your changes.
 
 ## Testing
 
@@ -98,11 +102,11 @@ The testing tools have a number of dependencies. We use [Bundler][9] to make
 installing them easy.
 
 ```
-[~/puppet-opendaylight]$ sudo yum install -y rubygems ruby-devel gcc-c++ zlib-devel \
-                                             patch redhat-rpm-config make
-[~/puppet-opendaylight]$ gem install bundler
-[~/puppet-opendaylight]$ bundle install
-[~/puppet-opendaylight]$ bundle update
+$ sudo yum install -y rubygems ruby-devel gcc-c++ zlib-devel patch \
+    redhat-rpm-config make
+$ gem install bundler
+$ bundle install
+$ bundle update
 ```
 
 ### Syntax and Style Tests
@@ -111,9 +115,9 @@ We use [Puppet Lint][10], [Puppet Syntax][11] and [metadata-json-lint][12] to
 validate the module's syntax and style.
 
 ```
-[~/puppet-opendaylight]$ bundle exec rake lint
-[~/puppet-opendaylight]$ bundle exec rake syntax
-[~/puppet-opendaylight]$ bundle exec rake metadata
+$ bundle exec rake lint
+$ bundle exec rake syntax
+$ bundle exec rake metadata
 ```
 
 ### Unit Tests
@@ -123,7 +127,7 @@ We use rspec-puppet to provide unit test coverage.
 To run the unit tests and generate a coverage report, use:
 
 ```
-[~/puppet-opendaylight]$ bundle exec rake spec
+$ bundle exec rake spec
 # Snip test output
 Finished in 10.08 seconds (files took 0.50776 seconds to load)
 537 examples, 0 failures
@@ -139,7 +143,7 @@ Note that we have a very large number of tests and 100% test coverage.
 To run the syntax, style and unit tests in one rake task (recommended), use:
 
 ```
-[~/puppet-opendaylight]$ bundle exec rake test
+$ bundle exec rake test
 ```
 
 ### System Tests
@@ -149,31 +153,34 @@ they don't do much more than checking that the code compiles to a given state.
 To verify that the Puppet module behaves as desired once applied to a real,
 running system, we use [Beaker][13].
 
-Beaker stands up virtual machines using Vagrant, applies the OpenDaylight
-Puppet module with various combinations of params and uses [Serverspec][14]
-to validate the resulting system state.
+Beaker stands up virtual machines or containers using Vagrant or Docker,
+applies the OpenDaylight Puppet module with various combinations of params
+and uses [Serverspec][14] to validate the resulting system state.
 
 Beaker depends on Vagrant ([Vagrant downloads page][17]) for managing VMs,
 which in turn depends on VirtualBox ([VirtualBox downloads page][18]) and
 the `kmod-VirtualBox` package.
 
-To run our Beaker tests against the primary target OS (CentOS 7) using the
-recommended RPM-based install method, use:
+Beaker depends on [Docker][20] for managing containers.
+
+To run Beaker tests against CentOS 7 in a VM using the latest OpenDaylight
+Carbon RPM, use:
+
+```
+$ bundle exec rake cent_6test_vm
+```
+
+To do the same tests in a CentOS container:
 
 ```
-[~/puppet-opendaylight]$ bundle exec rake centos
+$ bundle exec rake cent_6test_dock
 ```
 
-There are a number of pre-defined rake tasks to simplify running common
-Beaker tests.
+To run VM or container-based tests for all OSs:
 
 ```
-[~/puppet-opendaylight]$ bundle exec rake centos_7_docker
-[~/puppet-opendaylight]$ bundle exec rake centos
-[~/puppet-opendaylight]$ bundle exec rake centos_tarball
-[~/puppet-opendaylight]$ bundle exec rake fedora_22
-[~/puppet-opendaylight]$ bundle exec rake ubuntu_1404
-[~/puppet-opendaylight]$ bundle exec rake ubuntu_1404_docker
+$ bundle exec rake acceptance_vm
+$ bundle exec rake acceptance_dock
 ```
 
 If you'd like to preserve the Beaker VM after a test run, perhaps for manual
@@ -181,54 +188,70 @@ inspection or a quicker follow-up test run, use the `BEAKER_destroy`
 environment variable.
 
 ```
-[~/puppet-opendaylight]$ BEAKER_destroy=no bundle exec rake centos
+$ BEAKER_destroy=no bundle exec rake centos
 ```
 
 You can then connect to the VM by navigating to the directory that contains
 its Vagrantfile and using standard Vagrant commands.
 
 ```
-[~/puppet-opendaylight]$ cd .vagrant/beaker_vagrant_files/centos-7.yml
-[~/puppet-opendaylight/.vagrant/beaker_vagrant_files/centos-7.yml]$ vagrant status
+$ cd .vagrant/beaker_vagrant_files/centos-7.yml
+$ vagrant status
 Current machine states:
 
 centos-7                  running (virtualbox)
-[~/puppet-opendaylight/.vagrant/beaker_vagrant_files/centos-7.yml]$ vagrant ssh
-[vagrant@centos-7 ~]$ sudo systemctl status opendaylight
-opendaylight.service - OpenDaylight SDN Controller
-   Loaded: loaded (/usr/lib/systemd/system/opendaylight.service; enabled)
-   Active: active (running) since Fri 2015-04-24 16:34:07 UTC; 1min 1s ago
-     Docs: https://wiki.opendaylight.org/view/Main_Page
-           http://www.opendaylight.org/
-[vagrant@centos-7 ~]$ logout
-[~/puppet-opendaylight/.vagrant/beaker_vagrant_files/centos-7.yml]$ vagrant destroy -f
+$ vagrant ssh
+$ sudo systemctl is-active opendaylight
+active
+$ logout
+$ vagrant destroy -f
 ```
 
 For more information about using Beaker, see [these docs][15].
 
 ### Tests in Continuous Integration
 
-We use [Travis CI][16] to run our unit, syntax and style tests against a
-matrix of supported Ruby and Puppet versions at every commit. This currently
-results in >8500 automated tests per commit.
-
+The OpenDaylight Puppet module uses OpenDaylight's Jenkins silo to run tests
+in CI. Some tests are triggered when changes are proposed, others are triggered
+periodically to validate things haven't broken underneath us. See the
+[`puppet-*` tests][21] on the Jenkins web UI for a list of all tests.
 
 [1]: https://github.com/dfarrell07/puppet-opendaylight/issues
+
 [2]: https://github.com/dfarrell07/puppet-opendaylight/pulls
+
 [3]: https://github.com/dfarrell07/puppet-opendaylight/labels/good-for-beginners
+
 [4]: https://github.com/dfarrell07/puppet-opendaylight/labels/prio%3Ahigh
+
 [5]: https://github.com/dfarrell07/puppet-opendaylight/labels/prio%3Anormal
+
 [6]: https://help.github.com/articles/closing-issues-via-commit-messages/
+
 [7]: http://chris.beams.io/posts/git-commit/
+
 [8]: http://cdn3.volusion.com/74gtv.tjme9/v/vspfiles/photos/Delicious%20Dozen-1.jpg
+
 [9]: http://bundler.io/
+
 [10]: http://puppet-lint.com/
+
 [11]: https://github.com/gds-operations/puppet-syntax
+
 [12]: https://github.com/puppet-community/metadata-json-lint
+
 [13]: https://github.com/puppetlabs/beaker
+
 [14]: http://serverspec.org/resource_types.html
+
 [15]: https://github.com/puppetlabs/beaker/wiki/How-to-Write-a-Beaker-Test-for-a-Module#typical-workflow
-[16]: https://travis-ci.org/dfarrell07/puppet-opendaylight
+
 [17]: https://www.vagrantup.com/downloads.html
+
 [18]: www.virtualbox.org/wiki/Linux_Downloads
+
 [19]: http://webchat.freenode.net/?channels=opendaylight-integration
+
+[20]: https://docs.docker.com/engine/installation/
+
+[21]: https://jenkins.opendaylight.org/releng/view/packaging/search/?q=puppet "Puppet CI jobs"