Opened 5 years ago
Closed 21 months ago
#13720 closed task (fixed)
Convert templates to Jinja2
Reported by: | Steffen Hoffmann | Owned by: | Jun Omae |
---|---|---|---|
Priority: | high | Component: | AccountManagerPlugin |
Severity: | normal | Keywords: | jinja2 |
Cc: | Trac Release: | 1.4 |
Description
Support for Genshi has been dropped after Trac v1.3.1 and plugins must adopt the change.
Development for AccountManagerPlugin needs to follow, for the plugin to stay in top position for recent Trac 1.4 and later.
Attachments (1)
Change History (17)
comment:1 Changed 5 years ago by
comment:2 follow-up: 3 Changed 5 years ago by
Problem
I've just upgraded a testing environment from trac 1.2 to 1.4, with TracAccountManager 0.5.0 installed. After the update, most seems to work, but I can't log in any more - I get the following message:
Fehler: Not Found
No handler matched request to /login
when I try to access the URL
https://my.domain/trac/login
("Fehler" is German for "error").
Questions
- Could this be due to the incompatibility between version 0.5.0 and trac 1.4?
- Is there a workaround I could apply, before a real fix is available? Since this seems to be a show-stopper, I guess I must postpone the upgrade of trac to version 1.4 otherwise...
Any help would be appreciated. Thanks a lot!
comment:3 Changed 5 years ago by
Replying to boris.horner@…:
I've just upgraded a testing environment from trac 1.2 to 1.4, with TracAccountManager 0.5.0 installed.
Please install 0.6dev directly from the trunk:
$ pip install svn+https://trac-hacks.org/svn/accountmanagerplugin/trunk
comment:4 Changed 5 years ago by
Thanks, this helped, I was able to update from 0.5.0 to 0.6.0. Here's the documentation I worked out while doing this:
NOTE: trac 1.4 is not supported by TracAccountManager 0.5.0. An update in dev status is available.
- Download TracAccountManager 0.6.0 from the trunk:
pip install svn+https://trac-hacks.org/svn/accountmanagerplugin/trunk
- Identify the path where the data was stored from the response of the command.
The path is typically similar to this:
/usr/local/lib/python2.7/dist-packages
- Rename the previous version of TracAccountManager so that trac does no longer load it:
mv /path/to/trac/plugins/TracAccountManager-0.5.0-py2.7.egg /path/to/trac/plugins/TracAccountManager-0.5.0-py2.7.egg.xxx
- Move the files loaded from the source repository to the trac plugins directory (change the source path if it is other than shown here):
mv /usr/local/lib/python2.7/dist-packages/acct_mgr /path/to/trac/plugins mv /usr/local/lib/python2.7/dist-packages/TracAccountManager-0.6.dev0-py2.7.egg-info /path/to/trac/plugins
- Edit the file
/path/to/trac/conf/trac.ini
- Add the folloeing line to the
[components]
section:acct_mgr.db.sessionstore = enabled
comment:5 Changed 5 years ago by
Cc: | Ryan J Ollos removed |
---|
comment:6 Changed 5 years ago by
Status: | assigned → accepted |
---|
comment:7 Changed 4 years ago by
Summary: | Port templates to Jinja for Trac > 1.3.1 → Convert templates to Jinja2 |
---|
comment:9 follow-up: 10 Changed 4 years ago by
I have worked on some getting the plugin ready for Trac 1.5.x and 1.6, since we rely on it on our installation and I want to be able to update that when the time comes. I have made a series of patches available on Github. If wanted, I can attach them here.
Some notes about the patches:
- I have provisionally given it the 0.8 version, and it supports Trac>=1.5.3 and Trac<1.7, though it is mostly tested on Trac 1.5.4.
- I have done some manual testing, but not all features have been tested. The automated test suite passes now.
- For the password stores and the hashing functions, I have added type hints. Mostly to be able to use my IDE's tools to find errors.
- The jinja2 templates use four spaces instead of two. It was just easier to work with.
- I cleaned up the python code that my IDE flagged as being outdated. In the process, I also removed some workarounds for older Python and/or Trac versions. I have not done a full audit of the code to see if there is some reliance on no longer supported behaviour of the old APIs.
- Finally, I ignored any i18n. The templates need another pass on this.
I hope this helps to get this plugin ready for Trac 1.6.
Changed 3 years ago by
Attachment: | accountmanagerplugin_another_first_pass_support_python3_and_jinja.patch added |
---|
This is a first-pass/preliminary patch set that I developed. Unfortunately I started this before I saw that Niels also had some patches, but I did do some cross-referencing with his. One difference is that I didn't clean up the code to be only Python 3, and another is that I left the Genshi templates in place for reference. Included are a couple of apparently unrelated bug fixes as well.
comment:10 follow-up: 11 Changed 23 months ago by
Replying to Niels Sascha Reedijk:
I have worked on some getting the plugin ready for Trac 1.5.x and 1.6, since we rely on it on our installation and I want to be able to update that when the time comes. I have made a series of patches available on Github. If wanted, I can attach them here.
Some notes about the patches:
- I have provisionally given it the 0.8 version, and it supports Trac>=1.5.3 and Trac<1.7, though it is mostly tested on Trac 1.5.4.
- I have done some manual testing, but not all features have been tested. The automated test suite passes now.
- For the password stores and the hashing functions, I have added type hints. Mostly to be able to use my IDE's tools to find errors.
- The jinja2 templates use four spaces instead of two. It was just easier to work with.
- I cleaned up the python code that my IDE flagged as being outdated. In the process, I also removed some workarounds for older Python and/or Trac versions. I have not done a full audit of the code to see if there is some reliance on no longer supported behaviour of the old APIs.
- Finally, I ignored any i18n. The templates need another pass on this.
I hope this helps to get this plugin ready for Trac 1.6.
I just made a pull request because i found a little type in one of the templates
comment:11 Changed 22 months ago by
Replying to rosjat:
Replying to Niels Sascha Reedijk:
I have worked on some getting the plugin ready for Trac 1.5.x and 1.6, since we rely on it on our installation and I want to be able to update that when the time comes. I have made a series of patches available on Github. If wanted, I can attach them here.
Some notes about the patches:
- I have provisionally given it the 0.8 version, and it supports Trac>=1.5.3 and Trac<1.7, though it is mostly tested on Trac 1.5.4.
- I have done some manual testing, but not all features have been tested. The automated test suite passes now.
- For the password stores and the hashing functions, I have added type hints. Mostly to be able to use my IDE's tools to find errors.
- The jinja2 templates use four spaces instead of two. It was just easier to work with.
- I cleaned up the python code that my IDE flagged as being outdated. In the process, I also removed some workarounds for older Python and/or Trac versions. I have not done a full audit of the code to see if there is some reliance on no longer supported behaviour of the old APIs.
- Finally, I ignored any i18n. The templates need another pass on this.
I hope this helps to get this plugin ready for Trac 1.6.
I just made a pull request because i found a little type in one of the templates
Thank you! Merged that change. I will likely start a round of testing for Trac 1.6 again, so if anything else pops up, I hope to be able to take care of that. Meanwhile, I am very interested to see how the plugin authors see the way forward...
comment:12 Changed 22 months ago by
That is great, looking forward to do some testing of my own in the next few days. Please also note a recent patch that was applied: #14198, which probably requires that you do another pull.
comment:13 Changed 21 months ago by
Owner: | changed from Ryan J Ollos to Jun Omae |
---|
comment:14 Changed 21 months ago by
- Proposed changes in:
- Unit tests:
- https://github.com/jun66j5/accountmanagerplugin/actions/runs/4548020333
- Ubuntu, macOS, Windows
- Trac 1.2 and 1.4 with Python 2.7
- Trac 1.5.4 with Python 3.5 - 3.11
I'll push the change after fixing translations on Jinja2.
comment:15 Changed 21 months ago by
I noticed login_opt_list
option is removed in https://github.com/nielx/trac-accountmanager-fork/commit/ca9839eb0f51bcd689e4503ca704198c52d883c4. I'd restore the option.
I've seen issues with Genshi in my fresh Trac 1.4 install inside a docker container and will follow-up with code to make the needed changes happen shortly.