# Contributing to eslint-plugin-test-flakiness Thank you for your interest in contributing to eslint-plugin-test-flakiness! This guide will help you get started. ## Getting Started ### Prerequisites - Node.js 18+ - pnpm 10.15.1 (required) ```bash npm install -g pnpm@10.15.1 ``` ### Setup 1. Fork the repository 2. Clone your fork: ```bash git clone https://github.com/tigredonorte/eslint-plugin-test-flakiness.git cd eslint-plugin-test-flakiness ``` 3. Install dependencies: ```bash pnpm install ``` 4. Set up git hooks: ```bash pnpm prepare ``` ## Development Workflow ### 1. Create a Feature Branch ```bash git checkout -b feat/your-feature-name # or git checkout -b fix/your-bug-fix ``` ### 2. Make Your Changes #### Adding a New Rule 1. Create the rule file: ```bash touch lib/rules/your-rule-name.js ``` 2. Add tests: ```bash touch tests/lib/rules/your-rule-name.js ``` 3. Update configurations in `lib/configs/`: - Add to `recommended.js` if it should be in the recommended set - Add to `strict.js` if it should be in the strict set - Always add to `all.js` 4. Document the rule in README.md #### Rule Structure ```javascript // lib/rules/your-rule-name.js module.exports = { meta: { type: "problem", // or 'suggestion' docs: { description: "Description of what the rule does", category: "Flakiness", recommended: true, }, fixable: "code", // if the rule can auto-fix schema: [], // for rule options }, create(context) { return { // AST visitor functions }; }, }; ``` ### 3. Test Your Changes ```bash # Run all tests pnpm test # Run tests in watch mode pnpm test -- --watch # Run specific test file pnpm test tests/lib/rules/your-rule-name.js # Check code style pnpm lint # Run type checking (if applicable) pnpm typecheck ``` ### 4. Commit Your Changes We use [Conventional Commits](https://www.conventionalcommits.org/) and [Commitizen](http://commitizen.github.io/cz-cli/) for consistent commit messages. ```bash # Stage your changes git add . # Use Commitizen (recommended) pnpm commit # Or write conventional commits manually git commit -m "feat(rules): add no-flaky-pattern rule" ``` #### Commit Message Format ```markdown ():