Skip to content
This repository has been archived by the owner on Dec 20, 2022. It is now read-only.

Latest commit

 

History

History
87 lines (59 loc) · 3.12 KB

CONTRIBUTING.md

File metadata and controls

87 lines (59 loc) · 3.12 KB

DSNP Example Client: Contribution Guide

Thank you for considering contributing, whether by reporting issues, improving documentation, or contributing code.

First, please see the Contribution Guide for Project Liberty as a whole. Below are specifics about the Example Client project.

References

DSNP is a fast-moving environment. When creating bug reports, feature requests, or pull requests, it's important to be familiar and up-to-date with:

Reporting

Bugs

If you are using the Example Client and you find a bug that you believe should be fixed, please create a new issue ticket (after first looking to see if there is an existing issue about it, of course). Make sure to tag the new issue as a bug, and follow the Bug Report template.

Features

To suggest an enhancement or new feature, please create a new issue ticket (after first looking to see if anyone else has suggested the same thing). Make sure to tag it as a feature request, and follow the Feature Request template.

Contributing

Conventions

The codebase follows certain conventions (including some inherited from the Project Liberty Contribution Standards. Many of the style conventions are enforced by the automated linters so that you don't have to spend hours going over every line to make sure it matches all conventions. Many IDEs can run these linters automatically, but if yours doesn't, you can run them manually with 'npm run format'.

The main conventions you need to know about are:

  • All code is written in Typescript with as much type specificity as possible.

  • Styling for visual components. Check the Style Guide.

  • Use of the BEM methodology for CSS classes.

  • Use of React Hooks in components.

  • Testing of all added components using Jest and Enzyme.

Testing

All code additions must have tests that cover their use cases. Tests do not need to be exhaustive, but a good covering of main functionality is expected. We recommend viewing some of the already-written tests as examples.

Run tests locally with 'npm run test'.

Pull Requests

All PRs must follow the Pull Request template. To be approved and merged, a PR must meet these requirements:

  1. The test must pass CI/CD done through Github Actions.
  2. The changes must be rebased on the main branch before merging.

Help

Please feel free to ask questions in the DSNP Forums.