[wp-testers] Testers wanted: Plugin update testing

Andrew Ozz admin at laptoptips.ca
Sun Mar 16 08:54:57 GMT 2008


DD32 wrote:
> Like my reply said, It should only delete it when its
> ready to copy the new files in, An alternative solution, Would be to
> move the old plugin into a "backup" folder, and then, if the upgrade
> fails, attempt to move the backup back into place.. But, Honestly, to
> me, That doesnt seem like its needed, because its going to fail to
> copy the files eitherway if thats the case... I'm open to ideas, If
> you, or anyone else can decide on a way that it should work, and it
> seems sensible, Then i'm right up there with making it so.

IMHO it shouldn't delete anything, at least for this release. Even sites 
with 20-30 plugins would accumulate only a 2-3MB if they are updated 
couple of times each.

After it checks that a newer version exists, it could work this way:

1. Try to rename the plugin's directory. Append or prepend a keyword + 
time() or something similar, store the new name in the db for later 
reference. If it fails at this step, either try other methods or tell 
the users that their server setup is not currently supported, and 
probably will be in future versions.

2. If rename was successful (means have write access and is in the right 
place), create the directory for the new version. Schedule a cron job to 
check the status of the updated plugin in about 1 min. and in case it 
failed, rename the old version back.

3. Download & extract the new version directly in that directory (no 
need to store in temp then move, save some time/resources). While 
extracting, skip the creation of the top plugin directory, basically 
make a copy of plugin's trunk, skipping any screenshots.

4. The plugins page in the admin would need to recognize the renamed 
directories and not list them as unactivated plugins. It would also need 
  a new subpage that would activate about once a month in the dashboard, 
listing all backup versions from recently updated plugins that are safe 
to delete.

The current method would probably fail for larger plugins with a lot of 
files, because of either memory or timing, as php is not that good 
dealing with network delays and unzipping. The only way seems to be to 
download large plugins file by file, putting a lot of strain on the 
plugin repository.

An alternative would be to zip the script files separately from the 
images. That way the file size would be more manageable. Then download 
any images the plugin has directly, can be scheduled as a 30 sec. cron 
job etc.

Perhaps a better solution is to concatenate all script (txt) files into 
one xml file. That way we can skip the zip class and do a simple 
unzipping in the php buffer, then parse the xml and split it in separate 
files. We have something similar in the Export/Import Posts, shouldn't 
be hard to adapt for script files and would me a lot more stable.

It also may be worthwhile checking other methods, like a "WordPress 
Maintenance" Firefox extension using Fireftp or similar (did somebody 
mention that already?), or possibly going the Fantastico way and dealing 
with the hosting companies directly.




More information about the wp-testers mailing list