|
| 1 | +# Contributing to CSPR.design |
| 2 | + |
| 3 | +The following is a set of rules and guidelines for contributing to this repo. Please feel free to propose changes to this document in a pull request. |
| 4 | + |
| 5 | +## Submitting issues |
| 6 | + |
| 7 | +If you have questions about how to use CSPR.design, please direct these to our community channels: |
| 8 | +* [CSPR Developers Group](https://t.me/CSPRDevelopers) - Ask questions and discuss ideas with the community |
| 9 | +* [Storybook Documentation](https://storybook.cspr.design) - Explore component examples and API documentation |
| 10 | + |
| 11 | +### Guidelines |
| 12 | +* Please search the existing issues first, it's likely that your issue was already reported or even fixed. |
| 13 | + - Go to the main page of the repository, click "issues" and type any word in the top search/command bar. |
| 14 | + - You can also filter by appending e.g. "state:open" to the search string. |
| 15 | + - More info on [search syntax within GitHub](https://help.github.com/articles/searching-issues) |
| 16 | +* Use the appropriate issue template for your submission: |
| 17 | + - 🐞 **Bug report** - For reporting issues with components |
| 18 | + - ✨ **Feature request** - For suggesting new components or features |
| 19 | + |
| 20 | +## Contributing to CSPR.design |
| 21 | + |
| 22 | +All contributions to this repository are considered to be licensed under Apache License 2.0. |
| 23 | + |
| 24 | +### Workflow for bug fixes: |
| 25 | +* Check open issues and unmerged pull requests to make sure the topic is not already covered elsewhere |
| 26 | +* Fork the repository |
| 27 | +* Do your changes on your fork |
| 28 | +* Make sure to add or update relevant test cases |
| 29 | +* Update Storybook stories if your changes affect component behavior or props |
| 30 | +* Test your changes in Storybook to ensure they work as expected |
| 31 | +* Create a pull request, with a suitable title and description, referring to the related issue |
| 32 | + |
| 33 | +### Workflow for new components: |
| 34 | +* Check existing issues and discussions to ensure the component is needed and aligns with the design system |
| 35 | +* Create or update the component following our coding standards |
| 36 | +* Add comprehensive Storybook stories demonstrating all component variants and use cases |
| 37 | +* Include TypeScript definitions with proper JSDoc comments |
| 38 | +* Add unit tests covering component functionality |
| 39 | +* Update documentation if necessary |
| 40 | +* Create a pull request with detailed description of the new component |
| 41 | + |
| 42 | +### Workflow for documentation improvements: |
| 43 | +* Identify areas where documentation can be improved |
| 44 | +* Update Storybook stories, README files, or inline code comments |
| 45 | +* Ensure examples are accurate and follow current best practices |
| 46 | +* Test that all code examples work correctly |
| 47 | +* Submit a pull request with clear description of documentation changes |
| 48 | + |
| 49 | +### Code Standards |
| 50 | + |
| 51 | +* **TypeScript**: All components must be written in TypeScript with proper type definitions |
| 52 | +* **Styling**: Use styled-components following our theming system |
| 53 | +* **Testing**: Include unit tests for all new functionality |
| 54 | +* **Storybook**: Every component must have comprehensive Storybook stories |
| 55 | +* **Accessibility**: Ensure components meet WCAG accessibility guidelines |
| 56 | +* **Performance**: Consider bundle size impact and rendering performance |
| 57 | + |
| 58 | +### Sign your work |
| 59 | + |
| 60 | +We use the Developer Certificate of Origin (DCO) as an additional safeguard for the CSPR.design project. This is a well established and widely used mechanism to assure contributors have confirmed their right to license their contribution under the project's license. |
| 61 | + |
| 62 | +Please read [developer-certificate-of-origin](https://github.com/make-software/cspr-design/blob/main/.github/developer-certificate-of-origin). |
| 63 | + |
| 64 | +If you can certify it, then just add a line to every git commit message: |
| 65 | + |
| 66 | +``` |
| 67 | +Signed-off-by: Random J Developer <random@developer.example.org> |
| 68 | +``` |
| 69 | + |
| 70 | +Use your real name (sorry, no pseudonyms or anonymous contributions). |
| 71 | + |
| 72 | +If you set your `user.name` and `user.email` git configs, you can sign your commit automatically with `git commit -s`. You can also use git [aliases](https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases) like `git config --global alias.ci 'commit -s'`. Now you can commit with `git ci` and the commit will be signed. |
| 73 | + |
| 74 | +## Community |
| 75 | + |
| 76 | +We welcome contributions from developers building in the Casper ecosystem! Join our community: |
| 77 | + |
| 78 | +* **[CSPR Developers Group](https://t.me/CSPRDevelopers)** - Main community chat for questions and discussions |
| 79 | +* **[GitHub Issues](https://github.com/make-software/cspr-design/issues)** - Bug reports and feature requests |
| 80 | +* **[Storybook](https://storybook.cspr.design)** - Component documentation and examples |
| 81 | + |
| 82 | +Thank you for contributing to CSPR.design and helping build a better developer experience for the Casper ecosystem! 🚀 |
| 83 | + |
0 commit comments