Ticket #5658 (new defect)
Closing milestone and retargeting tickets to another does not show in change history
| Reported by: | mlists at bigrideau.com | Owned by: | cmlenz |
|---|---|---|---|
| Priority: | normal | Milestone: | next-major-0.1X |
| Component: | roadmap | Version: | 0.10.4 |
| Severity: | major | Keywords: | consider |
| Cc: | th07@… |
Description (last modified by cboos) (diff)
When I close a milestone and select "retarget open tickets" the tickets are successfully retargeted, however the change in milestone is not reflected in the ticket change history.
Attachments
Change History
comment:1 Changed 3 years ago by cboos
- Keywords consider added
- Description modified (diff)
- Milestone set to 0.12
comment:2 follow-up: ↓ 3 Changed 3 years ago by anonymous
Pardon my ignorance, but given that a milestone change on its own is reflected in the ticket history could this same api not be called when a ticket is retargeted?
comment:3 in reply to: ↑ 2 ; follow-up: ↓ 4 Changed 3 years ago by cboos
As I said, it's not trivial if we don't want to duplicate the metadata. Conversely, it is trivial if we decide to duplicate the change information everywhere...
The real problem is that doing a big bunch of inserts (one entry recording the change metadata, either directly or indirectly a la #1890) will likely expose the milestone retarget operation to locking issues (see #3446).
comment:4 in reply to: ↑ 3 Changed 3 years ago by eblot
Replying to cboos:
The real problem is that doing a big bunch of inserts (one entry recording the change metadata, either directly or indirectly a la #1890) will likely expose the milestone retarget operation to locking issues (see #3446).
Would it be possible, as a workaround, to acquire and release a DB lock for each updated ticket? Retargetting ticket is an operation that occurs only a few times so a slow execution is not a big issue IMHO. OTOH, managing metadata may not be implemented in the next months... so a temp. workaround may be a useful solution.
comment:5 Changed 3 years ago by mlists at bigrideau.com
Has my vote. You are correct that at least in our usage model this would happen at most once per week so speed is not of the essence.
comment:6 Changed 3 years ago by cboos
#5897 mentions the same problem but for milestone renames instead of retarget after close.
comment:7 Changed 3 years ago by mape <th07@…>
- Cc th07@… added
This kind of silent changes really confuses up my TimeVisualizerPlugin, which draws burndown graphs from ticket, ticket_custom and especially from ticket_change. If history is not properly written, the graph gets messed and can't be reliably used to trace projects (scrum burndown graph).
I'm quite new to trac. Is there any other cases when ticket_change gets outdated? Quicly I could name these:
- retarget open tickets when closing milestone Trac#5658
- rename milestone Trac#5897
- my guess: using webadmin to change component or milestone names
It would feasible to minimize db altering with SQL and use APIs whenever possible. And then APIs should respect history (as proposed in TracObjectModelProposal. I strongly support idea of having unique (and constant) id for objects as proposed in DataModel, which would fix renaming issues.
I have now a bad feeling that it is too easy mess up my graph with trac (or 3rd components). Maybe the original idea of having ticket listener and writing own log would have been better - even it has many other drawbacks. Of course ticket listener itself would not be enough - I would need also milestone and component listeners...
comment:8 Changed 2 years ago by cboos
- Description modified (diff)
- Severity changed from normal to major
#7615 was closed as duplicate.
One of the issue here is how to store the change efficiently for all the tickets (see related discussion on this topic in #1890). Same problematic applies to #525 as well.
Also I think that adding a fixed comment like "milestone was renamed" or "retargeted after closing milestone", depending on the situation would be nice. In the future, this might even contain a link to the milestone version which triggered the change (for now milestone data is unversioned).



Right, this would be a nice thing to have. However, the design is not trivial if we don't want to duplicate the change metadata everywhere.
Related to #1890 (change metadata) and #525 (batch modifications).