Thank you for your interest in contributing to nice-retry! We're thrilled to have you on board. By contributing, you’re helping to make nice-retry better for everyone. Please take a moment to review this guide before getting started.
If you have any questions or need assistance, feel free to open an issue on GitHub.
- About This Repository
- Repository Structure
- Development
- Testing nice-retry Locally
- Documentation
- Commit Conventions
- Requesting New Features or Components
- Testing
- Final Steps
Here's a quick overview of the technologies we use:
- PNPM Workspaces: For managing monorepos.
- Tsup: A TypeScript bundler for building the project.
- Vitest: Our testing framework.
Follow these steps to set up your development environment and start contributing to nice-retry.
- Navigate to the nice-retry GitHub repository.
- Click the Fork button in the top-right corner to create a copy of the repository under your GitHub account.
Clone your forked repository to your local machine using the following command:
git clone https://github.com/arshad-yaseen/nice-retry.git
Move into the project directory:
cd nice-retry
Create a new branch for your work to keep changes organized:
git checkout -b my-new-feature
nice-retry uses PNPM for managing dependencies. Install them by running:
pnpm install
To build the package, execute the following command:
pnpm build
This command uses Tsup to bundle the project.
For automatic rebuilds on file changes, start the watch mode with:
pnpm dev
This is useful for continuous development and testing.
The root test-playground.mjs file is provided for quick testing of the module during development. This is especially useful when:
- Adding new features
- Modifying existing functionality
- Testing package changes
To use the playground:
-
First build the package to reflect your changes:
pnpm build
Or start watch mode for real-time testing:
pnpm dev
-
Run the playground:
pnpm test:playground
The playground will automatically use your latest built changes when running in watch mode, making it perfect for rapid development and testing.
Comprehensive documentation is essential.
- Location: The documentation is located within the
README.md
file at the root of the repository. - Format: Documentation is written using Markdown.
To view the documentation, simply open the README.md
file in your preferred text editor or view it directly on GitHub.
Adhering to a consistent commit message format helps maintain a clear project history and facilitates collaboration.
Commit Message Format:
category(scope): message
Categories:
feat
/feature
: Introduces new features or functionality.fix
: Addresses and resolves bugs.refactor
: Code changes that neither fix a bug nor add a feature.docs
: Updates or additions to documentation.build
: Changes related to the build process or dependencies.test
: Adding or modifying tests.ci
: Changes to continuous integration configurations.chore
: Miscellaneous tasks that do not fit into the above categories.
Examples:
feat(completion): add new inline completion provider
fix(core): resolve token handling issue in completion handler
docs: update API usage guide for nice-retry
For detailed guidelines, refer to the Conventional Commits specification.
If you have ideas for new features or components, we’d love to hear them!
-
Open an Issue:
- Navigate to the Issues section of the repository.
- Click on New Issue and provide a clear and detailed description of your request.
Ensuring that your contributions do not introduce regressions is crucial.
nice-retry uses Vitest for testing. To run all tests, execute:
pnpm test
When adding new features or components, include corresponding tests to maintain code quality.
Before submitting a pull request, ensure all tests pass:
pnpm test
-
Commit Your Changes:
Ensure your commits follow the Commit Conventions outlined above.
-
Push to Your Fork:
git push origin my-new-feature
-
Create a Pull Request:
- Navigate to your forked repository on GitHub.
- Click on Compare & pull request.
- Provide a clear description of your changes and submit the pull request.
Thank you for contributing to nice-retry! Your efforts help make the project better for everyone.