Edgewall Software
Modify

Opened 9 years ago

Last modified 39 hours ago

#2247 assigned enhancement

[PATCH] Option to prevent notification to self

Reported by: direvus@… Owned by: rjollos
Priority: normal Milestone: 1.0.3
Component: notification Version: 0.11.4
Severity: normal Keywords: notification, patch, preferences
Cc: nielsen@…, mzizka@…, oleg.pudeyev@…, john.ferg@…, macke@…, rantingman@…, spam@…, sebastian@…, felix.schwarz@…, gr.tracedgewal@…, ethan.jucovy@…, cfboekelo@…
Release Notes:
API Changes:

Description

If I'm logged in and making changes to tickets, I don't see any value in getting an email about it.

For me, the usefulness of the notification system is in alerting the interested parties to the fact that a change has occurred.

If you're the one who made the change, you already know that it has occurred. Why would you want to get an email about it?

I'd like to propose that we add an option either to User Settings or to trac.ini called notify_self or similar, and make it possible to disable this unintuitive behaviour.

Attachments (6)

trac-never-notify-self-2247.patch (2.1 KB) - added by nielsen@… 9 years ago.
Patch to suppress notifying self of changes one is making via web interface
trac-no-notify-updater-2247.patch (857 bytes) - added by nielsen@… 8 years ago.
Makes 'always_notify_updater = false' work as expected
005_no-self-notify.patch (1.7 KB) - added by Sebastian Krysmanski <sebastian@…> 5 years ago.
Patch against Trac 0.11.4
notify_own_changes-0.11.7.patch (1.4 KB) - added by stef@… 4 years ago.
Sebastian's patch for 0.11.7
notify_own_changes.013dev-r10668.patch (1.7 KB) - added by gt4329b 4 years ago.
version of the patch for 0.13dev-r10668
notify_own_changes.1.0.patch (1.5 KB) - added by dave 20 months ago.
version for 1.0

Download all attachments as: .zip

Change History (72)

comment:1 Changed 9 years ago by dserodio@…

  • Cc dserodio@… added

comment:2 Changed 9 years ago by mgood

  • Resolution set to duplicate
  • Status changed from new to closed

This will be addressed by #2073.

Changed 9 years ago by nielsen@…

Patch to suppress notifying self of changes one is making via web interface

comment:3 Changed 9 years ago by nielsen@…

  • Cc nielsen@… added
  • Component changed from general to ticket system
  • Resolution duplicate deleted
  • Status changed from closed to reopened
  • Version changed from 0.9b1 to 0.9.2

I don't think this is a duplicate of #2073. This is about getting notifications of changes one is making via the web interface, regardless of whether one is the ticket owner, reporter or whatever.

The attached patch adds an option for this issue: never_notify_self

Again, this is so that when I make a change in the web interface, it suppresses notifications to me (even if i'm in the CC, reporter, owner or other fields).

This option greatly increases the utility of notifications by suppressing spam to yourself, and only being notified of changes that other people make.

comment:4 Changed 8 years ago by sid

  • Summary changed from Option to prevent notification to self to [PATCH] Option to prevent notification to self

comment:5 follow-up: Changed 8 years ago by cboos

  • Milestone set to 1.0

This looks like a User Preference to me. I don't think the Trac administrator can here make a choice that will sound appropriate for all users. Think about TracHacks, where hundreds of people collaborate on loosely related projects.

So this is really something that should be set on an individual basis, and I think that we should come up with a scheme similar to the TracIni settings, but for user settings (some existing settings would better be served as user settings: timeline's daysback, wiki space in page names, wiki hide missing pages, etc.)

comment:6 in reply to: ↑ 5 Changed 8 years ago by eblot

Replying to cboos:

This looks like a User Preference to me. I don't think the Trac administrator can here make a choice that will sound appropriate for all users.

BTW,

[notification]
always_notify_updater

already addresses the original request for this ticket, doesn't it?

comment:7 follow-up: Changed 8 years ago by cboos

  • Milestone 1.0 deleted
  • Resolution set to duplicate
  • Status changed from reopened to closed

Manu, you're right: this ticket is actually a duplicate of #3093, which you implemented for 0.10.

The name of the option is a bit misleading though: at first sight, I had the impression that always_notify_updater would be about always sending the notification to the updater, regardless of the fact if he was on CC or not. But always_notify_updater = false has actually the same meaning as the never_notify_self = true suggested in this ticket.

My point about User Preferences still stands, I think.

comment:8 in reply to: ↑ 7 Changed 8 years ago by eblot

Replying to cboos:

My point about User Preferences still stands, I think.

Yes, it truly does - I was commenting on the original request.

comment:9 follow-ups: Changed 8 years ago by maz

  • Resolution duplicate deleted
  • Status changed from closed to reopened

I think this should be reopened. As far as I can tell, since r4299, the always_notify_updater option does what its name implies, i.e. notify the updater of a change if set to true. When set to false, the owner and reporter will still be notified (#3780).

So always_notify_updater no longer fills the need of a notify_self option as above. To be clearer, what would be nice is a never_notify_self option, that we could set to true to prevent the person making the change from receiving an update. I may be mistaken, but currently (0.10.3) there is no way to achieve this. Hence in my opinion this ticket is still valid. If I am wrong, please close it again and accept my apologies.

These notification options are becoming confusing. Having the word "always" on every option name does not help any. Something like this would have been simpler IMO (just pulling this out of a hat, didn't put too much thought into it):

notify_reporter = always|except_self|never
notify_owner = always|except_self|never

Of course, using this strategy, a person in the smtp_always_(b)cc field would still receive a notification when updating a ticket, so who knows. And in any case, better still would be to implement this as user preferences as per #4056.

comment:10 in reply to: ↑ 9 Changed 8 years ago by eblot

  • Keywords notification needinfo added
  • Version changed from 0.9.2 to 0.10.3

Replying to maz:

notify_reporter = always|except_self|never
notify_owner = always|except_self|never

This seems an interesting alternative. always_notify_* troubles come (up to a certain level) from a wish to keep compatibility in option naming with the previous Trac releases. Maybe it's time to rename some of these options.

I don't think the user preferences can be implemented for 0.11. What do the other developers think about implementing this system-wide options for 0.11: do it make sense ?

comment:11 in reply to: ↑ 9 Changed 8 years ago by direvus@…

Replying to maz:

These notification options are becoming confusing. Having the word "always" on every option name does not help any.

Agreed. The word "always" is very strange in this context. If always_notify_updater is true, the semantics are clear: we want Trac to always notify the updater.

But if always_notify_updater is false, what does that mean? We want Trac to not always notify the updater. "Not always" is ambiguous. It could mean "never", it could mean "sometimes", it could mean "almost all the time". So in the end it's not obvious to a Trac administrator how these options behave when set to false.

comment:12 Changed 8 years ago by ThurnerRupert

maybe better addressed by #4056?

comment:13 Changed 8 years ago by maz <mzizka@…>

  • Cc mzizka@… added

Changed 8 years ago by nielsen@…

Makes 'always_notify_updater = false' work as expected

comment:14 Changed 8 years ago by nielsen@…

Not a real fix, but thought I'd post the patch I'm using in my Trac deployments. Just in case anyone wants a quick fix for this.

comment:15 Changed 8 years ago by cboos

  • Component changed from ticket system to notification
  • Milestone set to 0.12

#3093 was marked as duplicate, which discussed essentially the same thing.

comment:16 Changed 7 years ago by anonymous

  • Cc oleg.pudeyev@… added

comment:17 Changed 7 years ago by john.ferg@…

  • Cc john.ferg@… added

comment:18 Changed 7 years ago by john.ferg@…

It seems quite a few people would like this enhancement, including myself. I suggest an increase in both priority and severity.

comment:19 Changed 7 years ago by adam@…

Note that someone has written a Trac plugin to prevent notifications to updaters. You can find it here:

th:NeverNotifyUpdaterPlugin

Last edited 3 weeks ago by rjollos (previous) (diff)

comment:20 Changed 6 years ago by cboos

  • Keywords needinfo removed
  • Severity changed from trivial to normal

comment:21 Changed 6 years ago by Marcus Lindblom <macke@…>

  • Cc macke@… added

comment:22 follow-up: Changed 6 years ago by Chris Carr <rantingman@…>

  • Cc rantingman@… added

So if always_notify_owner is TRUE and always_notify_updater is FALSE, I should not receive notification emails when updating my own tickets? That would be sensible - but it's not what happens in 0.11.1 (Debian Lenny). So it seems that the original request is still outstanding (unless this has been fixed in a later version).

comment:23 in reply to: ↑ 22 Changed 6 years ago by anonymous

Replying to Chris Carr <rantingman@…>:

So if always_notify_owner is TRUE and always_notify_updater is FALSE, I should not receive notification emails when updating my own tickets? That would be sensible - but it's not what happens in 0.11.1 (Debian Lenny).

Same here on 0.11.4. At work we're using 0.10.something and this feature is working correctly. I assume it broke somewhere on the way?

comment:24 Changed 6 years ago by spam@…

  • Cc spam@… added

added myself to cc.

Changed 5 years ago by Sebastian Krysmanski <sebastian@…>

Patch against Trac 0.11.4

comment:25 Changed 5 years ago by Sebastian Krysmanski <sebastian@…>

  • Milestone changed from 0.13 to 0.12
  • Version changed from 0.10.3 to 0.11.4

I've attached a patch that works for me. It adds an option called notify_own_changes to the [notification] section. If this option is false (which is the default) you will only be notified about changes made by others. If it's true you will also be notified about changes you made yourself. I hope this helps.

Also I'm changing the version here to 0.11.4 as the problem still exists in this version.

comment:26 Changed 5 years ago by Sebastian Krysmanski <sebastian@…>

  • Cc sebastian@… added

Adding myself to cc.

comment:27 follow-up: Changed 5 years ago by rblank

  • Milestone changed from 0.12 to 0.13

Thanks for working on this! However, as mentioned in the description and comment:5, this should actually be a per-user setting instead of system-wide.

(Please don't change the milestone for tickets. This will be done by the developer who integrates the changes, according to the version where he wants it to be done.)

comment:28 in reply to: ↑ 27 ; follow-up: Changed 5 years ago by Sebastian Krysmanski <sebastian@…>

Replying to rblank:

Thanks for working on this! However, as mentioned in the description and comment:5, this should actually be a per-user setting instead of system-wide.

Right, but until then I think in most cases you don't want to be notified about your own doings. I think notification means: "Tell me when something happens I don't know of." But the user already knows about his changes.

(Please don't change the milestone for tickets. This will be done by the developer who integrates the changes, according to the version where he wants it to be done.)

Sorry for that. I thought it was an error as I couldn't find any comment that set this to 0.13.

comment:29 in reply to: ↑ 28 ; follow-up: Changed 5 years ago by rblank

Replying to Sebastian Krysmanski <sebastian@…>:

Sorry for that. I thought it was an error as I couldn't find any comment that set this to 0.13.

Ah, yes, that would be #5658: when closing a milestone and re-targeting tickets to another milestone, no comment is added to the individual tickets.

I agree that it would make sense not to send notifications to the user doing them by default. OTOH we try not to add too many config options, especially when they would be obsoleted shortly (for a certain value of "shortly") by a per-user setting.

comment:30 in reply to: ↑ 29 ; follow-up: Changed 5 years ago by Chris Carr <rantingman@…>

Replying to rblank:

I agree that it would make sense not to send notifications to the user doing them by default. OTOH we try not to add too many config options, especially when they would be obsoleted shortly (for a certain value of "shortly") by a per-user setting.

Given that the comment about a per-user setting was made three years ago, and that there have been no fewer than sixteen milestone releases since then, perhaps we could have Sebastian's notify_own_changes option included in the next release? I'm sure nobody would complain if it was then "shortly" obsoleted by the introduction of user preferences.

comment:31 in reply to: ↑ 30 Changed 5 years ago by Daniel Serodio <dserodio@…>

Replying to Chris Carr <rantingman@…>:

Replying to rblank:

I agree that it would make sense not to send notifications to the user doing them by default. OTOH we try not to add too many config options, especially when they would be obsoleted shortly (for a certain value of "shortly") by a per-user setting.

Given that the comment about a per-user setting was made three years ago, and that there have been no fewer than sixteen milestone releases since then, perhaps we could have Sebastian's notify_own_changes option included in the next release? I'm sure nobody would complain if it was then "shortly" obsoleted by the introduction of user preferences.

As a "mere" user, I fully agree

comment:32 Changed 5 years ago by Felix Schwarz <felix.schwarz@…>

  • Cc felix.schwarz@… added

comment:33 Changed 5 years ago by anonymous

  • Cc gr.tracedgewal@… added

Changed 4 years ago by stef@…

Sebastian's patch for 0.11.7

comment:34 Changed 4 years ago by rantingman@…

Does anybody know why this wasn't included in 0.12? It's such a tiny change and would make such a big difference to so many people. Please could it be included soon? Pretty please?

comment:35 Changed 4 years ago by thijstriemstra

  • Keywords patch added

Changed 4 years ago by gt4329b

version of the patch for 0.13dev-r10668

comment:36 Changed 4 years ago by anonymous

I am also confused. I options are called always_notify_owner then I thought that keeping it set to false means that owner of the ticket is notified sometimes (eg. when someone else modifies the ticket) but not always. But it seems that he is never notified. I had to change it to true - but it is very frustrating because he gets notifications even about his own changes. So never_notify_self would be a great relief here!

comment:37 follow-up: Changed 3 years ago by anonymous

Please could the supplied patch be added to 0.13?

comment:38 in reply to: ↑ 37 Changed 3 years ago by clopez@…

Replying to anonymous:

Please could the supplied patch be added to 0.13?

+1

comment:39 Changed 3 years ago by dserodio@…

  • Cc dserodio@… removed

comment:40 Changed 3 years ago by Ethan Jucovy <ethan.jucovy@…>

  • Cc ethan.jucovy@… added

comment:41 Changed 2 years ago by rantingman@…

So this didn't make it into 1.0 - shame! There appears to be a voting system for tickets now - everybody vote for it!!

comment:42 Changed 2 years ago by cboos

  • Keywords userpreferences added
  • Milestone changed from next-major-releases to next-dev-1.1.x
  • Priority changed from low to normal

The help text for the setting in the patch is not crystal clear…

What about something like:

exclude_own_changes = BoolOption('notification', 'exclude_own_changes', 
                                 'false',
    """Don't send a notification for the user who triggered it. 
    This exclusion takes effect after any mechanism that could
    add the user as recipient (`always_notify_*`, `smtp_always_*`
    settings).""")

comment:43 Changed 2 years ago by psuter

#7999 was closed as a duplicate.

comment:44 Changed 21 months ago by expectedcoincidence

  • Cc cfboekelo@… added

Changed 20 months ago by dave

version for 1.0

comment:45 follow-ups: Changed 17 months ago by lkraav <leho@…>

I'm looking for a way to stop all e-mails as user preference, so the never_* thing from years is appealing. This is a use case when one has a solid feed subscription already in place and e-mails just duplicate everything.

Does it fit under this ticket?

comment:46 Changed 17 months ago by lkraav <leho@…>

But! Important part is that I would still like to sit in visible CC lists, because it communicates to others that I'm actively interested in this and that.

comment:47 in reply to: ↑ 45 Changed 17 months ago by rjollos

Replying to lkraav <leho@…>:

I'm looking for a way to stop all e-mails as user preference,

You might take a look at the subscription preference panel for AnnouncerPlugin trunk. I think it has an option that covers the case you are interested in, and integration of AnnouncerPlugin to Trac seems like the most promising route for major enhancements to Trac's notification system.

comment:48 in reply to: ↑ 45 ; follow-up: Changed 13 months ago by jared.bownds@…

Replying to lkraav <leho@…>:

I'm looking for a way to stop all e-mails as user preference, so the never_* thing from years is appealing. This is a use case when one has a solid feed subscription already in place and e-mails just duplicate everything.

Does it fit under this ticket?

Have you made any progress concerning this feature?

A simple check box residing next to the "Submit changes" button would suffice. When checked it would disable email notifications from being sent to reporter, cc, or owner.

comment:49 Changed 5 months ago by rjollos

  • Keywords preferences added; userpreferences removed

comment:50 in reply to: ↑ 48 Changed 3 weeks ago by rjollos

Replying to jared.bownds@…:

A simple check box residing next to the "Submit changes" button would suffice. When checked it would disable email notifications from being sent to reporter, cc, or owner.

That sounds more like #8607.

comment:51 Changed 3 weeks ago by rjollos

  • Milestone changed from next-dev-1.1.x to 1.0.3
  • Owner changed from jonas to rjollos
  • Status changed from reopened to assigned

Summarizing the ticket:

Therefore I'm going to propose a fix for 1.0.3, adding an option named never_notify_self. The option will probably be removed when the notification rule system of AnnouncerPlugin is integrated. I've added a deprecation notice at NeverNotifyUpdaterPlugin@22.

Proposed changes in log:rjollos.git:t2247-never-notify-self.

comment:52 follow-up: Changed 3 weeks ago by psuter

Personally I would prefer to move forward with TracDev/Proposals/AdvancedNotification. It was stalled for a long time waiting for the 1.1.2 release, but I would be happy to discuss any issues that would prevent refreshing and merging the changes proposed there so far for 1.1.3.

Adding new options in the meantime seems a bit counterproductive to me.

comment:53 in reply to: ↑ 52 ; follow-ups: Changed 3 weeks ago by cboos

Replying to psuter:

Personally I would prefer to move forward with TracDev/Proposals/AdvancedNotification. It was stalled for a long time waiting for the 1.1.2 release, but I would be happy to discuss any issues that would prevent refreshing and merging the changes proposed there so far for 1.1.3.

I wasn't aware of your psuter.hg@advanced-notification-preferences branch, it looks really nice and I indeed think it would be worth integrating. You could perhaps rebase it on a recent trunk to ease the testing?

As usual, I'm looking for a middle ground… ;-) Ryan, your fix looks like a nice solution for 1.0-stable, do you see an easy transition path from your 'never-notify-self' to Peter's new framework (some INotificationSubscriber returning 'never' for the user triggering the event?).

comment:54 in reply to: ↑ 53 Changed 3 weeks ago by rjollos

Replying to cboos:

Ryan, your fix looks like a nice solution for 1.0-stable, do you see an easy transition path from your 'never-notify-self' to Peter's new framework (some INotificationSubscriber returning 'never' for the user triggering the event?).

Thanks, I'll look into that. I'd like to provide something for 1.0-stable since we'll be supporting that for some time and there's a need for a fix.

comment:55 in reply to: ↑ 53 ; follow-up: Changed 3 weeks ago by psuter

Replying to cboos:

You could perhaps rebase it on a recent trunk to ease the testing?

Sure, I also plan to fold in Jun's improvements for easier reviewing. Oh, I didn't notice the changes from #2259 before, so it's not entirely trivial to rebase.

Maybe I should commit log:psuter@advanced-notification-preliminary-refactorings so at least these don't have to be rebased again later.

I'm not opposed to provide something for 1.0-stable, e.g. after merging this branch (which I hoped to do in the next few days).

comment:56 in reply to: ↑ 55 ; follow-ups: Changed 3 weeks ago by rjollos

Replying to psuter:

Maybe I should commit log:psuter@advanced-notification-preliminary-refactorings so at least these don't have to be rebased again later.

I'll hold off committing anything for this ticket until all your changes are committed. The changes in this ticket are pretty small, so it'll be no problem to wait and rebase my changes before committing towards the end of milestone:1.0.3, adding an upgrade step on the trunk if necessary to migrate the never_notify_self option to the new notification preference module (haven't yet looked at what might required).

Last edited 3 weeks ago by rjollos (previous) (diff)

comment:57 follow-up: Changed 3 weeks ago by psuter

Thanks.

I updated the branch psuter.hg@advanced-notification-preferences.2.

Most relevant to this ticket is TicketUpdaterSubscriber, a INotificationSubscriber that allows subscribers to get notifications if they update a ticket, or conversely 'never' to get such notifications. A new never_notify_self option might indeed fit in here, e.g. as a 'never' "default subscription". The always_notify_updater option already enables the 'always' default subscription.

(That option so far also notified past updaters. I think that was confusing and unpopular, and should be dropped here. We can maybe provide a cookbook recipe example to implement this behavior separately if anyone actually wants it.)

comment:58 Changed 2 weeks ago by bobbysmith007@…

I am the author of the th:NeverNotifyUpdaterPlugin. I am happy for this solution to finally be a part of trac (as it seems a more logical behaviour, to my users, than the current default behaviour).

I glanced through the diff of log:rjollos.git:t2247-never-notify-self and it all seemed reasonable and in line with what my plugin was doing.

Thanks for updating the plugin wiki page, and progressing this work toward inclusion.

comment:59 in reply to: ↑ 57 ; follow-ups: Changed 2 weeks ago by dstoecker

Replying to psuter:

(That option so far also notified past updaters. I think that was confusing and unpopular, and should be dropped here. We can maybe provide a cookbook recipe example to implement this behavior separately if anyone actually wants it.)

What do mean? We e.g. use the feature that "commenting once" means "be notified". While this may be uncommon for experience bug tracker users it's very helpful for non-experienced users. So don't drop that possibility! Let the users (or the admin) choose whether they want that.

comment:60 in reply to: ↑ 59 Changed 2 weeks ago by rjollos

Replying to dstoecker:

Replying to psuter:

(That option so far also notified past updaters. I think that was confusing and unpopular, and should be dropped here. We can maybe provide a cookbook recipe example to implement this behavior separately if anyone actually wants it.)

What do mean? We e.g. use the feature that "commenting once" means "be notified". While this may be uncommon for experience bug tracker users it's very helpful for non-experienced users. So don't drop that possibility! Let the users (or the admin) choose whether they want that.

Right, the two behaviors just need to be controlled through separate preferences.

I found the notify past updaters behavior to be confusing until I started thinking differently about the option. always_notify_updater results in all updaters of the ticket being notified, including the user currently updating the ticket. However, the latter could be interpreted as just a consequence of the former, with the former being the primary intent of the option. It might be better named always_notify_updaters to indicate everyone that has ever updated the ticket.

never_notify_updater gives updater a definite different meaning, which is why I proposed naming the option never_notify_self.

However, replying to comment:3:ticket:11835:

  • I also thought about trac-author-self, but if this is appeals to the dev, it could maybe a bit obscure for the admin; anyway, it should be clear that by "user" we mean the currently logged in user (e.g. #150)

I see what you are saying though about self being confusing to the administrator, who need to be thinking of self from the standpoint of the user editing the ticket (this will be different when we have per-user notification options and self can be interpreted as the user configuring their notifications). Any thoughts on whether updater or self should be used in the never_notify option? It probably doesn't matter as much with the option likely only living as long as 1.0.x series.

comment:61 Changed 2 weeks ago by dstoecker

Actually I think "self" is understandable also for the admin.

comment:62 Changed 2 weeks ago by psuter

Oh OK then. Thanks for explaining.

past_updaters and current_updater would maybe be most clear. But I'm not sure it's worth changing now. self also seems quite understandable to me.

comment:63 in reply to: ↑ 59 Changed 11 days ago by psuter

Replying to dstoecker:

What do mean? We e.g. use the feature that "commenting once" means "be notified". While this may be uncommon for experience bug tracker users it's very helpful for non-experienced users. So don't drop that possibility! Let the users (or the admin) choose whether they want that.

See comment:35:ticket:4056.

comment:64 in reply to: ↑ 56 Changed 10 days ago by psuter

Replying to rjollos:

I'll hold off committing anything for this ticket until all your changes are committed. The changes in this ticket are pretty small, so it'll be no problem to wait and rebase my changes before committing towards the end of milestone:1.0.3, adding an upgrade step on the trunk if necessary to migrate the never_notify_self option to the new notification preference module (haven't yet looked at what might required).

I have now committed all related changes.

TicketUpdaterSubscriber and TicketPreviousUpdatersSubscriber implement always_notify_updater for the current updater and past updaters respectively, and could be extended to implement never_notify_self as well.

comment:65 Changed 44 hours ago by anonymous

This *really* needs to go into 1.0.3 nobody is so senile that they forget what they just posted…

comment:66 in reply to: ↑ 56 Changed 39 hours ago by psuter

Replying to rjollos:

adding an upgrade step on the trunk if necessary to migrate the never_notify_self option to the new notification preference module

In #11875 I propose a new [notification-subscriber] section and an upgrade step to migrate always_notify_* to that. never_notify_self could be handled there as well.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as assigned The owner will remain rjollos.
The ticket will be disowned. Next status will be 'new'.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from rjollos to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.