Task #90
Updated by bmbouter over 9 years ago
h3. Overview Currently bugzilla.redhat.com has many feature requests in it. These feature requests (RFEs) need to be copied from Bugzilla and into Redmine. This task involves migrating data between the systems using the Bugzilla and Redmine APIs in an automated way. Keep any code written in playpen of pulp/pulp so that it can be maintained over time. I recommend using one of the Redmine API bindings for Python that can be found on PyPI. Also looking for a bugzilla binding like bugzilla tools may be useful too. Finally, other projects do similar things with [0], so maybe borrow some from their code. h3. When moving a RFE, you'll have to do the following 0) Ensure that all users from the cc list, the reporter, qe contact, and assignee all have redmine accounts so that we can associate the RFE correctly with the right accounts. Step 0 is about ensuring those accounts are there for each issue migrated to Redmine. You can create accounts for people in redmine here [1]. 1) %{color:red}Determine if the issue is private in Bugzilla. If it is private in Bugzilla then the bug created in Redmine needs to also be private.% 2) Create the Redmine issue while porting over the following fields: description, priority, severity, status, reporter, assignee, QA-contact, version, and target release. 3) If the Bugzilla issue has the 'Triaged' keyword, ensure the 'Triaged' boolean is set to Yes on the Redmine issue. If the Bugzilla issue has the 'FutureFeature' keyword, ensure the issue uses the Tracker type 'Story' to indicate it is a feature. If there are any other keywords those need to be tracked somehow too. 4) The entire history of the bug/RFE should be added into the notes or appended to the description in Redmine. %{color:red}Note that private comments need to be kept private.% 5) Put the new Redmine bug into the right Redmine "Project" [2]. What was a 'Component' in Bugzilla is equivalent to the different "projects" in Redmine. 6) Move any attachments also. 7) Add a link on the redmine issue that links back to the original Bugzilla location. Use the 'Bugzilla link' field in Redmine for this. You should use the entire URL. 8) Mark the Redmine issue as a 'Story'. Redmine calls these things 'trackers'. 9) Ensure that the Redmine issue has the right 'watchers' watching it. 'Watch' in redmine means you'll receive an e-mail when an issue is updated. The set of watchers is like the 'cc list' in bugzilla. These can be set for a given issue through the RedMine API, see the watcher_user_ids field on Issues. Note: you do NOT need to worry about 'blocks' field, those will be handled in a separate task #92. h3. Here are the things you need to do to each Bugzilla that has been migrated 1. Once a RFE is copied into Redmine, the Bugzilla RFE should be CLOSED with the status UPSTREAM. 2. Add the keyword 'MoveUpstream' should be added to the Bugzilla RFE. 3. Also in Bugzilla there should be a 'External Tracker' called 'Pulp Redmine' which will accept an integer with the Redmine issue ID. This is how Bugzilla entries will refer to their Redmine counterparts. 3. 4. Add a comment onto the Bugzilla that says 'Moved to XXXXX' where XXXXX is the fully qualified URL for the new Redmine issue. This is redundant with the info from step (3) but it will make it clear to those who don't look at the 'External Tracker' field. h3. Which bugs are RFE's exactly? Bugzilla RFEs contain the string 'rfe' in them or the keyword 'FutureFeature'. I have created a Bugzilla search[3] which should bugs which match either of these. There are ~125 bugs listed. [0]: https://gitlab.sat.lab.tlv.redhat.com/satellite6/katello-team/blob/master/scripts/redmine_sync.py [1]: https://pulp.plan.io/users [2]: https://pulp.plan.io/projects [3]: http://tinyurl.com/k2jfnwn