jbampton opened a new issue, #11322: URL: https://github.com/apache/cloudstack/issues/11322
For a large-scale, multi-language project like Apache CloudStack, which includes Vue.js for its frontend and C# for certain components, a robust set of pre-commit hooks is essential. These hooks help enforce code quality, consistency, and identify potential issues early in the development cycle, reducing the burden on CI/CD pipelines and code reviews. Here are 14 top pre-commit hooks, categorized for clarity, that would be highly beneficial: ### Vue.js / Frontend Specific Hooks 1. **ESLint**: Enforces JavaScript/TypeScript code quality and stylistic guidelines for Vue components. Catches common errors and ensures consistency. 2. **Prettier**: An opinionated code formatter that supports JavaScript, TypeScript, HTML, CSS, and Vue files, ensuring consistent code style across the frontend. 3. **`eslint-plugin-vuejs-accessibility`**: Integrates accessibility linting specifically for Vue templates, helping prevent common A11y issues. 4. **Stylelint**: A linter for CSS, SCSS, Less, and other stylesheets, vital for maintaining consistent styling within Vue's scoped or global styles. 5. **`stylelint-a11y`**: A Stylelint plugin focused on enforcing accessibility standards in CSS, complementing the Vue accessibility linting. 6. **Biome**: A fast all-in-one toolchain for web projects (formatter, linter), which can handle JavaScript, TypeScript, JSON, and CSS. A powerful alternative or supplement to ESLint/Prettier for parts of the frontend. 7. **`check-html`**: Basic HTML validation to catch syntax errors in Vue templates (if not fully handled by ESLint or Biome). 8. **`prettier-json`**: Ensures consistent formatting for any JSON configuration files used by the Vue application (e.g., `package.json`). ### C# / Backend Specific Hooks 9. **CSharpier**: An opinionated C# code formatter. Essential for maintaining consistent code style across the C# codebase. 10. **`dotnet format`**: Leverages the built-in .NET formatter, respecting `.editorconfig` settings for fine-grained style control. 11. **`dotnet build`**: Compiles the C# project to catch compilation errors early, before pushing to CI/CD. 12. **`dotnet test`**: Runs unit tests for C# components, preventing regressions from being committed. 13. **MegaLinter (C#)**: If you opt for a comprehensive, multi-language linter, MegaLinter can provide a wrapper for various C# static analysis tools. 14. **`check-csproj-format`**: Custom hook to ensure `.csproj` files adhere to a defined format, preventing manual inconsistencies. Implementing these hooks, especially with a tool like `pre-commit.com`, will significantly enhance code quality, reduce review cycles, and maintain a high standard of consistency across the Apache CloudStack project. Remember to start with a smaller set of critical hooks and gradually add more as the team adapts. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@cloudstack.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org