So you have developed a nice wordpress plugin and think you are ready to share it with rest of the world. Well that is a great thought and Matt Mullenweg is going to appreciate your contribution for sure. So how do you start contributing after you got your shiny wordpress SVN repository account. When you are done with coding, submitting your plugin to the wordpress directory is not difficult, but sometimes it becomes little odd on windows because the instructions given on wordpress help page are not intended for windows platform.
Before we get started, download the Tortoise SVN which will enable SVN on your windows machine. After downloading the latest version, install it on your windows machine and restart. Follow the steps one by one to successfully submit your wordpress plugin.
1) Add your plugin by creating a SVN repository account using the wordpress Plugin add page. It should ideally take few hours to get your account up & running, depending upon the requests in the queue.
2) After you get your SVN credentials are created and you get access to the repository, your plugin files become accessible at http://svn.wp-plugins.org/plugin_name . So this becomes the home for your plugin files, where you can push the php files and other assets like images, style files etc. A brief about SVN from wordpress help page.
All your files will be centrally stored in the repository on our servers. From that repository, anyone can check out a copy of your plugin files onto their local machine, but, as a plugin author, only you have tho authority to check in. That means you can make changes to the files, add new files, and delete files on your local machine and upload those changes back to the central server. It’s this process of checking in that updates both the files in the repository and also the information displayed in the WordPress.org plugin directory.
Subversion keeps track of all these changes so that you can go back and look at old versions or revisions later if you ever need to. In addition to remembering each individual revision, you can tell subversion to tag certain revisions of the repository for easy reference. Tags are great for labelling different releases of your plugin.
3) Now checkout the blank repository from your svn account. A blank repository will contain nothing but 3 empty folders that are, branches, tag, trunk . You need to copy your plugin files into the trunk folder. These files will be your .php files, readme.txt and the screenshot-n.gif (if any).
You can download the standard readme.txt and create one for your plugin accordingly. After creating the readme.txt, try validating it on readme validator. Readme.txt is important as it contains all the information about your plugin. It contains the version number, changelog, faq, description and the stable tag. The stable tag defined at the top of the readme.txt tells wordpress plugin page that which is the stable version of the plugin.
4) After adding the file to the trunk folder, right click on the folder and click SVN commit from the context menu, as shown in the picture below. This will commit changes from your local machine into the SVN repository.
5) Our next step is to add tag information for the plugin. This gives information to the plugin page about the stable release of the plugin and becomes easy for it to serve different version of your plugins. Make sure your trunk directory is committed completely, so that the local files are in sync with the files present in the SVN repository. Now right click on the trunk folder and in the context menu goto TortoiseSVN and choose Branch/Tag as show in the figure.
This will open another dialogue box in which you need to change the path from trunk to the tag/1.0 , where 1.0 is the version no. of the stable copy of your plugin. You can give any version number, but make sure this is the same as defined at the top of readme.txt file. The image below shows where you have to change the path. After changing the path, click OK. This actually performs the same function as svn cp would perform in the unix shell.
But you will not see any sub-folder inside tag folder, as it has been copied within the SVN repository, so you can click on the SVN update to update your tag folder.
Now you have your plugin code committed and tag information added, your own wordpress plugin is ready to consumed by all the wordpress users. Now go and spread the word about your plugin.
Releasing a new version of your wordpress plugin
After few days, you might realize that you want to add some more features to your plugin. Well in that case follow the steps below.
- Make the changes into the local files located inside the trunk folder and change the stable version to the latest one, example from 1.0 to 1.1.
- Svn commit the latest changes.
- Svn cp (as explained in step 5) your trunk folder.
And you are done !!
If you still got issues, leave a comment. I will try to answer them.
Stay Digified !!
Sachin Khosla