I'm looking for a part-time remote job.

Hire me


I'm the author of:

Mastering Redmine is a comprehensive guide with tips, tricks and best practices, and an easy-to-learn structure.

Check the book's project or

Buy the book

Social pages of the book:

By buying this book you also donate to Redmine (see this page).


Follow me:

Per-project issue ID (with project key)

The ISSUE-id plugin adds support for a new style of issue IDs to Redmine. With this plugin issue ID can consist of a special project key (e.g., “ISSUE”) and a per-project issue number (which starts from 1 for each project). In other words, issue IDs can look like #ISSUE-1, #ISSUE-2, #ISSUE-3 and so on.

The similar ID style is used by most major Redmine competitors, such as JIRA of Atlassian.

Disclaimer

Currently, the goal is to have an alternative issue ID in Redmine and it is not no way to replace the native ID! So with this plugin you will see and will be able to use both IDs.

As the issue ID is used very intensively by Redmine I was not able to replace all and every legacy ID yet. And it was not, actually, the goal to. At the moment, it is important to see, what problems can be raised by this change, and, in this case, the less changes are the better.

Caution

The ISSUE-id plugin provides its unique feature by hardly intruding into Redmine’s functionality. The fact, that it works fine, is quite surprising...

This means, that any new version of Redmine can potentially come with changes, which can cause this plugin and/or Redmine itself to fail!

So, after installing this plugin you should refuse to install new versions of Redmine as soon as they are released! Instead you should wait for this plugin to get updated and/or confirmed to work stable with the corresponding version of Redmine!
Such information is going to be published on the overview page of this project.

While I can check, whether the plugin works fine with the pure Redmine, I can’t be sure, that other Redmine plugins do not conflict with ISSUE-id!

So, after installing this plugin you should make sure, that it works fine with all other plugins, which you use or which you will install in future!
I tested this plugin on installations having all my other plugins installed and found no conflicts with them so far.
For developers!
If you are a developer of a Redmine plugin, you can make it compatible with ISSUE-id using the following coding guidelines.

Configuration

Issue keys can not be same for different projects, but can be same for a project and its subprojects. This can be controlled with the only plugin’s configuration option, which can be found in Administration → Plugins → ISSUE-id → Configure:

Issue key sharing option

If this option is checked, a project will be able to share its issue key with subprojects.

Migrating to new issue IDs

Generally, all you need to migrate your issues to the new format is to specify an issue key in your project settings:

New elements in project settings

However, there is a nuance related to the issue key sharing option:

Upon migration issues of a project get sequent numbers according to their legacy issue IDs. That is, the original order will be preserved. However, if later you add the same issue key to, e.g., a project’s subproject, its issues will get next sequent numbers.

For example:

  • If project A has issues #34, #67 and #98, new issue IDs will be #A-1, #A-2 and #A-3 correspondingly.
  • If later you use the same issue key for subproject AB, which has issues #23 and #78, new issue IDs will be #A-4 and #A-5.

Not a big deal, but if you want the order of new issue IDs to inherit the order of old issue IDs, i.e., to get #A-2, #A-3 and #A-5 for project A and #A-1 and #A-4 for project AB, you need to migrate all future #A-* issues at once.

So here is how you can do this:

  1. If any of subprojects at any depth are going to have different issue keys, migrate them first!
  2. Then choose the most parent project in the hierarchy and check the “Use this issue key for all available subprojects” option, when specifying the issue key for it!

This way the plugin will first register the new issue key in all subprojects, which do not have the issue key yet, and then migrate all issues of all projects, which got this new issue key, at once.

Limitations related to moved issues

The ISSUE-id-like functionality was requested for Redmine for a long time (see #74, #282, #538, #1926, #3843, #5765, #6642, #6884, #7873 and #8039). The main reasons for not including this functionality into the core always were support for issue moving and problems related to this feature.

The ISSUE-id plugin does not resolve all these problems (it just can’t do this)! And you should consider this, when using this plugin!

So, what happens, when you move an issue?

  • A moved issue always gets new ID (if the project key is changed)!
  • The old issue id gets saved into a special “backup” table.
  • This backup table will be checked in some cases, e.g., when an old issue id is used in URL.
  • When an old issue ID is used in URL, the user will be automatically redirected to the URL with the new issue ID.
  • In most other cases the old issue ID won’t work!
Yet still the native legacy Redmine issue ID will suffer the move just fine and will continue to work in all cases!

Installation

To install this plugin do:

  • Copy issue_id directory to: #{RAILS_ROOT}/plugins
  • Run: rake redmine:plugins:migrate RAILS_ENV=production
  • Restart Redmine

issue-key-sharing.png View - Issue key sharing option (13.4 KB) Andriy Lesyuk, 07 Sep 2013 23:47

project-settings.png View - New elements in project settings (15.8 KB) Andriy Lesyuk, 08 Sep 2013 12:11

Terms of use | Privacy policy