Do you want to contribute to the filesystem-charms repository? You've come to the right place then!
Here is how you can get involved.
Before you start working on your contribution, please familiarize yourself with the Charmed
HPC project's contributing guide. After you've gone through the main contributing guide,
you can use this guide for specific information on contributing to the filesystem-charms repository.
Have any questions? Feel free to ask them in the Ubuntu High-Performance Computing Matrix chat or in the High-Performance Computing category on the Ubuntu Discourse.
This repository uses just and uv for development
which provide some useful commands that will help you while hacking on filesystem-charms:
# Create a development environment
just env
# Upgrade uv.lock with the latest dependencies
just upgradeRun just help to view the full list of available recipes.
We use a mono repository (monorepo) for tracking the development of the filesystem charms. All filesystem-related charms must be contributed to this repository and not broken out into its own standalone repository.
Run just repo to view the full list of monorepo actions.
- We can test against the latest commit to the filesystem charms rather than pull what is currently published to edge on Charmhub.
- Testing breaking changes is easier since we don't need to test between multiple separate pull requests or branches on multiple repositories.
- It's easier to enable CI testing for development branches. We can test the experimental development branch in the CI pipeline rather than needing to create a separate workflow file off of main.
- We only need one branch protection rule to cover the filesystem charms.
- We only need one set of integration tests for all the filesystem charms rather than multiple independent tests that repeat common operations.
- We only need one extensive set of documentation rather than individual sets scoped per filesystem charm.
Ensure that your changes pass all the existing tests, and that you have added tests for any new features you're introducing in this changeset.
Your proposed changes will not be reviewed until your changes pass all the
required tests. You can run the required tests locally using just:
# Apply formatting standards to code
just repo fmt
# Check code against coding style standards
just repo lint
# Run static type checks
just repo typecheck
# Run unit tests
just repo unit
# Run integration tests
just repo integrationBy contributing to filesystem-charms, you agree to license your contribution under
the Apache License 2.0 license.
If you add a new source code file to the repository, add the following license header as a comment to the top of the file with the copyright owner set to the organization you are contributing on behalf of and the current year set as the copyright year.
Copyright [yyyy] [name of copyright owner]
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.
If you are making changes to an existing file, and the copyright year is not the current year, update the year range to include the current year. For example, if a file's copyright year is:
Copyright 2023 Canonical Ltd.
and you make changes to that file in 2025, update the copyright year in the file to:
Copyright 2023-2025 Canonical Ltd.