{"action":"created","issue":{"url":"https://api.github.com/repos/qgis/QGIS-Enhancement-Proposals/issues/141","repository_url":"https://api.github.com/repos/qgis/QGIS-Enhancement-Proposals","labels_url":"https://api.github.com/repos/qgis/QGIS-Enhancement-Proposals/issues/141/labels{/name}","comments_url":"https://api.github.com/repos/qgis/QGIS-Enhancement-Proposals/issues/141/comments","events_url":"https://api.github.com/repos/qgis/QGIS-Enhancement-Proposals/issues/141/events","html_url":"https://github.com/qgis/QGIS-Enhancement-Proposals/issues/141","id":418436812,"node_id":"MDU6SXNzdWU0MTg0MzY4MTI=","number":141,"title":"Migrating issues from Redmine to GitHub","user":{"login":"jgrocha","id":163681,"node_id":"MDQ6VXNlcjE2MzY4MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/163681?v=4","gravatar_id":"","url":"https://api.github.com/users/jgrocha","html_url":"https://github.com/jgrocha","followers_url":"https://api.github.com/users/jgrocha/followers","following_url":"https://api.github.com/users/jgrocha/following{/other_user}","gists_url":"https://api.github.com/users/jgrocha/gists{/gist_id}","starred_url":"https://api.github.com/users/jgrocha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgrocha/subscriptions","organizations_url":"https://api.github.com/users/jgrocha/orgs","repos_url":"https://api.github.com/users/jgrocha/repos","events_url":"https://api.github.com/users/jgrocha/events{/privacy}","received_events_url":"https://api.github.com/users/jgrocha/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":30,"created_at":"2019-03-07T17:48:51Z","updated_at":"2019-04-01T11:09:15Z","closed_at":null,"author_association":"NONE","body":"# QGIS Enhancement: Moving issues from Redmine to GitHub\r\n\r\n**Date** 2019/03/07\r\n\r\n**Author** Jorge Gustavo (@jgorcha), Régis Haubourg\r\n**Contact** jgr@geomaster.pt,  regis.haubourg at gmail.com\r\n\r\n**Version** QGIS (all)\r\n\r\n# Summary\r\nQGIS 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.\r\n\r\nThis proposal aims to be as specific as possible. The goal is that it can be tested and verified before deployment by any developer.\r\n\r\n## Proposed Solution\r\n\r\nThe proposed solution is to migrate all issues from Redmine to GitHub. \r\n\r\nThe 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).\r\n\r\n### Workflow\r\n\r\n#### Overall workflow\r\n\r\n1. Proposal for new [QGIS GitHub labels](#qgis-github-labels)\r\n1.1 Define how to map Redmine attributes to GitHub labels.\r\n1.1 Create the labels in QGIS/qgis. Proposal: Bug, Feature request, Feedback, Priority: low, Priority: normal, Priority: high, Regression\r\n1. Create a map between Redmine users and GitHub account\r\n1.1 Get a list of current user names (ie first name, last name) from Redmine (query done)\r\n1.1 Create a very simple form on Redmine site, that receives the user name as parameter and asks for the GitHub account (code done)\r\n1.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)\r\n1. Create [issue templates](https://help.github.com/en/articles/creating-issue-templates-for-your-repository) for bugs and feature requests (Done https://github.com/qgis/QGIS/pull/9438)\r\n1. 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!_\r\n1. Run the migration (Migration workflow detailed below)\r\n1.1 Check for errors\r\n1.1.1 Delete the last issue migrated and rerun the script from it\r\n1.1 Check if all issues and comments were created\r\n1. 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.\r\n1. Put Redmine read only\r\n1. Start mirroring QGIS repository on GitLab.\r\n1. Announce that issues were migrated and from now on the GitHub should be used to fill issues\r\n1.1 Update QGIS documentation\r\n1.2 Use all channels to spread the news\r\n\r\n#### Migration workflow\r\n\r\n![image](https://user-images.githubusercontent.com/163681/53957561-8cbebc00-40d6-11e9-8147-344707cfe47d.png)\r\n\r\n1. Get issues from {Redmine to GitHub](https://gitlab.com/jgrocha/redmine2github). 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).\r\n1. Create a mapping between Redmine attributes and GitHub labels\r\n1. Create a mapping between Redmine users and GitHub users\r\n4. 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\r\n4.1 Reformat Textile to Markdown\r\n4.2 Assign issue to original assignee if we have the usermap\r\n5. Run migration again with: issue map. This second step is necessary to replace all occurrences of Redmine with GitHub ids.\r\n\r\n### QGIS GitHub labels\r\n\r\n[Labels in GitHub](https://help.github.com/en/articles/about-labels) are used for PR and for issues within the repository. \r\n\r\nWe already have [27 labels](https://github.com/qgis/QGIS/labels) that have being used (and created) for PR.\r\n\r\nNew labels: Bug, Feature request, Feedback, Priority: low, Priority: normal, Priority: high, Regression\r\n\r\nTracker:\r\nBug report → **Bug**\r\nFeature request → **Feature request**\r\n\r\nStatus:\r\nOpen → NIL\r\nIn Progress → NIL\r\nFeedback → **Feedback**\r\nReopened → NIL\r\nResolved → NIL\r\nClosed → NIL\r\nRejected → NIL\r\nFixed for bounty → NIL\r\nBounty paid → NIL\r\n\r\nPriority: \r\nLow → **Priority: low**\r\nNormal → **Priority: normal**\r\nHigh → **Priority: high**\r\n\r\nCategory: \r\n3D → NIL\r\nActions → NIL\r\nAnalysis library → NIL\r\n...\r\nWeb Services clients/WMS → NIL\r\nWeb Services clients/XYZ → NIL\r\nWindows Package → NIL\r\nmac_os_specific → NIL\r\n\r\nAffected QGIS version: (asked on the template)\r\n\r\nOperating System:  (asked on the template)\r\n\r\nRegression: → **Regression**\r\n\r\n### Affected Files\r\n\r\n## Performance Implications\r\n\r\nWe really need help from GitHub team. It will take about 26 hours migration all issues, if we need to respected their rate limits. \r\n\r\n## Further Considerations/Improvements\r\n\r\n## Backwards Compatibility\r\n\r\nAll issue history \r\n\r\n## Issue Tracking ID(s)\r\n\r\n## Votes\r\n\r\n(required)\r\n"},"comment":{"url":"https://api.github.com/repos/qgis/QGIS-Enhancement-Proposals/issues/comments/478536247","html_url":"https://github.com/qgis/QGIS-Enhancement-Proposals/issues/141#issuecomment-478536247","issue_url":"https://api.github.com/repos/qgis/QGIS-Enhancement-Proposals/issues/141","id":478536247,"node_id":"MDEyOklzc3VlQ29tbWVudDQ3ODUzNjI0Nw==","user":{"login":"jgrocha","id":163681,"node_id":"MDQ6VXNlcjE2MzY4MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/163681?v=4","gravatar_id":"","url":"https://api.github.com/users/jgrocha","html_url":"https://github.com/jgrocha","followers_url":"https://api.github.com/users/jgrocha/followers","following_url":"https://api.github.com/users/jgrocha/following{/other_user}","gists_url":"https://api.github.com/users/jgrocha/gists{/gist_id}","starred_url":"https://api.github.com/users/jgrocha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jgrocha/subscriptions","organizations_url":"https://api.github.com/users/jgrocha/orgs","repos_url":"https://api.github.com/users/jgrocha/repos","events_url":"https://api.github.com/users/jgrocha/events{/privacy}","received_events_url":"https://api.github.com/users/jgrocha/received_events","type":"User","site_admin":false},"created_at":"2019-04-01T11:09:15Z","updated_at":"2019-04-01T11:09:15Z","author_association":"NONE","body":"> @jef-n You are right. You found a bug (231 occurrences)! Thanks! If the issue number is followed by a carriage return, the script is not detecting it. On the input file, the carriage return is spelled literally, like `\"notes\": \"Issue 1 is now #20009\\r\\n\\r\\nIssue 2 is related to #13997, ...`. I'll fix it and run it again against this repository.\r\n\r\nThere was a problem in the second pass. It has been fixed. Thanks for pointing out @jef-n."}}
{"actor":{"display_login":"jgrocha"}}