{ "info": { "author": "Richard Gomes http://rgomes-info.blogspot.com", "author_email": "rgomes.info@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Operating System :: OS Independent", "Programming Language :: Cython", "Programming Language :: Python" ], "description": "mantis2xml\n==========\n\n| Code_ | Bugs_ | Forums_ | License_ | Contact_\n\nMantis2XML is intended to ease migration from MantisBT issues to other\nissue management systems. It produces a XML file which can be transformed\nto some other format and later imported by issue managements systems.\n\nAt the moment, only migration to Launchpad Bugs is supported. In particular,\na .XLST file and a shell script are provided so that the process of migrating\nissues to Launchpad Bugs are greatly simplified.\n\n.. note:: You may also be interested on this: `Launchpad Export plugin for Mantis`_\n\n\nQuick guide for the impatient\n-----------------------------\n\nCreate a file named ``~/.mantis2xml`` which contains the URL of your Mantis instance, username and password of an user with ``manager`` access rigths to Mantis. For example::\n\n [mantis]\n url: http://mantis.example.com/\n user: scott\n password: beam-me-up\n\n\nInstall ``xsltproc`` and ``jing`` like shown below for Debian and derivatives::\n\n $ apt-get install xsltproc jing tar bzip2 -y\n\nInstall Bazaar and obtain mantis2xml from Launchpad::\n\n $ apt-get install bzr -y\n $ bzr branch lp:mantis2xml\n\nInstall mantis2xml, in order to make sure all dependencies are installed::\n\n $ cd mantis2xml\n $ python setup.py install\n\nNow run the shell script which converts your Mantis instance::\n\n $ ./dump_all_issues.sh\n\nIf you have **only one project** in your bug tracking system, the\ncommand above is possibly all you need. If you have more than one\nproject in Mantis, please have a look at file ``dump_all_issues.sh``\nand follow the steps explained on the top.\n\nIf everything goes well, you will see some files create in your\n``~/tmp/mantis/1`` directory::\n\n $ ls -al ~/tmp/mantis/1\n issues.txt\n issues.mantis.xml\n issues.launchpad.xml\n issues.launchpad.xml.tar.bz2\n\n..\n\n - ``issues.txt`` : brief summary of issues\n\n - ``issues.mantis.xml`` : dump of all issues as they were obtained from MantisBT\n\n - ``issues.launchpad.xml`` : issues transformed for being imported by Launchpad Bugs\n\n - ``issues.launchpad.xml.tar.bz2`` : created after validation succeeds\n\n\nTroubleshooting\n^^^^^^^^^^^^^^^\n\nIf you don't see ``issues.launchpad.xml.tar.bz2``, it means that the validation of\n``issues.launchpad.xml`` failed. The errors are reported in the standard output but\nyou can see them again entering the following command::\n\n $ jing -c ./bug-export.rnc ~/tmp/mantis/1/issues.launchpad.xml\n\nThe most common source of troubles is possibly related to duplicated issues. Mantis\nsupports multiple relationships between issues, including relationships of kind\n``duplicated of`` (for duplicates) whilst Launchpad Bugs supports zero or one duplicated\nissue per issue. If you faced this trouble, you can either fix it by hand in the\n``issues.launchpad.xml`` file or fix it in Mantis, making sure that you have zero or\none duplicated issues per issue, and re-run ``dump-all-issues.sh``.\n\n\nMapping Mantis to Launchpad Bugs\n--------------------------------\n\nMantis provides fields *Steps to Reproduce* and *Additional Information* which do not have direct\ncounterparts in Launchpad Bugs. Also, Mantis provides detailed *relationships* between issues, like:\n\n - *duplicate of*\n - *has duplicate*\n - *child of*\n - *parent of*\n - *related to*\n\nwhich are allowed to appear multiple times. Launchpad Bugs supports only *duplicate of*, which can\nappear zero or one times. All other relationships are not supported. In order to accomodate these\ndifferences, these fields are incorporated in field *Bug Description* in Launchpad Bugs.\n\nAdditional information:\n\n - XSL transformation: `bug-export.xslt`_\n - XML validation: `bug-export.rnc`_\n - `Launchpad Bugs Import Format`_\n\n\nContributing to mantis2xml\n--------------------------\n\nmantis2xml was developed in a hurry, in only a couple of days, including this documentation, which consume more time to produce than one may think. There are known bugs and obviously there is certainly a lot of room for improvement.\n\nUnfortunately, the `author`_ does not consider further developments on mantis2xml. In case you consider taking over of this project, the author will be happy to pass the token to you. \n\nBelow you see some information which may be of some relevance:\n\n\nBrief History\n^^^^^^^^^^^^^\n\nThis application is derived from sp-mantis2github_, which is a Python script \nthat talks to MantisBT via SOAP and talks to Github via API. This\napplication does the job wonderfully well, being able to not only\nmigrate issues to Github, but it also inserts notes in Mantis which link\nto the newly created issues in Github.\n\n\nDesign decisions\n^^^^^^^^^^^^^^^^\n\nA brief proof of concept was done: I've tried to remove call to package ``github``\nand substitute these calls by calls to package ``launchpadlib``. Due to the way\nsp-mantis2github_ was written, substituting one API by another\nAPI is not a trivial task. This idea demonstrated to be \"too much\", due to\nthe very little time I reserved for performing the migration I desperately need.\n\nSo, I simply removed dependencies from github and assumed that we are plenty\nsatisfied with a XML file, which can be later transformed to \n`Launchpad Bugs Import Format`_. These are the steps I've taken:\n\n - remove dependencies from Github API. This was done either removing some code or changing function/method names so that they are never called.\n\n - obtain the XML representation from SOAP responses which provide objects ``mc_issue_getResponse``. This is what happens when command *mantis dump issue* is entered, which causes the issue to be dumped to the standard output as an XML.\n\n - get rid of namespaces when the aforementioned XML representation is obtained. This expedient eases a lot the creation of the .XLST file which post-processes the .XML produced.\n\n - the process of converting the XML to `Launchpad Bugs Import Format`_ is provided via a shell script, as explained above. I've actually tried to automate in Python what is currently being done in the shell script, but it crashes after some 40 issues or so are dumped. No: I'm not willing to discover why it fails. Then I simply removed the logic and kept the shell script.\n\n\n.. _Code : http://code.launchpad.net/mantis2xml\n.. _Bugs : http://bugs.launchpad.net/mantis2xml\n.. _Forums : http://answers.launchpad.net/mantis2xml\n.. _License : http://opensource.org/licenses/GPL-2.0\n.. _Contact : http://launchpad.net/~frgomes\n.. _author : http://launchpad.net/~frgomes\n.. _sp-mantis2github: https://github.com/servalproject/serval-tools/blob/master/bin/sp-mantis2github\n.. _`Launchpad Export plugin for Mantis`: http://github.com/EvilRenegade/LaunchPad-Export-for-Mantis\n.. _`bug-export.rnc` : http://bazaar.launchpad.net/~frgomes/mantis2xml/trunk/view/head:/bug-export.rnc\n.. _`bug-export.xslt` : http://bazaar.launchpad.net/~frgomes/mantis2xml/trunk/view/head:/bug-export.xslt\n.. _`Launchpad Bugs Import Format` : https://help.launchpad.net/Bugs/ImportFormat", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://mantis2xml.readthedocs.org/", "keywords": "mantis,launchpad,migration,bugs,issue,management", "license": "OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "maintainer": null, "maintainer_email": null, "name": "mantis2xml", "package_url": "https://pypi.org/project/mantis2xml/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/mantis2xml/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://mantis2xml.readthedocs.org/" }, "release_url": "https://pypi.org/project/mantis2xml/1.3/", "requires_dist": null, "requires_python": null, "summary": "Migrates MantisBT issues to XML", "version": "1.3" }, "last_serial": 834182, "releases": { "1.3": [ { "comment_text": "", "digests": { "md5": "525319b14f56d7c92349675cb6c4126e", "sha256": "0727d2fac4c5b4c4066ca7c07e60bf747bc921017f7e9ac19420a51fb3e25922" }, "downloads": -1, "filename": "mantis2xml-1.3.tar.gz", "has_sig": false, "md5_digest": "525319b14f56d7c92349675cb6c4126e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13927, "upload_time": "2013-08-07T09:19:38", "url": "https://files.pythonhosted.org/packages/c1/c4/6a7424e5286f758d217c86d9ad28c580380cb903a8e8969d5cf92d3f10f6/mantis2xml-1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "525319b14f56d7c92349675cb6c4126e", "sha256": "0727d2fac4c5b4c4066ca7c07e60bf747bc921017f7e9ac19420a51fb3e25922" }, "downloads": -1, "filename": "mantis2xml-1.3.tar.gz", "has_sig": false, "md5_digest": "525319b14f56d7c92349675cb6c4126e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13927, "upload_time": "2013-08-07T09:19:38", "url": "https://files.pythonhosted.org/packages/c1/c4/6a7424e5286f758d217c86d9ad28c580380cb903a8e8969d5cf92d3f10f6/mantis2xml-1.3.tar.gz" } ] }