Contributing

Asking for Help

Please run a dusty dump, save the results to a gist, and include a link to the gist in any bug reports.

Running Tests

Unit tests are pretty simple:

$ nosetests tests/unit

Integration tests must be run on OS X and are a bit trickier. Be aware that integration tests may alter or delete existing Dusty information on your system, including but not limited to your config, Dusty-managed repos, and boot2docker VM.

The recommended approach is to let the Jenkins server run these for you when you submit a PR.

# Integration tests run against an actual Dusty daemon
$ sudo launchctl stop org.gamechanger.dusty
$ sudo dusty -d & # launch a daemon based on your checked out code
$ DUSTY_ALLOW_INTEGRATION_TESTS=yes nosetests tests/integration

Building Docs

Docs are built with MkDocs. For development, you can run the following in the root Dusty directory:

$ pip install mkdocs
$ mkdocs serve

Release Checklist

Before a new release, please do the following:

  • Update the changelog
  • Add a date to the changelog for this version
  • Add a new version that has an In progress title rather than a date
  • Update the changelog to reflect your new changes with appropriate descriptions
    • NEW: This change is an addition to the existing code/functionality, and should include a description of what the addition does.
    • BREAKING: This update changes the existing promises of the dusty CLI API or specs API
    • FIXED: This is a patch for something broken in the current dusty version
    • other comments: anything that is not one of the above but is still important enough that users should know about change before upgrading
  • Submit a pull request for your changelog updates and merge once accepted

  • Cut a new version of Dusty

  • Run the DustyRelease Jenkins job with your new version number supplied as a parameter

  • Update README.md to reflect the new Dusty version

  • After the DustyRelease Jenkins job has successfully run, change the curl target specified in the readme to reference the newly minted version
  • Change the curl target referenced in the installation docs as well
  • Create a pull request for this change and merge once accepted

  • Bump the version number dusty/constants.py to the next version assigned to the VERSION variable