- Introduction
- Prerequisites
- Getting Started
- Contribution Process
- Making Changes
- Tests and Quality Assurance
- Documentation
- Continuous Integration
- Commit Guidelines
- Acknowledgements
- Developer Onboarding
Welcome to the Suites project! Suites is designed to streamline and enhance testing experiences for developers. As a monorepo project managed with Lerna and divided into several distinct packages, we aim to provide a comprehensive set of tools for testing. This document outlines guidelines for contributing to Suites. We strongly recommend reading the Suites Documentation to fully understand the project's functionality and goals.
Joining Suites means contributing to a mission: enhancing the quality of unit testing and testing processes. Your involvement is key to driving this vision forward and improving Suites.
- Node.js: The project requires Node.js version 16.0.0 or higher.
- Yarn: Suites uses Yarn for dependency management. Ensure Yarn is installed on your system.
- Clone the Suites Repository:
git clone https://github.com/suites.dev/Suites.git
- Install Dependencies:
yarn --frozen-lockfile
Ensure everything is functioning as expected by running the test suite:
yarn test
Discover a bug? First, check our Issue Tracker. If it's a new issue, create a detailed report including steps to reproduce, expected outcomes, and actual results.
Ideas for new features are always welcome. Submit your proposal via our GitHub Repository, detailing the feature and its potential benefits to Suites.
Contribute code that is clean, maintainable, and efficient, adhering to Suites's existing style and best practices.
- Accompany new code with relevant unit or integration tests.
- Aim for high test coverage – verify with
yarn run coverage
. - Pass all linting checks using
yarn lint
.
Document any changes or additions, ensuring the information is clear, accurate, and accessible.
All pull requests undergo CI checks for:
- Test completion.
- Successful builds.
- Dependency validation and circular dependency checks.
- Coverage measurement.
Use clear and semantic PR title. Specify the package affected as a prefix in your PR title. Full list of packages and prefixes:
-
common:
packages/common
– General shared utilities and functions. -
core:
packages/core
– Core functionalities of Suites. -
types:
packages/types
– Type definitions and interfaces. -
jest:
packages/testbeds/jest
– Jest-specific testing utilities and integrations. -
sinon:
packages/testbeds/sinon
– Sinon.js related testing functionalities. -
adapters.nestjs:
packages/adapters/nestjs
– Adapters for NestJS integration. -
adapters.inversify:
packages/adapters/inversify
– Adapters for Inversify integration. -
For example:
feat(core): add new logging functionality
For detailed guidelines on semantic commits, visit Conventional Commits.
We deeply value your contributions. All contributors are recognized in our release notes and we maintain a comprehensive list of contributors.
Stay tuned for our comprehensive Developer Onboarding Guide, launching soon!