# AI Assistant Guide for Fix Plugin Does Not Exist Notices This guide helps AI assistants understand the project structure, workflows, and best practices for this repository. ## Project Overview - **Plugin Name**: Fix 'Plugin file does not exist.' Notices - **Repository**: https://github.com/wpallstars/fix-plugin-does-not-exist-notices - **Description**: WordPress plugin that adds missing plugins to the plugins list with a "Remove Reference" link to clean up invalid plugin entries and remove error notices. ## Version Management ### Version Numbering Convention We follow [Semantic Versioning](https://semver.org/): - **MAJOR.MINOR.PATCH** (e.g., 1.6.0) - **MAJOR**: Breaking changes - **MINOR**: New features, non-breaking - **PATCH**: Bug fixes, non-breaking ### When to Increment Version Numbers - **PATCH** (1.6.0 → 1.6.1): - Bug fixes - Small text changes - Minor improvements that don't add new features - **MINOR** (1.6.0 → 1.7.0): - New features - Significant improvements to existing functionality - Deprecation of features (but not removal) - **MAJOR** (1.6.0 → 2.0.0): - Breaking changes - Removal of features - Major architectural changes ### Version Update Checklist When updating the version number, always update these files: 1. `fix-plugin-does-not-exist-notices.php` (Plugin header) 2. `CHANGELOG.md` (Add new version section) 3. `readme.txt` (Stable tag and Changelog section) 4. Update `FPDEN_VERSION` constant in the main plugin file ## Git Workflow ### Branch Naming Convention - Feature branches: `feature/descriptive-name` - Bug fix branches: `fix/issue-description` - Release branches: `v{MAJOR}.{MINOR}.{PATCH}` ### Commit Message Guidelines - Use present tense ("Add feature" not "Added feature") - Start with a verb - Keep the first line under 50 characters - Reference issues when relevant: "Fix #123: Resolve plugin detection issue" ### Release Process 1. Create a new branch for the version: `git checkout -b v{MAJOR}.{MINOR}.{PATCH}` 2. Update version numbers in all required files 3. Update CHANGELOG.md with all changes 4. Commit changes: `git commit -m "Prepare release v{MAJOR}.{MINOR}.{PATCH}"` 5. Push branch to all remotes: ``` git push github HEAD:v{MAJOR}.{MINOR}.{PATCH} git push gitea HEAD:v{MAJOR}.{MINOR}.{PATCH} ``` 6. Create and push a tag to trigger the GitHub Actions workflow: ``` git tag -a v{MAJOR}.{MINOR}.{PATCH} -m "Release version {MAJOR}.{MINOR}.{PATCH}" git push github refs/tags/v{MAJOR}.{MINOR}.{PATCH} git push gitea refs/tags/v{MAJOR}.{MINOR}.{PATCH} ``` ## Build Process The build process is handled by `build.sh`: 1. Updates version numbers 2. Installs composer dependencies 3. Copies files to build directory 4. Creates ZIP file To manually build the plugin: ``` ./build.sh {MAJOR}.{MINOR}.{PATCH} ``` ## Remote Repositories The plugin is hosted on multiple repositories: - GitHub: https://github.com/wpallstars/fix-plugin-does-not-exist-notices - Gitea: https://gitea.wpallstars.com/wpallstars/fix-plugin-does-not-exist-notices - WordPress.org: https://wordpress.org/plugins/fix-plugin-does-not-exist-notices/ Always push changes to all remotes to keep them in sync. ## GitHub Actions The repository uses GitHub Actions for automated builds and deployments: - Triggered by tags matching the pattern `v*` - Builds the plugin - Creates a GitHub release - Deploys to WordPress.org ## Testing Guidelines Before releasing: 1. Test with the latest WordPress version 2. Test with PHP 7.0+ (minimum supported version) 3. Verify all features work as expected 4. Check for any PHP warnings or notices ## Common Tasks for AI Assistants ### Creating a New Release ``` # 1. Create a new branch git checkout -b v1.7.0 # 2. Update version numbers in files # - fix-plugin-does-not-exist-notices.php # - CHANGELOG.md # - readme.txt # - FPDEN_VERSION constant # 3. Commit changes git add . git commit -m "Prepare release v1.7.0" # 4. Push to remotes git push github HEAD:v1.7.0 git push gitea HEAD:v1.7.0 # 5. Create and push tag git tag -a v1.7.0 -m "Release version 1.7.0" git push github refs/tags/v1.7.0 git push gitea refs/tags/v1.7.0 ``` ### Adding a New Feature ``` # 1. Create feature branch git checkout -b feature/new-feature-name # 2. Make changes and commit git add . git commit -m "Add new feature" # 3. Push to remotes git push github HEAD:feature/new-feature-name git push gitea HEAD:feature/new-feature-name ``` ### Fixing a Bug ``` # 1. Create bugfix branch git checkout -b fix/bug-description # 2. Make changes and commit git add . git commit -m "Fix #123: Fix bug description" # 3. Push to remotes git push github HEAD:fix/bug-description git push gitea HEAD:fix/bug-description ```