Thank you for your interest in contributing to the Moon7 ecosystem! This document outlines the process for contributing to our TypeScript libraries and tools.
By participating in this project, you are expected to uphold our code of conduct. Please report unacceptable behavior to the project maintainers.
-
Fork the Repository: Start by forking the repository you wish to contribute to.
-
Clone Your Fork:
git clone https://github.com/your-username/repository-name.git cd repository-name -
Install Dependencies:
pnpm install
-
Create a Branch:
git checkout -b feature/your-feature-name
- Follow TypeScript best practices
- Maintain consistent code style with existing codebase
- Use meaningful variable and function names
- Write comprehensive comments for complex logic
All changes should include appropriate tests:
pnpm testFor coverage reporting:
pnpm test:coverageWe enforce code quality and consistency through linting:
pnpm lintThis will show all linting warnings and errors. If you only want to see errors (warnings are acceptable):
pnpm lint:errorsPlease fix all errors before submitting your pull request. Warnings should be addressed when possible, but are not blockers for contribution.
Build the project to verify your changes:
pnpm build-
Update Documentation: Ensure README.md and other documentation are updated.
-
Run Tests: Make sure all tests pass.
-
Lint Code: Ensure
pnpm lint:errorspasses without errors. -
Submit PR: Create a pull request with a clear title and description.
-
Code Review: Address any feedback from maintainers.
-
Merge: Once approved, your PR will be merged.
We follow a structured commit message format:
type(scope): short description
Longer description if needed
Types include:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Formatting changesrefactor: Code refactoringtest: Adding or modifying testschore: Maintenance tasks
Releases are managed by the project maintainers following semantic versioning:
- Major: Breaking changes
- Minor: New features without breaking changes
- Patch: Bug fixes and minor improvements
If you have any questions, feel free to open an issue in the relevant repository.
Thank you for contributing to moon7 libraries!