Page MenuHomePhabricator

Extension for page creation/editing notifications
Closed, ResolvedPublic

Description

There are a lot of "events" related to page creation and editing that users might want to be notified of. MediaWiki provides the "Watchlist" functionality for being notified of changes to pages in a pre-selected lists. In addition, there are a few extensions that provide notification functionality, such as WhoIsWatching, Semantic Watchlist and PageCreationNotif. However, these extensions all cover relatively small subsets of all the types of page-related notification that could be done within a wiki.

Ideally, MediaWiki could have an extension that provides a much greater range of notification options related to page creation and editing.

What might this extension encompass?

A notification might happen after any of the following actions:

  • Creation of new pages
  • Edits to existing pages
  • Changes in a specific template field
  • Changes of a specific template field to a specific value

...within any of the following sets of pages:

  • All pages
  • All pages in one or more namespaces
  • All pages in one or more categories
  • Some specified list of pages

...and the following people could be notified:

  • Users in one more user groups
  • Users in a pre-specified list
  • Users who sign up to be notified
  • Possibly email addresses not related to MediaWiki users

...and notification would be done by some subset of:

  • Email
  • The Echo extension
  • A special page on the wiki, listing the recent changes
  • Calling a hook, to let other extensions perform their own actions

Altogether this is 4 * 4 * 4 * 4 = 256 combinations, and though most combinations do not need to be explicitly coded in order to work, it would still take a lot of work to make the extension complete. Still, the key thing is to have the extension provide a *framework* for all this functionality, so that, for whatever the missing features were, it would be obvious how the user interface and code for them should be constructed.

You can see more about this idea (mostly a breakdown of the current set of notification extensions) in slides 14-22 of this talk I gave at SMWCon Spring 2015:

https://www.semantic-mediawiki.org/w/images/9/95/Page_ownership_in_MediaWiki.pdf

Details

  • Mentors : @Yaron_Koren
  • Other mentors: @tosfos
  • Skills: PHP, SQL, MediaWiki development
  • Estimated project time for a senior contributor: 2-5 weeks (as noted, not all the listed functionality has to be in place for this extension to be useful)
  • Microtasks: T125350, T46105

Event Timeline

Yaron_Koren renamed this task from MediaWiki notification framework extension to All-purpose MediaWiki notifications extension.Mar 4 2016, 3:49 AM
01tonythomas subscribed.

@Yaron_Koren Thank you for adding in this interesting task as a Possible-Tech-Projects tasks for this round of GSoC/Outreachy. To make sure that it gets in through, please fill in the mentoring and other internship specific details questions I just added to the description.

We will need at-least one primary mentor, and a co-mentor to get this one featured in the ideas list. I am currently moving the same to 'Missing-Mentors' as the task do not have any mentors associated with it yet.

You can see more about this idea (mostly a breakdown of the current set of notification extensions) in slides 14-22 of this talk I gave at SMWCon Spring 2015:
https://www.semantic-mediawiki.org/w/images/9/95/Page_ownership_in_MediaWiki.pdf

I'm a little surprised to not see the Echo extension at all mentioned in your presentation about notifications. Regardless, what you've outlined here seems similar on a conceptual level to https://www.mediawiki.org/wiki/Requests_for_comment/Need_to_merge_Notifications_and_Watchlist_or_lack_thereof, so I personally would like to see this discussed a bit more to make sure a GSoC student doesn't end up doing work that partially duplicates existing systems.

As a general note, you might also be interested in https://www.mediawiki.org/wiki/Requests_for_comment/Notifications_in_core

@Legoktm - thanks for the feedback. I actually wrote "Flow" in those slides, when I should have written "Echo". I hadn't seen those mediawiki.org pages - very interesting, although I don't think they overlap with what I'm talking about. It indeed might be nice to get Watchlist stufff into the Echo system in one way or another, but the main thing this new extension would provide would be a way to get notified about non-Watchlist stuff, like new pages being created, or some specific template value being changed in pages. This kind of thing tends to be more important in enterprise MediaWiki installations, where there can be a stronger sense of page ownership, and workflow related to page editing.

Maybe this task should be re-titled to make it clear that it's talking about notifications specifically related to page creation and editing, given that there are all sorts of notifications possible in MediaWiki.

Yaron_Koren renamed this task from All-purpose MediaWiki notifications extension to Extension for page creation/editing notifications.Mar 4 2016, 3:40 PM

@Yaron_Koren , I have gone through the description and comments above, and I feel that I got the skills specified in the task description. I have got few patch-sets in Gerrit merged to the codebase , and would like to work on the same as a GSoC'16 project.

Can someone add in some of the micro-tasks so that I can start working on it right away?

@Abhinand - I see that you even contributed something to Smite Spam, my GSoC project from last year! That's great. I just added a few micro-tasks.

@Yaron_Koren I would like to work on this as my GSoC 2016 project.I have knowledge of PHP,MySql.

@Yaron_Koren I would like to work on this as my GSoC 2016 project.I have knowledge of PHP,MySql.

Thank you for your interest @Harjotsingh. Please take a look at https://www.mediawiki.org/wiki/Outreach_programs/Life_of_a_successful_project#Coming_up_with_a_proposal to get to know how to come up with a strong proposal for this task.

In case you are new to Wikimedia code review process, please take a look at https://www.mediawiki.org/wiki/Gerrit/Tutorial too.

Hello
I have gone through the description and especially the talk presentation at https://www.semantic-mediawiki.org/w/images/9/95/Page_ownership_in_MediaWiki.pdf looking at the solutions outlined earlier in the description and document, I feel skilled enough to work on this project for GSoC'16. Also I'm working on T46105 as my microtask for this project.

Change 277179 had a related patch set uploaded (by Billm):
Apply setting variable instead of direct warning value

https://gerrit.wikimedia.org/r/277179

I wish to know if by the meaning of providing at least a *framework* as said in the description of the project, it means providing deliverables that will at least provide the following functionalities:

A notification for

  • Creation of new pages
  • Edits to existing pages
  • Changes in a specific template field
  • Changes of a specific template field to a specific value

...within any of the following sets of pages:

  • All pages in one or more namespaces
  • All pages in one or more categories

...and the following people could be notified:

  • Users in one more user groups
  • Users who sign up to be notified

...and notification would be done by some subset of:

  • Email
  • The Echo extension

These are the deliverables that I'm thinking should be done completely during the GSoC period. Are there any other functionalities to be added or is it enough?

Please I wish to know can I write a proposal for this project even though it has only one mentor listed??

@Billghost - yes, those are the tasks; though, as I noted at the beginning, it's very doubtful whether the whole thing can be completed during the assigned time. But it would be some subset of those.

And yes.

@Yaron_Koren - Is there already a portal for users to sign up so that they can be notified of "events" or it has to be done during the GSoC period?

@Billghost - this extension does not yet exist, if that's what you're asking...

Finally, we are making this featured! Thank you @Niharika

18:25 <Niharika> tonythomas: codezee: After some thought, sign me up for it. :)

@Niharika - are you actually interested in this topic, or did you just add yourself so that the project would have two mentors? Because I happen to have found a co-mentor, a few days ago. (Not that I think I need one, but I'll play by the rules.)

@Niharika - are you actually interested in this topic, or did you just add yourself so that the project would have two mentors? Because I happen to have found a co-mentor, a few days ago. (Not that I think I need one, but I'll play by the rules.)

Hi Yaron. Thanks for letting me know. I accepted to be a mentor because of both reasons, partly. It's great you found another mentor. Feel free to add their handle to the ticket.

Change 277179 had a related patch set uploaded (by Billm):
Apply setting variable instead of direct warning value

https://gerrit.wikimedia.org/r/277179

@Billghost : Please dont tag commits with unrelated change. I am wondering why this is being repeated :( Did you find that documented somewhere ?

I'm sorry @01tonythomas. I corrected that mistake a while ago but it seems like when I upload a new patchset the commit message falls back to the first commit message for this patch. This is why the mistake keeps repeating.

@Billghost You can update the commit message when you submit a new patch.

git add --all
git commit --amend
<update message in nano editor, Ctrl+O to save, Ctrl+X to exit>
git review

@Niharika Thanks for the help and it worked finally without any issues. I will like to ask how it was possible for you to "rebase" a submitted patch (like how you rebased patch set 2 in https://gerrit.wikimedia.org/r/#/c/277179/).

@Niharika Thanks for the help and it worked finally without any issues. I will like to ask how it was possible for you to "rebase" a submitted patch (like how you rebased patch set 2 in https://gerrit.wikimedia.org/r/#/c/277179/).

If it's a simple rebase, that is, the changes you've made and changes made upstream (by other people) are not conflicting, you can simply click the "Rebase Change" button on the patch interface. But it won't work when there are conflicting changes. In that case you'll have to manually rebase it.

Yaron_Koren claimed this task.

I believe this task is now resolved! The resulting extension, EditNotify, doesn't handle all 256 combinations discussed in the task description, but it certainly handles a lot of them, and it provides a framework for handling the rest, which was the important thing.