Skip to content

Instantly share code, notes, and snippets.

@ColmBhandal
Last active October 10, 2023 10:24
Show Gist options
  • Save ColmBhandal/8eb9b09e4a687e6f206fd9ec3b31975f to your computer and use it in GitHub Desktop.
Save ColmBhandal/8eb9b09e4a687e6f206fd9ec3b31975f to your computer and use it in GitHub Desktop.
Contributing Template for Canonical Charmed Kubeflow Repos
# Contributing
## Overview
This document outlines the processes and practices recommended for contributing enhancements to `{{ charm }}`.
## Talk to us First
Before developing enhancements to this charm, you should [open an issue](/../../issues) explaining your use case. If you would like to chat with us about your use-cases or proposed implementation, you can reach us at [MLOps Mattermost public channel](https://chat.charmhub.io/charmhub/channels/mlops-documentation) or on [Discourse](https://discourse.charmhub.io/).
## Pull Requests
Please help us out in ensuring easy to review branches by rebasing your pull request branch onto the `main` branch. This also avoids merge commits and creates a linear Git commit history.
All pull requests require review before being merged. Code review typically examines:
- code quality
- test coverage
- user experience for Juju administrators of this charm.
## Recommended Knowledge
Familiarising yourself with the [Charmed Operator Framework](https://juju.is/docs/sdk) library will help you a lot when working on new features or bug fixes.
## Build Charm
To build `{{ charm }}` run:
```shell
charmcraft pack
```
## Developing
You can use the environments created by `tox` for development. For example, to load the `{{ tox_example_dev_env }}` environment into your shell, run:
```shell
tox --notest -e {{ tox_example_dev_env }}
source .tox/{{ tox_example_dev_env }}/bin/activate
```
### Testing
Use tox for testing. For example to test the `{{ tox_example_test_env }}` environment, run:
```shell
tox -e {{ tox_example_test_env }}
```
See `tox.ini` for all available environments.
### Deploy
```bash
# Create a model
juju add-model dev
# Enable DEBUG logging
juju model-config logging-config="<root>=INFO;unit=DEBUG"
# Deploy the charm
juju deploy ./{{ charm }}_ubuntu-20.04-amd64.charm \
{{ --resource oci-image=$(yq '.resources."oci-image"."upstream-source"' metadata.yaml) }}
```
## Canonical Contributor Agreement
Canonical welcomes contributions to this charm. Please check out our [contributor agreement](https://ubuntu.com/legal/contributors) if you're interested in contributing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment