[wp-hackers] Plugin zip problem on wordpress.org

Michael D Adams mikea at turbonet.com
Tue Nov 13 19:44:46 GMT 2007


> I think the consensus from people who responded is that adding the  
> option to specify a subdirectory would be useful. It's backwards  
> compatible, I don't see any down side nor have I noticed any  
> objections.

Well - there's always a down side:  figuring out how it should work,  
time in making it happen, documenting it, etc.  More importantly, one  
goal of the WordPress Plugin Directory is to make downloading and  
installing experience for all plugins to be as consistent as possible  
for the user.  How do we ensure that experience is the same for  
plugins using the subdirectory feature and for those that don't?

There are however compelling reasons to offer such a feature.  So  
let's talk about how it should happen.


Situation:

I have a plugin called Wonder Plugin hosted at http://svn.wp- 
plugins.org/wonder-plugin/.  Suppose I have files that look like this:

/wonder-plugins/tags/2.1/readme.txt
/wonder-plugins/tags/2.1/tests.php
/wonder-plugins/tags/2.1/release/wonder.php

And a readme.txt file *in trunk/* with the following line:

Stable Tag: 2.1/release


Proposal:

The Plugin directory will package the zip file from the release/  
subdirectory of the 2.1 tag rather than zipping up everything.

The zip file will contain the readme.txt file as well, even though  
the readme.txt file is not in the release/ directory.  (If there is  
another readme.txt file in the release/ directory it will get  
*overwritten*).

The zip file will contain all of those files (release/* and  
readme.txt) wrapped in a directory called wonder-plugin/.  So the  
contents of the zip will look like:

wonder-plugin/readme.txt
wonder-plugin/wonder.php

The zip file will be named wonder-plugin.zip.

Zip files from other tags (downloaded from the "other versions" link,  
e.g. http://wordpress.org/extend/plugins/podpress/download/) will  
contain the *entire* SVN tree.  Why?  We determine the "packaging  
subdirectory" from the readme file in trunk/.  The directory  
structure can change between tags, so we can't know from trunk/ 
readme.txt what the right thing to do is for any tag but the stable  
one.  We could parse each tag's readme.txt, but I'm not convinced  
that's useful for plugin authors or users.  This is *inconsistent*.   
Is that bad?

If the plugin had specified Stable Tag: trunk/release, everything  
above would apply with the trunk/ dir taken to be the stabel "tag"  
dir. (Stable Tag: trunk is equivalent to not including a Stable Tag  
field.  Including it is best practice.)

If the plugin had no subdirectory in its Stable Tag field, the entire  
tag directory is packaged in the zip (this is what happens now).

Thoughts?

Mike


More information about the wp-hackers mailing list