Following up on @scribu‘s post with further rationale and the 31compat tag.
The many problems. When plugin upgrades were introduced in 2.8, the activation hook fired for them. The deactivation hook did not. This was inconsistency number one.
When bulk plugin upgrades were introduced on the Tools > Updates screen in 2.9, the activation hook did not fire (during the bulk upgrade). This was inconsistency number two.
Bulk plugin upgrades were given greater prominence in 3.0, with the Updates move to under Dashboard, and a new bulk action on the plugins screen. This made the second inconsistency far more prominent.
Additionally, activation hooks could always fire on activation, because that has to be done through the admin, but updates don’t. Updates done manually (including SVN) was just one more instance where we may not have been firing updates. This was inconsistency number three.
We felt that the proper fix was to prevent the activation hook from firing on any upgrades, bulk or not, as this was not intuitive. Sorry if your plugin relied on this undocumented behavior.
The theory behind the right way to do this. The proper way to handle an upgrade path is to only run an upgrade procedure when you need to. Ideally, you would store a “version” in your plugin’s database option, and then a version in the code. If they do not match, you would fire your upgrade procedure, and then set the database option to equal the version in the code. This is how many plugins handle upgrades, and this is how core works as well.
The right way to do this. I would do what many other plugins do and do the upgrade procedure as I described, and as Peter and Andy described in the previous post.
Further reading. You can read more about this issue, on ticket #14915.
Ryan McCue 7:21 am on October 29, 2010 Permalink |
I’ll see if I can think up some to add to Code.
Peter Westwood 7:47 am on October 29, 2010 Permalink |
[Code Documentation] – Document each of the XMLRPC functions which isn’t phpDocumented with details of the arguments it accepts. Similar to what has been done in r16046 for the new functions in 3.1
Will happily mentor this task
Ryan McCue 8:11 am on October 29, 2010 Permalink |
If I get in, I’ll also happily take this task. Should be fairly easy.
Ryan McCue 7:55 am on October 29, 2010 Permalink |
Here’s some non-code ones. Haven’t added to the codex yet, since I’d prefer someone to look over it first.
[Documentation] – Document api.wordpress.org’s methods and usage of them.
I’ve been meaning to do this for a while (even have Dion’s original code for this), but haven’t had the time.
[Research] – Investigate whether WordPress can use Git/GitHub more effectively. Possibly things like being able to take patches via Git forks, etc.
[Research] – Investigate existing solutions for bug tracking using WordPress. I’ve heard rumours of replacing Trac at some point, so it’d be a good idea to look at what already exists out there.
Andrew Nacin 4:04 pm on October 29, 2010 Permalink |
I like the api.wordpress.org idea. I’m sure a lot has changed since then; I can provide the relevant current code to the student(s) on this.
PJ Hyett 6:47 pm on October 29, 2010 Permalink |
I saw this comment appear in my backtype feed. If anyone would like to chat about Git/GitHub integration, we’re here to help.
Andrew Nacin 3:58 pm on October 29, 2010 Permalink |
I intend to curate a list of bug reports and needed UI patches (CSS3 gradients plz), and head up mentoring for that.
Alex Hempton-Smith 7:34 am on November 1, 2010 Permalink |
I’d happily take these tasks if I got in. Been meaning to make a patch to replace all the gradient images for ages anyway.
duck_ 8:51 am on November 3, 2010 Permalink |
Some task suggestions:
[Documentation] Still a load of Multisite documentation missing (see #14953 if not finished for 3.1) and a large number of doctags marked (pretty uselessly) as unknown (e.g. @since unknown)
[Quality Assurance] Do a theme review (or more). I’m sure the theme reviewers would appreciate some help.
[Translation] Translate a very popular plugin which is currently available in few languages (would probably want cooperation of the plugin developer). Might include patching to actually allow for translatability, depends on the plugin.
Also mentioned to nacin the possibility of a task for the still upcoming API docs (maybe more UI?), but not too sure.
Also offering my time and help as a mentor.
Gautam 7:43 am on November 4, 2010 Permalink |
I had a chat with jjj, and here are some tasks which we discussed:
[Code]
User Profile/edit page
Anonymous posting
Widgets (latest/popular/etc topics/replies/forums)
Email subscriptions
User favorites
Topic status – closed/open/sticky/etc
Forum is category option
John James Jacoby 7:45 am on November 4, 2010 Permalink |
Looks good. (These are for the bbPress plugin by the way.)