Edgewall Software

Ticket #5658 (new defect)

Opened 14 months ago

Last modified 13 months ago

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: 0.13
Component: roadmap Version: 0.10.4
Severity: normal 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

  Changed 14 months ago by cboos

  • keywords consider added
  • description modified (diff)
  • milestone set to 0.12

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).

follow-up: ↓ 3   Changed 14 months 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?

in reply to: ↑ 2 ; follow-up: ↓ 4   Changed 14 months 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).

in reply to: ↑ 3   Changed 14 months 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.

  Changed 14 months 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.

  Changed 13 months ago by cboos

#5897 mentions the same problem but for milestone renames instead of retarget after close.

  Changed 13 months 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...

Add/Change #5658 (Closing milestone and retargeting tickets to another does not show in change history)

Author



Change Properties
<Author field>
Action
as new
as The resolution will be set. Next status will be 'closed'
to The owner will change. Next status will be 'new'
The owner will change to anonymous. Next status will be 'assigned'
 
Note: See TracTickets for help on using tickets.