Kiwi icon indicating copy to clipboard operation
Kiwi copied to clipboard

Trac bugtracker support

Open na-Itms opened this issue 5 years ago • 7 comments

Description of problem

Currently Trac is not a supported bugtracker in Kiwi. It would be very useful to some projects which use it and wish to use Kiwi.

Additional info

The docs for Trac's API can be found at https://trac.edgewall.org/wiki/TracDev/ApiDocs.

na-Itms avatar Mar 04 '19 14:03 na-Itms

Kiwi TCMS needs help with implementing bug tracker integration with Trac!

The way Kiwi TCMS integrates with external bug tracking systems is documented at https://kiwitcms.readthedocs.io/en/latest/modules/tcms.issuetracker.html#module-tcms.issuetracker with the basic methods documented in https://kiwitcms.readthedocs.io/en/latest/modules/tcms.issuetracker.base.html (also see other modules for more examples).

Definition of Done:

  • The following features must be supported:

    • 1-click bug report
    • automatic bug update with manual fallback
    • show bug info
  • Implementation is in tcms/issuetracker/trac.py, class Trac + add the new dotted path to EXTERNAL_BUG_TRACKERS setting.

  • There doesn't seem to be a Python API library for Trac nor we can find appropriate documentation for their API methods.

  • Automated tests:

    • job definition is in .github/workflows/integration_bugtracker.yml
    • Docker + test data setup is in tests/<...> - follow the other examples there
    • Actual test code is in tcms/issuetracker/tests/ - follow the other examples there
    • Preferably we use a Docker container for the test, if need be build it ourselves (see tests/bugzilla/ for examples)
  • CI pass

  • All code review passed & PR merged

Hints:

  • Devel getting started docs: https://kiwitcms.readthedocs.io/en/latest/contribution.html#testing
  • Django testing documentation: https://docs.djangoproject.com/en/3.1/topics/testing/

This issue is part of Kiwi TCMS open source bounty program. For more information see the link(s) in bounty-program milestone

Note: this is a 200 EUR bounty.

kiwitcms-bot avatar Sep 15 '20 18:09 kiwitcms-bot

@mfonism ping

atodorov avatar Nov 25 '21 10:11 atodorov

@cmbahadir maybe you will be interested in taking on this issue as well as #879 and #2203 which are all similar.

atodorov avatar Jan 02 '22 18:01 atodorov

I had a look at Trac, it does not have a Rest API so the integration seems not as straight forward as the other issue tracking systems.

I have seen two possible interfaces:

  • Trac has it's own API but versions till the latest stable (1.4) use Python 2.x and it seems not possible to use it as long as the Kiwi TCMS and Trac are not installed on the same host. Upgrade to Python 3.x is in the roadmap of Trac v1.5, which is still being developed. https://trac.edgewall.org/wiki/TracDev/ApiDocs

  • There is also an XMLRPC Plugin which is also being developed to reflect the changes coming with Trac v1.5 and Python 3.x transition; https://trac-hacks.org/wiki/XmlRpcPlugin https://trac-hacks.org/ticket/13611 https://trac-hacks.org/log/xmlrpcplugin/trunk The only con as far as I can see for now is; user needs to add the XMLRPC plugin to her Trac instance to use issue integration with Kiwi TCMS and the pro is Trac and Kiwi TCMS are isolated.

I will inform over this issue, if I can find a proper solution, the solution could be tightly dependent to the version of the Trac being used.

Someone who may already have some experience with Trac and its interfaces, can step in here.

cmbahadir avatar Jan 03 '22 15:01 cmbahadir

  • Trac has it's own API but versions till the latest stable (1.4) use Python 2.x and it seems not possible to use it as long as the Kiwi TCMS and Trac are not installed on the same host. Upgrade to Python 3.x is in the roadmap of Trac v1.5, which is still being developed. https://trac.edgewall.org/wiki/TracDev/ApiDocs

I don't see any obvious information as to how this API is supposed to be used. Do you know?

Are the documented methods part of a Python package which works directly with the Trac installation or are they something else ?

atodorov avatar Jan 03 '22 16:01 atodorov

I don't see any obvious information as to how this API is supposed to be used. Do you know?

AFAIK, it's only purpose is to develop plugins for Trac itself.

Are the documented methods part of a Python package which works directly with the Trac installation or are they something else ?

API comes with Trac, if I got your question correct.

cmbahadir avatar Jan 03 '22 17:01 cmbahadir

I don't see any obvious information as to how this API is supposed to be used. Do you know?

AFAIK, it is only purpose is to develop plugins for Trac itself.

OK, I get it now. So the user needs to have the Track XML-RPC plugin installed as a prerequisite. If that is available with the latest stable version (or relatively easy to ) then user can enable it and we can talk more about integration.

If you think this is unsupported / not going to work maybe you could look into some of the other issues for bugtracker integration.

atodorov avatar Jan 03 '22 17:01 atodorov