<!-- Copyright 2022 Canonical Ltd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. For those usages not covered by the Apache License, Version 2.0 please contact: legal@canonical.com To get in touch with the maintainers, please contact: osm-charmers@lists.launchpad.net --> # Contributing ## Overview This documents explains the processes and practices recommended for contributing enhancements to this operator. - Generally, before developing enhancements to this charm, you should consider [opening an issue ](https://osm.etsi.org/bugzilla/enter_bug.cgi?product=OSM) explaining your use case. (Component=devops, version=master) - If you would like to chat with us about your use-cases or proposed implementation, you can reach us at [OSM Juju public channel](https://opensourcemano.slack.com/archives/C027KJGPECA). - 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. - All enhancements require review before being merged. Code review typically examines - code quality - test coverage - user experience for Juju administrators this charm. - Please help us out in ensuring easy to review branches by rebasing your gerrit patch onto the `master` branch. ## Developing You can use the environments created by `tox` for development: ```shell tox --notest -e unit source .tox/unit/bin/activate ``` ### Testing ```shell tox -e fmt # update your code according to linting rules tox -e lint # code style tox -e unit # unit tests tox -e integration # integration tests tox # runs 'lint' and 'unit' environments ``` ## Build charm Build the charm in this git repository using: ```shell charmcraft pack ``` ### 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 ./osm-pol_ubuntu-22.04-amd64.charm \ --resource pol-image=opensourcemano/pol:testing-daily --series jammy ```