Modify

Opened 5 months ago

Last modified 3 months ago

#13611 accepted defect

Plugin fails on Trac 1.4

Reported by: boris.brudnoy@… Owned by: Ryan J Ollos
Priority: normal Component: XmlRpcPlugin
Severity: normal Keywords:
Cc: duytscal, Gasol Wu, peter.miniar@… Trac Release: 1.4

Description

When installed and enabled, the current trunk version of the plugin breaks Trac 1.4 with a message:

 Trac detected an internal error:
  AttributeError: 'Environment' object has no attribute 'systeminfo'

Uninstalling the plugin restores Trac to working order:

$ pip uninstall TracXMLRPC
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Uninstalling TracXMLRPC-1.1.7:
  Would remove:
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/TracXMLRPC-1.1.7.dist-info/*
    /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tracrpc/*
Proceed (y/n)? y
  Successfully uninstalled TracXMLRPC-1.1.7

Attachments (0)

Change History (19)

comment:1 Changed 5 months ago by anonymous

Since t:comment:34:ticket:11901 Plugins need to implement the ISystemInfoProvider interface instead of using systeminfo.

comment:2 Changed 5 months ago by Ryan J Ollos

Owner: changed from osimons to Ryan J Ollos
Status: newaccepted

comment:3 Changed 5 months ago by Ryan J Ollos

In 17498:

TracXMLRPC 1.1.8dev: Adapt to exception removed in Trac 1.3.1

Refs #13611.

comment:4 Changed 5 months ago by Ryan J Ollos

In 17499:

TracXMLRPC 1.1.8dev: Adapt to removal of systeminfo attribute

Refs #13611.

comment:5 Changed 5 months ago by Ryan J Ollos

There are a few more issues to fix. I will let you know when it's ready to test.

comment:6 Changed 5 months ago by Ryan J Ollos

It's too much to keep the plugin compatible all the way back to Trac 0.11. I'm going to make a branch and drop support for Trac < 1.4.

comment:7 Changed 4 months ago by anonymous

Any updates on this Ryan? Where can I check the new branch to try it out? Thanks

comment:8 Changed 3 months ago by duytscal

Cc: duytscal added

comment:9 Changed 3 months ago by Massimo

I tried with the latest SVN version, failing with

2019-11-18 13:10:06,795 Trac[loader] DEBUG: Loading plugin "tractags.xmlrpc" from "/mnt/data/trac/projects/trac-pp/plugins/TracTags-0.11.dev0-py2.7.egg"
2019-11-18 13:10:06,797 Trac[loader] ERROR: Skipping "tractags.xmlrpc = tractags.xmlrpc [tracrpc]": ImportError: cannot import name wiki_to_oneliner
...
2019-11-18 13:14:34,866 Trac[main] WARNING: [10.199.222.111] HTTPNotFound: 404 Not Found (No handler matched request to /rpc), <RequestWithSession "POST '/rpc'">, referrer None

After finding a working patch, please push to PyPI. Thanks.

comment:10 Changed 3 months ago by Gasol Wu

Cc: Gasol Wu added

comment:11 Changed 3 months ago by PeterM <peter.miniar@…>

Cc: peter.miniar@… added

comment:12 Changed 3 months ago by Massimo

Any news here? It still fails on Trac-1.4.

comment:13 Changed 3 months ago by Gasol Wu

https://github.com/Gasol/trac-xmlrpcplugin/tree/trac-1.5

I was working on this, You can try it, It should be work with Trac-1.4 too.

comment:14 in reply to:  13 ; Changed 3 months ago by Massimo

Replying to Gasol Wu:

https://github.com/Gasol/trac-xmlrpcplugin/tree/trac-1.5

I was working on this, You can try it, It should be work with Trac-1.4 too.

I tried installing by pip, but failed:

$ pip2 install --user svn+https://github.com/Gasol/trac-xmlrpcplugin.git/trunk
Collecting svn+https://github.com/Gasol/trac-xmlrpcplugin.git/trunk
  Checking out https://github.com/Gasol/trac-xmlrpcplugin.git/trunk to /tmp/pip-req-build-TlVTEk
  Running command svn checkout -q --force-interactive https://github.com/Gasol/trac-xmlrpcplugin.git/trunk /tmp/pip-req-build-TlVTEk
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python2.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-TlVTEk/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-TlVTEk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-req-build-TlVTEk/pip-egg-info
         cwd: /tmp/pip-req-build-TlVTEk/
    Complete output (3 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    IOError: [Errno 2] No such file or directory: '/tmp/pip-req-build-TlVTEk/setup.py'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Then I've built the egg manually and installed, but /rpc leads to

No handler matched request to /rpc.

My test command from a remote host to test the API is:

curl -s -H "Content-Type: application/xml" --data @- http://TracBot:vGJCp4aT0X@trac/trac-pp/rpc <<< '<?xml version="1.0"?><methodCall><methodName>ticket.get</methodName><params><param><int>11794</int></param></params></methodCall>'

comment:15 in reply to:  14 Changed 3 months ago by Ryan J Ollos

Replying to Massimo:

Replying to Gasol Wu:

https://github.com/Gasol/trac-xmlrpcplugin/tree/trac-1.5

That's a Git repository, so you need to use git+https rather than svn+https.

comment:16 Changed 3 months ago by Massimo

Github provides both git and svn access on the same URL. And because git does not support accessing sub-trees like /trunk I just switched over to svn. I was not able to install from git either.

Though I learned how to set branches in git like https://pip.pypa.io/en/stable/reference/pip_install/#git

comment:17 in reply to:  16 Changed 3 months ago by Gasol Wu

Replying to Massimo:

Github provides both git and svn access on the same URL. And because git does not support accessing sub-trees like /trunk I just switched over to svn. I was not able to install from git either.

Though I learned how to set branches in git like https://pip.pypa.io/en/stable/reference/pip_install/#git

Does it work for you? It's still under development, If you have any issues, feel free to tell me.

comment:18 Changed 3 months ago by Jun Omae

The setup.py is typically located at top directory but it is not in the repository.

If Git is used, it is able to specify the sub directory using #subdirectory=.... Also, it is needed to specify the branch trac-1.5 in @<branch-name>.

$ pip install git+https://github.com/Gasol/trac-xmlrpcplugin.git@trac-1.5#subdirectory=trunk

If Subversion is used, is is able to specify in the URL instead of #subdirectory=....

$ pip install svn+https://github.com/Gasol/trac-xmlrpcplugin/branches/trac-1.5/trunk

It is able to install with a zip file as well.

$ pip install https://github.com/Gasol/trac-xmlrpcplugin/archive/trac-1.5.zip#subdirectory=trunk
Last edited 3 months ago by Jun Omae (previous) (diff)

comment:19 Changed 3 months ago by Massimo

Thanks, I was able to install it now like

pip2 install --user svn+https://github.com/Gasol/trac-xmlrpcplugin/branches/trac-1.5/trunk

... and it seems to work now. Thank you very much. Please integrate and release...

Modify Ticket

Change Properties
Set your email in Preferences
Action
as accepted The owner will remain Ryan J Ollos.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.