Update workflow documentation for code quality checks

- Added new code-quality-checks.md workflow guide
- Updated release-process.md to include code quality checks
- Updated code-review.md to reference the new workflow
- Added detailed instructions for running local checks before pushing
This commit is contained in:
2025-04-21 16:07:16 +01:00
parent 348eb872a8
commit 3d1bf9d113
3 changed files with 175 additions and 10 deletions

View File

@@ -0,0 +1,139 @@
# Code Quality Checks Workflow
This document outlines the process for ensuring code quality before pushing changes to the repository. Following these steps will help catch issues early and save time in the review process.
## Pre-Push Checklist
Before pushing your changes to the repository, run through the following checks:
1. **Run Unit Tests**
```bash
composer test
```
Ensure all tests pass. If any tests fail, fix the issues before proceeding.
2. **Run PHP CodeSniffer**
```bash
composer phpcs
```
This will check your code against WordPress coding standards. Fix any issues before proceeding.
3. **Run PHP Code Beautifier and Fixer**
```bash
composer phpcbf
```
This will automatically fix many coding standard issues.
4. **Run PHPStan**
```bash
composer phpstan
```
This will perform static analysis on your code to find potential bugs and issues.
5. **Run PHP Mess Detector**
```bash
composer phpmd
```
This will check for potential problems like unused variables, empty catch blocks, etc.
## Common Issues and How to Fix Them
### 1. Inline Comments
All inline comments must end with proper punctuation (period, exclamation mark, or question mark).
```php
// Incorrect comment
$var = true;
// Correct comment.
$var = true;
```
### 2. Superglobal Access
Never access superglobals like `$_GET`, `$_POST`, etc. directly. Always use WordPress functions to sanitize and validate input.
```php
// Incorrect
$page = $_GET['page'];
// Correct
$page = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
// For testing environments
if (defined('PHPUNIT_RUNNING') && PHPUNIT_RUNNING) {
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$page = isset($_GET['page']) ? wp_unslash($_GET['page']) : '';
}
```
### 3. Avoid Unnecessary Else Clauses
Simplify your code by avoiding unnecessary else clauses.
```php
// Less preferred
if (condition) {
return true;
} else {
return false;
}
// Preferred
if (condition) {
return true;
}
return false;
```
### 4. Proper Function Spacing
Ensure proper spacing in function calls and declarations.
```php
// Incorrect
function_name($param1,$param2);
// Correct
function_name( $param1, $param2 );
```
### 5. Naming Conventions
Follow WordPress naming conventions:
- Functions and variables: snake_case
- Classes: CamelCase
- Constants: UPPERCASE_WITH_UNDERSCORES
## Automated Checks in CI/CD
Our CI/CD pipeline includes the following automated checks:
1. **CodeFactor**: Analyzes code quality and style
2. **Codacy**: Performs static code analysis
3. **SonarCloud**: Checks for code smells, bugs, and security vulnerabilities
4. **CodeRabbit**: Provides AI-powered code review
Even though these checks run automatically, it's best to catch issues locally before pushing to save time and reduce the number of commits needed to fix issues.
## Using AI to Help with Code Quality
You can use AI assistants to help improve code quality:
1. Run the code quality checks locally
2. If issues are found, ask the AI assistant to help fix them
3. Apply the suggested fixes
4. Run the checks again to verify the issues are resolved
Example prompt:
```
I ran PHPCS and got the following errors. Can you help me fix them?
[Paste error output here]
```
## Conclusion
Following this workflow will help maintain high code quality and reduce the time spent on code reviews and fixing issues after pushing. Remember, it's always faster to fix issues locally than to go through multiple rounds of CI/CD and code review.

View File

@@ -61,6 +61,8 @@ When reviewing code, check for the following:
This project uses several automated code review tools to maintain high code quality standards. These tools are free to use for public repositories and should be integrated into any new repositories based on this template.
**Important**: Before pushing your code, run the local code quality checks as described in the [Code Quality Checks Workflow](./code-quality-checks.md) to catch issues early.
### 1. CodeRabbit
[CodeRabbit](https://www.coderabbit.ai/) is an AI-powered code review tool that provides automated feedback on pull requests.

View File

@@ -6,11 +6,12 @@ This document outlines the process for preparing and publishing new releases of
1. Create a version branch
2. Update version numbers in all required files
3. Build and test the plugin
4. Commit version changes
5. Create version tags
6. Push to remote repositories
7. Merge into main branch
3. Run code quality checks
4. Build and test the plugin
5. Commit version changes
6. Create version tags
7. Push to remote repositories
8. Merge into main branch
## Detailed Steps
@@ -48,7 +49,30 @@ Update version numbers in all required files:
5. **languages/wp-plugin-starter-template.pot**:
- Update the `Project-Id-Version` header
### 3. Build and Test the Plugin
### 3. Run Code Quality Checks
Before building the plugin, run code quality checks to ensure the code meets standards:
```bash
# Run unit tests
composer test
# Run PHP CodeSniffer
composer phpcs
# Run PHP Code Beautifier and Fixer if needed
composer phpcbf
# Run PHPStan
composer phpstan
# Run PHP Mess Detector
composer phpmd
```
Fix any issues found by these tools before proceeding. See the [Code Quality Checks Workflow](./code-quality-checks.md) for more details.
### 4. Build and Test the Plugin
Build the plugin with the new version:
@@ -69,7 +93,7 @@ Test the plugin thoroughly:
- Test with PHP 7.0+ (minimum supported version)
- Test all features and functionality
### 4. Commit Version Changes
### 5. Commit Version Changes
Commit all version changes:
@@ -78,7 +102,7 @@ git add wp-plugin-starter-template.php readme.txt README.md CHANGELOG.md languag
git commit -m "Version {MAJOR}.{MINOR}.{PATCH} - [brief description]"
```
### 5. Create Version Tags
### 6. Create Version Tags
Create version tags:
@@ -89,7 +113,7 @@ git tag -a v{MAJOR}.{MINOR}.{PATCH}-stable -m "Stable version {MAJOR}.{MINOR}.{P
The `-stable` tag is used by Git Updater to identify the stable version.
### 6. Push to Remote Repositories
### 7. Push to Remote Repositories
Push the version branch and tags to remote repositories:
@@ -121,7 +145,7 @@ git push gitea refs/heads/v{MAJOR}.{MINOR}.{PATCH}:refs/heads/v{MAJOR}.{MINOR}.{
git push gitea --tags
```
### 7. Merge into Main Branch
### 8. Merge into Main Branch
Merge the version branch into the main branch: