Opened 4 years ago

Closed 4 years ago

Reported by: Owned by: ejucovy Ryan J Ollos normal TracBacksPlugin normal adoption-request Steffen Hoffmann 0.12

### Description

I'd like to request to adopt the TracBacksPlugin if the current maintainer no longer wishes to maintain it. Alternatively, I'd like to request to co-develop the plugin with the current maintainer. :-) I've noticed a couple of comments by the current maintainer from 2010 saying he's no longer using this plugin; I don't know if that's still the case, but if it is I'd be happy to help maintain it since I am using the plugin in several environments.

I'd particularly like to commit the patch described in #9743 -- that bug is currently preventing me from using an unpatched checkout of the plugin in production -- and also implement the suggestion in #6638. I'd also like to get the plugin internationalized, and add a functional test suite which I think would help to develop fixes for several other bugs (#5456, #5457, #6639, #7439) as well as preventing regressions, since there are a couple of fairly complex edge cases that the plugin has to deal with.

### comment:1 follow-up:  2 Changed 4 years ago by Ryan J Ollos

Resolution: → fixed new → closed

I'd be happy to have you take over maintenance of this code. I'd like to use the plugin, but haven't found the time to fix all the issues you've mentioned.

I was also considering merging some recent work on BackLinksMacro and TicketBackLinksMacro into this plugin, making a single plugin that provides macros and backlinks functionality that can be enabled through individual components. What do you think of that idea?

What functional test suite do you use?

The permissions changed have been made, so you should be all set now.

### comment:2 in reply to:  1 ; follow-ups:  3  4  5 Changed 4 years ago by ejucovy

I was also considering merging some recent work on BackLinksMacro and TicketBackLinksMacro into this plugin, making a single plugin that provides macros and backlinks functionality that can be enabled through individual components. What do you think of that idea?

Huh -- I've never used either of those plugins, but that sounds really interesting. So there would be a single plugin with macros for rendering a list of tickets and/or wiki pages that reference X, where X is either a ticket or a wiki page? (Do you think it would also make sense to build an IWikiChangeListener to create ticket comments when the text of a wiki page contains a link to a ticket? Or would that be overkill...)

What functional test suite do you use?

I've always been fond of Twill. (I passively maintain a test runner that sits on top of Twill scripts which was written by some former colleagues of mine.) I know that Trac itself and AccountManagerPlugin both have twill-based functional test suites, so I was planning on looking into the way they set that up and doing something similar, unless it ends up looking substantially easier to just use Python and unittest to do the test setup and assertions (in the manner of Trac's primary test suite)

Do you know of any other plugins that maintain test suites community preferences best practices here?

The permissions changed have been made, so you should be all set now.

Thanks!

### comment:3 in reply to:  2 Changed 4 years ago by Ryan J Ollos

Huh -- I've never used either of those plugins, but that sounds really interesting. So there would be a single plugin with macros for rendering a list of tickets and/or wiki pages that reference X, where X is either a ticket or a wiki page?

Yeah, and in the future the functionality could be extended beyond tickets and wiki references, to components such as Changsets, FullBlogPlugin, DiscussionPlugin, ...

(Do you think it would also make sense to build an IWikiChangeListener to create ticket comments when the text of a wiki page contains a link to a ticket? Or would that be overkill...)

That was one of the extensions I had in mind as well. I was thinking of having a div under the ticket description with a list of referring tickets and wiki pages. There are a lot of possible features for linking resources together and reporting the linkages, and bits of overlapping code, which was my motivation for wanting to pull these plugins/macros together and develop them further as one plugin.

Also, I'd really like the TracBacks to be dynamic. That is, rather than copying the static text of a comment, insert a TracLink or WikiProcessor that renders the comment (like CommitTicketReferenceMacro [tracopt.ticket.commit_updater] does), so that if the comment is edited, the text in the ticket with the TracBack will be updated as well.

Do you know of any other plugins that maintain test suites community preferences best practices here?

CodeExampleMacro has a lot of unit tests. TagsPlugin has some basic unit test functionality. I don't know of much else with extensive unit tests, except for a smattering in the plugins I maintain, and no functional tests suite. Good examples of functional testing in Trac plugins are needed, and I've wanted to implement functional testing in the plugins I maintain. However, I just don't have any experience with web-based functional testing, and didn't find any good examples.

### comment:4 in reply to:  2 Changed 4 years ago by Ryan J Ollos

Cc: Steffen Hoffmann added; anonymous removed

Do you know of any other plugins that maintain test suites community preferences best practices here?

A best practices page on plugin testing for trac-hacks.org would be very valuable. I've cc'ed hasienda as he might know more about the subject.

### comment:5 in reply to:  2 Changed 4 years ago by Steffen Hoffmann

Replying to rjollos: Do you know of any other plugins that maintain test suites community preferences best practices here?

There are only few Trac plugins to implement even basic unit testing indeed. TagsPlugin was already mentioned. It's test suite is rather young, so you may find interesting insight in it's recent commit history. CryptoPlugin will be another reference, that I want to build within the next months.

### Modify Ticket

Action
as closed The owner will remain Ryan J Ollos.
The resolution will be deleted. Next status will be 'reopened'.