So I don't think this requires design level thought. Calling IBug.subscribe() directly does not update date_last_updated, by design. That behavior hasn't changed since r3000 something -- for a long long while.
The problem is happening due to the API. When you call bug.subscribe(person=launchpad.me) over the API the lazr.restful machinery calls notify(ObjectModifiedEvent(bug)) since it assumes the object has been modified since you just called a method on it. That causes date_last_updated to be updated via the Zope subscriber.
Now I've dumped state, I'm going to write a test and fix the issue hopefully on Monday.
So I don't think this requires design level thought. Calling IBug.subscribe() directly does not update date_last_updated, by design. That behavior hasn't changed since r3000 something -- for a long long while.
The problem is happening due to the API. When you call bug.subscribe( person= launchpad. me) over the API the lazr.restful machinery calls notify( ObjectModifiedE vent(bug) ) since it assumes the object has been modified since you just called a method on it. That causes date_last_updated to be updated via the Zope subscriber.
Now I've dumped state, I'm going to write a test and fix the issue hopefully on Monday.