#4968 Project upgrade silently changes issue numbers [ss623] [ss637] NEEDS INI

v1.0.0
closed
nobody
General
Cory Johns
2015-08-20
2012-09-18
Chris Tsai
No

Implementation: We should index ticket's import_id in solr (put it in the index() method) so it is searchable. Also make URLs like /myproject/tickets/N when a regular ticket isn't found then fall back to check import_id. If a ticket is found by import_id, do a permanent redirect to the real url for that ticket.


[forge:site-support:#623]

Issue numbers from the sourceforge bug tracking system prior to migration did not migrate in project upgrade, and description of upgrade consequences did not warn of this.

As a test of the project upgrade path, I upgraded the sarmanager project. The consequences of upgrade appear to be poorly documented in the requests for projects to upgrade. One severe side consequence is the renumbering of issues in the sourceforge issue tracking system.

For example, what was issue: 3484452 has become issue 21, breaking crossreferences between the issue tracker and svn commit messages. Thus the commit message in https://sourceforge.net/p/sarmanager/code/35/ can no longer be related to the relevant issue: https://sourceforge.net/p/sarmanager/bugs/21/

A requirement of the migration of an issue tracking system which exposes issue numbers is the retention of issue numbers. Issue numbers may be referenced in many arbitrary places outside of the issue tracking system itself.

I'm not going to be able to upgrade other projects until this issue has been resolved.


[forge:site-support:#637]

I'm wondering if it is possible to keep the old tracker ID of issues in the bug/feature request/... tracker in a classic project, when migrating to the new (beta) project?

One of my projects uses the tracker ID's to link to bugs or feature requests from the release notes/changelog. When migrating to the new project, all tracker items would get a new ID. So it would be useful to have either/both :
- a redirect in place that redirects to the ticket in the new project when requesting the tracker item in the classic project.
- get a list of tracker items with the old ID and the new ID. This way, our current references to tracker items could be converted to reference the new tracker ID's.

I think it's fine that we don't use the same IDs exactly, but we should definitely provide a reference to them.

In the meantime though, since we have redirects in place, using the following link format will let users use discover the corresponding ticket using just the ticket ID: https://sourceforge.net/support/tracker.php?aid=1234567

eg. for sarmanager above: https://sourceforge.net/support/tracker.php?aid=3484452 will redirect to https://sourceforge.net/p/sarmanager/bugs/21/ (technically, there's actually an intermediate redirect as well)

Related

Tickets: #4968

Discussion

  • Anonymous - 2012-09-19

    Originally by: *anonymous

    Why not just initialize the new numbering with N+1, N being the last of the old system ?
    You would have had perfect continuity, without any redirects nor concern about their lifetime, zero hassle.

     
  • Anonymous - 2012-09-19

    Originally by: ferrieux

    Apologies for posting anonymously. That was me.

     
  • Dave Brondsema

    Dave Brondsema - 2012-09-20

    In the new system, we decided it would be best to have individual unique numbers per tracker instance, not sitewide. Then most projects have small numbers since they start at 1, rather than very big numbers like 3484452

     
  • Dave Brondsema

    Dave Brondsema - 2012-09-20
    • labels: support, p3 --> support, p3, 42cc
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,3 +1,7 @@
    +**Implementation:** We should index ticket's `import_id` in solr (put it in the `index()` method) so it is searchable.  Also make URLs like /myproject/tickets/N when a regular ticket isn't found then fall back to check import_id.  If a ticket is found by import_id, do a permanent redirect to the real url for that ticket.
    +
    +----
    +
     [forge:site-support:#623]
    
     >Issue numbers from the sourceforge bug tracking system prior to migration did not migrate in project upgrade, and description of upgrade consequences did not warn of this.
    
    • milestone: limbo --> forge-backlog
     
  • Igor Bondarenko - 2012-09-21

    Created #172: [#4968] Fall back to check ticket import_id when a ticket isn't found by it's regular id (1cp)

    • status: open --> in-progress
     

    Related

    Tickets: #4968

  • Anonymous - 2012-09-22

    Originally by: ferrieux

    Yes, that's what you decided. But you may have overlooked the fact that old projects with a long history will suffer from this. As a mitigation, what about allowing each project to choose among the two scheme (reset or continuity) ? Note that in case of continuity, it means less work for you (no mapping/redirect to keep track of).

     
  • Igor Bondarenko - 2012-09-25

    Closed #172. Branch 42cc_4968.

    • status: in-progress --> code-review
     
  • Dave Brondsema

    Dave Brondsema - 2012-09-25

    Hrm, we currently store an import_id of "tracker/1/420" for example, when migrating from our classic system. This doesn't work out quite as well and will take some additional thinking

     
  • Anonymous - 2012-09-30

    Originally by: jamesbassett

    I'm stumped as to what to use for the bugtraq:url property in subversion now.

    Before the upgrade I used http://sourceforge.net/support/tracker.php?aid=%BUGID%. This will still work for old commits (with the redirects in place) but not for any new commits.

    If I update it to https://sourceforge.net/p/supercsv/bugs/%BUGID% that restricts me to only using it for bugs (not feature requests) as each tracker has it's own unique ids now.

    And as soon as I change it to a new format, it will no longer work for old commits.

     
  • Anonymous - 2012-09-30

    Originally by: thompsonbry

    I'd like to vote on this as a critical issue. We also heavily use the revision number in tickets to link back into the source code. Is there a ticket for that?

     
  • Dave Brondsema

    Dave Brondsema - 2012-10-01
    • qa: Dave Brondsema
     
  • Dave Brondsema

    Dave Brondsema - 2012-10-02

    James, I will have to think about what to suggest for the issue of bugs being separate from feature-requests.

    However, our current work on this ticket will mean that https://sourceforge.net/p/supercsv/bugs/%BUGID% will work for old ids. Hopefully that will be of some help when its live.

     
  • Dave Brondsema

    Dave Brondsema - 2012-10-02

    Bryan, that works already. Just put the revision number in brackets like [r123] for SVN or [139b73] for hg/git revs, and it'll be a link from the ticket/wiki/forum/wherever over to that revision.

    • qa: Dave Brondsema --> Cory Johns
     
  • Dave Brondsema

    Dave Brondsema - 2012-10-02

    I already reviewed the initial commits. Please review forge-classic:db/4968 and the top commit on allura:db/4968

    • size: --> 1
     
  • Anonymous - 2012-10-02

    Originally by: ferrieux

    Any hope to address the fundamentally wrong move for projects of long history ?
    Again, allowing projects to migrate while restaring at their old max-bugid+1 instead of 1, would mean life instead of death to them. The alternative is to migrate out of SF for good.

     
  • Dave Brondsema

    Dave Brondsema - 2012-10-03

    Alexandre, I think there may be another alternative. Actually what we are working on implementing currently is making URLs with old ticket ids still work. E.g. /someproject/bugs/354325 would redirect to e.g. /someproject/bugs/17 Also searches with the old ticket id would find a match. Would that be sufficient to make the new numbering system workable for you and your projects? If not, what else would need to happen for converted ticket numbers to work well?

    • summary: Project upgrade silently changes issue numbers [ss623] [ss637] --> Project upgrade silently changes issue numbers [ss623] [ss637] NEEDS INI
     
  • Dave Brondsema

    Dave Brondsema - 2012-10-03

    Forgot to mention for QA on this, need to add tickets.import_id_converter = sfx to production.ini

     
  • Cory Johns - 2012-10-04

    There are some older upgraded projects with import_id values of a different pattern; they can be updated with the following mongo (on project-data):

    db.ticket.find({import_id: /func=detail/}, {import_id: 1}).forEach(function(t) {
        var import_id = t.import_id.replace(/.*group_id=([^&]*)&atid=(.*)/, 'tracker/$1/$2');
        db.ticket.update({_id: t._id}, {$set: {import_id: import_id}});
    })
    
     
  • Cory Johns - 2012-10-05
    • status: code-review --> closed
    • milestone: forge-backlog --> forge-oct-05
     

Log in to post a comment.