Edgewall Software
Modify

Opened 15 years ago

Last modified 19 months ago

#7871 new enhancement

Add start date to a milestone

Reported by: daan@… Owned by:
Priority: high Milestone: next-major-releases
Component: general Version: none
Severity: major Keywords: tracobject
Cc: fcorreia@…, Thijs Triemstra, liltor@…, franz.mayer@…, Ryan J Ollos, maynard.k@… Branch:
Release Notes:
API Changes:
Internal Changes:

Description

It would be nice to have a start date for a milestone. With that, it's possible:

  • To filter on started/not started milestones on the Roadmap page
  • Create reports to show only tickets in currently active milestones
  • Sort on started date in the 'Milestone' dropdown on the ticket create and update pages.

With a start date built-in, plugins could use that (for example the Scrum Burndown plugin) to draw their graphs. The Scrum Burndown plugin now has to arrange a column, while it could be useful for more plugins.

Attachments (2)

7871_add_startdate_to_milestone.diff (17.2 KB ) - added by Maynard K. <maynard.k@…> 22 months ago.
Here is a git diff with my code changes to add a start date to milestone. A description of what I've done follows: 1. Changed default db schema and added 'start' column to milestone table (in the same manner as 'due' column) 2. Modified MilestoneAdminPanel to add milestones with a start date 3. Modified MilestoneCache and Milestone class to - add milestone with start date - update milestone with start date 4. Modified Query class to properly add and update start date 5. Modified Roadmap module to work with start dastes 6. Modified html templates to work with start dates 7. Modified unittests to work with start date (all tests passed) This should be a good start to add some more functionalities using start date of a milestone. The only thing missing (possibly a new ticket) would be to add a check whether start date ⇐ due date. I'm not sure if this is necessary as the milestone can be edited at any time.
7871_add_startdate_to_milestone_version_2.diff (24.1 KB ) - added by Maynard K. <maynard.k@…> 22 months ago.
Here is my new commit.

Download all attachments as: .zip

Change History (29)

comment:1 by fcorreia@…, 15 years ago

Cc: fcorreia@… added

(just listening)

comment:2 by Christian Boos, 15 years ago

Keywords: tracobject added
Milestone: experimental

Custom field for milestones …

comment:3 by Christian Boos, 14 years ago

Milestone: experimentalnext-major-0.1X

Milestone experimental deleted

comment:4 by Christian Boos, 14 years ago

Owner: set to Christian Boos

comment:5 by stefan.simroth@…, 14 years ago

Cc: stefan.simroth@… added

I would find that also incredibly useful, so I'm listening, too.

I'd like to create a Gantt chart from the Roadmap / Milestones for a better overview.

comment:6 by Thijs Triemstra, 13 years ago

Cc: Thijs Triemstra added
Priority: normalhigh
Severity: normalmajor

Makes a lot of sense.

comment:7 by liltor@…, 13 years ago

adding my 2 cents for this one

comment:8 by liltor@…, 13 years ago

Cc: liltor@… added

comment:9 by Steve Nixon <steve.nixon@…>, 12 years ago

A milestone start date also allows calculation of how accurate (predicatble) we are performing. The difference from the Start-date to the Due-date and Completed-date can then be compared. Were we early, on time or late?

This would improve project planning in general as well as making this kind of information visible to stakeholders ion the project.

comment:10 by Christian Boos, 12 years ago

Idea: workflow for milestones, e.g.

start = new -> active
finish = active -> closed
finish.set_resolution = completed
pause = new, active -> onhold
cancel = active, onhold -> closed
cancel.set_resolution = cancelled
restart = closed, onhold -> active

in reply to:  10 ; comment:11 by Christian Boos, 12 years ago

And of course, proper history, so each change is tracked and has a modification time associated to it.

comment:12 by Ryan J Ollos <ryano@…>, 12 years ago

Cc: ryano@… added

in reply to:  11 ; comment:13 by framay <franz.mayer@…>, 12 years ago

Cc: franz.mayer@… added

Replying to comment:10 of cboos:

Idea: workflow for milestones, e.g.

OT: cool, I didn't know that you could do workflow-graphs in Trac. Shouldn't it be listed in WikiProcessors#AvailableProcessors?! Maybe all available processors should be listed dynamically by a macro / processor?!

Replying to comment:11 of cboos:

And of course, proper history, so each change is tracked and has a modification time associated to it.

Change history for milestones would be really useful. But wasn't there a discussion about making milestone "just a special ticket"? I haven't found it at once (searched for "milestone as ticket").

comment:14 by stefan.simroth@…, 12 years ago

Cc: stefan.simroth@… removed

in reply to:  13 comment:15 by Peter Suter, 12 years ago

Replying to framay <franz.mayer@…>:

OT: cool, I didn't know that you could do workflow-graphs in Trac. Shouldn't it be listed in WikiProcessors#AvailableProcessors?! Maybe all available processors should be listed dynamically by a macro / processor?!

See #10270. It's a new macro, so it's listed (by the MacroList macro) at 0.13/WikiMacros. Not sure, maybe the ProcessorList macro from #10201 could in the future also list it on the WikiProcessors page.

But wasn't there a discussion about making milestone "just a special ticket"? I haven't found it at once (searched for "milestone as ticket").

#3003 maybe?

comment:16 by Ryan J Ollos <ryano@…>, 12 years ago

comment:10 sounds great to me, but also outside the scope of the request in this ticket. I'd find it incredibly valuable to have a start date for milestone, and have even considered creating a plugin to add this. Creating the plugin would be challenging (and fun) for me, but I imagine that adding a start date is trivial for the Trac developers, and would just like to emphasize how useful this feature would be, and how appreciative I'd be if this were added :) To put it simply, as a starting point I'd just like to know the time span for a milestone, and be able to quickly determine the number of tickets closed in a milestone. Plugins could use this data to derive more complex metrics.

in reply to:  16 comment:17 by Ryan J Ollos <ryano@…>, 12 years ago

Replying to Ryan J Ollos <ryano@…>:

To put it simply, as a starting point I'd just like to know the time span for a milestone, and be able to quickly determine the number of tickets closed in a milestone.

Poor wording. More precisely, I'd like to be able to quickly determine the burndown rate to an end-point spanning multiple milestones - (Number of tickets closed in a milestone) / (time span for the milestone).

in reply to:  10 comment:18 by Ryan J Ollos <ryano@…>, 12 years ago

#10674 was created after some observation about how the WorkFlow macro behaves in comment:10.

comment:20 by Ryan J Ollos, 10 years ago

Cc: Ryan J Ollos added; ryano@… removed

comment:21 by Ryan J Ollos, 9 years ago

Owner: Christian Boos removed

comment:22 by Maynard K. <maynard.k@…>, 22 months ago

Cc: maynard.k@… added

I'm going to solve this issue. Solution includes:

  • changing db schema (add start as column in milestones table)
  • fixing milestone modify page and quick add at milestone admin page (add field for start date)
  • include a simple check that start date is set before due date (if both, start and due date are set)
  • add filter for roadmap page to filter for started milestones
  • fix dependencies → SQL query, model, admin so that the start date is updated and maintained correctly

Did I forget something?

Goal is to provide a commit until next Wednesday at the latest

by Maynard K. <maynard.k@…>, 22 months ago

Here is a git diff with my code changes to add a start date to milestone. A description of what I've done follows: 1. Changed default db schema and added 'start' column to milestone table (in the same manner as 'due' column) 2. Modified MilestoneAdminPanel to add milestones with a start date 3. Modified MilestoneCache and Milestone class to - add milestone with start date - update milestone with start date 4. Modified Query class to properly add and update start date 5. Modified Roadmap module to work with start dastes 6. Modified html templates to work with start dates 7. Modified unittests to work with start date (all tests passed) This should be a good start to add some more functionalities using start date of a milestone. The only thing missing (possibly a new ticket) would be to add a check whether start date ⇐ due date. I'm not sure if this is necessary as the milestone can be edited at any time.

comment:23 by Maynard K. <maynard.k@…>, 22 months ago

i did some testing and everything worked so far with milestone start date

comment:24 by anonymous, 22 months ago

Looks like a great start!

  • A database migration is missing, to upgrade the schema of existing Trac installations. See source:trunk/trac/upgrades
  • trac-admin milestone add command: Adding the [start] argument before the [due] argument seems not backward compatible. (Pre-existing admin scripts would break.) Maybe add it at the end instead?
  • I'm not sure a "start date < due date" test is needed. Maybe it was due today, but still not started.

This should be a good start to add some more functionalities using start date of a milestone

Do you have any ideas for that? Just curious.

in reply to:  24 comment:25 by Maynard K. <maynard.k@…>, 22 months ago

Replying to anonymous:

Looks like a great start!

Okay, no problem I'll fix that.

  • trac-admin milestone add command: Adding the [start] argument before the [due] argument seems not backward compatible. (Pre-existing admin scripts would break.) Maybe add it at the end instead?

I did this before but felt like this is a bit counterintuitive. In terms of backward compatibility, you are totally right. It is probably the simplest way to just add it at the end. I'll fix that too.

  • I'm not sure a "start date < due date" test is needed. Maybe it was due today, but still not started.

Oh yes, I think I somehow misunderstood the meaning of the start date. I agree, that no such test case is needed.

This should be a good start to add some more functionalities using start date of a milestone

Do you have any ideas for that? Just curious.

I would go along with some previous comments, using the difference between start and due date to define a performance measure to see how your project is doing (in-time, late). If we would add an "Estimated Time" field one could add even more functionalities. If we know when we started we could calculate the possible delay, for example.

comment:26 by Jun Omae, 22 months ago

I think we should choice another word for "start date" column of a milestone table because START is included in reserved words in SQL 2016.

Last edited 22 months ago by Jun Omae (previous) (diff)

comment:27 by anonymous, 22 months ago

Maybe started would be better anyway?

by Maynard K. <maynard.k@…>, 22 months ago

Here is my new commit.

comment:28 by Maynard K. <maynard.k@…>, 22 months ago

I changed "start" column to "started", added unittests for admin console and changed the order of trac-admin milestone add back to <due> <started> for backward compatibility.

I also added a database migration file to update existing Trac installations.

Cheers, Maynard

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The ticket will remain with no owner.
The ticket will be disowned.
as The resolution will be set. Next status will be 'closed'.
The owner will be changed from (none) to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.