Copyright 2021 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
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.
Contributing
Overview
This documents explains the processes and practices recommended for contributing enhancements to the Keystone charm.
- If you would like to chat with us about your use-cases or proposed implementation, you can reach us at OSM public channel
- Familiarising yourself with the Charmed Operator Framework 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:
tox --notest -e unit
source .tox/unit/bin/activate
Testing
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:
charmcraft pack
Deploy
# Create a model
juju add-model test-keystone
# Enable DEBUG logging
juju model-config logging-config="<root>=INFO;unit=DEBUG"
# Deploy the charm
juju deploy ./keystone_ubuntu-22.04-amd64.charm \
--resource keystone-image=opensourcemano/keystone:testing-daily --series jammy