Skip to content

Latest commit

 

History

History
120 lines (85 loc) · 4.47 KB

File metadata and controls

120 lines (85 loc) · 4.47 KB

Contributing to filesystem-charms

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.

Hacking on filesystem-charms

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 upgrade

Run just help to view the full list of available recipes.

Using the monorepo

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.

Why use a monorepo for filesystem-charms?

  • 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.

Before opening a pull request on the filesystem-charms repository

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 integration

License information

By contributing to filesystem-charms, you agree to license your contribution under the Apache License 2.0 license.

Adding a new file to filesystem-charms

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.

Updating an existing file in filesystem-charms

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.