Skip to content

Migrating issues from Redmine to GitHub #141

Description

@jgrocha

QGIS Enhancement: Moving issues from Redmine to GitHub

Date 2019/03/07

Author Jorge Gustavo (@jgorcha), Régis Haubourg
Contact jgr@geomaster.pt, regis.haubourg at gmail.com

Version QGIS (all)

Summary

QGIS issues are being tracked in Redmine. Our Redmine is becoming obsolete, difficult to upgrade and difficult to use by newcomers. Managing the issues in the same repository as the code (currently in GitHub), has technical advantages and "community" related advantages as well.

This proposal aims to be as specific as possible. The goal is that it can be tested and verified before deployment by any developer.

Proposed Solution

The proposed solution is to migrate all issues from Redmine to GitHub.

The Redmine instance can remain online for a while. But if we decide in the future to move to GitLab, we just need to migrate GitHub (because all the issue history is already in GitHub).

Workflow

Overall workflow

  1. Proposal for new QGIS GitHub labels
    1.1 Define how to map Redmine attributes to GitHub labels.
    1.1 Create the labels in QGIS/qgis. Proposal: Bug, Feature request, Feedback, Priority: low, Priority: normal, Priority: high, Regression
  2. Create a map between Redmine users and GitHub account
    1.1 Get a list of current user names (ie first name, last name) from Redmine (query done)
    1.1 Create a very simple form on Redmine site, that receives the user name as parameter and asks for the GitHub account (code done)
    1.1 Send an email (from redmine@qgis.org) to each user with the link for the form to provide his GitHub username (script to the written)
  3. Create issue templates for bugs and feature requests (Done [WIP] Add future issue templates for github QGIS#9438)
  4. Contact GitHub crew to allow more request per hour. Right now, even with 1 sec. delay between each request (to create issue or comment), the script fails. Our bot has been blocked!
  5. Run the migration (Migration workflow detailed below)
    1.1 Check for errors
    1.1.1 Delete the last issue migrated and rerun the script from it
    1.1 Check if all issues and comments were created
  6. Update all Redmine issues. Add a comment to each saying that the issue was migrated do GitHub and add a link to the new issue on GitHub.
  7. Put Redmine read only
  8. Start mirroring QGIS repository on GitLab.
  9. Announce that issues were migrated and from now on the GitHub should be used to fill issues
    1.1 Update QGIS documentation
    1.2 Use all channels to spread the news

Migration workflow

image

  1. Get issues from Redmine to GitHub. All issues will be transferred to QGIS code repository (some are related with the QGIS Plugin site and some other ones, but only a few).
  2. Create a mapping between Redmine attributes and GitHub labels
  3. Create a mapping between Redmine users and GitHub users
  4. Run migration with: Issues x label map x account map. The result will be new issues on GitHub, plus a key pair json with: redmine id → GitHub id
    4.1 Reformat Textile to Markdown
    4.2 Assign issue to original assignee if we have the usermap
  5. Run migration again with: issue map. This second step is necessary to replace all occurrences of Redmine with GitHub ids.

QGIS GitHub labels

Labels in GitHub are used for PR and for issues within the repository.

We already have 27 labels that have being used (and created) for PR.

New labels: Bug, Feature request, Feedback, Priority: low, Priority: normal, Priority: high, Regression

Tracker:
Bug report → Bug
Feature request → Feature request

Status:
Open → NIL
In Progress → NIL
Feedback → Feedback
Reopened → NIL
Resolved → NIL
Closed → NIL
Rejected → NIL
Fixed for bounty → NIL
Bounty paid → NIL

Priority:
Low → Priority: low
Normal → Priority: normal
High → Priority: high

Category:
3D → NIL
Actions → NIL
Analysis library → NIL
...
Web Services clients/WMS → NIL
Web Services clients/XYZ → NIL
Windows Package → NIL
mac_os_specific → NIL

Affected QGIS version: (asked on the template)

Operating System: (asked on the template)

Regression: → Regression

Affected Files

Performance Implications

We really need help from GitHub team. It will take about 26 hours migration all issues, if we need to respected their rate limits.

Further Considerations/Improvements

Backwards Compatibility

All issue history

Issue Tracking ID(s)

Votes

(required)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions