Contributing

Move to Red Hat

Important

During the end of October 2018 the Molecule Project was moved to its new home under Ansible by Red Hat.

How to get involved

Update Git repo location

The Molecule project has moved:

old location: https://github.com/metacloud/molecule

new location: https://github.com/ansible/molecule

If you have the source checked out you should use git remote set-url origin to point to the new location.

Please follow GitHub’s official changing a remote’s URL guide.

New Docker location

For people that use the Docker image, we are now publishing to a new location Molecule on quay.io.

old location: https://hub.docker.com/r/retr0h/molecule/

new location: https://quay.io/repository/ansible/molecule

How to use:

docker pull quay.io/ansible/molecule:latest

Release announcements

Want to know about releases, subscribe to ansible-announce list

Talk to us

Join us in #ansible-molecule on freenode, or molecule-users Forum.

The full list of Ansible email lists and IRC channels can be found in the communication page.

Contribution Guidelines

  • We are interested in various different kinds of improvement for Molecule; please feel free to raise an Issue if you would like to work on something major to ensure efficient collaboration and avoid duplicate effort.

  • Create a topic branch from where you want to base your work.

  • Check for unnecessary whitespace with git diff --check before committing. Please see formatting and linting documentation for further commands.

  • Make sure you have added tests for your changes.

  • You must use git commit --signoff for any commit to be merged, and agree that usage of --signoff constitutes agreement with the terms of DCO 1.1.

  • Run all the tests to ensure nothing else was accidentally broken.

  • Reformat the code by following the formatting section below.

  • Submit a pull request.

Installing

Installation from source or package.

Testing

There is extensive testing built into the continuous integration of this project and as a result, the time for successful builds is potentially quite long (up to and above 1 hour). This depends a lot on the Travis infrastructure but also on the amount of simultaneous contributions being worked on. Long build queues can quickly become a very demotivating factor for other contributors. Until such time that we improve the build speeds we must therefore ask that you please perform all of the Full testing steps prior to submitting a pull request.

Ansible Modules

This project uses the following Ansible modules, and Gilt to manage them.

To bring in updated upstream modules. Update gilt.yml and execute the following:

$ gilt overlay

Documentation

Working with InterSphinx

In the conf.py, we define an intersphinx_mapping which provides the base URLs for conveniently linking to other Sphinx documented projects. In order to find the correct link syntax and text you can link to, you can quickly inspect the reference from the command line.

For example, if we would like to link to a specific part of the Ansible documentation, we could first run the following command:

python -m sphinx.ext.intersphinx https://docs.ansible.com/ansible/latest/objects.inv

And then see the entire Sphinx listing. We see entries that look like:

py:attribute
    AnsibleModule._debug  api/index.html#AnsibleModule._debug

With which we can link out to using the following syntax:

:py:attribute:`AnsibleModule._debug`