Tcl SourceForge tracker import
This project is created as a place where Kevin can place some tools that are intended for converting SourceForge issue trackers to Fossil.
All that is done so far is:
- A schema for the data fields of a SourceForge ticket, which is different from the Fossil default project's ticket schema
- A Tcl script sf-import.tcl that accepts a SourceForge export of the tracker in XML form, crawls SourceForge for the files attached to the tickets, and copies the whole tracker into a Fossil repository.
- A couple of rudimentary views for working with tickets: included are 'new ticket', 'edit ticket', and 'view ticket'.
- The 'report-template.sql' file that provides the framework for ticket lists.
- A file, 'ticket_common.th1', that gives common logic for things like enumerated fields.
The work so far therefore provides something that more resembles a kit of parts for building a tracker than it does a fully-functioning tracker. Here are some thoughts on what will be required to finish the job:
Fossil, as implemented, offers very few choices for how user-entered text in bug reports is entered. The defaut is Fossil's own wiki-text (which has some Wiki-style markup and some HTML constructs). Users entering bug reports do not expect this: they rather expect that their text will be rendered character-for-character. This expectation does not mean, however, that verbatim or preformatted text is needed or desirable. Instead, it is entirely permissible to 'decorate' the user-supplied text, for instance by replacing anything that looks like a URL (or like a bracketed artifact ID) with a hyperlink, and perhaps rendering words in _underscores_, *asterisks* as underlined, emboldened or italicized text.
Because of the Wiki-style markup, the import script also has code (the fossilWikify procedure) to armour user-entered text against interpretation as Wiki markup. Once the decorated-text option is functioning in Fossil, this procedure must be gutted. Moreover, there is a small amount of logic in the makeTicket procedure (adjacent to the calls to fossilWikify) that must be removed oor reworked: it emboldens the headlines of user comments and file attachment notices.
Kevin discussed these requirements at the 2012 Tcl conference with Richard Hipp and Joe Mistachkin.
Richard Hipp mentioned to Kevin at the 2012 Tcl conference that the Fossil ticket workflow is different from Tcl's: that users enter issues, which must be reviewed by an intake worker and then appear as tickets in Fossil. Kevin does not entirely understand this workflow step, and therefore must hope that someone else can explain it more thoroughly, or better, implement it.
SourceForge provides a number of features that serve to manage the workflow of handling issues. The Tcl maintainers have becodme quite dependent on these features, and would be greatly impeded by not having them. Among the more important:
- Arrival of a new ticket results in auto-assignment of a maintainer.
- Significant changes to bug state result in email to the bug originator, the assigned maintainer, and the tcl-bugs mailing list.
- A ticket may be placed in Pending status. If no further activity is observed on the ticket for fifteen days, the ticket is automatically closed as having been abandoned by the originator.
An implementation plan is needed for these features.
The existing defined reports 'new ticket', 'edit ticket', 'view ticket' and the report template are clearly not adequate. We need at least a few customized list views, and the ability to filter tickets by values in the fields and to sort by values in the fields. This should be much easier than it was when Kevin first conceived the importer, because Fossil now allows for Tcl as well as TH1 in the code to handle Web requests.
Users are welcome to expand on this issue list; it does not purport to be complete.
I think the Decorated text issue has been resolved. The latest versions of Fossil now allow text descriptions and comments to be entered in any of four formats: text/plain, text/html, text/x-fossil-wiki, and text/x-fossil-plain. The text/x-fossil-wiki format is the traditional Wiki format for Fossil. The text/x-fossil-plain format is text/plain except that hyperlinks in [...] are decorated. The default format is text/x-fossil-plain but that can be easily changed on a site-by-site basis.
The Intake filter exists to avoid spam. It is optional, on by default, but can be turned off you like. The purpose it to help prevent bots from posting link spam as tickets. A second purpose is to provide an opportunity to filter tickets prior to them becoming permanently artifacts. The filter can weed out tickets that are really user support requests that ought to be handled on a mailing list.