Skip to content

Latest commit

 

History

History
128 lines (91 loc) · 4.96 KB

CONTRIBUTING.md

File metadata and controls

128 lines (91 loc) · 4.96 KB

Contributing Guidelines


Umbrella Project

OpenEBS is an "umbrella project". Every project, repository and file in the OpenEBS organization adopts and follows the policies found in the Community repo umbrella project files.

This project follows the OpenEBS Contributor Guidelines

Contributing to Mayastor

We're excited to have you interested in contributing to Mayastor!

If you experience minor hurdles in contribution, please report them.

If you have any questions, our ecosystem can be connected with over Slack (invite, for support).

Our interactions here are governed by the CNCF Code of Conduct.

Issues & Pull Requests

Reporting Bugs

You would be the best if you reported complete, well described, reproducible bugs to us. If you can't, that's ok. Do your best.

Our Bug Report template includes instructions to get the the information we need from you.

Requesting new features

You are invited to open complete, well described issues proposing new features. While Mayastor has no formal RFC process at this time, the Rust RFC template is an excellent place to derive your issue description from.

You should indicate if you are able to complete and support features you propose.

Committing

Start work off the develop branch. Not master.

bors will merge your commits. We do not do squash merges.

Each commit message must adhere to Conventional Commits. You can use convco if you would prefer a tool to help.

It is absolutely fine to force push your branch if you need. Feel free to rewrite commit history of your pull requests.

Reviews

The review process is governed by bors.

Pull requests require at least 1 approval from maintainer or SIG member.

Once review is given, Maintainers and SIG members may indicate merge readiness with the comment bors merge.

Please do not hit the 'Update Branch' button. The commit message is not conventional, bors will yell at you. Let bors handle it, or rebase it yourself.

Development Environment

This repo, much like most of the mayastor-specific repos makes use of nix.

How to install Nix

For Linux, it can be as simple as running:

sh <(curl -L https://nixos.org/nix/install) --daemon

Remember the exit and re-enter your shell after the install is complete. For more detailed information, please visit: https://nixos.org/download.html

Enter the nix-shell

[nix-shell:~/git/mayastor/extensions]$ nix-shell
pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/commit-msg
 _______________________________________
/ You have requested an environment for \
\ rustup, you should provide it!        /
 ---------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

[nix-shell:~/git/mayastor/extensions]$

Within this shell you'll have access to all tools/libraries which are required to develop within this repo and so the first time it might take some time whilst dependencies are build installed and/or pulled.

Modifying the Helm Chart

The helm chart README.md is autogenerated from an existing template and the values yaml file. A git pre-commit hook is added to the nix-shell to ensure the code you commit updates the README as well for a smooth PR experience.

If you're only modifying the helm chart we recomment you enter nix-shell from the chart directory only

[@dev:~/git/mayastor/extensions]$ cd chart
[@dev:~/git/mayastor/extensions]$ nix-shell
[nix-shell:~/git/mayastor/extensions/chart]$ nix-shell

This will avoid downloading dependencies which are required only for building the binary images.

Don't want to use nix?

That's totally fine, just make sure you have helm-docs installed and run the docs script

[@dev:~/git/mayastor/extensions]$ ./scripts/helm/generate-readme.sh
INFO[2023-08-22T08:55:06+01:00] Found Chart directories [chart]
INFO[2023-08-22T08:55:06+01:00] Generating README Documentation for chart chart