We love your input! We want to make contributing to mod-arch-library as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Update the README.md or documentation with details of changes if applicable
- Update the CHANGELOG.md with details of changes
- The PR must pass all CI tests before being merged
- At least one maintainer must review and approve the changes
-
Clone the repository
git clone https://github.com/your-organization/mod-arch-library.git cd mod-arch-library -
Install dependencies
npm install -
Build the library
npm run build
To test your changes locally without publishing to npm:
-
In your library directory, run:
npm link -
In your consuming project, run:
npm link mod-arch-library -
After you're done testing, you can unlink by running:
npm unlink --no-save mod-arch-libraryin your consuming project, and:
npm unlinkin your library directory.
When adding new components to the library, please follow these guidelines:
- Create your component in the appropriate directory (e.g.,
/components) - Include proper TypeScript typings
- Add unit tests in the
__tests__directory - Export your component in the appropriate barrel file (e.g.,
components/index.ts) - Consider adding documentation and usage examples
- We use ESLint for linting
- We follow TypeScript best practices
- Components should be functional with React hooks
- Use meaningful variable and function names
- Include JSDoc comments for better documentation
We use SemVer for versioning. For the versions available, see the tags on this repository.
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backwards compatible manner
- PATCH version when you make backwards compatible bug fixes
We follow the Conventional Commits specification:
feat:- A new featurefix:- A bug fixdocs:- Documentation only changesstyle:- Changes that do not affect the meaning of the coderefactor:- A code change that neither fixes a bug nor adds a featuretest:- Adding missing tests or correcting existing testschore:- Changes to the build process or auxiliary tools and libraries
By contributing, you agree that your contributions will be licensed under the project's Apache License 2.0.