Project

General

Profile

Actions

Feature #13387

open

Improving Redmine's version model (not just milestones)

Added by Anonymous over 11 years ago. Updated almost 8 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Roadmap
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:

Description

I've done extensive reading on past conversations about Redmine's version model. I'm not impressed by the suggested changes, which are kludgy and narrowly focused on strict definitions of terminology (milestones, phases, sprints, versions). The use cases are still important, so I hope this addresses most of them.

TL;DR
Evolve the version model so that it approaches the issue model, but retaining the cross-project visibility (sharing) system.

Detail
Most enhancements to versions are functionally one of two things: tags or hierarchical. We either assign values to versions for the sake of filtering them later (tags), or apply a structure to versions so that there are parents and children (hierarchical). Neither of these address all use cases, and both have been considered models for implementing milestones alongside versions.

I propose a three step solution.

1. Rename. Just as there's no need for a dozen trackers with the same fields and workflows, there's no need for half a dozen names for the same thing: dated objects work can be measured against. Versions, milestones, sprints, and releases are all Deliverables. Let's call them that. All of them.

2. Evolve the model. Deliverables need more versatility, and the issue model provides it, starting with relationships. Let's face it, a great deal of use cases could map deliverables with a Gantt chart, dependencies and all. Relationships allow it:

  • Follows/precedes. Let a deliverable have a delivery date and/or a duration. If v1.1 comes 30 days after v1.0 and v1.0 is delayed a week, v1.1 follows suit.
  • Parent/child. Let this solve the milestone-version debate once and for all. By keeping the existing version sharing system, parent/child deliverables can be tracked in the simplest and most complex project structures. Using milestones to coordinate many different component/subproject versions? Set up parent deliverables in the root and relate them to child versions in the subprojects. Using milestones to track phases within a version? Set them up in the same project as children. Gold. Filtering to a deliverable with children will list all issues associated with it and them, for all-inclusive progress reports if desired.
  • Duplicates. Too late to resolve poor planning and version configuration? Just want to quickly build a report without updating 200+ bugs' target version? Make v.1.0 a duplicate of v1.0 and your v1.0 report will include all issues targeting the mistake.

3. Lastly, and where the functionality comes to life, a filter UI must be added to the Roadmap. This lets you build your query around exactly what deliverable data you need, and will immediately make all of those version custom fields more powerful.

I believe implementing this would require two changes to the database: (1) expanding the existing versions table and (2) establishing a version_relations table. Afterwards, the version create/edit form would need to be updated to write these values, version drop-down fields for issues may want to indent parent/children if necessary, and filters would need to be added to the Roadmap.

I'm fairly confident this model addresses ALL past requests for version improvements, but I'm always happy to be proven wrong!


Related issues

Related to Redmine - Feature #374: Support for milestones/iterations as part of projectsNew

Actions
Related to Redmine - Feature #8991: Nested versions for projects with sub-projectsNew2011-08-05

Actions
Related to Redmine - Feature #724: change "versions" to "milestones"New2008-02-22

Actions
Related to Redmine - Feature #18126: Allow setting up version hierarchyNew

Actions
Related to Redmine - Feature #17907: Give 'version' another meaningNew

Actions
Related to Redmine - Feature #23285: Version to have history New

Actions
Related to Redmine - Feature #23286: Customizable state model workflow for versionsNew

Actions
Related to Redmine - Feature #23287: Better structuring of Version pageNew

Actions
Has duplicate Redmine - Feature #453: a version includes many versionsClosed

Actions
Actions

Also available in: Atom PDF