Skip to content

Latest commit

 

History

History
133 lines (95 loc) · 8.7 KB

CONTRIBUTING.md

File metadata and controls

133 lines (95 loc) · 8.7 KB

Contributing to react-simple-step-wizard

🧙🙌 First off, thanks for taking your time to contribute! 🧙🙌

Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub

Contents

Setup

Prerequisites

To get started, clone react simple step wizard and create your branch from master.

Github article Fork a repository.

Codebase

After setting up react simple step wizard locally, the following steps will get you started:

# Library
# To install `react-simple-step-wizard` dependencies.
npm install

# Example
# To install example's dependencies.
cd example && npm install

# To commit, you should follow the guide tipping:
npm run cz

Text editor extensions

Prettier, an opinionated code formatter that integrates with your text editor.

ESLint, The pluggable linting utility for JavaScript and JSX

Set up your dev environment

# run both the core library and its example on development mode, it will rerun based on the files you modify.
npm run dev

After this, a browser will be open. The page will reload if you make edits.

Make a commit

We use commitizen and commitlint to ensure conventional commit messages, which supports our publishing workflow and versioning scheme.

husky is used to run precommit tasks on staged files, which includes code formatting, linting, and tests.

You will not be able to make a commit until the precommit tasks pass. We also have a prepush hook to run a full build before pushing your code.

Use commitizen

The TDS codebase includes a script to run commitizen for a streamline commit-making experience:

# Stage your files
# To commit, you should follow commitizen guide tipping:
npm run cz

Versioning via commits

Versioning is facilitated by the Conventional Commits specification.

The commit type determines what will be included in changelogs. Use the feat and fix types sparingly as these two types will appear in changelogs. For most other commits such as fixups or configurations, use the chore type.

Commit types

Type Description
BREAKING CHANGE a commit that has a footer BREAKING CHANGE:, or appends a ! after the type/scope, introduces a breaking API change (correlating with MAJOR in semantic versioning). A BREAKING CHANGE can be part of commits of any type .
build Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm).
chore A type for miscellaneous changes. Anything not covered here is considered a chore. Additionally, this is useful when iterating on changes due to PR reviews or other factors. Only one commit may be labeled as a fix or feat for any one change, so commits following that to iterate on the same feature will either be a chore or refactor.
ci Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs).
docs Indicates a modification to documentation. Changes to the .md files of components, or changes to the documentation site use this type.
feat a commit of the type feat introduces a new feature to the codebase (this correlates with MINOR in semantic versioning).
fix a commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
perf A code change that improves performance.
refactor A code change that neither fixes a bug nor adds a feature.
style Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc).
test Adding missing tests or correcting existing tests.

Unit tests

react-simple-step-wizard uses Jest as part of our Git hooks, these tests are run automatically on commit and on push.

References

Related articles and tools