Skip to content

Latest commit

 

History

History
93 lines (61 loc) · 2.85 KB

CONTRIBUTING.md

File metadata and controls

93 lines (61 loc) · 2.85 KB

How to Contribute

  1. Clone this repository:
git clone https://github.com/pmndrs/react-spring
cd react-spring
  1. Install yarn (https://yarnpkg.com/en/docs/install)

  2. Preconstuct will link the packages up in a postinstall funciton

  3. Let's get cooking! 👨🏻‍🍳🥓

Guidelines

Be sure your commit messages follow this specification: https://www.conventionalcommits.org/en/v1.0.0-beta.4/

Windows permission errors

Some Windows users may need to enable developer mode if experiencing EPERM: operation not permitted, symlink with Preconstruct. If this persists, you might be running on an unsupported drive/format. In which case, consider using Docker.

Duplicate react errors

React 16.8+ has global state to support its "hooks" feature, so you need to ensure only one copy of react exists in your program. Otherwise, you'll most likely see this error. Please try the following solutions, and let us know if it still doesn't work for you.

  • For create-react-app users: Follow this guide: facebook/react#13991 (comment)

  • For webpack users: Add an alias to webpack.config.js like this:

    alias: {
      react: path.resolve('node_modules/react'),
    }
  • For gatsby users: Install gatsby-plugin-alias-imports and add this to your gatsby-config.js module:

    {
      resolve: `gatsby-plugin-alias-imports`,
      options: {
        alias: {
          react: path.resolve('node_modules/react'),
        },
      },
    },

Publishing

We use changesets to publish our package now. All our dependencies are fixed using ~ after 1414 but luckily changesets will bump them for every minor version we release.

Simple release

You want to release some new features that haven't been released yet:

yarn changeset:add

Follow the prompt to flag which packages need to update although with react-spring we keep all our packages at the same version.

Then you'll run:

yarn vers

This will update all the packages correctly according to what version you just set with the add script & possibly update the deps within those packages.

Finally:

yarn release

This will build the packages, publish them & push the tags to github to signify a new release. Please then update the releases on github & the changelog on react-spring.io

Prerelease

Everything above applies but you must first run:

yarn changeset pre enter beta | alpha | next

If you find you're stuck in a prerelease and trying to do a Simple Release, try running:

yarn changeset pre exit