/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install subversion
brew install subversion
brew install subversion
svn --version
svn --version
svn --version
cd ~/Desktop
svn checkout https://plugins.svn.wordpress.org/your-plugin-slug/ your-plugin-name-svn
cd ~/Desktop
svn checkout https://plugins.svn.wordpress.org/your-plugin-slug/ your-plugin-name-svn
cd ~/Desktop
svn checkout https://plugins.svn.wordpress.org/your-plugin-slug/ your-plugin-name-svn
banner-772x250.png
banner-1544x500.png
icon-128x128.png
icon-256x256.png
screenshot-1.png
banner-772x250.png
banner-1544x500.png
icon-128x128.png
icon-256x256.png
screenshot-1.png
banner-772x250.png
banner-1544x500.png
icon-128x128.png
icon-256x256.png
screenshot-1.png
cd your-plugin-name-svn
svn add trunk/*
svn add assets/*
cd your-plugin-name-svn
svn add trunk/*
svn add assets/*
cd your-plugin-name-svn
svn add trunk/*
svn add assets/*
svn copy trunk tags/1.0.0
svn copy trunk tags/1.0.0
svn copy trunk tags/1.0.0
svn commit -m "Initial release v1.0.0 of My Awesome Plugin"
svn commit -m "Initial release v1.0.0 of My Awesome Plugin"
svn commit -m "Initial release v1.0.0 of My Awesome Plugin"
svn copy trunk tags/1.0.1
svn copy trunk tags/1.0.1
svn copy trunk tags/1.0.1
svn add new-file.php # if you added any new files
svn commit -m "Update description and fix critical bug in v1.0.1"
svn add new-file.php # if you added any new files
svn commit -m "Update description and fix critical bug in v1.0.1"
svn add new-file.php # if you added any new files
svn commit -m "Update description and fix critical bug in v1.0.1"
svn cat https://plugins.svn.wordpress.org/your-plugin-slug/trunk/readme.txt
svn cat https://plugins.svn.wordpress.org/your-plugin-slug/trunk/readme.txt
svn cat https://plugins.svn.wordpress.org/your-plugin-slug/trunk/readme.txt
svn cleanup
svn cleanup
svn cleanup - Reliable Versioning: SVN provides a structured way to manage different versions of your plugin. This is critical for users who might need to stick to an older, stable version or for you to roll back a problematic update.
- Official Standard: WordPress.org has chosen SVN as its official method for plugin and theme submissions. Adhering to this standard ensures compatibility and maintainability within their ecosystem.
- Structured Repository: SVN repositories for WordPress plugins have a predefined structure (trunk, tags, assets, branches) that standardizes how plugins are managed, making it easier for both developers and the WordPress system to handle updates and display information.
- Asset Management: Beyond code, SVN manages your plugin's visual assets like banners, icons, and screenshots, ensuring they are correctly displayed on your plugin's directory page. - Generate SVN Password: Your standard WordPress.org login password will not work for SVN. Navigate to your WordPress.org Profile and set a dedicated, strong SVN Password. This separation enhances security.
- Enable 2FA: Under the "Account & Security" tab, enable Two-Factor Authentication (2FA). This is absolutely mandatory for all plugin developers. It's a vital safeguard against unauthorized code injections and protects the integrity of your plugin and the entire WordPress ecosystem.
- Set Display Name: In the "Profile" section, set your Name to reflect your brand (e.g., "Your Company Name" or "Your Developer Name"). This name will appear as "By [Your Name]" on your plugin's official directory page, building trust and recognition. - Install Homebrew: Open your Terminal application and paste the following command to install Homebrew, the macOS package manager: - Install Subversion: Once Homebrew is installed, use it to install Subversion: - Verify Installation: Confirm SVN is active and correctly installed by running: - Checkout the Repository: First, create a local folder and link it to your plugin's dedicated repository on the WordPress servers. Replace your-plugin-slug with the unique slug you registered for your plugin (e.g., my-awesome-plugin). - Add Assets (Banners/Icons): Copy your plugin's visual assets (banners, icons, screenshots) into the /assets folder within your your-plugin-name-svn directory. Ensure they follow the WordPress.org naming conventions for optimal display: - Add Code to Trunk: Copy all of your plugin's core files (PHP, CSS, JS, etc.) into the /trunk folder. This folder always holds the latest, most stable development version of your plugin.
- Crucial: Match Version Numbers! Open your readme.txt file in the /trunk folder and ensure the Stable tag: value (e.g., 1.0.0) precisely matches the Version: header in your main plugin PHP file (e.g., your-plugin-name.php). This consistency is vital for WordPress to correctly identify your plugin's version.
- Stage Your Files: Navigate into your local SVN working copy directory and tell SVN to start tracking your new files: - Create a Tag (The Snapshot): A "tag" is an immutable snapshot of your plugin at a specific version. It's a critical part of version control, allowing users to revert to older, stable versions if needed. Copy the current state of your trunk to a new tag folder: - Commit (Upload): Finally, commit all your staged changes (new files in trunk, new assets, and the new tag) to the WordPress.org SVN repository. This is the act of uploading your plugin. - Update Trunk: Whenever you make changes to your plugin's code, modify the files directly within your local /trunk folder. This ensures trunk always represents your latest development.
- Sync the Tag (If Version Changed): If your updates include a new version (e.g., from 1.0.0 to 1.0.1), you must update both your readme.txt and your main plugin PHP file to reflect the new version. Then, create a new tag by copying the updated trunk: - Stage and Push Changes (Commit): After making changes in trunk and potentially creating a new tag, stage any new files you might have added and then commit your updates: - Wait for Cache: The WordPress.org website has a caching mechanism. It can take anywhere from 30 minutes to 6 hours for changes to be fully reflected on your plugin's page. To verify that your changes have been successfully committed to the server-side repository, you can check the readme.txt file directly via SVN: - Your SVN Password is incorrect. Double-check it on your WordPress.org profile.
- Your WordPress.org account doesn't yet have permissions for that specific plugin slug. This usually happens if the plugin has just been approved, and the repository hasn't been fully provisioned yet. Wait a little while (up to an hour) and try again, or contact WordPress.org support if the issue persists.