<a id="contribute"></a>

# Contribute

Contributions can change the documentation, the Go service, the charm, the
rock, or several of these areas. Choose the path that matches your change, and
follow both when code and documentation change together. On either path,
[CI workflows](https://canonical.com/juju/docs/gopkg-charm/latest/contribute/ci-workflows/index.html.md#ci-workflows) describes what CI runs on each change.

## Documentation contributions

For prose, navigation, examples, tutorials, and how-to guides:

- [Improve the documentation](https://canonical.com/juju/docs/gopkg-charm/latest/contribute/improve-documentation/index.html.md#improve-documentation): install the documentation tools, preview a
  change, and run the documentation checks and tests.

Prose-only changes need no local Juju environment. If a documentation command
builds, deploys, or changes the running service, also follow the code path,
starting with [Set up a development environment](https://canonical.com/juju/docs/gopkg-charm/latest/contribute/set-up-a-development-environment/index.html.md#set-up-a-development-environment), to validate it.

## Code contributions

For the Go service, charm code, rock or charm recipes, and integration tests:

- [Set up a development environment](https://canonical.com/juju/docs/gopkg-charm/latest/contribute/set-up-a-development-environment/index.html.md#set-up-a-development-environment): prepare a VM with the tools that
  build, test, and deploy `gopkg-k8s` from source. Start here.
- [Improve the code](https://canonical.com/juju/docs/gopkg-charm/latest/contribute/improve-code/index.html.md#improve-code): run the tests, then build and deploy your change.
- [Run the integration suite locally](https://canonical.com/juju/docs/gopkg-charm/latest/contribute/run-full-juju-integration-suite-locally/index.html.md#full-integration-suite-local): run
  the Juju integration suite by hand.
- [Troubleshoot the development environment](https://canonical.com/juju/docs/gopkg-charm/latest/contribute/troubleshoot-development/index.html.md#troubleshoot-development): fix the failures that come up while
  building from source.

<!-- vale off -->
<!-- vale on -->
