Skip to content

Latest commit

 

History

History
156 lines (101 loc) · 5.24 KB

CONTRIBUTING.md

File metadata and controls

156 lines (101 loc) · 5.24 KB

How To Contribute To Aranya

Thank you for your interest in contributing to Aranya!

SpiderOak is looking forward to contributions from the open-source community.

Project Documentation

Before contributing, we recommend that you spend some time getting familiar with the Aranya project documentation: README.md overview.md walkthrough.md

Aranya is primarily written in Rust. For useful references on learning Rust, see the Resources section.

Project Management

SpiderOak uses an Agile development process to develop Aranya.

This GitHub project contains a SCRUM board that plans effort in 2-week sprints: https://github.com/orgs/aranya-project/projects/1

Development Environment Setup

Install Rust: https://www.rust-lang.org/tools/install

Install cargo make: cargo install cargo-make

Keep your toolchain updated by periodically running: rustup update

The Minimum Supported Rust Version (MSRV) can be found by opening a repository's top-level Cargo.toml file and looking for the following line: rust-version = "<Rust version>"

Install your favorite IDE to edit the source code.

If using VSCode, we recommend these settings to automatically format and lint saved files:

// Automatically format when saving, for all languages
"editor.formatOnSave": true,
// Or just format for Rust.
"[rust]": { "editor.formatOnSave": true },

// Use nightly rustfmt so we can use unstable config options.
"rust-analyzer.rustfmt.extraArgs": ["+nightly"],

// Enable clippy linter for extra warnings in-editor
"rust-analyzer.check.command": "clippy",

How To Report A Security Bug

Refer to SECURITY.md for reporting security bugs.

How To Report A Bug

Create a new issue here for the bug: https://github.com/aranya-project/aranya/issues

More information on creating GitHub issues can be found here: Creating A GitHub Issue

A bug reporting template has been created to make it easier to submit bug reports: Bug template

The team will now be able to view and respond to the bug report.

How To Request A Feature

To share an idea for a new feature, create a discussion here: https://github.com/orgs/aranya-project/discussions/categories/ideas

Once the development community has shown interest in the idea, it's time to create an issue.

Create a new issue here for the feature request: https://github.com/aranya-project/aranya/issues

More information on creating GitHub issues can be found here: Creating A GitHub Issue

A feature request template has been created to make it easier to request new features: Feature request template

If you're planning to open a pull request for the feature, assign yourself to the issue.

How To Submit Changes

First, fork the repository and clone your fork.

Make some changes using your favorite IDE.

Before pushing commits, you can run a few commands to see if the changes are good before running them on the CICD pipeline:

cargo make fmt
cargo make build
cargo make unit-tests
cargo make correctness

Commit the changes and push them to the fork.

Open a pull request here for your branch: https://github.com/aranya-project/aranya/pulls

More information on opening pull requests can be found here: Pull Requests

A pull request template has been created to make it easier to open new pull requests: Pull request template

Request code review from relevant code owners CODEOWNERS.md.

More information on code owners can be found here: Code Owners

Testing

To run the unit tests: cargo make unit-tests

Note: if unit tests are not passing, a pull request cannot be merged.

Code Of Conduct

Here's a link to our code of conduct: CODE_OF_CONDUCT.md

Style Guide And Coding Conventions

We use nightly rustfmt to automatically format code: https://github.com/rust-lang/rustfmt

Run this command to format code before pushing code to a development branch: cargo make fmt

Asking For Help

Our development team would be happy to assist with any questions you may have.

Please open a Q&A discussion for any general questions: https://github.com/orgs/aranya-project/discussions/categories/q-a

You can also ask for help in a PR comment or in a discussion on the associated GitHub issue.

Resources

Rust Resources: