Dealing with Version/Releases in Redmine

Added by Simone Carletti over 9 years ago

I'm moving a few Trac project to an unique Redmine installation and I'm playing around with some Redmine features.
Coming from Trac and Jira I should say that the way Redmine exposes Version (and Release) management is not so flexible.

Let me share my thoughts. For the sake of completeness I'm going to compare Redmine with Trac and Jira.

This is the Redmine 0.7.x Version model schema:

  create_table "versions", :force => true do |t|
    t.integer  "project_id",      :default => 0,  :null => false
    t.string   "name",            :default => "", :null => false
    t.string   "description",     :default => "" 
    t.date     "effective_date" 
    t.datetime "created_on" 
    t.datetime "updated_on" 
    t.string   "wiki_page_title" 
  end

Redmine basically relies on a single effective_date datetime field.
To release a Version (thus to "convert" it to a release) you should fill the effective_date field with a valid datetime.
This approach leads to some major project management issues:

  1. You cannot distinguish whether a version is released or expired (in other words you miss the deadline)
  2. You cannot log whether you completed a milestone before scheduled time
  3. Last but not least, your migration from Trac (and perhaps other Issue Tracker) causes some data loss. Trac uses 2 datetime fields, one of the scheduled time and one for the release time. Additionally, migrate_from_trac script seems to be buggy because it didn't fill the completed datetime for my old Milestones causing all Redmine Versions to be considered as "open".

Merging the best from Redmine, Trac and Jira I would suggest the following:

  1. Create a new datetime schedule_date field to log the Version deadline (if any)
  2. Add a boolean field called released to flag this Version as released or not as Jira does (see screenshot)
  3. Optionally rename effective_date# to something more clear like @release_date
  4. Optionally change version description in order to enable textile input as Trac does (see #1256)

This will provide a more powerful release/milestone/version control.

Any feedback? What do you think about this idea?

jira-release.png (50.3 KB)

Replies (15)

RE: Dealing with Version/Releases in Redmine - Added by gabriel scolan over 9 years ago

+1

I just don't know if this should be a "Redmine" feature or just supported by the possibility to add Custom Fieds to the Versions item (see also http://www.redmine.org/boards/1/topics/show/865)

RE: Dealing with Version/Releases in Redmine - Added by Anonymous over 9 years ago

+1 also. It would be really useful to have a separate due date from completed date.

RE: Dealing with Version/Releases in Redmine - Added by Nick Read over 9 years ago

I also vote for this - anything that helps version/milestone management makes my life much easier :)

Gabriel wrote:

...or just supported by the possibility to add Custom Fields to the Versions item...

I doubt this could be accomplished with custom fields. The roadmap should highlight or warn of versions that are overdue, and this would require Redmine to know the exact meaning of the scheduled date. The same can be said about the "released" attribute of a version.

RE: Dealing with Version/Releases in Redmine - Added by Lane Roathe over 9 years ago

+1 here as well. Being able to track scheduled completion date from actual completion date is important. (the same thing could be said for issues as well)

RE: Dealing with Version/Releases in Redmine - Added by Simone Carletti over 9 years ago

Nice to see my proposal meets the wishes of other users.
It would be glad to hear some feedback as well from Core developers. :)

That's a pity this project is not managed with GIT, I would be able to start the development myself from a branch or a fork. :(

RE: Dealing with Version/Releases in Redmine - Added by Eric Davis over 9 years ago

That's a pity this project is not managed with GIT, I would be able to start the development myself from a branch or a fork. :(

I agree. I maintain a private git-svn copy for myself. Looks like there are a few people with forks on GitHub right now but none are maintaining the core. I would be willing to do a conversion to github if others would find it useful and Jean-Philippe Lang is ok with it.

Eric

RE: Dealing with Version/Releases in Redmine - Added by Simone Carletti over 9 years ago

RubyForge introduced GIT support a few weeks ago.
I have been using it since 3 weeks in parallel with GitHub.

I don't know if there are some design decisions behind the choice of using Subversion for Redmine.
If not, Jean-Philippe Lang could consider as well to ask RubyForge guys to migrate the repos from SVN to GIT. :)

Anyway, nice to hear your feedback Eric.
I'll be more than happy to join the "GIT Party" if you, Jean or someone else is going to migrate/clone the repos. :)

RE: Dealing with Version/Releases in Redmine - Added by Eric Davis over 9 years ago

I'll be more than happy to join the "GIT Party" if you, Jean or someone else is going to migrate/clone the repos. :)

I've just started the migration and will post some more details about it once it's ready. Worst case, I'll try to keep it in sync with svn for us Git users and will use it to publish my not so tiny patches. Best case, we can convince Jean-Philippe Lang to move to git as the blessed repository.

Eric

RE: Dealing with Version/Releases in Redmine - Added by Lane Roathe over 9 years ago

As a long time svn user, all this talk about git has me intrigued ... is there a good link for svn users to see what git is all about and maybe why we'd want to consider using it over svn?

Thanks (totally off topic now!)

RE: Dealing with Version/Releases in Redmine - Added by Simone Carletti over 9 years ago

I've just started the migration and will post some more details about it once it's ready.

Great!
However if the main repos it not GIT powered it would always be a pain to submit patches.
I'm really addicted to git-svn tool, but its not so powerful. ;)

I've just started the migration and will post some more details about it once it's ready.

It would be nice to hear his feedback, at least about the overall idea we're talking about in this topic.

As a long time svn user, all this talk about git has me intrigued ... is there a good link for svn users to see what git is all about and maybe why we'd want to consider using it over svn?

I would suggest, in order

  1. http://peepcode.com/products/git A wonderful screencast
  2. http://wiki.sourcemage.org/Git_Guide (an excellent quick reference)
  3. An example usage http://drnicwilliams.com/2008/02/03/using-git-within-a-team/
  4. Git for SVN users: http://git.or.cz/course/svn.html

RE: Dealing with Version/Releases in Redmine - Added by Lane Roathe over 9 years ago

I would suggest, in order

Thanks. Definitely some items in git that would be great for svn to adopt, and seems well setup for open source development. I could probably manage to use git if Redmine switched.

RE: Dealing with Version/Releases in Redmine - Added by Nick Read over 9 years ago

Just adding this for reference.

#1360 is a new feature request that talks about version statuses: Open, Locked and Completed.

RE: Dealing with Version/Releases in Redmine - Added by Jani Tiainen over 9 years ago

I was also wondering how to handle Trac way version/milestone when reporting issues, specially bug reports.

There would really handy to be have two fields, first to select at which version bug appered and second which already exists is this"target version that marks when bug is about to be fixed.

RE: Dealing with Version/Releases in Redmine - Added by Jonas Nielsen over 9 years ago

The difference between a milestone and a version in Trac is that you can set a deadline for a milestone. Most people find it annoying to add a specific deadline to every single task they have, but if they choose a milestone for their task, the deadline is already given. If this was implemented it would make it much more easy to see if people have overestimated their tasks. Just compare the sums of all the estimations in the milestone with the time left until the deadline of the milestone.

I don't use Redmine yet, but this seems to the feature missing for me to change from Trac to Redmine.

(1-15/15)