Skip to content
This repository has been archived by the owner on Feb 9, 2024. It is now read-only.

Latest commit

 

History

History
121 lines (77 loc) · 3.6 KB

CONTRIBUTING.md

File metadata and controls

121 lines (77 loc) · 3.6 KB

Contributing

When contributing to this repository, please check our open issues and whether there is already an issue related to your idea. Please first discuss the change you wish to make in a GitHub issue and wait for a reply from the maintainers of this repository before making a change.

We have a code of conduct; please follow it in all your interactions relating to the project.

Environment setup

Local environment setup

To develop on your machine, install the following (and please submit issues if errors crop up)

Rules

There are a few basic ground-rules for contributors:

  1. All modifications must be made in a pull-request to solicit feedback from other contributors
  2. Contributors should attempt to adhere to the prevailing code-style

Pull requests

For a pull request to be merged it must at least:

✅   Pass CI

✅   Have one approving review

✅   Have the PR title follow conventional commit

Ideally, a good pull request should:

🕒   Take less than 15 minutes to review

📖   Have a meaningful description (describes the problem being solved)

1️⃣   Introduce one feature or solve one bug at a time, for which an open issue already exists. In case of a project wide refactoring, a larger PR is to be expected, but the reviewer should be more carefully guided through it

🧩   Issues that seem too big for a PR that can be reviewed in 15 minutes or PRs that need to touch other issues should be discussed and probably split differently before starting any development

🎯   Handle renaming, moving files, linting and formatting separately (not alongside features or bug fixes)

🧪   Add tests for new functionality

Draft pull requests for early feedback are welcome and do not need to adhere to any guidelines.

When reviewing a pull request, the end-goal is to suggest useful changes to the author. Reviews should finish with approval unless there are issues that would result in:

❌   Buggy behavior

❌   Undue maintenance burden

❌   Measurable performance issues

❌   Feature reduction (i.e. it removes some aspect of functionality that a significant minority of users rely on)

❌   Uselessness (i.e. it does not strictly add a feature or fix a known issue)

❌   Disabling a compiler feature to introduce code that wouldn't compile

Code style

We use the following tools to enforce linting rules, formatting and spell checking

We encourage adding the recommended (or similar) extensions to your IDE.

To run a project wide check you can use:

yarn lint
cspell "**/*"

Releases

Declaring formal releases remains the prerogative of the project maintainer(s).

License

By contributing to project, you agree that your contributions will be licensed under its Apache license.

Changes to this arrangement

This is an experiment and feedback is welcome! This document may also be subject to pull-requests or changes by contributors where you believe you have something valuable to add or change.

Heritage

These contributing guidelines are modified from