Skip to content

Latest commit

 

History

History
109 lines (76 loc) · 4.8 KB

CONTRIBUTING.md

File metadata and controls

109 lines (76 loc) · 4.8 KB

Contributing to @patternfly/patternfly-react

Adding a new component

  1. Check for open issues that are not assigned to anyone, and assign yourself. If you do not see an issue for the component you want to contribute open an issue and assign yourself. Assigning yourself will ensure that others do not begin working on the component you currently have in progress.
  2. Generate the component scaffolding by running yarn generate. This will generate a structure that resembles the following
    packages/patternfly-3/patternfly-react/src/components/[ComponentName]/
     index.js - Barrel File exporting public exports
     ComponentName.js - Component Implementation
     ComponentName.test.js - Component Tests
     ComponentName.stories.js - Component Stories
    
  3. Write the component implementation in [ComponentName].js.
  4. Add tests to [ComponentName].test.js. All new components must be tested.
  5. Update the generated storybook [ComponentName].stories.js. When your stories contain multiple files, put them in a subfolder named Stories. Stories should demonstrate as many different UI states for your component as possible. Use Storybook knobs to enable dynamic visualizations of your component's props. For PatternFly 4 components, provide associated examples for documentation in the examples directory for the component.

Code Contribution Guidelines

Adhering to the following process is the best way to get your work included in the project:

  1. Fork the project, clone your fork, and configure the remotes:
# Clone your fork of the repo into the current directory
git clone https://github.com/<your-username>/patternfly-react.git
# Navigate to the newly cloned directory
cd patternfly-react
# Assign the original repo to a remote called "upstream"
git remote add upstream https://github.com/patternfly/patternfly-react.git
  1. Create a branch:
$ git checkout -b my-branch -t upstream/master
  1. Generate your Component
# Run the tool to Generate the component scaffolding
 yarn generate
  • When you select the option to generate a PatternFly 3 component, a structure resembling the following is generated
    packages/patternfly-3/patternfly-react/src/components/[ComponentName]/
      index.js - Barrel File exporting public exports
      ComponentName.js - Component Implementation
      ComponentName.test.js - Component Tests
      ComponentName.stories.js - Component Stories
    
  1. Develop your component. After development is complete, ensure tests and lint standards pass.
$ yarn test

Ensure no lint errors are introduced in yarn-error.log after running this command.

  1. Add a commit using yarn commit:

This project uses lerna to do automatic releases and generate a changelog based on the commit history. So we follow [a convention][3] for commit messages. Please follow this convention for your commit messages.

You can use commitizen to help you to follow [the convention][3].

Once you are ready to commit the changes, please use the below commands:

$ git add <files to be committed>
$ yarn commit

... and follow the instruction of the interactive prompt.

  1. Rebase

Use git rebase (not git merge) to sync your work from time to time. Ensure all commits related to a single issue have been squashed.

$ git fetch upstream
$ git rebase upstream/master
  1. Push
$ git push origin my-branch
  1. Create a Pull Request

Open a pull request with a clear title and description against the master branch. Please be sure to include all of the following in your PR:

  • Any relevant issues associated with this pull request (enhancement issues, bug issues, etc.)
  • Storybook and Documentation
    • Include a link to the design documentation in the PatternFly Pattern Library if it exists. If a PatternFly design does not exist yet, then provide a description that explains when the component would be used and what goal or task it helps to accomplish.

A link to the PatternFly 3 Storybook will be automatically generated and posted as a comment after the pull request build is complete.

Once your pull request has been reviewed, if all conditions above have been met your pull request will be approved and merged.

Please help in ensuring all relevant issues are closed and that any subsequent issues needed have been noted with this pull request.

Additional Information

See the PatternFly React Guide for full details on Code Contribution Guidelines