I'm pretty sure this is the right place to post my suggestion, even if the title may suggest otherwise, since my idea would concern the site infrastructure much more than AddOns themselves.
In short, in my humble opinion it would be great to submit patches and plug-ins to AddOns as patch files, generated by tools like "diff -u" or "git diff".
Why, you may ask?
Currently patches are either complete packages themselves or completely replace affected files in the AddOn they work upon. While it works for simple hotfixes which are superseded when the author of the original AddOn incorporates a (cleaner) fix, other patches are to include additional functionality the author of the original AddOn doesn't include into his works for some reason.
Said patches - or plugins - would remain 'valid' even for subsequent versions of the original AddOn, but since in their current implementation they replace the files, updates would be difficult and the patch is bound to break the AddOn in later versions.
For non-coders, "diff -u" files just record changes done to the original files, not the whole contents. Even if the original files change - because they have been updated, for example - if the affected sections stay the same, the patch could readily be applied again but would fail if the affected code sections differ from the version this patch was originally created from.
This greatly reduces storage needs and makes it MUCH easier for the original author of the AddOn to see what changes had been done in order to fix a bug.
For the site it would need:
- On creating the patch, one has to state which AddOn it is patching against
- Either the patch is to be submitted as a diff file, or, if it is submitted as a whole archive, the diff is generated on site
- On downloading from the site, one may choose to download the raw diff to apply to the AddOn oneself, or the site generates a patched package based on the original one and the patch applied to it.
- As a bonus, the site may offer a list of patches when viewing the original AddOn, and on checking the wanted patches, the site would generate a patched package.
Minion would need to be adapted as well:
- Downloading a patch would require the original AddOn to be downloaded in any case, then the patch applied to it.
- When the possibility of several patches on a single AddOn is to be taken into account, Minion would have to create a dependency graph to determine the order of the updates being performed.
Yes, I'm aware that this would require a boatload of work, though it could be a great addition?