Contributing to Suites
December 10, 2025 · View on GitHub
Table of Contents
- Introduction
- Prerequisites
- Getting Started
- Contribution Process
- Making Changes
- Tests and Quality Assurance
- Documentation
- Continuous Integration
- Commit Guidelines
- Acknowledgements
- Developer Onboarding
Introduction
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.
Prerequisites
- Node.js: The project requires Node.js version 16.0.0 or higher.
- pnpm: Suites uses pnpm for dependency management. Ensure pnpm is installed on your system.
Getting Started
Installation and Setup
- Clone the Suites Repository:
git clone https://github.com/suites.dev/Suites.git - Install Dependencies:
pnpm install --frozen-lockfile
Running Tests
Ensure everything is functioning as expected by running the test suite:
pnpm test
Contribution Process
Reporting Issues and Bugs
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.
Feature Requests
Ideas for new features are always welcome. Submit your proposal via our GitHub Repository, detailing the feature and its potential benefits to Suites.
Making Changes
Writing Code
Contribute code that is clean, maintainable, and efficient, adhering to Suites's existing style and best practices.
Tests and Quality Assurance
- Accompany new code with relevant unit or integration tests.
- Aim for high test coverage – verify with
pnpm run coverage. - Pass all linting checks using
pnpm lint.
Documentation
Document any changes or additions, ensuring the information is clear, accurate, and accessible.
Continuous Integration
All pull requests undergo CI checks for:
- Test completion.
- Successful builds.
- Dependency validation and circular dependency checks.
- Coverage measurement.
Commit Guidelines
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.
Acknowledgements
We deeply value your contributions. All contributors are recognized in our release notes and we maintain a comprehensive list of contributors.
Developer Onboarding
Stay tuned for our comprehensive Developer Onboarding Guide, launching soon!