﻿type,ticket,summary,component,severity,owner,status,lastmodified,chgs_auths,_description,_reporter,__group__
enhancement,4279,add a plugin to comment on a page,wiki system,major,,new,11 hours,17 by 10,"best is if can be inline. see: http://www.jackslocum.com/blog/2006/10/09/my-wordpress-comments-system-built-with-yahoo-ui-and-yahooext/

or, http://gplv3.fsf.org/comments/gplv3-draft-2.html

another mode can be mysql style: http://dev.mysql.com/doc/refman/5.0/en/select.html

or, maybe combined. have a way of marking a line/block of text and then enter a comment, so when a viewer clicks the mark, it is a link to the comment down the page.",ittayd@…,next-major-releases
enhancement,2625,Add option to send HTML mail messages,notification,normal,,new,14 days,70 by 50,"It would be nice if Trac was able to send notification emails in some sort of rich format, for example HTML. This way one would not have to use fixed fonts in the mail client.",tomek.piatek@…,next-major-releases
enhancement,9037,Incorporate footnotes into Trac (for use in documentation),wiki system,normal,,new,110 days,10 by 5,"As I have tried to contribute a little bit to the documentation, it has occurred to me that it would be really nice for the sake of page layout and clarity to have footnotes available for use in the documentation.

I have used the th:FootNoteMacro for quite some time and there does not seem to be any issues with it. There are currently not even any open tickets filed against the macro.

Would it be possible to incorporate this macro into the next Trac distribution if we were to refactor the code to fit the style guidelines for Trac, write some unit tests, or whatever else might be necessary?

Or is the preferred way to go about this through a direct incorporation into the wiki markup language, like I see is available with Restructured Text (as shown on WikiProcessors - see Example 2)?

I [/search?q=footnote searched] around but did not find any similar suggestions.",Ryan J Ollos,next-major-releases
enhancement,1395,Text box for duplicate when a bug is a duplicate,ticket system,normal,,new,148 days,22 by 11,"There should be a form item for writing the bug number when you mark a ticket as a duplicate.
Developers are lazy, they tend to forget stuff, etc.
The original bug should get a notice that given bug was marked a dupe of it

",ludde,next-major-releases
enhancement,7850,[patch] Update default_<enum> options in trac.ini when enum value is updated/deleted,ticket system,normal,,new,163 days,10 by 5,"I had a user complained that he deleted a component, but that the component was still showing up as the default when creating new tickets.

I explained that this is the expected behavior, since the default_component is still set to that component, causing it to be displayed.  But he pointed it that it's somewhat user-hostile to keep a default_component setting for a component that no longer exists, and I'm inclined to agree.

Likewise the default_ setting should be updated when an enum value is updated.",ebray,next-major-releases
enhancement,886,Add support for Master tickets,ticket system,major,,new,169 days,146 by 75,"It would be cool if you could create master tickets that other tickets refer to. Work could then be broken down into chunks (and assigned to different people), but the master ticket could only be closed when all referring tickets had been resolved.

You could also have it so that referring tickets are excluded from the Roadmap ticket counts.",dmurphy25@…,next-major-releases
defect,10665,Search through all text fields,search system,normal,,new,184 days,15 by 7,"When I try to search for ''VerySpecificTermXYZ VerySpecificTermABC'' on [http://trac.edgewall.org/demo-0.13/search?q=VerySpecificTermXYZ++VerySpecificTermABC&noquickjump=1&ticket=on demo-0.13] Trac finds nothing, because '''VerySpecificTermXYZ''' is saved in '''description''' field and ''VerySpecificTermABC'' is saved in ''Release Notes'' in Test-Ticket [http://trac.edgewall.org/demo-0.13/ticket/600 #600].

It would be nice if the search string will be considered for all fields (not only for one field).",framay <franz.mayer@…>,next-major-releases
defect,8813,"next_rev is slow, particularly in the direct-svnfs case",version control,major,anonymous,new,189 days,34 by 7,"This is a continuation of #7490, which became too ""big"" to be usable. Please keep that other ticket closed.

A lot of possible reasons for bad performance have been identified, some of them fixed, most being due to installation and configuration issues. Please refer to the TracPerformance checklist, and help maintain that wiki page with your findings.

This ticket should be used to help identify the remaining performance bottlenecks, a part from those which are already known (see TracDev/Performance).


",Christian Boos,next-major-releases
enhancement,9127,Drag and drop attachments,attachment,normal,,new,210 days,18 by 15,"HTML 5 now supports drag-and-drop of files in to the browser. It would be a killer feature if Trac allowed you to just drag attachments in to a wiki page while editing.

See http://decafbad.com/blog/2009/07/15/html5-drag-and-drop for an example implementation.

This is already being supported by projects such as ReviewBoard in their upcoming release.

I believe this HTML 5 feature is supported by at least Firefox 3.6 and Chrome, and possibly by Safari as well.",kamil@…,next-major-releases
defect,11061,"TypeError: Git object id must be byte or a text string, not: int",plugin/git,minor,,new,212 days,4 by 2,"We should be able to cope with git-svn converted repositories which might contain svn style TracLinks (like our own repository).

... but this ticket is more an opportunity to congratulate Jun for his effort with the [repos:jomae.git@pygit2] branch ;-)

We should also add libgit2/pygit2 versions to the system info.
In my case, it's 0.17.0 and 0.17.3 on OpenSuSE 0.12.2. 

Btw, I've also tried on Windows with the bleeding edge (build of latest from yesterday), but got many errors, the API has evolved quite a bit since 0.17.3.

----

==== How to Reproduce ====

While doing a GET operation on `/log/trunk/`, Trac issued an internal error.

''(please provide additional details here)''

Request parameters:
{{{
{'path': u'/trunk/', 'revs': u'11577-11612'}
}}}

User agent: `Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0`

==== System Information ====
|| '''`Trac`''' || `1.1.2dev` ||
|| '''`Babel`''' || `0.9.6` ||
|| '''`Docutils`''' || `0.9` ||
|| '''`Genshi`''' || `0.6 (without speedups)` ||
|| '''`Pygments`''' || `1.5` ||
|| '''`pysqlite`''' || `2.6.0` ||
|| '''`Python`''' || `2.7.3 (default, Apr 14 2012, 08:58:41) [GCC]` ||
|| '''`pytz`''' || `2012b` ||
|| '''`setuptools`''' || `0.6` ||
|| '''`SQLite`''' || `3.7.12.1` ||
|| '''`jQuery`''' || `1.8.3` ||

==== Enabled Plugins ====

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/home/cboos/trac/trunk/trac/web/main.py"", line 497, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/home/cboos/trac/trunk/trac/web/main.py"", line 214, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/home/cboos/trac/trunk/trac/versioncontrol/web_ui/log.py"", line 113, in process_request
    rev = unicode(repos.normalize_rev(rev))
  File ""/home/cboos/trac/trunk/tracopt/versioncontrol/git/git_fs.py"", line 520, in normalize_rev
    commit = self._get_commit(rev, raises=False)
  File ""/home/cboos/trac/trunk/tracopt/versioncontrol/git/git_fs.py"", line 445, in _get_commit
    git_object = self.git_repos[rev]
TypeError: Git object id must be byte or a text string, not: int
}}}",Christian Boos,next-major-releases
enhancement,2827,Preview attachments in main ticket (or wiki) window,attachment,normal,,new,214 days,11 by 8,"It will be useful if Trac shows previews for attachments in main ticket window.

This can be implemented using the Trac plugin architecture in order to allow extending the methods for generating previews for attachments. Taking into account overall performance of the system, the architecture should allow to run generating of previews in background when an attachment is added.

As a part of standard distribution, a displaying of scaled down images can be implemented:
 * The size of scaled picture can be configured;
 * There is an excellent [http://www.pythonware.com/products/pil/ Python Imaging Library] that will do the work.

Similar approach can be used in other places of Trac, e.g. previewing attachments in wiki.",pkou at ua.fm,next-major-releases
enhancement,515,Collapsible diff display,version control/changeset view,normal,,new,215 days,15 by 8,It would be nice to have a button on each diff section to collapse each the diff section/file.  In this way you could display only the file diff you are interested in rather than having to display all the diffs.,jamesm@…,next-major-releases
enhancement,781,svn:log editing,version control/changeset view,normal,,new,215 days,33 by 15,Would it be possible to use trac to edit svn:log properties?  It would be handy to be able to edit a change log to add more information if needed.,mortonda@…,next-major-releases
enhancement,53,plugin infrastructure for rendering diff HTML previews,version control/changeset view,normal,,new,215 days,7 by 3,"== Use Cases

=== Viewing image changes/patches in a changeset

It would be pretty cool to be able to view image updates in the changeset viewer. An updated image should show the old version and the new version side by side, just like text diffs.

=== Filter out noisy changes

Typical use case is for showing diffs on .po files, where the chunks corresponding to line number changes only are completely uninteresting and can be safely skipped.
",daniel,next-major-releases
defect,5648,DefaultPermissionGroupProvider not doing its whole job,general,critical,,new,217 days,19 by 9,"[browser:trunk/trac/perm.py DefaultPermissionGroupProvider] doesn't really return the permission groups of which a user is a member; it only handles the ""anonymous"" and ""authenticated"" groups.  All of the threading through user-defined groups is actually done by {{{DefaultPermissionStore}}}.  While I'm sure that's efficient, it's a problem when the {{{permission_store}}} is replaced, as with [trachacks:wiki:TracForgePlugin TracForge], if it expects to be able to extend the existing permission group system.  See [trachacks:browser:tracforgeplugin/branches/bewst/0.11-clearsilver/tracforge/admin/perm.py?rev=2355 TracForgeGroupsModule] for an example.  This problem exists in 0.10-stable and 0.11 AFAICT.

Of course, it's entirely possible that I've completely misinterpreted the meaning of ""group"" and the intention behind {{{DefaultPermissionStore}}} here :).",Dave Abrahams <dave@…>,next-major-releases
enhancement,1069,"query by example (e.g. when creating a new ticket, check for similar tickets)",ticket system,normal,,new,225 days,18 by 10,"There could be some ways to reduce the amount of ''duplicate''
tickets getting created. The simplest way would be to advertise doing a search:

E.g (any better english is welcome, of course): 
=== Create New Ticket ===
''Have you checked that the issue you want to report was not already raised before? If not, please '''Search''' for existing tickets describing your problem before creating a new one.''

Your email or username:
...

----
A more sophisticated way would be to do a search (in the tickets)
based on the content of the ''Short summary'' field and the ''Keywords'' field,
when the reporter ''Preview''s his new ticket. 
The result of the search would also appear on the ticket preview page.
From that point, the reporter could choose either to go on with the creation of
his new ticket (maybe clarifying what distinguishes it from other, similar
tickets), or to contribute to existing similar tickets if some are found 
and relevant for him.",Christian Boos,next-major-releases
enhancement,1084,Percentage complete,ticket system,normal,,new,229 days,23 by 11,"Im using Trac in my projet to track bugs, but also to maintaint a list of tasks to do. One thing that would be great is the possibility to have a ""percentage complete"" field. This way the task can be updated to reflect the percentage complete. Right now the task can only be ""0% complete"" or ""100% complete"". I mean a task is either finished or unfinished, which is not always the case.",cerel,next-major-releases
enhancement,1242,[ER] Generalized automatic cross-references in Trac,wiki system,critical,,new,317 days,15 by 7,"== Problem == 

Trac provides a fast, easy and flexible way to relate Trac objects together, 
by the use of TracLinks in the WikiFormatting.

However, there's no automatic support for back-linking.
This lack has been noticed in several circumstances:
 * BackLinks for Wiki pages (tickets #611 and #646,
   the latter containing a [http:/trac/ticket/646#change_4 note]
   which also highlights the genericity of the problem)
 * Related Changesets for a given Ticket (ticket #508)
 * Ticket dependencies and other relationships (tickets #31 and #226)

Instead, the backlinking is done manually. For example, when
closing a ticket with a resolution of {{{duplicate}}}, 
the convention is to comment the closing of the ticket
by saying ''this is a duplicate of #xyz'' 
and to mention the existence of the duplicate ticket 
on the original #xyz ticket.
With a generalized backlinking facility, this would cease to be necessary.

== Solution ==

What I would propose is that every relationship that
gets detected while parsing new wiki content is recorded.
Then, each wiki, changeset and ticket page could contain
a '''See also:''' section at the end, listing the other
objects that contain TracLinks targeting it, along with
a bit of context, to catch the semantic of the link as well.

----
Example given:

Consider the following wiki !OutstandingPatches page:
{{{
= Outstanding Patches page = 

I think that the patches #187, #909, #919, #944 and #948 are great!
}}}

Then, each time this page is edited, the content of an 
{{{XREF (source, target, context}}} 
table would be cleared for this page:
{{{
delete from XREF where source = 'wiki:OutstandingPatches'
}}}

and when the content is processed, each time a TracLink is 
detected, the table would be filled:
{{{
insert into XREF values ('wiki:OutstandingPatches',
                         'ticket:187',
                         'I think that the patches #187, #909, #919, #944 and #948 are great!')
}}}

Then, while browsing !#187, one could easily get the
backlinks:
{{{
select source, context from XREF where target='ticket:187'
}}}

in order to create the following output at the end of the ticket page:

{{{
#!html
<div>
<strong>Backlinks:</strong>
<a href=""/trac/wiki/OutstandingPatches"" title=""I think that the patches #187, #909, #919, #944 and #948 are great!"">OutstandingPatches</a>
</div>
}}}

----

Of course, I'm willing to provide a patch for that, but I would like 
to get some feedback before.

-- Christian",Christian Boos,next-major-releases
enhancement,11702,Add a macro for listing ticket Components,ticket system,normal,,new,330 days,14 by 4,"As discussed in comment:9:ticket:1233, it would be nice to have a macro for listing ticket system //Components//. comment:25:ticket:1233 suggests having a link to the query page from an //open tickets// column generated by the macro.

The `TicketQuery` macro might be the most similar in term of existing macros, given its output //format//s that we might want to pattern after.

Macros for //Milestones//, //Versions// and //Ticket enums// might follow after this one. A macro for listing ticket enums could be used on the TracTicketTriage#StatusandResolution page.

The macro would be useful on the TracTicketTriage, where we currently do not list the components.

Addition of this macro would deprecate [th:ComponentsProcessorMacro].",Ryan J Ollos,next-major-releases
enhancement,3332,Mimeview API v2,rendering,major,,new,345 days,22 by 10,"We recently introduced the `IContentConverter` interface,
and there are some issues remaining with this:
 - the methods for that interface are quite complex, not really extensible
 - the usage of strings for model objects should be replace by using 
   the corresponding classes
 - artificial differences from the `IHTMLPreviewRenderer`, 
   and duplicated code (mainly between `Mimeview.render`
   and `Mimeview.convert_content`)

Besides, there are other issues with the Mimetype API:
 - `content_to_unicode` needs to be deprecated/simplified 
   as well
 - simplify the handling of mimetypes strings (the fact that
   they sometimes have the charset info, sometimes not)
 - in general, aim to simplify the code that uses the mimeview API

Work in progress. A patch will be attached today or tomorrow
for review.
",Christian Boos,next-major-releases
enhancement,7871,Add start date to a milestone,general,major,,new,351 days,27 by 13,"It would be nice to have a start date for a milestone. With that, it's possible:

 * To filter on started/not started milestones on the Roadmap page
 * Create reports to show only tickets in currently active milestones
 * Sort on started date in the 'Milestone' dropdown on the ticket create and update pages.

With a start date built-in, plugins could use that (for example the Scrum Burndown plugin) to draw their graphs. The Scrum Burndown plugin now has to arrange a column, while it could be useful for more plugins.",daan@…,next-major-releases
defect,11816,Some comment TracLinks are incorrectly displayed as missing,wiki system,minor,,new,371 days,2 by 2,"It can be seen in comment:3:ticket:11813 that the following two TracLinks are incorrectly displayed as missing links.
 * comment:2:ticket:956 ([/ticket/956#comment:2])
 * comment:1:ticket:1752 ([/ticket/1752#comment:1])

Recent changes to comment TracLinks were made in #10742.",Ryan J Ollos,next-major-releases
enhancement,2035,Changeset commenting,version control/changeset view,major,,new,386 days,40 by 23,"Commenting on changesets would be great, it would substitute for code review tools.",polarfox@…,next-major-releases
enhancement,8729,add Latest Comment option to custom query,report system,normal,,new,391 days,10 by 7,"it would be great if Latest Comment was offered as a column in TracQuery.  or as an option under ""Show Under Each Result"", the way Description is offered.

this would be a quick way to see updates on tickets rather than having to click each one to open it up and read.  the entire Comments field is usually way too long.  Description is not continually updated with the latest status.  we tried adding our own [TracTicketsCustomFields custom field] for status notes but it was cumbersome to have to keep updating that in addition to the comments field.

in addition to giving people a quick view of what's going on in tickets, with a little more care by commenters, it could also be used in status reports for clients or management.",jhn@…,next-major-releases
enhancement,31,Bug dependencies/relations feature,ticket system,normal,,new,394 days,152 by 80,"A simple list of related bugs without logical/implicit constraints might be useful. It'd be nice to be able to relate bugs and issues in a useful manner. 

It would also thus allow for reports showing ""a bug and all related bugs"" in some fashion, which could be neat. 

This would also require checking for circular dependencies/relations.

",daniel,next-major-releases
defect,11992,Allow git commit hashes to be abbreviated to 7 characters,plugin/git,normal,,new,418 days,15 by 7,"Currently an abbreviated git commit hash is only recognised by trac if it's at least 8 characters.  But git itself defaults to abbreviating to 7 characters (if the 7 character abbreviation is unique in the repo) - to demonstrate this:

{{{
olly@pippikin:~/git/xapian$ git log -1 --oneline
575eab1 docs/: Add a document about character encoding, as suggested by James Aylett in #550.
}}}

The fix is a single character change - I'll attach a patch in a moment.

This seems to affect 1.0.4 and trunk.",olly@…,next-major-releases
enhancement,791,"login/logout, authentication, and authorization",general,normal,,new,418 days,97 by 47,"I'm kind of combining a couple of things from #599 and #788 here.  The main issue is that the browser caches the authentication information, so you can't log out unless you close the browser (or with Mozilla you can use certain extensions to clear the information).  A related issue is that in situations where authentication is enforced to access the project, users should never be logged in anonymously.  

I've already gotten a patch working that will force users who logged out to log back in, allowing them to login as a different user.  I'm going to try to extend this to allow users to disable anonymous access and handle these setups more appropriately.",Matthew Good <matt-good.net>,next-major-releases
enhancement,978,Specify InterTrac context for a repository,version control,normal,,new,437 days,17 by 7,"This topic was already mentioned on the list of features for the 2.0 Roadmap, 
so I thought I should created a ticket for it in order to comment on that topic.

Actually, [http://svk.elixus.org SVK] ''is'' supported, out of the box,
because a SVK repository is just a regular Subversion repository.
Simply configuring a Trac environment to use the SVK repository just works.

However, starting from this basic level of support, 
several SVK-specific enhancements could be made:
 * show the list of mirrors
 * when displaying a changeset, show if it is one generated
   by SVK (like those created while synchronizing a mirrored repository)
 * annotate branches with their merge tickets
 * ...
",Christian Boos,next-major-releases
defect,10279,Sort admin page milestone table by descending due date,admin/web,minor,,new,448 days,13 by 7,"Currently, the list of milestones in the web admin seems to be sorted by ascending due date. If you have a lot of milestones, that's kind of a pain: the old milestones are likely to be the least interesting. Simply sorting by descending due date probably makes for a better experience (even though it will show far-future milestones before near-future ones).

For a more refined solution, split the table in two parts: a list of open milestones, by ascending due date, and a list of closed milestones, by descending due date.",Dirkjan Ochtman <dirkjan@…>,next-major-releases
enhancement,3022,Remove ROADMAP_ADMIN,roadmap,minor,,new,467 days,17 by 8,Tiny ticket to track the removal of `ROADMAP_ADMIN` (alias of `MILESTONE_ADMIN`) in the next release of Trac.,Emmanuel Blot,next-major-releases
defect,5390,"Zip Archive: aliases, symlinks",version control/browser,normal,Jun Omae,assigned,498 days,8 by 5,"Downloading source from the Trac Browsers ""Zip Archive"" generates Mac aliases or symlinks as files instead of links.",anonymous,next-major-releases
enhancement,12810,Add a TicketReport macro,report system,normal,,new,549 days,6 by 2,"Add a `TicketReport` macro that takes the report `id` as the first argument, and also the following optional keyword arguments:
* `order`: default column to sort by
* `desc`: default sort direction
* `max`: number of rows per page
* Any uppercase report variable

The argument names are consistent with the `TicketQuery` macro.

`ReportModule._render_view` needs to be refactored by extracting the code that prepares the report data.",Ryan J Ollos,next-major-releases
enhancement,10755,[PATCH] CommitTicketUpdater does not allow user to define what state to jump to,ticket system,normal,,new,561 days,23 by 14,"The CommitTicketUpdater will only ever close a ticket. In general, the closed state is for when no more work is to be done, aka ''after'' QA has verified the fix. Trac should allow configuration of what state name the ticket will get updated to.",patrick.little,next-major-releases
enhancement,7658,Option to disable automatic linking of CamelCase,wiki system,normal,,new,568 days,11 by 7,"It must have been brought up a million times by now. I can see that #476 almost addressed the problem for me, but didn't quite cut the mustard. Simply setting ignore_missing_pages isn't sufficient, as I'd like to see missing pages, but not automatic camelcase detection. Our naming convention uses camelcase and it's getting in the way. Trac is supposed to ""stay out of the way"" of developers. I'd just rather a wiki link was explicit.

I'd like to see either a global option in the ini file to switch this off completely, or a more configurable option, something like that suggested here: http://trac.edgewall.org/ticket/476#comment:23

The fix suggested in http://trac.edgewall.org/ticket/476#comment:26 would do just fine. If it breaks my wiki pages like the default Trac* wiki, that's my problem, and I'm quite prepared to deal with that. It's such a simple fix, I can't see why anyone would have any objections. I'll hack my installation for now, but I'd rather not.

Thanks,
Dave.",dave@…,next-major-releases
defect,1890,Can create tickets anonymously using the username of an authenticated user,general,major,,new,577 days,77 by 25,"I can create tickets anonymously using usernames of registered users. This is a Bad Thing(TM) in that people can impersonate me on my Trac. Or, they could otherwise pretend to be me. Which, to some users, may be confusing and misleading. It also poses a security threat in that any random person can go in and meddle in my bugs and close at will because to be able to add a comment to a ticket, you have to have TICKET_MODIFY, which essentially means anonymous has TICKET_ADMIN (filing another bug for this, since I know that at least in my projects, I like two problems to be reported as... two problems...)
----
'''Current status of the discussion''': 
each change to a ticket must also record whether
the user who did the change was authenticated or not.

See more complete summary in comment:53.",ziggy@…,next-major-releases
enhancement,3519,browse source - edit feature?,version control,normal,,new,607 days,10 by 5,"It would be great if when browsing the source tree through the subversion repository, there was a way to pull up an ""Edit"" box to make quick edits to files and submit them to the subversion repository.  This way I can give access to WIKI users to make edits to files within the subversion repository without them needing to set up full development environments.",anonymous,next-major-releases
enhancement,5010,shutdown hook for plugins,general,major,,new,631 days,23 by 5,"In a plugin, I'd like to create persistent connections somewhere (to a database, or a pipe to talk to another program, whatever) when trac starts (or my plugin is used for the first time), and close that connection again when trac ends, regardless of the reason why trac shuts down.

There could be an extension point resp. interface for the plugin to implement, that contains a shutdown() method.



",thomas.moschny@…,next-major-releases
enhancement,1386,Adding properties to Wiki Pages,wiki system,major,,new,638 days,19 by 11,"I think adding properties to Wiki pages would be a great feature.  Such as owner, cc, rss feeds, and specifcally, properites.

Some ideas for properties include

 * Publishing status - Published | Nonpublished[[br]]
 * Document Status - In Progress | Complete | Inconsistent | etc..

The idea for this is that I am in the process currently of adding content to the Wiki, however some items that I am documenting have not been completed either in terms of the documentation or having the items being documented having been completed.  I would like to be able to have an owner associated with the Wiki, perhaps a list of people who want to subscribe to change notifications for a particular wiki page, and a report for instance that the owner could view to see which pages they have that are in various states a defined by my definition of the various properties.

My definitions may need some refining but the idea still holds.  Anyway, I would be happy to discuss this further and possibly try to create some patches to demonstrate what I'm discussing if interested.
",jon.brandenburg at theronyx.com,next-major-releases
enhancement,6107,"to ""watch"" a milestone",notification,minor,,new,665 days,4 by 3,"Would be nice to be able to 'subscribe' to the roadmap with an email account to get notified when a milestone is 'completed'.


PS: yes, this is based in the amount of time I was spending to see if 0.11 was released =$ ; but the idea would be nice....",marianocuenze,next-major-releases
enhancement,1113,Show milestone changes in timeline,timeline,major,,new,671 days,11 by 6,It would be great to have the timeline noticing EVERY milestone change rather than only new milestones.,jens@…,next-major-releases
enhancement,695,Keywords for wiki pages,wiki system,major,,new,672 days,10 by 7,"It would be nice to see a keywords field for wiki pages, same as the one for tickets. This list of manually chosen keywords can serve multiple purposes:

 * for searching and ranking, grouping, ...

 * to automatically generate the ""See also"" list of links at the bottom of a page, listing all other pages that share 1 or more of the keywords. Currently this seems to be done manually, so if a wiki page changes such that it should not be related anymore, then one would have to hunt down and change all other pages that ""See also"" to it. ",mario at ruggier.org,next-major-releases
enhancement,10323,Enable sorting in TitleIndex macro,wiki system,normal,,new,679 days,19 by 9,"The goal is to be allowed to order the result of the macro `TitleIndex` in the same way that `RepositoryIndex` with the addition of the parameters `order` and `desc`.
 * `Order` possible values: [title|date]
 * `Desc` possible values: [0|1], same repositoryindex.

For example:
{{{
[[TitleIndex(order=title, desc=1)]]
}}}",carlos.lopezperez@…,next-major-releases
enhancement,10178,[PATCH] Allow TracQueries to order on multiple columns,query system,normal,,new,687 days,30 by 16,"Currently trac only supports ordering on a single column. I've written a patch which provides the ability to sort on more than one column.

This allows:
{{{
[[TicketQuery(max=5,order=priority|somecolumn, desc=0|1, status=open)]]
}}}",david@…,next-major-releases
enhancement,11683,Dynamic table sorting in Admin tables,admin/web,normal,,new,701 days,15 by 4,"Allow the **Components**, **Milestones**, **Repositories** and **Versions** (and possible **Enum**) tables to be sorted. This was mentioned in #10994. For inspiration, see th:#10876 and th:TableSorterPlugin.",Ryan J Ollos,next-major-releases
enhancement,9643,[Patch] Ticket search by query with auto completion,search system,major,,new,705 days,67 by 12,"I was inspired by [http://youtrack.jetbrains.net/issues/ YouTrack ticket search box] and spent the last couple of hours hacking together something similar.

Its based on [http://www.jqueryui.com/demos/autocomplete jQuery UI's autocomplete] and uses the regular TracQuery syntax, but with auto complete for field names, operators and (multi) values. Its not as good-looking as YouTrac, but still, its really neat :-)

The way I implemented this is by making the regular search box a bit bigger, and my functionality is trigged when 'query:' is written. I thought it would be better than cluttering the interface with a separate search box.

I'm afraid I don't know how to create those cool egg files, so I just wrote it as a one .py file (it doesn't do much anyhow, just adds JavaScript/CSS/jQuery-UI and give JSON responses of field values). You can [http://www.codenition.com/wp-content/TicketQuerySearch.zip download it here], just place `TicketQuerySearch.py` and the `TicketQuerySearch` directory in the plugins folder.

That's about it. just write 'query:' in the top-right search box, and start writing a regular TracQuery. You can move around with the arrows and use tab, enter or the mouse to choose an item from the list.

=== Currently it supports: ===
- Auto completes the field name (either at the very beginning or after an '&').
- When a valid field name is typed/chosen, or when just one field name option is left in the suggestions, it start suggesting search operators. Those operators are also filtered as you type them.
- Once an operator is written, it suggests values.
- When a valid value is typed/chosen, it suggest you to add more values after a pipe (`|`).
- Also, in some contexts it lets you choose 'Another field...' and 'Another value...' which simply adds `&` or `|` to the query.

=== A couple more notes: ===

- I know some people would prefer this to be a plugin and not part of core, but I think it gives much better UX when searching for tickets.

  It can completely replace the Custom Query page in most cases, making it much faster and easier to search. You can search using the keyboard alone, or by using some simple mouse clicks.

  The current Custom Query interface is great and much more advanced than this, but for simple searches its an overkill - it takes too much clicks and time to make searches.

- I posted this ticket as soon as I got a working version, so it wasn't tested enough yet. I want to hear what you have to say about the idea in general, and what you think about the way I implemented this. I assume changes and fixes will be needed.

- I'm not quite sure if you would want to ship jQuery UI with Trac. I downloaded a version that includes only what's necessary for [http://www.jqueryui.com/demos/autocomplete Autocomplete], and it weights around ~120KB (20KB for JavaScript and the rest is CSS&images). If needed, I can write a stand-alone Autocomplete functionality, but it probably won't be as good as jQuery-UI's.

- Most of the auto-complete is done on the client-side. When searching in values of some fields (like component), the client downloads a full list of possible values (only when required), searches them and caches them for the next time a search is needed on the same field.

  As there aren't usually many values, I thought it would be better to download it once instead of hitting the server with a request every time the user types something.

- Support for custom fields is missing.

- Maybe the '!query:' prefix can be removed so it'll always be enabled? It does raise some questions (when the form is submitted, and the user typed 'status=new', did he mean to search for tickets with that status or just 'status=new' as plain string in the regular search?), but I think its all solvable.",shesek,next-major-releases
enhancement,11826,Optimize ticket.query.execute,query system,minor,,new,707 days,10 by 5,"The ticket.query.execute function could be optimised somewhat...

{{{
     if self.max == 0:
            self.has_more_pages = False
            self.offset = 0
        else:
            self.has_more_pages = True
            self.offset = self.max * (self.page - 1)
}}}
source:trunk/trac/ticket/query.py?rev=13234#L110

{{{
            self.num_items = self._count(sql, args)

            if self.num_items <= self.max:
                self.has_more_pages = False

            if self.has_more_pages:
}}}
source:trunk/trac/ticket/query.py?rev=13234#L295


if''' self.max = 0''' this:  {{{self.num_items = self._count(sql, args)}}} is useless since {{{if self.has_more_pages:}}} will always be False.

So I suggest adding something like:
{{{
if self.has_more_pages: // This line
     self.num_items = self._count(sql, args)

            if self.num_items <= self.max:
                self.has_more_pages = False

            if self.has_more_pages:

}}}

That would save one sql-query which in worst case scenario could double(?) the execution time I suppose",anonymous,next-major-releases
enhancement,10303,Faceted browsing in Search,search system,minor,,new,720 days,5 by 4,"In spirit of #9643, I'm thinking about taking a look at implementing [http://en.wikipedia.org/wiki/Faceted_search faceted browsing] in a couple places in Trac, esp. in the Search module.

While any initial feedback on the idea is most welcome, my first more directed question to the audience would be if anyone has any suggestions for some existing library to use for this. Any good and/or bad experiences with anything? I guess directly related would be finding something that would be best digestible by Trac core, with any of it's possible quirks and whatnot (#10245).",lkraav <leho@…>,next-major-releases
enhancement,2662,assign tickets to multiple users,ticket system,normal,,new,740 days,74 by 46,"It would be very nice, if I could assign a ticket to more than one user. I set the restrict owner-parameter to false and typed in two users. I tried with different syntax, but the trac system did not notice the ticket to belong to the them. Would be fine...",mala,next-major-releases
enhancement,8605,Allow non-authenticated users to replace their attachments,attachment,normal,,new,763 days,6 by 4,"#8592 fixed replacing attachments for authenticated users. Non-authenticated users are currently denied replacing any attachments, unless they have `ATTACHMENT_DELETE` permission.

The goal of this enhancement is to allow non-authenticated users to replace their own attachments, without having `ATTACHMENT_DELETE` permission. The main use case is to allow correcting a bad upload shortly after the fact. [comment:9:ticket:8592 This comment] gives a possible solution, by structuring the `author` field as `anonymous:<session_id>` for unauthenticated users.

Removing one's own attachments could be enabled in the same way.",Remy Blank,next-major-releases
defect,5420,EOL changes hidden in changeset view,version control/changeset view,normal,,new,763 days,4 by 4,"If a file's EOL format is changed in the file itself (not via a property change), the changeset does not list that file as changing.  Also, if there were other changes to the file, those are the only changes shown.

This is surprising and confusing behavior.

The current behavior is what I would expect in the ""ignore whitespace changes"" case, not in the default case.",Eli Carter,next-major-releases
defect,4292,ROADMAP_VIEW / MILESTONE_VIEW privilege,roadmap,minor,,new,764 days,8 by 4,"roadmap.py is checking for ROADMAP_VIEW, which will only work as long as one keeps the ROADMAP_VIEW permission for anonymous that's set up by db_default.py.  Once you delete that, nobody without WIKI_ADMIN privileges can look at the roadmap, because you can create MILESTONE_VIEW privs to your hearts content but they'll be ignored.
",dave@…,next-major-releases
enhancement,2464,Conditional fields in tickets,ticket system,major,,new,770 days,56 by 28,"Not necessarily all possible fields should be presented to the user. There could be preconditions attached to fields, for checking if they're applicable at all and for checking if the current user can actually set/modify them.

Then, as an advanced case, instead of being an all or nothing situation, the possible content of one field could be dependent on the ticket state: see #1299, #2752 and [#comment:13].


=== Use cases ===
==== Ability to have different ticket fields for different ticket types ====
''(original one)''
When using quite different types of tickets (bug-report, requirement, etc), there is a need for different fields depending on the ticket type. 
This might add just the flexibility required for complying with existing development processes. 
Great feature in particular when support for master and child tickets is planned, trac could be more of a requirements management system beyond the issue database approach.
See also duplicates: #4028, #4643

==== Abilty to have different ticket fields for different ticket components ====
As for ticket types, but for components.
See #2752

==== Hide the ''Keywords:'' field ====
See #3281

==== Hide some fields for new tickets ====
See #1580.
This could be achieved quite simply by putting the ticket `id` in the condition.

",johan.regnell@…,next-major-releases
defect,11378,SQLite backend does not use auto-incrementing primary keys,database backend,normal,,new,771 days,8 by 4,"When using the SQLite backend, Trac does not actually create auto-incrementing columns when generating `CREATE TABLE` statements for Table objects that contain a `Column(..., auto_increment=True)`.  

The [http://trac.edgewall.org/browser/trunk/trac/db/sqlite_backend.py#L118 relevant code is in the sqlite_backend's _to_sql method]:

{{{
#!python
        if column.auto_increment:
            ctype = ""integer PRIMARY KEY""
}}}

According to [http://www.sqlite.org/autoinc.html the SQLite documentation], this will assign a unique value to each existing row -- but a newly created row might reuse a value that was previously used by a deleted row.  In order to prevent reuse of deleted values, the column must instead be created with type ""integer PRIMARY KEY AUTOINCREMENT.""

Specifically, the behavior only differs in cases when a deleted row happens to have the largest existing value for its primary key.  To see this behavior in Trac:

 1. Start up an environment using the SQLite backend
 2. Enable the `tracopt.ticket.deleter.ticketdeleter` component
 3. Log in as an admin
 4. Create a new ticket (`#1`)
 5. Create a second new ticket (`#2`)
 6. Delete ticket `#2`
 7. Create a new ticket

The newly created ticket will be `#2`, instead of `#3`.  If you had instead deleted ticket `#1` in step 6 above, the newly created ticket in step 7 would be `#3`.

I believe this behavior only occurs with the SQLite backend.

This does not only affect tickets, and does not only affect Trac core -- any plugin that defines a database table with a `Column(..., auto_increment=True)` is also affected.  For example I found out about this while looking into a !TracPastePlugin bug, th:#4265, which exhibits the same behavior -- the ID of a deleted paste will be reused by a new paste, if and only if the deleted paste is the most recently created, and the site is using the sqlite backend.

The SQLite documentation does explain that using the AUTOINCREMENT keyword means slower INSERTs:

> The behavior implemented by the AUTOINCREMENT keyword is subtly different from 
> the default behavior. With AUTOINCREMENT, rows with automatically selected ROWIDs 
> are guaranteed to have ROWIDs that have never been used before by the same table in 
> the same database. And the automatically generated ROWIDs are guaranteed to be
> monotonically increasing. These are important properties in certain applications. But if 
> your application does not need these properties, you should probably stay with the 
> default behavior since the use of AUTOINCREMENT requires additional work to be done 
> as each row is inserted and thus causes INSERTs to run a little slower.

Was the omission of AUTOINCREMENT a deliberate decision, or is this a bug?",ejucovy@…,next-major-releases
enhancement,3718,Trac should use HTTP 301 Moved when milestones get renamed,general,major,,new,771 days,6 by 2," 1. Create a milestone ""Example""
 2. Add a ticket to the milestone
 3. Subscribe to the RSS feed.
 4. Edit the milestone, rename to ""Changed Milestone""

Expected behaviour:
Trac 'knows' a milestone has been renamed, and does a 301 Moved response code. The client application / browser redirects, and the end user doesn't notice anything out of the ordinary

Actual:
Trac doesn't do this. milestone:""milestone name"" links break, feeds break, and so much more.

Suggested: 
A simple entry to a 'milestone (previous) names' table would fix this - when a milestone isn't known, the table is checked, and a 301 is sent with an updated location.
",daniel.connor@…,next-major-releases
enhancement,4588,User Page: trac links to these pages,general,normal,,new,796 days,6 by 4,"When browsing tickets it would be nice, if I could click on the owner of the ticket and would be directed to his/her user specific page. I think this is interrelated to #2178.",triplem,next-major-releases
enhancement,13019,Make dropdowns searchable / filterable,web frontend,normal,,reopened,796 days,12 by 4,"Copied from [ticket:10012#comment:82]:
> > About select boxes:
> > 
> > Another interesting library I recently discovered is http://harvesthq.github.com/chosen/ ...
> 
> Wow, impressive! Yes, looks like it's a must have.
> 
> > Any arguments against including it in core?
> Not from my side. [cboos]

[https://harvesthq.github.io/chosen/#optgroup-support This would be especially useful] for milestone selection. [ticket:13018 Often] there are many milestones and finding a certain milestone can be difficult because [ticket:2130 they are sorted by due date]. Allowing to use the filtering of ''chosen'' would be very helpful and nice.",anonymous,next-major-releases
enhancement,2130,Sort Milestones in Roadmap and NewTicket alphabetically (as an option),roadmap,normal,,new,796 days,10 by 7,"I use Trac for different components with different version number.
The milestones are sorted in the sequence I added them plus a sort over the date that is set.

It would be very nice to get them optional sorted alphabetically.

The milestone listbox in the ""New Ticket"" looks now as the following example:

 * ComponentA 1.0
 * ComponentB 2.1
 * ComponentC 0.3
 * ComponentC 0.4
 * ComponentA 1.1
 * ComponentB 2.3
 
I want to have an option in the ""Roadmap"" to sort it alphabetically and my be as default in the ""New Ticket"" settings.
Then it should look like the following:

 * ComponentA 1.0
 * ComponentA 1.1
 * ComponentB 2.1
 * ComponentB 2.3
 * ComponentC 0.3
 * ComponentC 0.4",jan.linnenkohl@…,next-major-releases
defect,11719,"Auto-preview breaks TicketExt plugin, possibily others",ticket system,major,,new,817 days,10 by 3,"When auto-preview kicks in and new ticket content is returned via XHR, `trac/ticket/templates/ticket.html` uses jQuery's `.replaceWith()` function to update the page.  This has the effect of dropping all the `display: none` added to the page on initial load by `TicketExt`.

One solution is to pass pass the XHR response through the same filters as the initial page load so the same manipulation (e.g., setting display attributes) can be applied.

Another is to change contents rather than replace the entire DOM subtree.  This can be done with:

{{{#!diff
diff --git a/trac/ticket/templates/ticket.html b/trac/ticket/templates/ticket.ht
index 353ef63..d0865c3 100644
--- a/trac/ticket/templates/ticket.html
+++ b/trac/ticket/templates/ticket.html
@@ -79,7 +79,14 @@
         $(""#propertyform"").autoSubmit({preview: '1'}, function(data, reply) {
           var items = $(reply);
           // Update ticket box
-          $(""#ticket"").replaceWith(items.filter('#ticket'));
+          var newProps = $('table.properties td', items);
+          $('#ticket table.properties td').each(function(i) {
+            $(this).html(newProps.eq(i).html());
+          });
+          var newDescription = $('div.description div.searchable', items);
+          $('#ticket div.description div.searchable').html(newDescription.html());
+          if (items.hasClass('ticketdraft'))
+            $('#ticket').addClass('ticketdraft');
           // Unthread, unrevert and update changelog
           if (!$('#trac-comments-oldest').checked())
             $('#trac-comments-oldest').click().change();
}}}

though this is likely a partial fix.

(This has also been discussed at th:#11923.)",chris.nelson.1022@…,next-major-releases
enhancement,3162,LDAP support for  e-mail notification,notification,normal,,new,829 days,19 by 9,"When using trac with LDAP authorization it would be nice if LDAP is also used
for getting the e-mail address of logged in users (this feature should probably be settable using some trac.ini parameters). 

I do not know howto read trac.ini parameters so I added a few lines to Notify.py Maybe somebody can use this.
",remco.wouts@…,next-major-releases
enhancement,1962,Due dates on tickets & email notification on overdue dates,ticket system,minor,,new,847 days,32 by 21,"It maye be there already but i cannot find it. One things as a software project manager that drives me crazy about track is the inability to add a due date to tickets. Prioritization is all well and good, and most certainly handy, but as part of the timeline / roadmap and the ticket inspector you REALLY need to have a due date on a ticket. It'd also be fantastic for Trac to notify the allocated user that the ticket is now overdue and bug them on a daily / configurable timeframe. As i said, correct me if this is already in trac (please tell me where!!) but if it's not, this is a really string feature request & i think a definite must have. 

Thanks - trac is awesome & we;'re really starting to use it now :)

Regards

Owen",owen@…,next-major-releases
defect,11963,#!td processor inserts unwanted <p>...</p>,wiki system,normal,,new,864 days,4 by 3,"The table using the html processors has additional padding due to `<p>` elements that get inserted automatically.

{{{
{{{#!th
some
}}}
{{{#!td
example
}}}
}}}

{{{#!th
some
}}}
{{{#!td
example
}}}

In a long table, this vertical margin wastes too much space. I would prefer the compact style from the pipe syntax, but need to add css styling.",bastiK,next-major-releases
enhancement,12119,Options not written to trac.ini when --inherit option used,database backend,normal,,new,893 days,4 by 1,"Tested with the latest trunk r14154. The trac.ini file on the left was created using an empty inherited file {{{--inherit=`pwd`/global.ini}}}. The file on the right was created without specifying `--inherit`. It seems many options are missing from `trac.ini` when `--inherit` is used.

It seems only `ConfigSection`s and options explicitly specified when creating the environment are written. In the case that a `ConfigSection` is specified in the inherited file it won't be written.

The possible reason for not writing an option when there is an inherited file is to avoid having to delete the option from trac.ini when it is added to the inherited file. It seems inconsistent though to have only `ConfigSection`s in trac.ini.

I'll have to investigate if the behavior changed after #11437.

{{{#!diff
--- trac/conf/trac.ini	2015-07-12 03:57:27.439652744 -0700
+++ trac2/conf/trac.ini	2015-07-12 03:58:12.643651198 -0700
@@ -1,7 +1,44 @@
 # -*- coding: utf-8 -*-
 
+[attachment]
+max_size = 262144
+max_zip_size = 2097152
+render_unsafe_content = disabled
+
+[browser]
+color_scale = enabled
+downloadable_paths = /trunk,/branches/*,/tags/*
+hide_properties = svk:merge
+intermediate_color = 
+intermediate_point = 
+newest_color = (255, 136, 136)
+oldest_color = (136, 136, 255)
+oneliner_properties = trac:summary
+render_unsafe_content = disabled
+wiki_properties = trac:description
+
+[changeset]
+max_diff_bytes = 10000000
+max_diff_files = 0
+wiki_format_messages = enabled
+
+[header_logo]
+alt = (please configure the [header_logo] section in trac.ini)
+height = -1
+link = 
+src = site/your_project_logo.png
+width = -1
+
 [inherit]
-file = /home/user/Workspace/test-inherit/global.ini
+htdocs_dir = 
+plugins_dir = 
+templates_dir = 
+
+[logging]
+log_file = trac.log
+log_format = 
+log_level = DEBUG
+log_type = none
 
 [mainnav]
 admin.order = 8.0
@@ -20,13 +57,108 @@
 logout.order = 2.0
 prefs.order = 3.0
 
+[milestone]
+default_retarget_to = 
+stats_provider = DefaultTicketGroupStatsProvider
+
+[mimeviewer]
+max_preview_size = 262144
+mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
+mime_map_patterns = text/plain:README|INSTALL|COPYING.*
+pygments_default_style = trac
+pygments_modes = 
+tab_width = 8
+treat_as_binary = application/octet-stream,application/pdf,application/postscript,application/msword,application/rtf
+
+[notification]
+admit_domains = 
+ambiguous_char_width = single
+batch_subject_template = $prefix Batch modify: $tickets_descr
+email_address_resolvers = SessionEmailResolver
+email_sender = SmtpEmailSender
+ignore_domains = 
+mime_encoding = none
+sendmail_path = sendmail
+smtp_always_bcc = 
+smtp_always_cc = 
+smtp_default_domain = 
+smtp_enabled = disabled
+smtp_from = trac@localhost
+smtp_from_author = disabled
+smtp_from_name = 
+smtp_password = 
+smtp_port = 25
+smtp_replyto = trac@localhost
+smtp_server = localhost
+smtp_subject_prefix = __default__
+smtp_user = 
+ticket_subject_template = $prefix #$ticket.id: $summary
+use_public_cc = disabled
+use_short_addr = disabled
+use_tls = disabled
+
 [notification-subscriber]
 always_notify_cc = CarbonCopySubscriber
 always_notify_previous_updater = TicketPreviousUpdatersSubscriber
 always_notify_updater = TicketUpdaterSubscriber
 
 [project]
+admin = 
+admin_trac_url = .
+descr = My example project
+footer = Visit the Trac open source project at<br /><a href=""http://trac.edgewall.org/"">http://trac.edgewall.org/</a>
+icon = common/trac.ico
 name = My Project
+url = 
+
+[query]
+default_anonymous_query = status!=closed&cc~=$USER
+default_query = status!=closed&owner=$USER
+items_per_page = 100
+ticketlink_query = ?status=!closed
+
+[report]
+items_per_page = 100
+items_per_page_rss = 0
+
+[revisionlog]
+default_log_limit = 100
+graph_colors = #cc0,#0c0,#0cc,#00c,#c0c,#c00
+
+[roadmap]
+stats_provider = DefaultTicketGroupStatsProvider
+
+[search]
+default_disabled_filters = 
+min_query_length = 3
+
+[sqlite]
+extensions = 
+
+[svn]
+authz_file = 
+authz_module_name = 
+
+[ticket]
+allowed_empty_fields = milestone,version
+default_cc = 
+default_component = 
+default_description = 
+default_keywords = 
+default_milestone = 
+default_owner = < default >
+default_priority = major
+default_resolution = fixed
+default_severity = 
+default_summary = 
+default_type = defect
+default_version = 
+max_comment_size = 262144
+max_description_size = 262144
+max_summary_size = 262144
+preserve_newlines = default
+restrict_owner = disabled
+workflow = ConfigurableTicketWorkflow
 
 [ticket-workflow]
 accept = new,assigned,accepted,reopened -> accepted
@@ -51,6 +183,63 @@
 resolve.operations = set_resolution
 resolve.permissions = TICKET_MODIFY
 
+[timeline]
+abbreviated_messages = enabled
+changeset_collapse_events = disabled
+changeset_long_messages = disabled
+changeset_show_files = 0
+default_daysback = 30
+max_daysback = 90
+newticket_formatter = oneliner
+ticket_show_component = disabled
+ticket_show_details = disabled
+
 [trac]
+auth_cookie_lifetime = 0
+auth_cookie_path = 
+auto_preview_timeout = 2.0
+auto_reload = disabled
+backup_dir = db
+base_url = 
+check_auth_ip = disabled
 database = sqlite:db/trac.db
+debug_sql = disabled
+default_charset = utf-8
+default_date_format = 
+default_dateinfo_format = relative
+default_handler = WikiModule
+default_language = 
+default_timezone = 
+genshi_cache_size = 128
+htdocs_location = 
+ignore_auth_case = disabled
+jquery_location = 
+jquery_ui_location = 
+jquery_ui_theme_location = 
+never_obfuscate_mailto = disabled
+permission_policies = ReadonlyWikiPolicy,DefaultPermissionPolicy,LegacyAttachmentPolicy
+permission_store = DefaultPermissionStore
+request_filters = 
+resizable_textareas = enabled
+secure_cookies = disabled
+show_email_addresses = disabled
+show_ip_addresses = disabled
+timeout = 20
+use_base_url_for_redirect = disabled
+use_chunked_encoding = disabled
+use_xsendfile = disabled
+wiki_toolbars = enabled
+xsendfile_header = X-Sendfile
+
+[versioncontrol]
+allowed_repository_dir_prefixes = 
+default_repository_type = svn
+
+[wiki]
+default_edit_area_height = 20
+ignore_missing_pages = disabled
+max_size = 262144
+render_unsafe_content = disabled
+safe_schemes = cvs,file,ftp,git,irc,http,https,news,sftp,smb,ssh,svn,svn+ssh
+split_page_names = disabled
}}}",Ryan J Ollos,next-major-releases
enhancement,611,Backlinks,wiki system,major,,new,905 days,23 by 13,"A nice feature would be automatic backlink generation for wikipages.

if there is intrest in this sugested enhancement i would like to contribute in coding this feature (wih a little guidance)

keep up the good work!",siegfried@…,next-major-releases
defect,8519,internal SQL string matches are always case insensitive,database backend,normal,,new,936 days,36 by 7,"Our `like()` helper actually translate into doing an `ILIKE` or similar. There are several places where this is not desired, we would actually need a case sensitive search.

The idea is to rename the current `like()` to `ilike()` and add a real `like()` helper.

See #8424 for the original ticket and implementation hints for SQLite which doesn't have a case-sensitive LIKE.",Christian Boos,next-major-releases
enhancement,2344,sub milestone,roadmap,major,,new,951 days,21 by 11,"I need the feature to create children milestones.

For example, I planned V1_release as a milestone. OK.
Now suppose I plan alpha, alpha2, beta, beta2, rc1, rc2 release, then I'd like to associate these releases as  parts of ""V1_release"".

I'd like to assign these small milestones as children of greater milestone.

Or another example, suppose [http://developer.gnome.org/dotplan/tasks.html gnome development process], they have some of phases for each release. Feature freeze, String freeze, Hard UI freeze, etc. 

If trac supports sub-milestone, then it is possible to manage these kind of release/development process.
",anonymous,next-major-releases
enhancement,8728,add Closed Date to list of columns offered in custom query,query system,normal,,new,975 days,18 by 13,"the Created and Modified columns are already offered by TracQuery.  it would be very useful to also be able to add the Closed date to a report.

note that the Closed date on a ticket is not the same as the Last Modified date on a closed ticket.  there may be follow-up communications long after a ticket has already been closed.

we often get requests from upper management or from clients for reports such as how many tickets were closed in a particular month.  it is extremely tedious to search all closed tickets that were modified during or after that time, and then see when the ticket was actually closed.

another use of the Closed date column would be to run metrics such as average length of time that a ticket was open.  if this column was available, it would take a quick export to excel and some simple calculations.

this data would be accessible with custom sql but i think there are enough common use cases that it would be worthwhile to make it part of the default package.  i recall seeing many tickets related to custom date reports and this enhancement might provide enough for a lot of people.

it may not be that simple since i see in TracReports that the time and changetime columns live on the ''ticket'' table, but not the closed time.  but the TracTimeline does show when tickets are closed, so hopefully that means it wouldn't be too hard to get at the data.",jhn@…,next-major-releases
enhancement,3911,"implement an object system (xwiki, roundup)",general,major,,new,980 days,20 by 5,"in xwiki, i can define objects (set of properties) and then have pages to create new objects, and displaying them, and of course, querying them. this is a great way of structuring documents. e.g., i can create a FAQ object with 'question' and 'answer' fields, then form a page that shows all questions and then all items.",anonymous,next-major-releases
defect,9048,Wiki history empty if end revision precedes start revision,wiki system,minor,,new,990 days,3 by 2,"How To Reproduce:
 1. go to http://trac.edgewall.org/wiki/WikiStart?action=history
 2. in the first radiobutton column click on, say, version 130
 3. in the second radiobutton column click on, say, version 128
 4. Click the ""View Changes"" button
 5. Note that the resulting page shows differences between
    Version '''128''' and Version '''128'''.
    Version 130 has been completely neglected.

System Information:
Just verified on trac.edgewall.org (currently running 0.12dev-r9164).

What it should do instead? Not sure:
 * show differences between 128 and 130 (i.e. swap versions so
   that they are correctly ordered), or
 * show backwards differences, or
 * anything else?
",luca.ceresoli@…,next-major-releases
defect,8146,Unified diff in changeset view differs from exported unified diff,version control/changeset view,normal,,new,991 days,12 by 4,"In the changeset view the unified diff provided by clicking on Unified is different from the one which can be downloaded.

View when selecting **Unified** in the changeset view:
{{{
Index: trunk/setup.py
===================================================================
--- a/trunk/setup.py
+++ b/trunk/setup.py
@@ -2,5 +2,5 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2003-2008 Edgewall Software
+# Copyright (C) 2003-2009 Edgewall Software
 # All rights reserved.
 #
@@ -71,5 +71,5 @@
     install_requires = [
         'setuptools>=0.6b1',
-        'Genshi>=0.5'
+        'Genshi>=0.6dev-r960'
     ],
     extras_require = {
}}}


Content downloaded as a //Unified Diff//:
{{{
Index: trunk/setup.py
===================================================================
--- trunk/setup.py (revision 7699)
+++ trunk/setup.py (revision 7890)
@@ -2,5 +2,5 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2003-2008 Edgewall Software
+# Copyright (C) 2003-2009 Edgewall Software
 # All rights reserved.
 #
@@ -71,5 +71,5 @@
     install_requires = [
         'setuptools>=0.6b1',
-        'Genshi>=0.5'
+        'Genshi>=0.6dev-r960'
     ],
     extras_require = {
}}}

here the diff of the two diffs :


{{{
#!diff
--- C:\Users\Absynthe\Downloads\diff-trunk_trac_versioncontrol_web_ui_changeset.py-from-r7626-to-r7890.diff	sam. mars 21 12:38:50 2009
+++ C:\Users\Absynthe\Downloads\diff-trunk_setup.py-from-r7699-to-r7890.diff	sam. mars 21 12:37:11 2009
@@ -1,7 +1,7 @@
 Index: trunk/setup.py
 ===================================================================
---- a/trunk/setup.py
-+++ b/trunk/setup.py
+--- trunk/setup.py (revision 7699)
++++ trunk/setup.py (revision 7890)
 @@ -2,5 +2,5 @@
  # -*- coding: utf-8 -*-
  #
}}}

As you can see paths in the index of the first diff are a bit custom.",anonymous,next-major-releases
enhancement,9936,CSS and JS files should be versioned,web frontend,normal,,new,1060 days,92 by 14,"When we recently upgraded a trac install a number of users has strange behaviour on the Custom Query page.

It turned out that this was due to JS caching.

Ideally Trac should use version numbering on the CSS and JS uris so that the cache is busted on upgrades.",peter.westwood@…,next-major-releases
defect,7744,source:path@rev targeting a file below a copied dir may fail,version control/browser,minor,,new,1101 days,9 by 3,"... when the file has not been modified since the copy and `rev` predates the copy operation itself.

e.g. source:/branches/0.11-stable/contrib/bugzilla2trac.py@6820#L824
leads to:
{{{
No node /branches/0.11-stable/contrib/bugzilla2trac.py at revision 6820
}}}
Looking at source:/branches/0.11-stable/contrib/bugzilla2trac.py (without revision spec) works, and indeed shows a revision of r6820 for this file.

This is happening because at r6820, there was no branches/0.11-stable. This behavior is actually ""correct"" if ...@6820 is supposed to be a peg revision in Subversion terminology, but it's annoying nonetheless, as the TracLinks syntax doesn't allow an alternative way of specifying the revision(*) and anyway I don't think it's a good idea to expose the peg revision vs. operative revision subtleties in Trac (http://svnbook.red-bean.com/en/1.5/svn.advanced.pegrevs.html).

(*) well it does, but source:/branches/0.11-stable/contrib/bugzilla2trac.py?rev=6820 has the same problem",Christian Boos,next-major-releases
enhancement,221,Creating TR for multiple components,ticket system,critical,,new,1115 days,25 by 13,"Its sometimes necessary to fix a bug in both a branch release and the mainline trunk. It would be very useful to have a method by which a ticket can be assigned to multiple releases 

----
Note: see rather #4298 for the association to multiple versions (or milestones). This ticket is focused on the association to multiple '''components''' (cf. comment:10)",banerjed@…,next-major-releases
defect,7014,"Trap  ""ZipImportError: bad local file header.. "" and suggest server restart",general,normal,,new,1118 days,6 by 4,"==== How to Reproduce ====

While doing a GET operation on `/admin/general/plugin`, Trac issued an internal error.

''(please provide additional details here)''


Request parameters:
{{{
{'cat_id': u'general', 'panel_id': u'plugin', 'path_info': None}
}}}


==== System Information ====

|| '''Trac''' || `0.11b1` ||
|| '''Python''' || `2.5.1 (r251:54863, Mar 13 2008, 12:52:19) ` [[br]] `[GCC 3.4.6 [FreeBSD] 20060305]` ||
|| '''setuptools''' || `0.6c8` ||
|| '''SQLite''' || `3.3.17` ||
|| '''pysqlite''' || `2.3.5` ||
|| '''Genshi''' || `0.4.4` ||
|| '''Pygments''' || `0.9` ||
|| '''Subversion''' || `1.4.6 (r28521)` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/usr/local/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg/trac/web/main.py"", line 398, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/local/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg/trac/web/main.py"", line 195, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/usr/local/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg/trac/admin/web_ui.py"", line 108, in process_request
    path_info)
  File ""/usr/local/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg/trac/admin/web_ui.py"", line 389, in render_admin_panel
    return self._render_view(req)
  File ""/usr/local/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg/trac/admin/web_ui.py"", line 503, in _render_view
    info = get_pkginfo(dist)
  File ""/usr/local/lib/python2.5/site-packages/Trac-0.11b1-py2.5.egg/trac/util/__init__.py"", line 228, in get_pkginfo
    pkginfo = email.message_from_string(dist.get_metadata('PKG-INFO'))
  File ""/usr/local/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py"", line 1137, in get_metadata
    return self._get(self._fn(self.egg_info,name))
  File ""/usr/local/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py"", line 1195, in _get
    return self.loader.get_data(path)
ZipImportError: bad local file header in /usr/local/lib/python2.5/site-packages/TracAccountManager-0.2dev_r3111-py2.5.egg

}}}
    ",admin,next-major-releases
enhancement,11889,On-site notifications,notification,normal,,new,1145 days,2 by 1,"''On-site notifications'' are displayed to users on the Trac site (while e.g. ''email notifications'' are sent by email).

With [wiki:TracDev/Proposals/AdvancedNotification/INotificationDistributor INotificationDistributor] we can send notifications via email, XMPP or any other transport channel. We could also ""send"" notifications to the appropriate user account on the Trac site itself and store them until the user visits the site and gets notified.",Peter Suter,next-major-releases
enhancement,2463,Mandatory fields in tickets,ticket system,normal,,new,1148 days,24 by 12,It would be great with ability to set some ticket fields as mandatory. These fields should be verified before allowing submit when creating a new ticket.,johan.regnell@…,next-major-releases
enhancement,10286,Way to query all tickets with attachments,query system,normal,,new,1171 days,9 by 4,"Trac should provide a way to query all tickets with attachments, or even better, with a given name/description in an attachment. Or maybe even attachment size(s) (individual or combined).",Mitar,next-major-releases
enhancement,10350,e.g. [#1234] in svn commit 5678 comment generates wrong Trac link,wiki system,minor,,new,1171 days,3 by 2,"The effect is that the Trac generated link will be http://......./changeset/5678#1234 which on clicking does not lead to the ticket 1234. The link should rather be http://....../ticket/1234.

IMHO the link generator should ignore the brackets if it sees the #.

The whole problem is because some people are used to brackets instead of parenthesis when they write additional comments in their texts. Actually, they should write {{{ (#1234) }}}, but I think you should also be able to stand the one with brackets.",fbrettschneider@…,next-major-releases
enhancement,9131,Customisation of default field labels,general,normal,,new,1187 days,2 by 2,"I use Trac a lot for managing projects which do not have chronological milestones but rather some other critera for organising tickets (e.g. Locations or even Products).

I use the milestones within Trac as the features it provides are perfect but it confuses users.  I can rename the ''Roadmap'' link on the menu bar to either Location or Product but cannot rename the text that appears in the roadmap wiki page, nor for that field in the new ticket dialogue.

It would be useful to be able to redefine the milestone field's label (perhaps in the same way that custom field labels are defined) and have that propagate through to the roadmap page in the wiki.",anonymous,next-major-releases
enhancement,1216,wiki pages caching,wiki system,normal,,new,1202 days,12 by 7,"Most of the time wiki pages can be considered as a static content. So instead of generating and regenerating wiki pages -> html output, perhaps it would be useful to cache generated HTML output of wiki pages on the disk. Next time, page is requested checking if there have been changes - if not serve the file, otherwise - regenerate HTML page and serve newly generated file. 

Sure this raises a question, what to do with embedded python macroses (see wiki-macros).
Having such functionality, would help to reduce server load and would be very helpful especially with wiki rst (Restructured Text extension). 

This ticket is rather an attempt to find out if there is a demand for such functionality. Consider this ticket as a discusion starting point.",zilvinas,next-major-releases
enhancement,3749,recent ticket-comments macro,ticket system,normal,,new,1227 days,12 by 5,I think it would be nice to have a page that lists recent ticket comments to see what tickets are being actively discussed.,Gary Wilson <gary.wilson@…>,next-major-releases
enhancement,2095,Have redundant 'action triggers' / controls on long pages,roadmap,minor,,new,1239 days,12 by 6,"For projects with a long list of milestones, it would be helpful if there was an 'add' link at the bottom of the page as well as at the top. This allows someone who has scrolled down to check what the last milestone is to click and add the next one without scrolling back up'",michael@…,next-major-releases
defect,7106,File attachment 'added' time is incorrect,attachment,major,,new,1247 days,4 by 4,"Found in r6814.

The added time shown in the ticket is correct:

''MTM1.log  (1.6 kB) - added by admin  '''2 days''' ago.''

but when you show the file, the added time is incorrect:

''File MTM1.log, 1.6 kB  (added by admin, '''84 seconds''' ago)''

The tool-tip timestamp is the same (and correct) on both.",robert.nadler@…,next-major-releases
enhancement,13279,Make cast method more robust,database backend,normal,,new,1247 days,-,"Copied from [ticket:13078#comment:7]:
> Another solution is using `CASE ... END` and regular expression operator. I think we could make `CAST(... AS int)` in PostgreSQL robust and same behavior in other databases.
> 
> {{{
> trac=> SELECT (CASE
> trac(>         WHEN value IS NULL THEN NULL
> trac(>         WHEN value ~ '[-+]?[0-9]+$' THEN CAST(value AS int)
> trac(>         ELSE 0 END) AS cast,
> trac->        value
> trac-> FROM unnest(ARRAY[NULL, '42', '+123', '-789', 'text', '']) AS value
> trac-> ;
>  cast | value
> ------+-------
>       |
>    42 | 42
>   123 | +123
>  -789 | -789
>     0 | text
>     0 |
> (6 rows)
> 
> }}}
> 
> {{{#!diff
> diff --git a/trac/db/postgres_backend.py b/trac/db/postgres_backend.py
> index 3b5c9e92c..3775a9aa7 100644
> --- a/trac/db/postgres_backend.py
> +++ b/trac/db/postgres_backend.py
> @@ -272,7 +272,14 @@ class PostgreSQLConnection(ConnectionBase, ConnectionWrapper):
> 
>      def cast(self, column, type):
>          # Temporary hack needed for the union of selects in the search module
> -        return 'CAST(%s AS %s)' % (column, _type_map.get(type, type))
> +        if type in ('int', 'int64'):
> +            fmt = ""(CASE WHEN %(column)s IS NULL THEN NULL "" \
> +                  ""WHEN %(column)s ~ '^[-+]?[0-9]+$' "" \
> +                  ""THEN CAST(%(column)s AS %(type)s)"" \
> +                  ""ELSE 0 END)""
> +        else:
> +            fmt = 'CAST(%(column)s AS %(type)s)'
> +        return fmt % {'column': column, 'type': _type_map.get(type, type)}
> 
>      def concat(self, *args):
>          return '||'.join(args)
> }}}
",Ryan J Ollos,next-major-releases
defect,3416,IFrame,wiki system,normal,,new,1255 days,25 by 12,"If an iframe added to the wiki, via the HTML formatter, this is not viewed.",anonymous,next-major-releases
enhancement,7069,'SearchResults doesn't indicate closed by etc..,search system,minor,,new,1262 days,4 by 4,"would be nice to have the same information about a ticket and it's current state in the SearchResult view, as in the timeline.

In the timeline you can also see the user who has closed a ticket,.. and in the SearchResult not.

Maybe it would also be interessting who was the last user who has edited the ticket and also when he did it..",Markus.Staab,next-major-releases
defect,10162,Add a REPOS kind of Node,version control,normal,,new,1276 days,12 by 8,"How to Reproduce

While doing a GET operation on `/changeset/26e036576133f07b15eeb4363bf993b67bf9eacb/tp`, Trac issued an internal error. 

This only happens for a changeset that only updates git submodules, for which ""get_content_length"" returns None (because there is no associated git blob).

(The Python error is ""unsupported operand type(s) for +"")

This is similar to the old ticket #3287 here.


Request parameters:
{{{
{ new : u 26e036576133f07b15eeb4363bf993b67bf9eacb ,  new_path : u /tp }
}}}
User agent: `Mozilla/5.0  X11; U; Linux x86_64; en-US; rv:1.9.2.17  Gecko/20110428 Fedora/3.6.17-1.fc14 Firefox/3.6.17`

System Information
||    `Trac`    || `0.12.1` ||
||    `Docutils`    || `0.7` ||
||    `Genshi`    || `0.6` ||
||    `GIT`    || `1.7.3.4` ||
||    `psycopg2`    || `2.2.2` ||
||    `Pygments`    || `1.3.1` ||
||    `Python`    || `2.6.6  r266:84292, Mar 6 2011, 17:53:48  `   br   ` GCC 4.3.4 ` ||
||    `pytz`    || `2010o` ||
||    `setuptools`    || `0.6` ||
||    `Subversion`    || `1.6.16  r1073529 ` ||
||    `jQuery`    || `1.4.2` ||

Enabled Plugins
||    `BatchModify`    || `0.8.0-trac0.12` ||
||    `FilteredTicketQuery`    || `N/A` ||
||    `timingandestimationplugin`    || `1.0.6` ||
||    `TracGit`    || `0.12.0.6dev` ||

Python Traceback
{{{
Traceback  most recent call last :
File  /usr/lib64/python2.6/site-packages/trac/web/main.py , line 511, in _dispatch_request
dispatcher.dispatch req
File  /usr/lib64/python2.6/site-packages/trac/web/main.py , line 237, in dispatch
resp   chosen_handler.process_request req
File  /usr/lib64/python2.6/site-packages/trac/versioncontrol/web_ui/changeset.py , line 352, in process_request
self._render_html req, repos, chgset, restricted, xhr, data
File  /usr/lib64/python2.6/site-packages/trac/versioncontrol/web_ui/changeset.py , line 586, in _render_html
diff_bytes   _estimate_changes old_node, new_node
File  /usr/lib64/python2.6/site-packages/trac/versioncontrol/web_ui/changeset.py , line 537, in _estimate_changes
return old_size new_size
TypeError: unsupported operand type s  for :  NoneType  and  NoneType
}}}",dmarti,next-major-releases
enhancement,11637,Hide versions and components,ticket system,normal,,new,1394 days,12 by 5,"Closed milestones are only visible on the ticket form for users that possess `TICKET_ADMIN`. However, all Versions and Components are visible for all users, and the only way to hide them is to delete them. These lists can grown very long, and it would be nice to narrow the list that is seen from the ticket form, while keeping the entries on the Query form.",Ryan J Ollos,next-major-releases
enhancement,7419,Custom ticket status: customised ordering of statuses,ticket system,normal,,new,1396 days,13 by 12,"We have a large number of custom ticket statuses now, thanks to 0.11 - it would be nice if I could define a sort order in the config file (similar to how you can do so in a [TracIni#milestone-groups-section ""[milestone-groups]""] section) so that when ordering tickets by status, they appear in my defined order.",trac+jon@…,next-major-releases
enhancement,13223,"""All Tickets Reported by Me"" should mention if a ticket is open or closed",ticket system,trivial,,new,1411 days,1 by 1,"""{9} All Tickets Reported by Me "" should mention if a ticket is open or closed.
Powered by Trac 1.2.2

Quite important, vs. other items it mentions. Do add a column.",jidanni@…,next-major-releases
defect,4468,better support for relative name handling,wiki system,normal,,new,1417 days,5 by 2,"relative names should have support for:
 * getting page name from the relative name
 * getting page href (self.env.href.wiki) from relative name

this will allow something like:
{{{
[[Include(./RelativePage)]]
}}}",ittayd@…,next-major-releases
enhancement,10492,bash tab completion extension for trac-admin,admin/console,normal,,new,1437 days,4 by 4,"This is a wishlist: it would be nice to have a bash tab-completion snippet that could complete the trac-admin subcommands directly in bash.

A baseline implementation could just be a hard-coded list; a fancier approach could interrogate the selected trac-admin instance to get a list of enabled sub-commands (which might be different due to installed plugins, enabled/disabled components, etc).

This feature request was originally reported to debian as http://bugs.debian.org/631259",dkg@…,next-major-releases
defect,11713,Repositories can still be added when no IRepositoryConnectors enabled,admin/web,normal,,new,1437 days,3 by 1,"When there are no `IRepositoryConnector`s enabled, the //Manage Repositories// page is still shown, including the //Add Repositories// fieldset. The allowed type is //(default)//.

I propose adding a notice that //No repository connectors are enabled//, and to not allow a user to add a new repository.

With the following configuration in //trac.ini// and the `MercurialConnector` not enabled, the repository is displayed on the table with no indicator that it is not navigable.
{{{#!ini
[repositories]
hg-plugin.dir = /home/user/Workspace/mercurial-plugin
hg-plugin.type = hg
}}}

On the other hand, the //Browser Source// tab is not present and when navigating to `/browser`, the following text is shown in the **Last Change** column: //TracError: Unsupported version control system ""hg"": Can't find an appropriate component, maybe the corresponding plugin was not enabled?//. We could display something similar in the table on the //Manage Repositories// page.

Also, when `SubversionConnector` is not enabled, the following is still shown on the //Add repositories// form: [[span(Default: svn, class=hint)]]",Ryan J Ollos,next-major-releases
enhancement,12442,Support per-repository authz_file,version control,normal,,new,1468 days,4 by 2,"Discussed in comment:5:ticket:11703 and gmessage:trac-users:sI9q_1OF24s/QpeUkYrWCgAJ, since Subversion 1.7 a per-repository `authz_file` is supported. We should continue to support a single `authz_file`, but also add support for the per-repository `authz_file`. References:
* [https://subversion.apache.org/docs/release-notes/1.7.html#per-repos-authz 1.7 Release notes]
* [http://svnbook.red-bean.com/nightly/en/svn.serverconfig.pathbasedauthz.html Getting started with path-based access control]
* [http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html#svn.serverconfig.httpd.authz.perdir Configuring per-directory access control]",Ryan J Ollos,next-major-releases
enhancement,2656,Make built-in documentation independent from wiki,wiki system,major,,new,1474 days,36 by 11,"I noticed that there are various links to the built-in documentation pages in the wiki.  We use the wiki for internal documentation and development matters and therefore anonymous users don't have rights to access it.
So it would be nice if the online documentation pages would be independant from the wiki, because anonymous users can't view them if they have no right to access the wiki and it is annoying if you have those links to is everywhere, which lead you (as an anonymous user) to pages which say ""Access denied"".
A quick workaround would be to only display the links if you have rights to access the wiki.

Best regards

Florian Lahr",flo@…,next-major-releases
enhancement,13201,URL parameter defaults for milestone forms,general,normal,,new,1481 days,10 by 3,"Ticket and wiki form defaults can be controlled by URL parameters:
* [/newticket?summary=MyDefaultValue /newticket?summary=MyDefaultValue]
* [/wiki/test?action=edit&text=MyDefaultValue /wiki/test?action=edit&text=MyDefaultValue]

The same would be useful for milestones:
* [/milestone/1.0?action=edit&description=MyDefaultValue /milestone/1.0?action=edit&description=MyDefaultValue]
* [/admin/ticket/milestones?name=MyDefaultValue /admin/ticket/milestones?name=MyDefaultValue]
But the default values are ignored there.",anonymous,next-major-releases
enhancement,12679,"Add ""View blame prior to this change"" link to blame view",version control/browser,normal,,new,1483 days,8 by 3,"Blame view ([source:trunk/Makefile?annotate=blame example]) seems to be missing this very useful feature available on github ([https://github.com/edgewall/trac/blame/trunk/Makefile example]).

On github each blame annotation line has a small icon with tooltip ""View blame prior to this change"" that links to the same blame page but at an older revision. This is allows quickly navigating through the history of the file.
",anonymous,next-major-releases
enhancement,12685,"Add action menu for creating, deleting and modifying resources or parts thereof",general,normal,,new,1483 days,10 by 3,"With this menu, it would be easier to perform actions on resources (wiki page, ticket #10948, ticket comment #12671).

The idea would be to remove from the contextual navigation the link what's not a navigation to another resource (e.g. wiki history is rather an action on the resource itself, show me the page's history), and to gather the bottom of the page buttons (Edit, Delete, Rename) into a contextual menu at the top of the resource, a bit like what we have now for the ticket comment.


Copied from [ticket:12671#comment:2]:
----
Replying to [ticket:12671 Jun Omae]:
> ... the buttons are shown only when cursor is hovered in property changes box. As the results, it is difficult to click the buttons.

But also the whole <h3> line as well, in particular the `comment:n` part which is just above the buttons. But I think you're right anyway, it's not as obvious as it should be.


If you remember my idea presented recently on trac-dev about a ""page menu"" (gmessage:trac-dev:eVU0q8Tatgo/pokz_FIyEQAJ), I think it could be transposed here as well: we would have a permanent menu reminder character/icon (▤, ≣), which would show the list of actions for the comment when hovered / clicked.

Something like:
{{{#!html
<div class=""change"" id=""trac-change-1-1485283996227168"">
      
  <h3 class=""change"" id=""comment:n"">
    <span class=""threading"">
      <span class=""cnum"">
        <a href=""#comment:n"">comment:n</a>
      </span>
    </span>
    Modified by Author
  </h3>

  <div class=""trac-change-panel"">
    <span style=""float:right; color: #aaa; font-size:120%"">≣</span>
    <div class=""trac-ticket-buttons"">
      <form id=""reply-to-comment-n"" method=""get"" action=""#comment"">
        <div class=""inlinebuttons"">
          <input type=""submit"" value=""↳"" >
        </div>
      </form>
      <form id=""edit-comment-n"" method=""get"" action=""#comment:n"">
        <div class=""inlinebuttons""> 
          <input type=""submit"" value=""✎"" >
        </div>
      </form>
      <form action=""#"" method=""get"">
        <div class=""inlinebuttons"">
          <input class=""trac-delete"" type=""submit"" value=""–"">
        </div>
      </form>
    </div>
  </div>
</div>
}}}

\\
----
",Christian Boos,next-major-releases
defect,2684,Appropriate name for TRAC_TEMPLATE_VARS (TracTemplateVars),general,minor,,new,1483 days,10 by 4,"The name gives the feeling (at least for me :-)) it would set variables for ClearSilver for all projects. But it does NOT, only for the index page, nothing for the projects. (I'm lucky with it :-))

So, maybe it would be better to name it as TRAC_INDEX_TEMPLATE_VARS (or !TracIndexTemplateVars)

It might be confusing at later time if you go and implement it for the projects.
",franetic@…,next-major-releases
defect,3037,Multiple bugs in trac.config,general,minor,,new,1483 days,29 by 9,"While testing some global configuration changes, I noticed they weren't working with InterTrac. After some investigation it seems there are a few problems with the current config module:

 1. `Section.__contains__()` does not use the global config, nor does `Section.get()`
 1. `ConfigParser` ignores case, but `config.Configuration._defaults` does not.
 1. `ConfigParser.read()` overlays previous configuration. The issue with this is that we use `read()` when a configuration modification is detected. Deleted options are not removed.

The attached patch fixes the first two issues. It also updates one of the config unit tests, as it can now fail if a global configuration file has entries (NB. I'm not sure whether the ''fix'' in the unit test is too hackish?)

The third issue would require some kind of dirty configuration list, for both the site and env configs. I'm not sure the issue is bad enough to warrant the ugliness.",Alec Thomas,next-major-releases
enhancement,3098,"Support ""Descript.ion"" files in Browse Source",version control/browser,normal,,new,1483 days,17 by 6,"As the summary says...

Right now we hand edit a Wiki page describing each subdir and file.

The `descript.ion` metadata file is a [http://jpsoft.com/ascii/descfile.txt quasi-standard] by JP-Soft (4DOS) that Browser might be able to support showing a short description of each file.
",trac@…,next-major-releases
defect,9526,Fine Grained Permission possible realms and paths format are not documented.,wiki system,minor,,new,1483 days,11 by 6,"I'm trying to configure authz_policy.py (TracFineGrainedPermissions) for things other than Wiki Pages.

I can see that this is possible and working, but I'm waisting my time discovering ""paths and realms"" for every single thing I want to manage via authz_policy.

All the samples and documentation I've found describe configuration for wiki: realms *only* and while this is probably most common usage I'd like to create a ticket to expand the documentation in this topic.",dpc@…,next-major-releases
enhancement,7055,"Add ""toggle line numbers"" JavaScript to source browser",rendering,normal,,new,1483 days,58 by 14,"At the moment when you copy-n-paste code snippets from Trac's source browser (I often do) it also copies the line numbers, which is almost never what you want. To get code without the line numbers, you have to scroll down and click the ""Plain Text"" version, find your place again, and then do the copy and paste.

It'd be nice if the Trac source file browser had a little JavaScript link, called ""Toggle line numbers"", that toggled the line numbers on and off, making copy-n-paste really clean and simple. (The toggle link could be placed in the table cell to the right of the ""Line"" heading cell at the top-left of the table.)

See the further discussion (agreement?) on the trac-users group:
http://groups.google.com/group/trac-users/browse_frm/thread/71da6e9b5554b89c

It shouldn't be much code, especially with jQuery -- Ted Gifford posted one possible solution:
http://groups.google.com/group/trac-users/msg/846b21eb4e550e0a?dmode=source

Also see a somewhat related discussion on ticket:5779 about a ""toggle line numbers"" link in the diff viewer. They decided against it there, as normally you shouldn't need to copy-n-paste just a few lines of a diff or patch. (I find it's much more common with full source files, so believe the arguments against it for the diff viewer don't hold for the source viewer.)

BTW, not that I'd use it much, but I really like the operation of the ""Tabular/Unified"" button for the diff viewer in the new version of Trac. See an example of it at changeset:6599.

---Ben Hoyt (benhoyt.com)",benhoyt,next-major-releases
defect,8361,cannot find file trac-digest.py,general,normal,,new,1483 days,11 by 3,"I've installed trac 0.11 with python 2.5.4 on windows 2008 server. i've followed all the instructions in method2 (TracOnWindows) with no errors. however i'm not able to do the following  
1. cannot setup admin,
 {{{#!dos
python trac-digest.py -u adm -p adm >> c:\digest.txt
}}}
gives the error - cannot fild trac-digest.py
please suggest how i can rectify this issue. 

2. even when i setup a project environment is gives the error -
please see the attached screen shot. Please suggest how i can get Trac up and running
",shruti.lalwani@…,next-major-releases
enhancement,9638,Submit forms with CTRL+Enter in textareas,web frontend,normal,,new,1483 days,32 by 5,"Can you add support for submitting forms when pressing CTRL+enter in a textarea, in the same way they're submitted when enter is pressed in a regular input box?

Its a nice feature that makes it easier to submit forms, as no mouse or tabbing is needed (//when I found out Eclipse supports that when writing commit messages, I thought it was the best invention since sliced bread! //), which is quite easy to implement using jQuery:

{{{
$('textarea').keypress(function(e){
    if (e.ctrlKey && e.keyCode == 13) {
        $(this).closest('form').find('input[type=submit][name=submit]').click();
    }
});
}}}

This snipped would click an input with name=submit and type=submit (the one that submits the changes, without a preview) in the same form as the textarea, whenever CTRL+enter are pressed in a textarea.

If you feel it'll make people submit tickets without previewing them first, it can be changed to only send ticket comments directly and use the preview for other forms:
{{{
$('textarea').keypress(function(e){
    if (e.ctrlKey && e.keyCode == 13) {
        $(this).closest('form').find('input[type=submit]'+(this.id==='comment'?'[name=submit]':'')).eq(0).click(); // When it isn't textarea#comment, the first submit button is used (which is the 'preview' button)
    }
});
}}}

P.S.

When I first tried to implement this on my Trac, my first attempt was with `$('textarea').closest('form').submit();` which didn't work as the name used for the submit button [http://jibbering.com/faq/names/ is considered unsafe]. This is also mentioned on [http://api.jquery.com/submit/#notes-0 jQuery documention], and there's [http://yura.thinkweb2.com/domlint/ DOMLint] to check for that kind of issues.

Yes, I was also surprised that 'submit' isn't a valid name for submit input and I'm not quite sure if it should really be fixed.",shesek,next-major-releases
defect,10101,Broken permissions for changeset view,version control/changeset view,normal,,new,1483 days,14 by 5,"I installed Trac 0.12 some time ago and created me as admin user (TRAC_ADMIN). I added SVN respository, synchronization and everything works fine. After some time, I added a new user and added him some permissions. But when I try to view a changeset logged as this new user, I get weird results - only some added files (2-3 from ~20 new files) with not completed paths (e.g. ballance instead of user_accounts/ballance). Diffs are not shown. Sometimes I get only:

Message:
      
(No files)

It is ok when I log in as admin user. After some time playing with permissions, when I delete all permissions, then I add TRAC_ADMIN permission to the new user, then changesets are ok. But when I try to add only CHANGESET_VIEW permission (or all other permissions except TRAC_ADMIN), then it is not working.

I have to add (or add, remove, add) TRAC_ADMIN permission to the new user, then all required permissions and finally remove TRAC_ADMIN permission if I want CHANGESET_VIEW to work without admin permission.",bruce@…,next-major-releases
defect,11049,TracD on Windows 8 (x64),web frontend/tracd,normal,,new,1483 days,42 by 7,"I am encountering numerous problems on Windows 8 (x64) running TracD with Python 2.7.

In Internet Explorer 10, loading Trac pages is erratic, with first load often missing style/layout or missing the header logo.  Pressing back then forward several times may resolve this problem as if little bits of the page are building up in the cache over time.  (The logo will load if right-clicked to Show Picture).

With the !WikiExtras hack, the [!WikiIcons] documentation fails to load all icons in the page, but will load them eventually with back/forth as above (or by right-click Show Picture).  However, hitting the Refresh button will crash TracD/Python.

The Trac service may stop responding randomly, at which point it is reported that the Trac database needs to be upgraded.  (Running an upgrade allows the wiki to display, but all macros are now unrecognized and the custom logo becomes undefined, so this is probably spontaneous corruption).

These problems are also evident with Google Chrome, so it does not appear to be IE10 specific. I should note that IE10 is aggressive - with a tracking protection list turned on, the Trac header logo is blocked.

Compatibility settings on executables has not helped, nor has making exceptions in !Antivirus/Firewall.  An identical setup was working fine in Windows 7 (x64).



",paulcoddington@…,next-major-releases
enhancement,11130,Add an inlinelinkbutton class,general,normal,,new,1483 days,20 by 4,"The buttons plugins add to ticket pages (Create, Delete, etc.) have a range of plugin-specific styles.  It would be nice to unify them.  Some plugins use a button, others use a link styled as a button.

The existing inline buttons style had a relative font size but depending on where the button was in the page, it could have a different appearance.  This patch makes the text size consistent.

The new `inlinelinkbutton` style makes links with that style look like inline buttons.    
",chris.nelson.1022@…,next-major-releases
enhancement,11142,Add download link in attachment section,attachment,normal,,new,1483 days,25 by 7,"Currently to download an attachment you need to view it, scroll down and then click on the plain link. Most of the cases I don't want to view it, but rather want to have it.

Please add a direct download link in the attachment section of wiki pages (and tickets). Would save a lot of time on user side and does not really have any negative side effects.",Dirk Stöcker,next-major-releases
enhancement,11398,Existing attachments can be overwritten without warning when uploading through trac-admin,admin/console,normal,,new,1483 days,12 by 3,"For example, both commands return success:
{{{#!sh
$ trac-admin $env attachment add wiki:WikiStart file1
$ trac-admin $env attachment add wiki:WikiStart file1
}}}
We could perhaps prompt with an ""Are you sure you want to overwrite the existing file?"".",Ryan J Ollos,next-major-releases
enhancement,11840,Add ISessionAttributeProvider interface,general,normal,,new,1483 days,13 by 3,"It was described in comment:15:ticket:11612 how arbitrary data can be stored in session attributes by editing the client-side JavaScript in the browser. The proposed solution is to add a new interface for registering session attributes:

{{{#!python
class ISessionAttributeProvider(Interface):

    def get_session_attribute_names():
        """"""Return a list of supported names in session attribute.""""""

    def validate_session_attribute(name, value):
        """"""Validate the given attribute.""""""""
}}}",Ryan J Ollos,next-major-releases
enhancement,11884,Notification distributor for XMPP,notification,normal,,new,1483 days,15 by 3,The new [wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.notification.api.INotificationDistributor INotificationDistributor] interface allows distributing notifications over different transport channels. So far we only have an email distributor. We could also provide XMPP support in `tracopt`.,Peter Suter,next-major-releases
enhancement,11919,Make diff paths available in the UI.,web frontend,normal,,new,1483 days,7 by 2,"In regards to this ticket:

http://trac.edgewall.org/ticket/9824

If I want to compare a branch vs trunk. Eg Observing a junior/new hire's work.  I have to go into the HTML - using a DOM inspector - and manually change the ""old path"" hidden form field to trunk.

This could easily be made available in the interface for users.  It would also make my life easier.

I could probably contribute this change if it is seen as a valuable enhancement by others.

When comparing trunk(old path) against a branch(new path) the revision must be set to the latest revision of the branch.",wrinkledcheese@…,next-major-releases
enhancement,11937,Improve suggestion of similarly named pages,wiki system,normal,,new,1483 days,17 by 5,"Trac suggests similarly named pages when navigating to a non-existent page with a CamelCase name, but the suggestion is naive. Trac will suggest CamelCase if CamelCas is entered, but not if CameCase is entered. The code that generates suggestions is [browser:/tags/trac-1.0.3/trac/wiki/web_ui.py@:636-638#L618 here]. The aim of this ticket will be to improve the suggestions.

The [browser:/tags/trac-1.0.3/trac/util/text.py@:703#L703 levenshtein_distance] function used by [browser:/tags/trac-1.0.3/trac/admin/api.py@:152#L140 AdminCommandManager] may be useful in implementing this ticket.",Ryan J Ollos,next-major-releases
enhancement,12162,Edit comment should be AJAX or standalone edit screen,ticket system,normal,,new,1483 days,5 by 4,"As of today's trunk, editing a comment means the request still loads all the other comments, which on a big ticket is massively slow.

I have yet to feel I need to take a look at other comments while editing my target.

AJAX would be preferred, it's cleraly the fastest way to do it, but perhaps an incremental improvement could be achived much quicker by just patching out the other comments from the edit page load. ",lkraav <leho@…>,next-major-releases
enhancement,12570,Create a deprecated function decorator,general,normal,,new,1483 days,8 by 3,"Since we've been deprecating and removing a lot of code, I thought it might be useful to add a `deprecated` decorator to `trac.util`. The decorator could log a message at the appropriate level, which might be `WARNING`. The message would indicate that a deprecated function, class or method has been called by a plugin.",Ryan J Ollos,next-major-releases
enhancement,12572,Add a download link to patch/diff renderer,wiki system,normal,,new,1483 days,3 by 1,It would be nice to be able to download a patch that is posted inline of a comment. For example: comment:1:ticket:12546. We could add a download link to the patch renderer. I'd use it to grab a URL that could be passed to wget.,Ryan J Ollos,next-major-releases
enhancement,12662,"TicketQuery macro, add title and select parameter for table format",query system,normal,,new,1483 days,4 by 3,"Currently the TicketQuery macro with format=table always has a titlebar like ""Results (1 - 10 of 55)"". Please make this an option:
* title: true/false (defaults to **true**)


Then it's annoying to have the page selection twice on top and on bottom.
Please make that an option:
* select: top/bottom/none (defaults to **bottom**)

== Example of the current implementation of the macro:

[[TicketQuery(max=3,order=modified,modified=30daysago..,desc=1,format=table,col=summary|modified|reporter|owner)]]",Massimo <massimo.b@…>,next-major-releases
enhancement,12741,Make WikiProcessors foldable,wiki system,normal,,new,1483 days,7 by 2,"Discussed in #11550, extend WikiProcessors with features similar to:
* [th:FoldMacroProcessorMacro] (see th:#13184 for description of how the macro fails to do its whole job)
* [th:CollapsiblePlugin]",Ryan J Ollos,next-major-releases
enhancement,12780,Save wiki expander state,wiki system,normal,,new,1483 days,8 by 3,"Replying to [comment:3:ticket:12640 Christian Boos]:
> As for the expander, ... the possibility to save as a UI preference the initial state of the wiki page, expanded or constrained.
",anonymous,next-major-releases
enhancement,12848,Add an ifnull function to database connection classes,database backend,normal,,new,1483 days,4 by 2,"Copied from [ticket:12841#comment:2]:
----
One proposed change in [9f25cdfb3/rjollos.git].

When the group heading is NULL, it would be nice if `Milestone (empty)` was shown rather than just `(empty)`. We could add an `isnull` function for each connection class and modify the reports. For example, on SQLite for report {3} we'd have:

{{{#!diff
-   'Milestone '||milestone AS __group__,
+   'Milestone '||ifnull(milestone,'(empty)') AS __group__,
}}}

I don't think it would be worth fixing up existing reports through a database upgrade step, but we could modify the reports in the database to affect new installations and add a note to TracUpgrade about how to manually modify reports.",Ryan J Ollos,next-major-releases
defect,12854,"""rows"" can be used as custom field but rows=... condition in query doesn't work",ticket system,normal,,new,1483 days,2 by 1,"Ticket with //rows// field can be created like this but query:status!=closed&rows=42 ignores `rows=42` condition.

{{{#!ini
[ticket-custom]
rows = text
}}}

Because `rows` parameters is used for full rows feature in ticket query. See also wiki:TracQuery#Fullrows.

I think we should add `'rows'` to `TicketSystem.reserved_field_names` because field named `rows` might be rarely used.",Jun Omae,next-major-releases
enhancement,12900,Hierarchy-specific PageTemplates,wiki system,normal,,new,1483 days,7 by 2,"The PageTemplates feature uses:
> wiki pages having a name starting with ''!PageTemplates/''
as templates.

And the default selection:
> will be ''blank page'', or ''!DefaultPage'' if ''!PageTemplates/DefaultPage'' exists.

What's missing are templates that are only relevant to certain page hierarchy path prefixes, and a default template for those. For example when creating the page `wiki:Machines/NewMachine` the templates under `wiki:Machines/PageTemplates` should also be available. and `wiki:Machines/PageTemplates/DefaultPage` (or at least `wiki:PageTemplates/Machines/DefaultPage`) should be the default.
",anonymous,next-major-releases
defect,8223,Mozilla/Firefox displaying images through html processor,wiki system,normal,,new,1483 days,12 by 4,"Hi,[[BR]]
I'm having trouble getting the wiki to display images.
 - render_unsafe_content is set to 'true'
 - it does this no matter with basic theme and other themes
 - I think I've tried all forward and back slash variations.
Any ideas? I'm running out.[[BR]]
See code and specs below.[[BR]]
Thanks,[[BR]]
Benoit

p.s. please be merciful as I don't have access to google groups.
----
trac: 0.11[[BR]]
server: python 2.4[[BR]]
client: WinXP SP2[[BR]]
browsers: IE7.0.57, Firefox 3.0.8[[BR]]
----
This code works in a trac 0.11 wiki page, viewed with IE7
{{{
{{{
#!html
<img alt=""image"" src=""file:///\\<server-path>\thumb.jpg""/>
}}}
}}}
The same code DOES NOT work in a trac 0.11 wiki page, viewed with Firefox 308 (only alt is shown)
{{{
{{{
#!html
<img alt=""image"" src=""file:///\\<server-path>\thumb.jpg""/>
}}}
}}}
This HTML page works in Firefox 308, off my C:\
{{{
<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Strict//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"">
<html>
<body>
<img alt=""image"" src=""file:///\\<server-path>\thumb.jpg""/>
</body>
</html>
}}}
Oh… and this doesn't work in IE or FF (""/<server-relative>/thumb.jpg"" is diplayed on screen)
{{{
[[Image(//<server-relative>/thumb.jpg)]]
}}}",benoit.moniere@…,next-major-releases
defect,12774,Separator line is shown twice,notification,trivial,,new,1483 days,4 by 2,"[[Image(duplicated-signature-lines.png)]]

It may be fixed by the following patch (untested):
{{{#!diff
Index: trac/ticket/templates/ticket_notify_email.txt
===================================================================
--- trac/ticket/templates/ticket_notify_email.txt       (revision 15793)
+++ trac/ticket/templates/ticket_notify_email.txt       (working copy)
@@ -13,7 +13,6 @@
 ${_('Description changed by %(author)s:', author=change.author)}
 #     endif
 ${changes_descr}
---
 #   endif
 #   if change.comment:

}}}",Jun Omae,next-major-releases
defect,10699,trac-admin - ticket export import,admin/console,normal,,new,1493 days,9 by 8,"We are attempting to use trac on a large scale at an university.
We have multiple projects and one main project where most tickets enter from.

Everything is working out well but for one exception.  If a ticket comes in on the main trac instance.. lets call it [Support].. some times we need to 'move' this ticket to another project..

There is some trac hacks.. DatamoverPlugin and TicketmoverPlugin..
However these are largely out of date and don't work.

What I propose is this function be included in trac-admin as well as the API.

Like the wiki..
wiki export <page> [file]
    Export wiki page to file or stdout
wiki import <page> [file]
    Import wiki page from file or stdin

Have a simple...
ticket export <id> [file]
    Export ticket to file or stdin.  
    Note attachments will be ignored and whatever else that is tricky to handle...
ticket import [file]
    Import ticket as new id from file or stdin.
ticket append <id> [file]
    Add more information to a ticket..

This will allow us to do something like...
trac-admin /project/Support ticket export 1232 /tmp/1232
trac-admin /project/Webpage ticket import /tmp/1232
// output created ticket: 321
trac-admin /project/Webpage ticket append 321 ""Moved ticket from Support to Webpage""

Or create a simple module that uses API under the hood to do more or less the same thing.

The export, import, and append parser could be based off the email2trac plugin.  And perhaps while at it merge email2trac into trac since its almost a requirement for issue tracking systems.

",steverweber@…,next-major-releases
enhancement,5526,Support LIKE and wildcards in custom queries,report system,normal,,new,1498 days,12 by 8,"For many fields (component, version, milestone, ...) only ""is"" and ""is not"" are present as options in the filter combo box. For my application I would need at least ""like"" (processed as SQL's LIKE) in addition to that.

Without this capability I cannot currently dispense with the report modules (which, as I read, is being phased out in favor of the query module).",koegl@…,next-major-releases
enhancement,11446,Cummulative diff view for non-contiguous changesets,version control/changeset view,normal,,new,1501 days,2 by 2,"When linking to a non-contiguous range of revisions from a TracLink such as [2,4:5], multiple //Show changes// buttons are displayed, and it doesn't seem to be possible to view a single diff encompassing all the changes. However, the latter view is usually what I'm looking for.",Ryan J Ollos,next-major-releases
enhancement,11185,improve speed of TicketQuery for format=table,query system,major,,new,1508 days,8 by 2,"The `format=table` was added in 0.11 merely as a proof-of-concept to see how Genshi templates could be reused in different contexts, in this case within a WikiMacro.

That proved to work well, except for the performance side of things (see e.g. #10879).

A query like `[[TicketQuery(status=closed,format=list)]]` on this site (corresponding to [[TicketQuery(status=closed,format=count)]] tickets) would take several seconds to complete successfully, while `[[TicketQuery(status=closed,format=table)]]` fails after several (more) seconds with:
{{{
Error: Macro TicketQuery(status=closed,format=table) failed
}}}
and in the log we see:
{{{
[pid 9964 139956728231680] 2013-05-13 18:46:25,397 Trac[formatter] ERROR: Macro TicketQuery(status=closed,format=table) failed:
Traceback (most recent call last):
  File ""/usr/local/virtualenv/1.1dev/lib/python2.6/site-packages/Trac-1.1.2dev_r11794-py2.6.egg/trac/wiki/formatter.py"", line 765, in _macro_formatter
    return macro.ensure_inline(macro.process(args))
  File ""/usr/local/virtualenv/1.1dev/lib/python2.6/site-packages/Trac-1.1.2dev_r11794-py2.6.egg/trac/wiki/formatter.py"", line 380, in ensure_inline
    text = _markup_to_unicode(text)
  File ""/usr/local/virtualenv/1.1dev/lib/python2.6/site-packages/Trac-1.1.2dev_r11794-py2.6.egg/trac/wiki/formatter.py"", line 107, in _markup_to_unicode
    markup = stream.render('xhtml', encoding=None, strip_whitespace=False)
  File ""/usr/local/virtualenv/1.1dev/lib/python2.6/site-packages/Genshi-0.7dev_r1134-py2.6.egg/genshi/core.py"", line 183, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File ""/usr/local/virtualenv/1.1dev/lib/python2.6/site-packages/Genshi-0.7dev_r1134-py2.6.egg/genshi/output.py"", line 57, in encode
    return _encode(''.join(list(iterator)))
MemoryError:
}}}


I think we could approach this particular issue as a way to start a performance enhancement process which will lead to eliminate the Genshi bottleneck, by only generating the relevant data in JSON format (here result rows content), and have some client-side Javascript code for doing the actual rendering (here building the HTML table).

This presents a lot of implementation possibilities, but in a first step I believe simple jQuery based building should be good enough, there's probably no need of client-side templating or additional framework. I think that solving #10373 will also be a prerequisite.

Once it works for this use case, we could think about how to make the normal `/query` pages benefit from the same performance boost (getting rid of the `query_results.html` template).

Then, once we have a robust solution in place, gradually extend that to other ""Genshi-intensive"" places (diffs, source browser, timeline, etc.).",Christian Boos,next-major-releases
enhancement,12257,Add single-sign-on authentication as an optional component,web frontend,normal,,new,1508 days,13 by 2,"After reviewing [th:SharedCookieAuthPlugin], #12251 and #8486, it looks like it would be fairly straightforward to add single-sign-on authentication as an optional component (in `tracopt.web.auth`). ",Ryan J Ollos,next-major-releases
enhancement,10372,Search in wiki should prioritize title matches and whole word matches above partial word matches,search system,normal,,new,1511 days,2 by 2,"I am searching for ""tea"" in my wiki. I have a page whose title is ""!TeaNotes"", whose contents is a list of my notes for various teas where the word ""tea"" appears on every single line that is not a heading (13 total occurrences).

I get 6 pages of results for ""tea"". This wiki page appears on page 5 of 6 of search results. Right above it are completely irrelevant pages including the word ""instead"" (which includes ""tea"") with the ""tea"" part of it highlighted.

When results are shown from wiki pages, the order of them should be:

1. Whole words matched in title
2. Whole words matched in text
3. Partial words matched in title
4. Partial words matched in text

The order of 2 and 3 may be switched, or maybe they should be a single bracket, but any way this is done would be an improvement over the current situation.

This particular case with tea illustrates the problem of finding stuff in the wiki very clearly, but the lack of a sensible ordering of results is a problem whenever I try to find stuff in the wiki in just about any trac installation I'm using.

TitleIndex is pretty much the only way to search for things in the wiki if you have an idea of the page title (or know that you're searching for something which appears in the title).",oleg@…,next-major-releases
enhancement,8088,"Allow a WikiFormatted Custom Ticket Field Parse Through the Wiki Engine in Reports, without Using 'Magic' Column Name",report system,minor,,new,1648 days,13 by 5,"Now that #1791 is provided in version 0.11.3, there should be a way to show a wiki formatted custom field in reports with a user defined column name. Currently WikiFormatting of a custom field shows in report only when ""AS description"" is used in SQL.",anonymous,next-major-releases
defect,5506,Confusing formatting for attachments in Timeline,timeline,minor,,new,1688 days,8 by 5,"{{{
#!html
Click on '<a href=""#"">Ticket #1234</a>' at the attachment line on Timeline page opens attachment page and not actual ticket as expected.
}}}
Simple solution can be done with JavaScript (attached).
",anonymous,next-major-releases
defect,1804,[Patch] Strip off realm from usernames when using Kerberos,general,normal,,new,1733 days,13 by 9,"When using Kerberos authentication, Trac will use USER@REALM as the username. For example, the default template will show at the top ""logged as ME@REALM.EXAMPLE.COM"". It would be great to tell Trac about a default realm (in the example, REALM.EXAMPLE.COM) which, when present, would be stripped off.

The simplest way to do this would be to offer a new attribute, shortauthname, so that templates can be tweaked to use that rather than trac.authname. The next step would be to change the codebase and the templates to use the short name when applicable. I am not familiar with the Trac internals, so I have no idea how hard or invasive that would be.",nutello@…,next-major-releases
enhancement,2588,Option to show the latest completed milestone,roadmap,minor,,new,1748 days,11 by 7,"It would be nice if another option were added to the ""show already completed milestones"" option: it would display the latest completed milestone - or the n last completed milestones, so that users can see the latest milestone achievement and features even if this milestone has just been reached/completed.

Up to now, the only option to show the recently completed milestone is to display all milestones, which is far too coarse selection as it can lead to display a very long list of old and ""useless"" info.

Many users want to browse the latest provided features in the days that follow a milestone completion.",Emmanuel Blot,next-major-releases
enhancement,2194,Make user credentials available to IPermissionStore & IPermissionGroupProvider component,general,normal,,new,1781 days,4 by 3,"Permission backends, such as LDAP, may require authenticated access (non-anynomous bind, in LDAP terminology)

Today, credentials for such an authenticated access need to be hardcoded in the trac configuration (trac.ini, likely).
It would be nice if the end user credentials (from the login) could be used to perform authentication on the permission store backend. 

The ""end user"" may be a Trac admin, who wants to change the permission through the webadmin plugin for example.

This would allow to tie a permission change to a peculiar (admin) user on the backend as well.
",Emmanuel Blot,next-major-releases
enhancement,13101,Unified diff in git format?,version control/changeset view,minor,,new,1788 days,1 by 1,"Is the diff format of ""Download in other formats: Unified Diff"" in changeset view configurable?

I'm no expert on the various diff formats. wikipedia:Diff#Unified_format says:
> There are some modifications and extensions to the diff formats that are used and understood by certain programs and in certain contexts. For example, some revision control systems—such as Subversion—specify a version number, ""working copy"", or any other comment instead of or in addition to a timestamp in the diff's header section.
>
> Some tools allow diffs for several different files to be merged into one, using a header for each modified file that may look something like this:
> {{{
> Index: path/to/file.cpp
> }}}

Trac includes such `Index:` headers. Many tools (GNU `patch`, `hg import`, `git apply`) require a `-p0` switch to understand this.

It would be convenient if Trac could also create diffs in a different format that does not require remembering special switches.

[https://git-scm.com/docs/diff-format git diff-format] typically uses a different format(?) with `a/` / `b/` prefixes and ""extended header lines"".

[https://www.mercurial-scm.org/doc/hgrc.5.html#diff Mercurial] also supports ""git extended diff format"".",anonymous,next-major-releases
enhancement,5979,Add more option to filters with drop-downs in custom query,query system,normal,,new,1809 days,10 by 6,"Adding a ""contains"" option to filters with drop-downs in custom query would be really helpful.  The hard part is that it would have to ignore the drop-down and use a text input field.  It is really necessary for people overloading the Component field, due to the fact we don't have component/subcomponent capability.

ie. How do you search for all of component ""blob"" when your choices are ""blob: bit"", ""blob: bot"", ""blob: bat"", ""thingie: subdodad""?
",asloan12@…,next-major-releases
enhancement,1445,[ER] Revision Graph for the Version Control Browser,version control/log view,normal,,new,1814 days,10 by 5,"== The Revision Graph ==

The revision log shows you only the ''copy from'' information.
That's also all you can get from the `svn` command line tool.

There's no easy way to find out the ''copy to'' information:
how many times and where a given path (say the `/trunk`) 
has been copied.

The TortoiseSVN client provides this feature in a graphical form
(see [http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-revgraph.html TortoiseSVN revision graph]),
and I think Trac should provide that information as well, though possibly not graphically.

== Additional Features ==

 * support for diffing between 2 arbitrary revisions picked
   from the graph 
 * optional support for graphical representation of the revision graph
",Christian Boos,next-major-releases
enhancement,109,"MissingLinks, an index over missing wiki pages",wiki system,normal,,new,1882 days,17 by 10,"It would be good to be able to list all links that lead to non-existing pages.

Also true for tickets and changesets of course.

Example: http://moinmoin.wikiwikiweb.de/WantedPages",daniel,next-major-releases
defect,6623,"emitting invalid xml:space=""preserve"" attributes on wiki and ticket pages (causes failed W3C validation)",wiki system,normal,,new,1888 days,6 by 4,"I'm running [http://cmrg.fifthhorseman.net/ a newly-updated trac site] on version 0.11b1, using genshi 0.4.4.

When [http://validator.w3.org/check?uri=http%3A%2F%2Fcmrg.fifthhorseman.net%2F&charset=%28detect+automatically%29&doctype=Inline&group=0 testing it against the W3C's XHTML validator], it is almost entirely compliant output, with one exception:

{{{
 Line 65, Column 49: there is no attribute ""xml:space"".
      <div class=""wikipage searchable"" xml:space=""preserve"">
}}}

The W3C itself [http://www.w3.org/TR/REC-xml/#sec-white-space says that this is legitimate XML], but that it must be ""declared if it is used"".  i'm not enough of a web standards guru to be able to tell what that means, or where to fix the problem (is it a problem with genshi?  with trac?  with the W3C validator?)

Trac itself is so close to full validation that it would be a real shame for this one thing to slip through.",Daniel Kahn Gillmor <dkg-debian.org@…>,next-major-releases
enhancement,10633,TicketQuery 'clist' format,wiki system,normal,,new,1904 days,5 by 3,"I had a need for a short delimited list that was more than 'compact' and 'list'; but less than 'table'.  I am typically using this in a sidebar to get a current list of tickets with more useful information.  The coding may be horid, as i am not a python programmer most days; but it works and gives a very useful function if you want to add it.
{{{
Index: trac/ticket/query.py
===================================================================
--- trac/ticket/query.py	(revision 1322)
+++ trac/ticket/query.py	(working copy)
@@ -1332,6 +1332,24 @@
             else:
                 alist = [ticket_anchor(ticket) for ticket in tickets]
                 return tag.span(alist[0], *[(', ', a) for a in alist[1:]])
+
+	elif format == 'clist':
+            if query.group:
+                return tag.div(
+                    [(tag.p(tag_('%(groupvalue)s %(groupname)s tickets:',
+                                 groupvalue=tag.a(v, href=href, class_='query',
+                                                  title=title),
+                                 groupname=query.group)),
+                      tag.dl([(tag.dt(ticket_anchor(t)), 
+                               tag.dd(' - '.join(map((lambda x:t[x].__str__()),kwargs['col'].split('|'))) )) for t in g],
+                             class_='wiki compact'))
+                     for v, g, href, title in ticket_groups()])
+            else:
+                return tag.div(tag.dl([(tag.dt(ticket_anchor(ticket)), 
+                                        tag.dd(' - '.join(map((lambda x:ticket[x].__str__()),kwargs['col'].split('|'))) ))
+                                       for ticket in tickets],
+                                      class_='wiki compact'))
+
         else:
             if query.group:
                 return tag.div(
}}}",branson@…,next-major-releases
enhancement,3906,Request for a files search (no indexing just plain find like search),version control/browser,normal,,new,1909 days,10 by 8,"I would like a /usr/bin/find like file search to look for a specific filename in the repository recursively (ie, some*.pdf)

I've seen the RepoSearch hack but I would like a simple file search (perhaps in Browse source or in Search directly with a files checkbox) that would let me search for a file or files in particular strictly based on the files in the repository.

This is a simple feature, I'm surprised it hasn't been implemented yet ;)

perhaps a simple hack would be in order...",sineer@…,next-major-releases
enhancement,787,Change attachment description,attachment,normal,,new,1918 days,15 by 10,It would be a nice feature if you could change the description of an attachment without having to delete and re-upload it.,datrac@…,next-major-releases
enhancement,10983,PATCH (and RFC) for IQueryPreprocessor extension point,ticket system,normal,,new,1932 days,35 by 11,"I'm working in 0.11.6 and I don't expect this to be adopted there but I'd like to get feedback on structure, naming, etc. so I can make this patch more acceptable before porting to an active version.

In my PM work, I find it desirable to query tickets based in special ways like asking for all the tickets required by a ticket (and their predecessors, etc.) or all the descendants of a ticket.  My plugin supports this with `goal=id|id|...` and `root=id|id|...` but every place I want this support, I have to modify plugin source to use my preprocessor or query wrapper.  For example, I did this locally for Estimation Tools so I could do a workload chart of all the work in a ticket's predecessors.

By adding an extension point to the core query system, all ticket queries can benefit from the PM logic.  For example, you could do `[[TicketQuery(goal=self)]]` in a ticket to list all the ticket's predecessors.

This patch defines and uses IQueryPreprocessor to accomplish this extensible query system.  Then I implement this interface in my PM plugin:

{{{
#!py
class PMQueryHelper(Component):
    implements(IQueryPreprocessor)

    def __init__(self):
        self.pm = TracPM(self.env)


    # IQueryPreprocessor methods

    # Return the list of constraints handled by process_constraints()
    def custom_constraints(self):
        return ['root', 'goal', 'scheduled']

    # Turn custom constraints (e.g., root) into standard contraints (e.g., id)
    #
    # @param req the Trac web request object, may be None
    # @param constraints hash indexed by contraint name (e.g., 'root',
    #   'id').  Each entry is a list of values.
    #
    # @return updated constraints.
    def process_constraints(self, req, constraints):
        # constraint values are lists, TracPM.preQuery() expects
        # pipe-delimited strings.
        options = {}
        for constraint in self.custom_constraints():
            if constraint in constraints:
                options[constraint] = ""|"".join(constraints[constraint])
                del constraints[constraint]

        ids = list(self.pm.preQuery(options, req))

        if len(ids):
            if 'id' not in constraints:
                constraints['id'] = []
            for tid in ids:
                if tid not in constraints['id']:
                    constraints['id'].append(tid)
        
        return constraints
}}}

and the above `TicketQuery()` works.",chris.nelson.1022@…,next-major-releases
enhancement,7793,[PATCH] Mail notifications for a ticket with multiple owners / reporters,notification,normal,,new,1937 days,15 by 9,"When a new ticket is created in a component with multiple owners (i.e., the component owner field contains ""user1,user2""), currently no owner gets a notification, because this field is not parsed and thus no corresponding e-mail address can be determined.

I find it useful to have a component have multiple owners that are each equally responsible or interested in new tickets.

A small diff to trac/ticket/notification.py which fixes the issue for me is included.

=== Note

Trac doesn't currently support multiple owners, therefore this feature depends on #2662.",jsch@…,next-major-releases
defect,8094,Preview who will be notified,notification,normal,,new,1937 days,15 by 7,"Dear Trac people, as you see in
http://core.trac.wordpress.org/ticket/9208
one never knows if Trac will send email or not.

Note, I am talking about bugs one is the reporter of. I am not an administrator.

To be ''doubly'' sure to get mail, one must always click the CC box.
Otherwise, well, most of the time it will send email about others'
changes to the bug, but sometimes not.

P.S., the corresponding Bugzilla checkbox looks like
""Add jidanni@jidanni.org to CC list""
Which never needs to be checked for the reporter to get mail.

So my question is should I add my CC to the rest of
http://core.trac.wordpress.org/query?reporter=jidanni&col=id&col=cc&order=id
? I can only do a few a day before my wrists get tired.",jidanni@…,next-major-releases
enhancement,918,[patch] Custom Ticket Fields should support the multiple selection type,ticket system,normal,,new,1966 days,28 by 15,"I propose an addition to the TracTicketsCustomFields.

Currently, there is support for the
simple selection field:
{{{
<field>.type = select
}}}

I would like to have the {{{multi}}} type as well, for multiple selection fields.

The usage in {{{trac.ini}}} for {{{multi}}}
would be the same as it is for {{{select}}}.

I implemented it in a crude way (see the accompanying patch).

I'm not entirely pleased with the patch: 
 * the support for query is partial (i.e. it won't work)
 * the display of the fields is not as neat as I would like

A better solution would involve a change in the database:
drop the unicity constraint on the {{{(id,name)}}} pair for 
the {{{ticket_custom}}} table. 
With that, the query support would be easier to add.

",Christian Boos,next-major-releases
defect,13022,Reports can't be used with some realms,report system,minor,,new,1978 days,4 by 3,"We can create [TracReports#Automaticallyformattedcolumns for non-ticket realms] like this:
{{{#!sql
SELECT name as id, 'milestone' as _realm
FROM milestone
}}}

But this doesn't work for all realms:
{{{#!sql
SELECT value as id, 'repository' as _realm
FROM repository
WHERE name='name'
}}}

This SQL report above does not list any repositories, even though the following does list them:
{{{#!sql
SELECT value as id, 'repository' as _ignore
FROM repository
WHERE name='name'
}}}
(But here the rows link to the ticket realm.)

The reason is a [source:trunk/trac/ticket/report.py@16445:592-594#L592 hardcoded check in Trac] that's wrong for some realms. It guesses that when realm is `repository`, the appropriate permission is probably `REPOSITORY_VIEW`. But no such permission exists, so all rows are hidden.

(This problem was also [th:ticket:13424 reported to a plugin] where this check also fails.)",anonymous,next-major-releases
enhancement,9296,Wiki autocompletion for TracLinks,wiki system,normal,,new,2025 days,5 by 5,"I would request wiki autocompletion for TracLinks. So when user writes [ and then starts writing some link target wiki editor should try to suggest completion.

For example, we use a lot hierarchical wiki pages (with /) and it would be great that we could start typing top page and then press tab key to autocomplete to the end of common prefix.",Mitar,next-major-releases
enhancement,12828,"Add a ""wiki set"" trac-admin command",wiki system,normal,,new,2036 days,1 by 1,"Similar to the `repository set` command,
{{{
repository set <repos> <key> <value>

    Set an attribute of a repository
}}}
it would be useful to have a `wiki set` command for setting the readonly attribute.",Ryan J Ollos,next-major-releases
enhancement,12485,Add an ITicketCommentProvider interface,ticket system,normal,,new,2041 days,4 by 2,"The design of the CommitTicketUpdater makes it difficult to retroactively add changeset comments (#11478). !CommitTicketUpdater comments added retroactively are not likely to be in the correct chronological order. It would be difficult to remove !CommitTicketUpdater comments if it's later decided to use a plugin such as [th:TracTicketChangelogPlugin] instead of having the changeset comments inline in the ticket changelog. The repository links are no longer correct if the repository name is changed (although this is generally true for TracLinks to the repository).

I've also used the [https://wiki.jenkins-ci.org/display/JENKINS/Trac+Publisher+Plugin Jenkins Trac Publisher Plugin] which has similar issues.

I've considered another approach.
* Add an `ITicketCommentProvider` interface, that returns a comment along with a timestamp and possibly some other metadata. The ticket changelog would be created from data provided by `ITicketCommentProvider` implementations.
* One of the `ITicketCommentProvider` methods could be `get_comment_filter`, so that it would be possible to have a filter such as //Show changesets// or //Show build results//.
* The full history of a `ITicketCommentProvider` source would be available upon activating the plugin, and the comments would have the correct chronological ordering.
* !CommitTicketUpdater would create a table associating tickets with changeset. As an aside, the table would also be useful for th:#12621.
* !CommitTicketUpdater would provide comments through an implementation of `ITicketCommentProvider`.

One difficult aspect might be, on activating the plugin it might be desired to remove all previous instances of comments containing `CommitTicketReferenceMacro` instances. This could be done in an upgrade script, or through a script provided in `contrib`.",Ryan J Ollos,next-major-releases
enhancement,2961,custom comment fields,ticket system,normal,,new,2041 days,10 by 7,"I'd like a function similar to TracTicketsCustom, but for comments.  

I'm looking to integrate time tracking into Trac to eliminate some double entry, but unlike all the folks at #710, I'd like my ""hours spent"" field to be on the comment, so we can track who is putting in the time when, and not just have one field on the ticket everyone keeps updating.",Ryan@…,next-major-releases
enhancement,10599,"GitPlugin: Show branches in timeline, changesets, browser",plugin/git,normal,,new,2136 days,6 by 1,"''Created as part of the [ticket:10594 move of GitPlugin]. Tickets originally reported for th:GitPlugin: th:#2633, th:#7860, th:#8522''

Quoting [th:ticket:2633 jkp@...]:
> It would be best if you could see which branch a commit was made against in both the changeset view and the timeline view.
-> worksforme, but really needs to be improved, see comment:4

Quoting [th:ticket:7860 shogsbro]:
> For Git repos with multiple branches it would be useful to be able to browse the branch
-> [comment:3 worksforme]

Quoting [th:ticket:8522 trac@...]:
> I'd like browse source to take me to the same [branch] by default each time.
-> [comment:2 duplicate]",Peter Suter,next-major-releases
enhancement,7558,"New TracQuery match operator for ""contains the word"" would be useful",ticket system,minor,,new,2184 days,8 by 7,"In a number of situations, it's useful to be able to search field values that ''contain a certain word'', not just a certain string (as `~=` does). The distinction is essentially a word boundary regex versus an all-inclusive regex. That is, I'd like to be able search like this:

{{{
.*\bmyvalue\b.*
}}}

where `\b` is a ""word boundary"" as defined by [http://www.pcre.org/pcre.txt the PCRE standards]. Right now, using `~=`, I can only search like this:

{{{
.*myvalue.*
}}}

The most pressing use case for such a facility (at least for my projects) is support for [http://marc.info/?l=trac&m=121936459010029&w=2 ""subticket keywords"", an extremely flexible technique of associating one ticket with another] by using the TracLinks conventions in the keyword field.

For example, to associate a new ticket as a ""subticket"" of ticket:13, I place `#13` in its keyword field. Currently, this can later be extracted with a TracQuery such as `[[TracQuery(keywords~=#13)]]` however this incorrectly matches `#130`, `#131`, and so on. Thus, a word boundary match operator was [http://marc.info/?l=trac&m=121941561920166&w=2 suggested by Remy Blank later in the same thread].

At first blush, it seems that the TracQuery ""mini language"" is actually [source:trunk/trac/ticket/query.py@7484:439-444#L437 implemented with simple ANSI SQL-based wildcards], which makes implementing word boundary matches non-trivial. I'd imagine one might have to wrap a call to [source:trunk/trac/ticket/query.py@7484:254-311#L254 Query.execute] that catches the results of a `~=` query and then filters these results further (possibly with a [Wikipedia:Decorator_pattern decorator]?).",meitarm@…,next-major-releases
enhancement,11508,"Add a ""permission copy"" command to TracAdmin",admin/web,normal,,new,2210 days,1 by 1,"As mentioned in comment:4:ticket:11099, it would be nice to have a `permission copy` command to complement the form that was added to the Permission admin page.",Ryan J Ollos,next-major-releases
enhancement,6128,[Patch] Pagination for the Timeline,timeline,normal,,new,2210 days,13 by 7,"Trac displays a lot of events as one page at the timeline.
So sometimes it causes performance problems like the ticket report.

Attached patch provides the pagination for the Timeline (for 0.10.4).",Naoki Takezoe,next-major-releases
enhancement,11493,Add config option to show changeset files in ticket's comment,ticket system,minor,,new,2211 days,23 by 6,"I want to confirm changeset files in comment related to the ticket. It's useful to find a particular file related to the ticket. I made a patch to do this. How does that sound?

{{{ #!ini
[ticket]
commit_ticket_reference_show_files = true
}}}

[[Image(show-changeset-files-in-comment.png)]]",t2y <tetsuya.morimoto@…>,next-major-releases
enhancement,10905,Enabled CommitTicketUpdater only for some repositories,version control,normal,,new,2211 days,11 by 4,"I am using CommitTicketUpdater on a Trac installation with multiple (git) repositories. The problem I am having is that for some of those repositories we are using GitHub for ticketing. And because CommitTicketUpdater listens to all comments, when somebody reference ticket with GitHub ticket number, a wrong reference is made in Trac. Would it be possible to enable CommitTicketUpdater only for some repositories?",Mitar,next-major-releases
enhancement,2523,TODO's from Sourcecode as a ticket,wiki system,minor,,new,2216 days,9 by 7,"If you have in the Source Code:
{{{
  // TODO: Add Error Handling
}}}
This should generate a Ticket.


Maybe I write a patch for this...",anonymous,next-major-releases
enhancement,9967,Allow setting option values through Option objects,general,normal,,new,2219 days,3 by 3,"Trac currently allows the user to read an option's value through a `Option` object, like in the following code:

{{{
#!python
class MyComponent(Component):
  my_option = Option('my_section', 'my_option')
  
  def my_func(self):
    # retrieving option value
    my_option_value = self.my_option
}}}

When calling `my_func()`, `my_option_value` will be filled with the current option values (as specified in `trac.ini`).

Now, while retrieving works this way, one can't ''set'' the option value this way.

{{{
#!python
class MyComponent(Component):
  my_option = Option('my_section', 'my_option')
  
  def my_func(self):
    # setting option value
    # will raise an AttributeError
    self.my_option = 'test'
    self.config.save()
}}}

I've created a patch that enables this functionality. I've done some tests with it and it seems to work for `Option` and all of its subclasses.",Sebastian Krysmanski <sebastian@…>,next-major-releases
enhancement,11866,Export information on /about page as wiki markup and plain text,general,normal,,new,2221 days,3 by 1,"On the mailing list and when handling plugin issues on trac-hacks.org we are often asking users to post the information about their environment from the `/about` page. We could make this process more user friendly by exporting contents of the page as wiki markup for pasting into a ticket, and as plain text for posting on the mailing list.

When the //Create// button on the error page is pressed a table of system info is created in the ticket description, so it seems that part of this functionality is already implemented: [browser:/tags/trac-1.0.2/trac/web/main.py@:582-590#L580].",Ryan J Ollos,next-major-releases
enhancement,4048,Diff between repositories,version control,normal,,new,2271 days,12 by 6,"Trac allows to see the files of the project (in any Versioning system) but it were nice if trac allows to:
 1. commit on-line files and directories, 
 2. comment the files, directories and changes of these, 
 3. see diffs between two repositories, etc.

Probably it's a long term enhancement (version 0.20...)

Thank you very much",anonymous,next-major-releases
defect,5566,Postgresql admin security issue,admin/console,normal,,new,2300 days,12 by 7,"Trac accepts postgres as a database backend using a string such as:  postgres://user:password@localhost:port/database

The problem is anyone with read access to this trac directory basically has full administrator priveleges, because they can just issue the command ""trac-admin trac_project permission myself TRAC_ADMIN""

Ideally I'd like to grant project administrators with the ability to customize their trac environment and delegate permissions to other users as necessary.  (I keep a master authz file to share amongst various projects)  But it seems like 'trac-admin' should really be using the local users authentication credentials.  And there should be a seperate set of credentials (that I can keep in a protected file) for the trac web interface.

This problem most likely extends to mysql and any other database connection type.  SQLite is one of the few exceptions since it's entirely file based.

I'm using trac-0.10.3.1-2.fc6 and subversion-1.4.3-2.fc6 (on Fedora Core 6, obviously).
",dannys@…,next-major-releases
enhancement,11078,Perform fine-grained permission checks on resource in get_navigation_items,wiki system,normal,,new,2322 days,6 by 3,"First mentioned in comment:1:ticket:11067, fine-grain permissions checks should be performed in `get_navigation_items`, taking into account the resource that may be specified in the `[mainnav]` section through the `href` option. See comment:4:ticket:11067 for additional suggestions.",Ryan J Ollos,next-major-releases
enhancement,7026,[Patch] Query module column reordering,report system,normal,,new,2323 days,16 by 9,"This is a patch I came up with at PyCon specifically because some of my users need it, but I think something like it could go into Trac core.

First of all it solves the problem of the poor scalability of the UI for selecting columns to display, which is pretty unusable in situations where there are something on the order of 50 custom fields (which I've seen, and it's ugly).

I also needed the ability to let users reorder the columns, which this solves.  I'm not sure how the Trac devs will feel about this.  It replaces the 'col=' query arguments with arguments in the form 'col#=', where # is the order that that column should be displayed in.  This works fine for URL query strings.  But I haven't updated the TracQuery syntax to support column reordering.  Other than that it seems to work fine, and includes support for non-!JavaScript users.",ebray,next-major-releases
defect,11939,Workflow graph should account for user/group permissions,ticket system,normal,,new,2325 days,2 by 1,"The workflow actions have a [TracWorkflow#BasicTicketWorkflowCustomization permissions] attribute. Workflows can be configured such that different users will be configured with different actions. It would be useful to be able to visualize the workflow for a particular user or group using the [WikiMacros#Workflow-macro WorkflowMacro]. The !WorkflowMacro could be modified to accept a `username_or_group` argument.

In the ticket workflow dialog the workflow for that user could be shown in a popover. Alternatively, it might be more useful to show all the workflow transitions but make it clear which transitions the current user is allowed to initiate.",Ryan J Ollos,next-major-releases
enhancement,7884,Ticket should contain a field for the expected time to complete/fix it,ticket system,normal,,new,2335 days,8 by 5,"This would give a number of benefits, and among them:
 * a (super)user that has the rights to change the priority of the tickets can rearrange them based on the time to handle them
 * a milestone could show an expected time to be completed as the sum of the time of each ticket",dusty@…,next-major-releases
enhancement,12165,List users included and excluded from notification,notification,normal,,new,2338 days,2 by 1,"Bugzilla, after submitting changes for a ticket displays the following:

{{{#!html
<dl>
  <dt>Changes submitted for <a class=""bz_bug_link 
          bz_status_CONFIRMED "" title=""CONFIRMED --- - Improvie the notification system"" href=""show_bug.cgi?id=24"">bug 24</a></dt>
  <dd><dl><dt>Email sent to:</dt>
  <dd>
      
        <code>remy@...</code>, 
        <code>christian@...</code>, 
        <code>jun@...</code>
  </dd>
<dt>Excluding:</dt>
  <dd>
      
        <code>ryan@...</code>
        <code>peter@...</code>
  </dd>
</dl>
    
  </dd>
</dl>
}}}

Similarly, we could show a notice at the top of the page so that it's clear which users have been notified.",Ryan J Ollos,next-major-releases
enhancement,11263,AuthzPolicy should allow restricting access to only the most recent version of a resource,general,normal,,new,2342 days,5 by 2,"It would be useful to be able to restrict access to only the most recent version of a resource. This was discussed in comment:8:ticket:8976.

One suggestion is to use the syntax `@HEAD`. Another possibility would be to use `@None`, since by convention `None` refers to the most recent version of a resource. What would be the most logical syntax to use?

Currently, if the user is restricted to accessing the most recent version of the using a rule such as
{{{#!ini
[wiki:WikiStart@11]
anonymous = WIKI_VIEW
}}}
the user will only be able to access that page if `?version=11` is included in the URL. Navigating to `/wiki/WikiStart` will result in a //Forbidden// error.

Another request from comment:8:ticket:8976 is to hide the //History// contextual navigation item and prevent navigating to `/wiki/WikiPage?action=history` when the user only has access to the most recent version of a resource. This is potentially more difficult because we have a way to check if the user has access to a particular resource, but it is less straightforward to check which versions of a resource the user has access to, and performance considerations may come into play.",Ryan J Ollos,next-major-releases
enhancement,10425,[PATCH] Add support for configuring a default set of columns to show in a query.,query system,normal,,new,2346 days,29 by 8,"At my work, we are using trac to view our bugs and tasks, but one of our customer uses JIRA, so we export our issues from JIRA and import them in trac as a tickets. To keep track of the issues, we have a custom field called 'jira' that contains the upstream id. As the upstream id is quite important, we want to include the column in the set of default columns for a query.
The attached patch introduces two new config directives, one for setting the default order in the query (rather than hardcoding it to be 'priority', still a fallback through...), the second is a list of columns to automatically show unless the user specified a set of columns.

Examples:
Using this [query:owner=$USER link] results in the following set of columns shown in the browser (verified here on t.e.o):
* Ticket
* Summary
* Owner
* Type
* Status
* Priority
* Milestone

With my patched applied and the following in the trac.ini
{{{
[query]
default_cols = id,time,changetime,priority
}}}
would result in the following columns shown in the browser:
* Ticket
* Created
* Modified
* Priority",Torbjörn Svensson <azoff@…>,next-major-releases
defect,11213,Updating Saved Query results does not save column order,query system,normal,,new,2346 days,4 by 3,"When using a saved query (using TracQuery TracLinks syntax), using the ""Update"" button to update the results does not save the report's column ordering (left-to-right ordering), but reverts to default ordering.

Reproduction:
 1. Create a new saved query with TracQuery TracLinks syntax.
 2. Customize the column order of the results in the query; potentially add custom fields to the column results
 3. Give query a name and save
 4. Run saved query
 5. '''Note column ordering of results respects what was specified in TracQuery syntax
 6. '''Click ""Update""
 7. '''Note that column ordering no longer respects what was specified in the saved report and appears to be the default column ordering'''

Untested: Not sure if this would change reproduction, but all my saved queries also have a report=<n> where n is the SQL ID of the saved report.",achittur@…,next-major-releases
enhancement,12786,Allow custom queries to be saved without granting REPORT_CREATE,report system,normal,,new,2346 days,2 by 1,"In order to save a ticket query the user must have `REPORT_CREATE` and the `ReportModule` must be enabled. In the documentation, TracReports#TracReports, the user is ""encouraged"" to try the configuration with the `ReportModule` disabled. However, this will remove the ability to save queries. On the other hand, granting `REPORT_CREATE` allows the user to write SQL in a report, and inspect tables that you may not wish them to access (gmessage:trac-users:J23IZuJddzA/3clXkEJBAAAJ). Simple example:
{{{#!sql
SELECT sid,value FROM session_attribute WHERE name='email';
}}}

We should at least allow the user to save a query without also having the ability to create a report with SQL.

For the `ReportModule`, we may want to consider limiting the tables that a user can access with `REPORT_CREATE` and `REPORT_MODIFY`. `REPORT_ADMIN` could continue to access all tables.

----
Copied from [ticket:9982#comment:10]:

One possible improvement would be to add a setting for disabling the creation and editing of //SQL// reports, which are the ones with the drawbacks mentioned in the TracReports page. The list of reports, the wiki syntax and the possibility to saves and edit the non-SQL queries would continue to work.

----
Copied from [ticket:9982#comment:13:

I think we can make a generic trac.report module, with the usual api/model/web_ui files.
The details of handling and rendering legacy SQL reports could stay in source:trunk/trac/ticket/report.py and source:trunk/trac/ticket/templates/

That way, it will be easy to disable trac.ticket.report.* and still have the report list of saved custom queries.",trac@…,next-major-releases
enhancement,9055,Auto numbering in wiki tables,wiki system,normal,,new,2353 days,6 by 4,"It would be useful to have the ability to auto-number table rows.

Something like:
{{{
||= ID =||= Col =||
|| 1. || content of row 1 ||
|| 1. || content of row 2 ||
..
}}}

would result:
||= ID =||= Col =||
|| 1. || content of row 1 ||
|| 2. || content of row 2 ||",itamarost@…,next-major-releases
enhancement,9343,"Because Trac support for multiple repos, each repo with a related encoding.",version control,minor,,new,2356 days,5 by 3,"So I recommend for each repos, set an distinct default charset for it.
",anonymous,next-major-releases
enhancement,9172,Trac diff highlighting start and end points,version control/changeset view,minor,,new,2357 days,2 by 2,"At the moment the changeset diff viewer correctly shows the difference between two files, however the start and end points are oddly positioned.

So for example this diff view shows the deletion starting at the closing ""}"" of the previous section:

[[Image(diffoddstartend.png)]]

In complex code this can be offputting, as it is really the second declaration that has simply been removed (including it's bracketed {…} section).  However as the diff catches the closing }, you are then left with a closing } at the end of the diff.

Whilst technically still a correct diff, other systems (such as fisheye) are able to show the diff in a more intuitive way, by highlighting the removed section instead, mockup example:

[[Image(diffnewstartend.png)]]

It would be a nice enhancement to change the diff viewer so it is more in line with removing the section rather than clipping the previous closing bracket.",c.jones@…,next-major-releases
enhancement,2956,Upload files to the repository,version control/browser,normal,,new,2357 days,11 by 6,Can you build in a simple FileUploading (into the rep) to Trac for those who cannot install a svn client on their main workstation.,anonymous,next-major-releases
enhancement,2702,markdown support,wiki system,major,,new,2369 days,25 by 9,"It'd be nice to see support for [http://daringfireball.net/projects/markdown/ Markdown] with [http://daringfireball.net/projects/smartypants/ SmartyPants] support. Both are available as PHP libraries, so it shouldn't be difficult to include.",anonymous,next-major-releases
enhancement,12746,Add keyboard shortcut for blame from file view,version control/browser,normal,,new,2376 days,1 by 1,"From the repository browser, the keyboard shortcut `a` leads to the annotation view. It would be nice to have the same from the file view.

Line highlighting and anchor should be preserved when navigating to the blame view using either the keyboard shortcut or the contextual navigation link.",Ryan J Ollos,next-major-releases
enhancement,1514,Mantis conversion script,ticket system,normal,,new,2376 days,9 by 6,"A script to convert from Mantis(http://www.mantisbt.org/) to Trac would be super-cool!

",Paul Baranowski <paul@…>,next-major-releases
enhancement,9168,milestone URL persistence,roadmap,major,,new,2387 days,10 by 4,"I've been struggling with Milestone URL persistence. It a maintenance nightmare changing milestone names.  Our implementation of Trac oversees a large number of disparate university groups each with multiple milestones. Each group has their own wiki pages linking to their milestones as well as milestones of other related groups.

I see ticket #364 mentioned this (jamesm about 6 years ago)

>I realize its ugly, but I think that the ability to link to the milestone outweighs the benefits of a pretty-url. I would say go with a fixed integer (like tickets do) and let the user assign a name/descrption to the fixed integer. I think that the linking throughout Trac/outside Trac is more important.

I agree with this statement, permanent ID's, just like tickets, elegantly solve this issue. Further, a milestone with a fixed ID having a title and description field would be highly useful. Macros (such as MilestoneDate) could pull the title into a wiki for display letting the milestone names change independently of milestone links without losing any descriptive benefits.

I checked newer versions of trac hoping this was implemented, but I see no evidence
 * http://trac.edgewall.org/demo-0.12/milestone/Feed%20the%20dogs

Link to a milestone I created but then changed the name
 * http://trac.edgewall.org/demo-0.12/milestone/My%20name%20WILL%20change
 * http://trac.edgewall.org/demo-0.12/milestone/My%20name%20changed
",john.williams@…,next-major-releases
enhancement,12717,Paginated attachment index,attachment,normal,,new,2391 days,1 by 1,"It would be useful to have a `TitleIndex`-like listing of attachments at `/attachment/<realm>`.

`/attachment` could contain links to each attachment realm, `/attachment/ticket`,`/attachment/wiki`, ... could contain indexes of attachments for each realm.

See also [th:AllAttachmentsMacro].",Ryan J Ollos,next-major-releases
defect,4270,Ticket notification emails contain wiki formatting,notification,normal,,new,2392 days,19 by 12,"Hi,

when I send an email of a ticket, through the CC list, I find that it sends the wiki formatting as well, since it's a text email, the normal text should be displayed and the wiki formatter should strip out the formatting before the email is sent.

In order to get acceptable results from the ticket display, an example is like thus

1. an item !CamelCase[[br]]
2. another item [[br]]

but in the email, instead of seeing what I have above, I see this

{{{
1. an item with !CamelCase[[br]]
2. another item[[br]]
}}}

so of course, people reading the emails, are wondering what all the {{{[[br]]}}} are for and it makes some emails kinda unreadable.

this should be remedied",chris.alex.thomas@…,next-major-releases
enhancement,5670,[patch] Refactoring of general `NotifyEmail` class to make it easier to subclass,notification,normal,,new,2392 days,11 by 7,"The `NotifyEmail` class in `trac.notification` is a great starting-point for any custom email classes.

I have made a simple class that does my special things in `notify()` and `send()`, but where 98% of the logic it is left to `NotifyEmail` and `Notify` classes to handle the practical things. Among other things I use my custom Email-sending class to send registration confirmations and similar system mail.

However, for any kind of reuse of this class there is one snag: Notification needs to be enabled for the project. So, if you want to send you own mail or have some other module that sends email there is no easy way to do this based on general classes without copy & paste of logic logic from original class (in notify() as it would need to be 'skipped' in the call-chain). My system email sending new passwords based on 'forgotten password' form should not depend on ticket notification being enabled. As it is now I have to trick the class in my notify() by enabling notification, calling `NotifyEmail.notify()`, and then setting it back at the end... Not pretty, and potentially a source of application misbehavior.

So much for the argument of why. Here is a small patch that extracts the enable-check logic into a method that can be easily overridden for any subclass of `NotifyEmail`:

{{{
#!python
Index: trac/trac/notification.py
===================================================================
--- trac/trac/notification.py	(revision 5803)
+++ trac/trac/notification.py	(working copy)
@@ -209,11 +209,14 @@
             self._charset.output_charset = 'ascii'
         else:
             raise TracError, 'Invalid email encoding setting: %s' % pref
+    
+    def notification_enabled(self, resid):
+        return self.config.getbool('notification', 'smtp_enabled')
 
     def notify(self, resid, subject):
         self.subject = subject
 
-        if not self.config.getbool('notification', 'smtp_enabled'):
+        if not self.notification_enabled(resid):
             return
         self.smtp_server = self.config['notification'].get('smtp_server')
         self.smtp_port = self.config['notification'].getint('smtp_port')
}}}

It should not be able to break any existing code anywhere as far as I can deduct, and would be a great bonus for reuse of Trac code.",osimons <simon-code@…>,next-major-releases
defect,10152,"Custom Query - ""and"" becomes ""or""",query system,normal,,new,2397 days,23 by 13,"In ''custom query'' when you have a field 
{{{
Description contains ...
}}}
click ""and"" > ""Description"" (combobox to the left) it changes to
{{{
Description contains ...
                  or ...
}}}

It is not intuitive if you have the choice between ""and"" and ""or"" and decide for ""and"", you get just another variant of ""or"".

Expected:
{{{
Description contains ...                 (and)
Description contains/doesn't contain ...
}}}
",bastik <bastikln@…>,next-major-releases
enhancement,9648,[PATCH] Improve ticket fields with tooltips,ticket system,normal,,new,2397 days,30 by 8,"I've created a patch that allows a Trac admin to specify tooltips for arbitrary ticket fields in Trac:

[[Image(tooltip.png)]]

This way the admin can explain a certain field in more detail (for example the difference between priority and severity) or provide information about the syntax used in that field.

The tooltips appear in the following places:

 * the ticket box on the top of an existing ticket page (only on labels, not on values)
 * in the ticket history for changes values
 * the ticket input fields (on labels and input fields)

All labels get a help cursor if a tooltip is available.

Tooltips are specified in the `trac.ini` under the new section `[ticket-hints]`. Just assign the tooltip value to the name of the field. The user may also provide the same tooltip in multiple languages by appending the language code to the field name. Works for built-in fields as well as for custom fields (this patch is a generalization of #899). Example:

{{{
[ticket-hints]
reporter = The reporter of this ticket
owner = The owner of this ticket

blockedby = Tickets preventing this one from closing. Accepts comma delimited ticket number (without #)

complexity = The estimated complexity involved in fixing this ticked.
complexity_de = Die geschätzte Komplexität zur Lösung des Tickets
}}}

I've decided to use the `trac.ini` for localization as it would be too much overhead to create translation files for just some tooltips.
",Sebastian Krysmanski <sebastian@…>,next-major-releases
enhancement,11943,Ticket delete notifications,notification,normal,,new,2411 days,1 by 1,"Trac supports ticket deletion through the `ticket remove` TracAdmin command, and the `TicketDeleter` Component in `/tracopt/ticket`. It would be useful to receive notifications when tickets are deleted.

The [th:AccountManagerPlugin] has a similar feature of sending notifications when users are removed. The subject and body are very simple, e.g. `Deleted User: tonyjha99`. The users to receive notifications are configured through the `[account-manager]` `account_changes_notify_address` option.",Ryan J Ollos,next-major-releases
defect,12687,Provide additional hints when trac-admin repository commands are not provided a valid repository name,version control,normal,,new,2420 days,-,"From reports on the MailingList and personal experience, it seems users mistakenly input ""repository <path>"" rather than ""repository <name>"" for the trac-admin repository commands:

{{{#!sh
$trac-admin tracenvs/proj-1.3 help repository
repository add <repos> <dir> [type]

    Add a source repository

repository alias <name> <target>

    Create an alias for a repository

repository list 

    List source repositories

repository remove <repos>

    Remove a source repository

repository resync <repos> [rev]

    Re-synchronize trac with repositories

repository set <repos> <key> <value>

    Set an attribute of a repository

repository sync <repos> [rev]

    Resume synchronization of repositories
}}}

We could provide additional hints, like the following:
{{{#!sh
$trac-admin tracenvs/proj-1.3 repository sync ""notfound"" 10
TracError: Repository ""notfound"" doesn't exist.

Use 'repository list' to view the valid repository names.
}}}

{{{#!diff
diff --git a/trac/versioncontrol/admin.py b/trac/versioncontrol/admin.py
index 86294ac4f..0acd0e99a 100644
--- a/trac/versioncontrol/admin.py
+++ b/trac/versioncontrol/admin.py
@@ -128,7 +128,9 @@ class VersionControlAdmin(Component):
                 reponame = ''
             repos = rm.get_repository(reponame)
             if repos is None:
-                raise TracError(_(""Repository \""%(repo)s\"" doesn't exist"",
+                raise TracError(_(""Repository \""%(repo)s\"" doesn't exist.\n""
+                                  ""\nUse 'repository list' to view the ""
+                                  ""valid repository names."",
                                   repo=reponame or '(default)'))
             if rev is not None:
                 repos.sync_changeset(rev)
}}}

Similar changes would need to be made for the other `trac-admin repository` commands. Alternatively we could list the repository names when the error occurs.",Ryan J Ollos,next-major-releases
defect,4636,Component field sort order doesn't use locale,ticket system,minor,,new,2437 days,9 by 4,"The items listed in the ticket drop-down menu for '''Component''' are sorted alphabeticaly.  However, this alphabetical sorting '''doesn't use the locale''' setting, an item as ''épargne'' will be at the bottom of the list, instead of being between the items ''crédit'' and ''guichet'' for example.",antoine.delvaux@…,next-major-releases
enhancement,4549,"[PATCH] Ticket std/custom fields improvements - sql based values, order by, labels, value evals,  ...",ticket system,normal,,new,2461 days,11 by 4,"Hi, 

First to say, I find Trac very useful and programmed nicely (appologies for my English). 

Revision 5 is trac 0.10. 
Ticket fields std/custom improvements:
 * field values (combo) filled with sql
 * customized order of fields
 * std fields - customized label/default values
 * values - evaluation of variables
 
TRAC.INI with samples: 
{{{
      std fields
      default_* - default values
      order_*   - order by (not applicable for some fields - e.g. ticket title)
      label_*   - labels
      
      custom fields
      req_who.options   - sql filling the fields
      req_when.value = $(today) - variable evaluation 
      *.order
}}}

I plan to implement following - but the question is when :(  
   * obligatory/optional/hidden field definition in ini
   * init ticket callback - can change field definition (value, type, order ...)
   * save ticket callback - can check/reject/change field values
   * ticket initialization 
   * add to ticket/ticket_change ""status by user"" (like unread ticket, ticket, ...)
     can be used also as internal mail ... instead of sending the mail mark ticket/ticket_change
     to be read by some users
   * customized home page for the user - will show number of unread tickets 
     newly 
   * ticket ""factory"" for periodical tickets - e.g. one ticket generated for every month

It would be nice to have customized statuses, so in the future trac could be some kind of workflow 
system (add allowed state-transitions/persons).  
Each status could have extra fields, e.g. if status is ""fixed"" then field could be revision number.

Hope this will be useful.

Best regards from Croatia, 
Robert",trebor74hr@…,next-major-releases
enhancement,10376,Opening a link in a new window?,wiki system,normal,,new,2475 days,8 by 6,"What code is necessary for me to create a link that will open in a new window, as opposed to opening within the existing window? I am including a link on a new webpage on gsa.gov that will take the customer away from the GSA site and onto a non-government site. ",jennifer.johns@…,next-major-releases
defect,9978,Guard against pkg_resources.resource_filename errors,general,normal,,new,2521 days,6 by 4,"During a trac-svn-hook resync (`trac-admin ... changeset added /var/svn/trac 10433`):
{{{
[pid 1052 139942713288416] 2011-01-14 18:46:06,498 Trac[env] INFO: -------------------------------- environment startup [Trac 0.13dev-r10426] ------------------------
--------
[pid 1052 139942713288416] 2011-01-14 18:46:09,926 Trac[console] ERROR: Exception in trac-admin command:
Traceback (most recent call last):
...
  File ""build/bdist.linux-x86_64/egg/trac/versioncontrol/admin.py"", line 95, in _do_changeset_added
    rm.notify('changeset_added', reponame, revs)
  File ""build/bdist.linux-x86_64/egg/trac/versioncontrol/api.py"", line 620, in notify
    repositories = self.get_repositories_by_dir(dir)
...
  File ""build/bdist.linux-x86_64/egg/tracext/hg/backend.py"", line 210, in __init__
    locale_dir = pkg_resources.resource_filename(__name__, 'locale')
...
  File ""/usr/local/virtualenv/0.13dev/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg/pkg_resources.py"", line 887, in extraction_error
    raise err
ExtractionError: Can't extract file(s) to egg cache


  [Errno 17] File exists: '/var/www/.python-eggs/TracMercurial-0.13.0.1dev_r10432-py2.5.egg-tmp/tracext/hg/locale'
}}}

So a duplicate of #9107 for the TracMercurial plugin.
We can fix that particular occurrence, but I wonder if it wouldn't make sense to add a wrapper for the pkg_resources stuff (in `trac.utils.dist`?) and use that. That wrapper should be ""process safe"" not only thread-safe, so using a lock won't cut it. 

Maybe trapping such errors and restarting the call //once// after a random amount of time between .3 to 1s would be enough.",Christian Boos,next-major-releases
enhancement,5170,max_diff_bytes should be honored even if only one file has changed,version control/changeset view,normal,,new,2542 days,9 by 4,"As mentioned in r2968, the `max_diff_bytes` rule is ignored if only one file has changed; the differences are then shown inline. This means that if we have lots of changes in one file only (such as often happens here with huge XML files saved by our software), they are shown directly in the main changeset view.

In find this problematic as I often like to review recent changes by using the ""previous changeset"" and ""next changeset"" links in the main changeset view. When encountering a change in one of our huge files, I sometimes have to wait several minutes as the browser tries to display the enormous diff. I still want the ability to view minor changes inline, but I want the `max_diff_bytes` rule to be followed regardless of the number of files that have changed (even just one). Of course, the big diffs should still be accessible through a link.

I will try to create a patch for this when time allows.",maz <mzizka@…>,next-major-releases
enhancement,9085,Notification system silently drops failures to unicode email addresses,notification,major,,new,2548 days,10 by 5,"See #9082 for some background.

Currently, email addresses with unicode in them are silently discarded when sending ticket updates.  While not trying to deliver the email is correct, it's a little misleading.  If the user enters a unicode email address in the `CC` list, then it appears to get added (indeed it does) but they will never receive any emails.  Unfortunately, there is no indication as to why the email will never be delivered.  An admin can look in the log and see the email addresses which have been discarded, but they first have to know what they are looking for.  Additionally, the same thing occurs for addresses in the `smtp_always_cc` and `smtp_always_bcc` fields.

We could show a warning indicating that the email wasn't delivered to the problem addresses.  The problem with the `CC` list, is that the invalid address is put on the `CC` list, and so anytime an update occurred, the warning would be shown.  An administrator would then need to clean out the `CC`list.  The problem is even more complicated if a user has the invalid email address in their preferences and simply puts their username on the `CC` list (or as the owner/reporter/updater of a ticket).  An admin would then need to clear out the email address in the user's session.

I think the solution is to warn when an email can't be delivered, as well as stricter input validation.  Input validation would need to be in:
 Preferences::
   when entering email address
 `CC` list::
   would need to differentiate between entering an email address and a username.  This might be really hard when taking into account `use_short_addr` and `smtp_default_domain`
 `smtp_always_cc` and `smtp_always_bcc`::
   Don't know how to properly validate these, or whether it's worth it.  Populating these with invalid values should be readily apparent to the admin.",John Hampton,next-major-releases
enhancement,12596,AuthzPolicy should recursively expand groups,general,normal,,new,2564 days,-,AuthzPolicy does not allow groups to contain other groups. This is documented in TracFineGrainedPermissions#MissingFeatures. The request has also been raised in gmessage:trac-users:TGoX7YfG_xA/0uoB7AQTBrsJ.,Ryan J Ollos,next-major-releases
enhancement,12595,TracAdmin should label invalid permissions,admin/console,normal,,new,2564 days,-,"In #10752 we added styling for invalid permissions on the //Permissions Admin// page.

[[Image(Screen Shot 2016-09-20 at 13.38.27.png,100%)]]

TracAdmin gives no indication if a permission is invalid:

{{{#!sh
$ trac-admin ../tracenvs/proj-milestonetest permission list user2

User   Action
-------------------------
user2  INVALID_PERMISSION
user2  TICKET_APPEND
user2  TICKET_CHGPROP
user2  TICKET_CREATE
user2  TICKET_MODIFY
user2  WIKI_CREATE
user2  WIKI_MODIFY


Available actions:
 BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW,
 LOG_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE,
 MILESTONE_MODIFY, MILESTONE_VIEW, PERMISSION_ADMIN, PERMISSION_GRANT,
 PERMISSION_REVOKE, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE,
 REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW,
 SEARCH_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_BATCH_MODIFY,
 TICKET_CHGPROP, TICKET_CREATE, TICKET_EDIT_CC, TICKET_EDIT_COMMENT,
 TICKET_EDIT_DESCRIPTION, TICKET_MODIFY, TICKET_VIEW, TIMELINE_VIEW,
 TRAC_ADMIN, VERSIONCONTROL_ADMIN, WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE,
 WIKI_MODIFY, WIKI_RENAME, WIKI_VIEW
}}}

I think that `trac-admin` properly lists `INVALID_PERMISSION` as being assigned to `user2`, and does not include `INVALID_PERMISSION` in the list of //Available actions//. However, there should be a label on `INVALID_PERMISSION`, such as the following:

{{{#!sh
$ trac-admin ../tracenvs/proj-milestonetest permission list user2

User   Action
-------------------------
user2  INVALID_PERMISSION *
user2  TICKET_APPEND
user2  TICKET_CHGPROP
user2  TICKET_CREATE
user2  TICKET_MODIFY
user2  WIKI_CREATE
user2  WIKI_MODIFY

(*) Permission is no longer defined

Available actions:
 BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW,
 LOG_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE,
 MILESTONE_MODIFY, MILESTONE_VIEW, PERMISSION_ADMIN, PERMISSION_GRANT,
 PERMISSION_REVOKE, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE,
 REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW,
 SEARCH_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_BATCH_MODIFY,
 TICKET_CHGPROP, TICKET_CREATE, TICKET_EDIT_CC, TICKET_EDIT_COMMENT,
 TICKET_EDIT_DESCRIPTION, TICKET_MODIFY, TICKET_VIEW, TIMELINE_VIEW,
 TRAC_ADMIN, VERSIONCONTROL_ADMIN, WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE,
 WIKI_MODIFY, WIKI_RENAME, WIKI_VIEW
}}}",Ryan J Ollos,next-major-releases
enhancement,7573,base_url for many projects is painful,general,normal,,new,2577 days,21 by 12,"Setting the base_url in hundreds of ini files, and changing them with a hostname change is painful.  I've attached a patch for a parent_base_url trac.ini setting that can be used in a parent trac.ini.  ",doki_pen <doki_pen@…>,next-major-releases
enhancement,11746,Generate list of valid default_handlers in ExtensionOption documentation,general,normal,,new,2585 days,5 by 1,"The list of valid `[trac]` `default_handlers` in the `ExtensionOption` docstring should be dynamically generated. The list should includes all `IRequestHandlers` for enabled plugins with `is_valid_default_handler = True`. First mentioned in comment:description:ticket:11519.

Similarly, it would be useful to dynamically generate the list of allowed values for `[trac]` `mainnav` and `metanav`. More generally, the feature would be useful for any option with allowed values that can be extended by plugins.",Ryan J Ollos,next-major-releases
enhancement,12549,Provide option for blame to use merged history,version control,normal,,new,2606 days,-,"`svn blame` has the `-g` option:
{{{
  -g [--use-merge-history] : use/display additional information from merge
                             history
}}}

This can be useful for finding the changeset in which a line was changed, which is often more useful than the line in which the change was merged.

For example, line 47 of [/browser/trunk/trac/core.py?rev=14978&annotate=blame] shows [13672], however that's a merge changeset and [13671] may be more interesting.

`svn blame -g trac/core.py` on the trunk yields:

{{{
G  13671    rjollos         super(TracError, self).__init__(message)
}}}

while `svn blame trac/core.py` yields:

{{{
 13672    rjollos         super(TracError, self).__init__(message)
}}}

It looks like we could use `blame4` or `blame5` of `svn.client`, rather than [browser:trunk/tracopt/versioncontrol/svn/svn_fs.py@15012:865-866#L846 blame2]:
{{{
    svn_client_blame4(*args)
        svn_client_blame4(char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start, 
            svn_opt_revision_t end, svn_diff_file_options_t const * diff_options, svn_boolean_t ignore_mime_type, 
            svn_boolean_t include_merged_revisions, svn_client_blame_receiver2_t receiver, 
            void * receiver_baton, svn_client_ctx_t ctx, 
            apr_pool_t pool) -> svn_error_t
    
    svn_client_blame5(*args)
        svn_client_blame5(char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start, 
            svn_opt_revision_t end, svn_diff_file_options_t const * diff_options, svn_boolean_t ignore_mime_type, 
            svn_boolean_t include_merged_revisions, svn_client_blame_receiver3_t receiver, 
            void * receiver_baton, svn_client_ctx_t ctx, 
            apr_pool_t pool) -> svn_error_t
}}}

Btw, I wonder if it would be useful to have a `blame` TracLink, or extend the `browser` TracLink to allow blame to be specified.",Ryan J Ollos,next-major-releases
enhancement,8058,Smarter db connection pool,general,normal,,new,2637 days,4 by 3,"The current connection pool uses the entire connection string suitable connections to reuse.

This isn't very efficient when a single postgresql database contains multiple envs in separate schemas. In this case connections from different environments are reusable as long as the schema search_path is re-set.",Jonas Borgström,next-major-releases
defect,6219,Excessive time taken by notification can lead to db timeout?,notification,major,,new,2698 days,17 by 9,"All database activites are taking a long time - creation of a ticket always times out though the ticket gets saved properly and now I am consistently getting this error while hitting any page that makes a database call.
{{{
Traceback (most recent call last):
  File ""/usr/lib/python2.4/site-packages/trac/web/main.py"", line 406, in dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/lib/python2.4/site-packages/trac/web/main.py"", line 183, in dispatch
    req.perm = PermissionCache(self.env, req.authname)
  File ""/usr/lib/python2.4/site-packages/trac/perm.py"", line 263, in __init__
    self.perms = PermissionSystem(env).get_user_permissions(username)
  File ""/usr/lib/python2.4/site-packages/trac/perm.py"", line 227, in get_user_permissions
    for perm in self.store.get_user_permissions(username):
  File ""/usr/lib/python2.4/site-packages/trac/perm.py"", line 109, in get_user_permissions
    db = self.env.get_db_cnx()
  File ""/usr/lib/python2.4/site-packages/trac/env.py"", line 203, in get_db_cnx
    return DatabaseManager(self).get_connection()
  File ""/usr/lib/python2.4/site-packages/trac/db/api.py"", line 76, in get_connection
    return self._cnx_pool.get_cnx(self.timeout or None)
  File ""/usr/lib/python2.4/site-packages/trac/db/pool.py"", line 107, in get_cnx
    raise TimeoutError('Unable to get database '
TimeoutError: Unable to get database connection within 20 seconds
}}}

",pranavbhasin@…,next-major-releases
enhancement,11633,Allow CommitTicketReferenceMacro to be used in tickets that aren't referenced in the changeset message,ticket system,normal,,new,2698 days,3 by 1,"It was discussed in gdiscussion:trac-users:sCVEU-z8y_A that it would be useful to allow the !CommitTicketReferenceMacro to be used from tickets that the changeset does not reference. Currently the message //The changeset message doesn't reference this ticket// is displayed for that use case.

TODO: Document on CommitTicketUpdater page.",Ryan J Ollos,next-major-releases
defect,12390,Attachment table primary key not unique when migrating from SQLite to MySQL,attachment,normal,,new,2703 days,5 by 3,"We might just file this under the category of poor database schema, but I'm hoping to get feedback.

I'm working on a migration from SQLite to MySQL and encountered the following error:
{{{
Copying tables:
  attachment table... IntegrityError: (1062, ""Duplicate entry 'ticket-393-lv_pause_you_can_say_orderstatus_requestacatalog_cust' for key 'PRIMARY'"")
}}}

The length of each primary key is 111, which is calculated as: [browser:tags/trac-1.0.10/trac/db/mysql_backend.py@:149#L140]. 

Here is the schema:
{{{#!mysql
mysql> SHOW CREATE TABLE attachment;
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                   |
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| attachment | CREATE TABLE `attachment` (
  `type` text COLLATE utf8_bin NOT NULL,
  `id` text COLLATE utf8_bin NOT NULL,
  `filename` text COLLATE utf8_bin NOT NULL,
  `size` int(11) DEFAULT NULL,
  `time` bigint(20) DEFAULT NULL,
  `description` text COLLATE utf8_bin,
  `author` text COLLATE utf8_bin,
  `ipnr` text COLLATE utf8_bin,
  PRIMARY KEY (`type`(111),`id`(111),`filename`(111))
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin |
}}}

The issue is that a particular ticket has several attachments that differ only in one of the last characters, having a `.1` and `.2` suffix. The attachment filename length is greater than 111 characters.

{{{#!sql
SELECT LENGTH(filename),filename FROM attachment WHERE id=393 AND LENGTH(filename) > 111 ORDER BY filename;
127|lv_pause_you_can_say_orderstatus_requestacatalog_customerservice_or_placeanorder_lv_say_repeat_to_hear_the_options_again..2.wav
125|lv_pause_you_can_say_orderstatus_requestacatalog_customerservice_or_placeanorder_lv_say_repeat_to_hear_the_options_again..wav
120|lv_pause_you_can_say_placeaorder_orderstatus_requestacatalog_or_customerservice_say_repeat_to_hear_the_options_again.wav
121|lv_you_can_say_orderstatus_requestacatalog_customerservice_or_placeanorder_lv_say_repeat_to_hear_the_options_again..2.wav
119|lv_you_can_say_orderstatus_requestacatalog_customerservice_or_placeanorder_lv_say_repeat_to_hear_the_options_again..wav
114|lv_you_can_say_placeaorder_orderstatus_customerservice_or_requestacatalog_say_repeat_to_hear_the_options_again.wav
}}}

I haven't tested, but assume that if the organization had always been using MySQL the users would have seen `IntegrityError`s when adding some of these attachments.

Would it make sense to change the database schema to use the hashed filename as a primary key instead of the filename?",Ryan J Ollos,next-major-releases
enhancement,12210,Show username and email in tooltip when hovering over a full name,general,normal,,new,2708 days,3 by 2,"When `[trac]` `show_full_names` is `True` the user's full name is shown. The username and email could also be shown in the tooltip when hovering over the full name, like th:UsernameDecoratePlugin does. The email address would be obfuscated or not shown depending on the settings and user permissions.",Ryan J Ollos,next-major-releases
enhancement,10736,env.get_known_users() should also return session.last_visit,general,normal,,new,2718 days,22 by 7,"I'm trying to build up something really lightweight to get people visible in my projects without #2456 and various hardcore TH plugins. I'd like to make use of the last_visited attribute to for example only show recently logged in people. But it turns out I gotta jump through hoops to get to it.

For example th:AccountManagerPlugin goes straight SQL here:

th:source:accountmanagerplugin/trunk/acct_mgr/api.py@11554#L277

{{{
accountmanagerplugin/trunk/acct_mgr/api.py:277:    def last_seen(self, user =
None):
}}}

In 1.0dev source:/trunk/trac/env.py@11073#618 we have:

{{{
618     def get_known_users(self, cnx=None):
619         """"""Generator that yields information about all known users,
620         i.e. users that have logged in to this Trac environment and
621         possibly set their name and email.
622
623         This function generates one tuple for every user, of the form
624         (username, name, email) ordered alpha-numerically by username.
}}}

Why couldn't this function also include the apparently orphanized last_visit attribute right there? Can't be a significant performance penalty, can it?

Oh yeah, going through trac.web.session.!SessionAdmin source:/trunk/trac/web/session.py@11012#L398 doesn't seem to make much sense either. Or...?",lkraav <leho@…>,next-major-releases
enhancement,4298,tickets linked to multiple versions,ticket system,critical,,new,2728 days,14 by 8,"As far as I understand, bug 2945 dealt only with description changes for requirement issues.

I have a different scenario. Say I have a project with versions 1.0, 1.0.1, 1.0.2 and 1.1. a bug is found in 1.0. it is fixed in some way in 1.0.2 and in another way in 1.1

What I'd like to have is the ability to see all open bugs in 1.0 or 1.0.1 (the above bug included), in 1.0.2 (the above bug is fixed, and the comment describing the fix affects 1.0.2) and 1.1 (the bug is fixed in another way)

I think it means only the ability to associate status changes with a version. maybe also priority and severity (in the above scenario, the fix in 1.0.2 may have been partial, not exactly closing the bug for the 1.0.x stream, but lowering the priority)",ittayd@…,next-major-releases
defect,9129,"TypeError: expecting datetime, int, long, float, or None; got <class 'genshi.template.eval.Undefined'>",version control,normal,,new,2729 days,14 by 4,"
==== How to Reproduce ====

While doing a GET operation on `/log/trunk`, Trac issued an internal error.

''(please provide additional details here)''


Request parameters:
{{{
{'action': u'stop_on_copy',
 'limit': u'100',
 'mode': u'stop_on_copy',
 'path': u'/trunk',
 'rev': u'100',
 'stop_rev': u''}
}}}


User Agent was: `Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8`

==== System Information ====

|| '''Trac''' || `0.11.6` ||
|| '''Python''' || `2.5.2 (r252:60911, Jan 20 2010, 21:48:48) ` [[br]] `[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)]` ||
|| '''setuptools''' || `0.6c11` ||
|| '''psycopg2''' || `2.0.13` ||
|| '''Genshi''' || `0.5.1` ||
|| '''Subversion''' || `1.4.6 (r28521)` ||
|| '''Docutils''' || `0.4.1` ||
|| '''jQuery:''' || `1.2.6` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/web/main.py"", line 450, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/web/main.py"", line 227, in dispatch
    data, content_type)
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/web/chrome.py"", line 773, in render_template
    stream.render(method, doctype=doctype, out=buffer)
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py"", line 179, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py"", line 61, in encode
    for chunk in iterator:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py"", line 311, in __call__
    for kind, data, pos in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py"", line 753, in __call__
    for kind, data, pos in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py"", line 592, in __call__
    for kind, data, pos in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py"", line 698, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/output.py"", line 532, in __call__
    for ev in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/web/chrome.py"", line 838, in _strip_accesskeys
    for kind, data, pos in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/web/chrome.py"", line 827, in _generate
    for kind, data, pos in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 569, in _include
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py"", line 298, in _match
    ctxt, start=idx + 1, **vars):
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py"", line 298, in _match
    ctxt, start=idx + 1, **vars):
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py"", line 245, in _match
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 543, in _exec
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 533, in _eval
    for event in substream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 496, in _eval
    for kind, data, pos in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 551, in _flatten
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/path.py"", line 141, in _generate
    subevent = stream.next()
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 569, in _include
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py"", line 234, in _strip
    event = stream.next()
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 543, in _exec
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 533, in _eval
    for event in substream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 496, in _eval
    for kind, data, pos in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 551, in _flatten
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/path.py"", line 141, in _generate
    subevent = stream.next()
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 569, in _include
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/markup.py"", line 234, in _strip
    event = stream.next()
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 543, in _exec
    for event in stream:
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 520, in _eval
    result = _eval_expr(data, ctxt, **vars)
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/base.py"", line 286, in _eval_expr
    retval = expr.evaluate(ctxt)
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Genshi-0.5.1-py2.5-linux-i686.egg/genshi/template/eval.py"", line 180, in evaluate
    return eval(self.code, _globals, {'__data__': data})
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/versioncontrol/templates/revisionlog.html"", line 148, in <Expression u'dateinfo(change.date)'>
    <td class=""date"" py:content=""dateinfo(change.date)"" />
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/timeline/web_ui.py"", line 236, in dateinfo
    pretty_timedelta(date),
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/util/datefmt.py"", line 73, in pretty_timedelta
    time1 = to_datetime(time1)
  File ""/home/trac-migration/.local/lib/python2.5/site-packages/Trac-0.11.6-py2.5.egg/trac/util/datefmt.py"", line 53, in to_datetime
    type(t))
TypeError: expecting datetime, int, long, float, or None; got <class 'genshi.template.eval.Undefined'>

}}}
    ",exarkun,next-major-releases
enhancement,8640,Enable headline numbering,wiki system,normal,,new,2729 days,10 by 6,"For larger wiki pages with a lot sections it's often difficult to differentiate the sections ""level"" (i.e. h1 - h6). It would be helpful if headline numbering could be enabled, e.g.:

== 1. First <H2> headline ==
=== 1.1. First <H3> headline ===
=== 1.2. Second <H3> headline ===
== 2. Second <H2> headline ==
=== 2.1. First <H3> headline ===
==== 2.1.1. First <H4> headline ====
=== 2.2. Second<H3> headline ===
== 3. Third <H2> headline ==

This could be implemented as a user preference so that each user could decide whether he/she wants headline numbering or not. Also note that <h1> headlines (i.e. `=`) should not be numbered as they most likely only appear once on each page.",Sebastian Krysmanski <sebastian@…>,next-major-releases
enhancement,6986,MySQL schema changes for performance,general,major,,new,2740 days,19 by 15,"We have been dealing with extremenly poor Trac performance when using MySQL as the backend database. The root cause is the use of 'text' fields in many columns that should preferably be varchar.

We finally decided to make some schema data changes to improve performance. As a result of these changes, we have substantial performance improvements.  For an example ,the following query is executed very often by Trac:

{{{
SELECT DISTINCT s.sid, n.value, e.value 
FROM session AS s  
LEFT JOIN session_attribute AS n ON (n.sid=s.sid   and n.authenticated=1 AND n.name = 'name')  
LEFT JOIN session_attribute AS e ON (e.sid=s.sid   AND e.authenticated=1 AND e.name = 'email') 
WHERE s.authenticated=1 ORDER BY s.sid; 
}}}

Our execution time dropped from 8 seconds for this query to approximately 0.1 seconds.  When timing this, there were about 6000 rows in the session table, and 20k rows in session_attribute.
 
The only data type changes me made were to convert several columns from text to varchar, primarily colums used often in joins and where clauses. We also added indexes on ticket.{priority,milestone,component}

I am attaching three files:
 - trac_schema_before is a MySQL dump of our table definitions before the changes (Trac 0.10.4 bas schema)
 - trac_schema_after is a MySQL dump of our table definitions after the changes.
 - trac_schema_diffs shows the changes we made.

I recommend that these changes or similar ones be merged into a future Trac version.

Thanks,

mike




",mikeyp@…,next-major-releases
enhancement,11619,Option to show whitespace and tab characters in file and diff view,version control/browser,normal,,new,2746 days,17 by 4,"The TortoiseSVN diff view has the option to show whitespace and tab characters. It would be useful to have an option to do the same in the Trac file and diff views.

[[Image(TsvnDiffView.png)]]",Ryan J Ollos,next-major-releases
defect,12388,Help text output from TracAdmin should be wrapped,admin/console,normal,,new,2762 days,-,"Discussed in th:#12691, the help text should be wrapped so that it fits in a column.

{{{#!sh
trac-admin - The Trac Administration Console 1.0.10

Usage: trac-admin </path/to/projenv> [command [subcommand] [option ...]]

Invoking trac-admin without command starts interactive mode.

help                 Show documentation
initenv              Create and initialize a new environment
attachment add       Attach a file to a resource
attachment export    Export an attachment from a resource to a file or stdout
attachment list      List attachments of a resource
attachment remove    Remove an attachment from a resource
changeset added      Notify trac about changesets added to a repository
changeset modified   Notify trac about changesets modified in a repository
component add        Add a new component
component chown      Change component ownership
component list       Show available components
component remove     Remove/uninstall a component
component rename     Rename a component
config get           Get the value of the given option in ""trac.ini""
config remove        Remove the specified option from ""trac.ini""
config set           Set the value for the given option in ""trac.ini""
deploy               Extract static resources from Trac and all plugins
hotcopy              Make a hot backup copy of an environment
migrate              Migrate to new environment with another database or another
 database without creating a new environment.
milestone add        Add milestone
milestone completed  Set milestone complete date
milestone due        Set milestone due date
milestone list       Show milestones
milestone remove     Remove milestone
milestone rename     Rename milestone
permission add       Add a new permission rule
permission export    Export permission rules to a file or stdout as CSV
permission import    Import permission rules from a file or stdin as CSV
permission list      List permission rules
permission remove    Remove a permission rule
priority add         Add a priority value option
priority change      Change a priority value
priority list        Show possible ticket priorities
priority order       Move a priority value up or down in the list
priority remove      Remove a priority value
repository add       Add a source repository
...
}}}",Ryan J Ollos,next-major-releases
enhancement,12212,Order timeline filters alphabetically by label,timeline,normal,,new,2775 days,3 by 2,"The timeline filters seems to have a random ordering, determined by order in which the extensions points are discovered. It would be nice to have a predictable ordering and it seems logical to order alphabetically by label.",Ryan J Ollos,next-major-releases
enhancement,5997,Clean name-spaces for CSS for 0.11+?,general,normal,,new,2792 days,23 by 9,"I suspect that it may be too late for this, but I think this is a low-risk change.

Trac uses CSS all over the place. This is good. The problem is that I need to pass through some content that *also* uses CSS, and there is a problem of name space collision in the choices of names for the class attribute. Since Trac is cutting over the template system, now is an opportune time to look at CSS issues if there is a desire to do so.

How difficult would it be for Trac to adopt the convention that all class attributes and all id attributes that are emitted from the trac templates would begin with ""trac-"" so that they are less likely to collide with CSS within content?

In our case, we cannot simply import the incoming content once and have done; it is a reference manual that we need to maintain externally via our version control system. Our goal is to simultaneously make it available within the Wiki for commenting and feedback. I considered re-writing the class attributes on our content using XSLT. It is doable, but it is probably beyond the skills of most XSLT authors.",shap@…,next-major-releases
enhancement,4612,Changeset URL to contain the revision in the query string.,version control,normal,,new,2810 days,7 by 4,"I’m using bzr as version control backend provided by the trac+bzr plugin. Since each branch has its own revision numbers, the revisions as seen by trac have the format:

{{{
path/to/branch,revno
}}}

!ChangesetModule.match_request will match 'path' to the revision and 'to/branch,revno' as the path. trac+bzr works around this problem by URL escaping the revision string but the result is highly unreadable and not at all user-friendly.

Attached is a very simple patch I’m using to make trac gracefully handle the above scenario. I have added a configuration switch for the new format because I expect some people would like to keep the old URLs valid. 

The solution is simply to change the changeset URLs from:

{{{
/changeset/revision/path
}}}

to:

{{{
/changeset/path?new=revision
}}}

The latter is also totally consistent with URLs of log and browser:

{{{
/log/path?rev=old_rev&stop_rev=new_rev
/browser/path?rev=revision
}}}

The patch also allows a new changeset notation:

{{{
changeset:path@revision
}}}

Clearly the {{{changeset:revision/path}}} notation cannot be used when revision can contain a slash.
",Peter Dimov <peter.dimov@…>,next-major-releases
enhancement,3273,Add REGEXP support to SQL queries,report system,minor,,new,2810 days,8 by 7,"SQLite allows the use of a REGEXP search ![1]. Such a feature would be useful in cases such as parsing multiple CCs, multiple asignees on a ticket ![2], etc. All that has to be done is to create a user function on the connection ![3].

I've attached a diff of what (I think) will enable this (I am using r3406 currently). The patch will add a user function in SQLite immediately after the connection is made. The user function is called regexp. (See [attachment:trac_sqlite_regexp_r3406.patch])

References:
 1. [http://www.sqlite.org/lang_expr.html]: What is currently allowed in SQLite expressions
 2. #2662: Using REGEXP in SQLite to parse multi-user assignments
 3. [http://initd.org/pub/software/pysqlite/doc/usage-guide.html#creating-user-defined-functions] pysqlite documentation to add a user-defined function",david.l.jones@…,next-major-releases
enhancement,4854,UI Wart: Log viewer navigation links should be duplicated at the bottom of the page,version control/log view,minor,,new,2836 days,5 by 2,"As the summary says. Generally you scroll down the page to see the changesets, then if you don't find the changeset you're after you have to scroll back up to move to the next set.",Alec Thomas,next-major-releases
enhancement,8681,[PATCH] Allow adding usernames to a ticket CC list,ticket system,normal,,new,2841 days,19 by 10,Allow adding usernames to a ticket CC list instead of e-mail addresses for users which can only select checkbox to add themselves to the CC list (and thus cannot control content). For our setup it would be enough to just add a project-wide configuration switch which would tell Trac whether to prefer usernames or e-mail addresses.,Mitar,next-major-releases
enhancement,6118,[patch] Add extension point for Session modification,general,normal,,new,2841 days,4 by 4,"I realize that the IUserdirectory functionality currently scheduled for 0.12 will (and should) in all likelihood supercede this ...but I need it ''now''.

This patch adds a new extension point in {{{trac/web/main.py}}} called ISessionObserver.  Calls to _get_session (performed as part of every request dispatch) will call pass_user_fields(username, email, name) on every component that implements ISessionObserver; the required return is a tuple of the form (newemail, newname).  If the returned values are non-None and different from the original values, the main Session dict is updated before being returned.

What is this good for?  If you've ever wanted to autopopulate-at-login your user's display names and/or email addresses, then here you go.  Apply this patch, then write a plugin that implements ISessionObserver and does your user data lookup in the pass_user_fields method.  If this means hitting a DB, I'd strongly recommend adding some simple caching to your plugin to reduce the flurry of DB hits that this feature would cause :)

'''NOTE:''' you'll probably only want to implement ISessionObserver in one plugin -- having multiple ISessionObserver components will behave in undefined ways since there's no way (to my knowledge) to guarantee the order in which they'll be called.",Morris,next-major-releases
enhancement,548,[Patch] Support for subcomponents,ticket system,normal,,new,2841 days,44 by 28,"I'd like to request the addition of a subcomponent field.  This would be useful for breaking large component pieces into smaller subsets.  In particular, the project I'm working on includes a core engine and several plug-in style projects.  It makes sense to keep it all in the same svn repository as well as the same trac db.  However, with the addition of a subcomponet (or feature or something like that), the granularity of tracking for the plug-in projects would be much better.",acarter24@…,next-major-releases
enhancement,10396,"[PATCH] New extension point interface to reformat the ""replying to"" block in a comment",ticket system,normal,,new,2841 days,5 by 4,"Sometimes you don't want the original text in a response on a ticket in the ""Replying to"" line. Instead some sort of
custom formatting (e.g. abbreviation, reference no.) could be used preferably.

Solution:
A new extension point ITicketCommentFormatter defined in ticket/api.py.

The function quote_original() in ticket/web_ui.py calls the plugins, that implement the new extension point.
So it is possible to reformat the ""replying to"" block in a comment, to leave it unchanged or to drop it at all.
",juliak <kavalerchik@…>,next-major-releases
enhancement,10201,[Patch] WikiProcessors lacks detailed help,wiki system,normal,,new,2841 days,20 by 5,"I've recently discovered the detailed help-feature of WikiMacros, which is activated by adding a question sign (`?`) after a macro name. Example:

{{{
[[TitleIndex?]]
}}}

This will show the detailed help, instead of the result. This is very handy during side-by-side edit to quickly find out the details of the macro.

This feature does **not** work for WikiProcessors, which would be a-nice-to-have feature, and natural since a processor really is a macro. Example:

{{{
{{{
!#TitleIndex?
}}}
}}}

This yields the normal output and not the help information as intuitively expected due to the behaviour of WikiMacros.

It would also be nice if all in-built processors (`div`, `span`, `table` etc) are capable of providing help information that could be brought up during side-by-side editing.",Mikael Relbe,next-major-releases
enhancement,9646,[PATCH] Highlight selected line when #L123 is used in source browser,version control/browser,normal,,new,2841 days,16 by 5,"When viewing a file via the source browser and #L<line number> is used, it would be nice if it'll visually show the line that was passed, especially when its near the end so its not scrolled down right to that line. Also, when it does and scroll the page up and down, its nice to still see the original line you were linked to.",shesek,next-major-releases
enhancement,8961,[PATCH] Linkable lines on diff view,wiki system,minor,,new,2841 days,9 by 5,Lines are not linkable in diff view. This patch modifies diff_div.html so that lines are linkable.,niko.sten@…,next-major-releases
enhancement,8541,[patch] recursive auto-expansion of folders containing only one sub-directory,version control/browser,trivial,,new,2841 days,8 by 4,"... like Vista's explorer does, for example.

The Mercurial repository browser also does something similar, it shows all those nested directories on the same line.

It's quite handy for Java packages, where the actual files are often nested in a chain of single entry directories...

Attaching the patch here, in case other people find it useful.
",Christian Boos,next-major-releases
enhancement,8219,[PATCH] Forward additional parameters from /report to /query,report system,normal,,new,2841 days,9 by 5,"Calling an URL like this
{{{
http://myserver.example/trac/report/10
}}}
redirects to
{{{
http://myserver.example/trac/query?col=x&status=new&...&report=10
}}}

Now, it would be nice, if additional parameters could be passed to the (short) report URL and not be forgotten while redirecting to the query, e.g.
{{{
http://myserver.example/trac/report/10?format=csv&col=description
}}}
would redirect to
{{{
http://myserver.example/trac/query?col=x&status=new&...&col=description&report=10&format=csv
}}}

Ideally, these parameters would be given precedence over those from the report definition (where applicable - i.e. `col` parameters would simply be added, like in the example).",thomas.moschny@…,next-major-releases
enhancement,6492,[PATCH] Change icons on timeline,timeline,normal,,new,2841 days,42 by 12,"would be nice to have icons which are easier to distinguish ..

for example, having a star or something like that on the lower right corner (like the green tick in the closed-ticket-icons)",Markus.Staab,next-major-releases
enhancement,5246,[PATCH] Use permission system to store groups for authz access control,version control/browser,normal,,new,2841 days,13 by 6,"We're currently using LDAP to store our users and groups. Our problem with using Subversion-style authz files for restricting access in Trac is that we'd have to define group memberships again in the authz file itself - thus we'd have to manage group memberships twice: Once in LDAP, once in the authz file (we're currently NOT using an authz file for Subversion itself for exactly this reason - we're doing it the ""hard way"" via Apache configuration instead). Basically, this issue is #4224 the other way 'round.

In this context, it would be great if the authz module could simply use the built-in permission system of Trac to retrieve the groups a user belongs to - and not the authz file.

I've written a patch that adds a configuration option authz_use_perm_groups that's false by default, resulting in the current behaviour. If set to true, Trac will not care about the groups section of the authz file and use the PermissionSystem to retrieve the group names instead (currently by fetching all lower-case permissions for the current user and stripping an eventual @ in front of the group name). I don't know much about the internal design of Trac so my code is probably quite ugly - but at least it works. Feel free to find a nicer solution. :-)

Please note that this patch would interfere with #4997 since Subversion itself does not implement any of this.",christian.seiler@…,next-major-releases
enhancement,3689,"patch for mimeviewer: autodetect charset by ""# -*- coding: windows-1251 -*-""",version control/browser,minor,,new,2841 days,5 by 4,"***** api.py.bak2
{{{
#!python
                return utf
        return self.default_charset
}}}
***** api.py
{{{
#!python
                return utf
        m = re.search(r'-\*-\s+coding:\s*(\S+)\s+-\*-', content[:100])
        if m:
           return m.group(1)
        return self.default_charset
}}}
*****",igor daniloff,next-major-releases
enhancement,2695,[PATCH] Pretty icons for various file types.,version control/browser,normal,,new,2841 days,16 by 10,"I'd like to propose using different icons for various file-types in the browser view.

The Silk icon set at http://www.famfamfam.com/lab/icons/silk/ is ""licensed under a [http://creativecommons.org/licenses/by/2.5/ Creative Commons Attribution 2.5 License] and contains good icons for a number of file-types, including:
 * http://www.famfamfam.com/lab/icons/silk/icons/folder.png a folder icon
 * http://www.famfamfam.com/lab/icons/silk/icons/folder_delete.png folder ""deny""
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white.png a default file icon
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_delete.png file ""deny""
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_acrobat.png Acrobat/PDF
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_actionscript.png Action Script
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_c.png C
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_cplusplus.png C++
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_csharp.png C#
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_code.png Code/Markup
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_coldfusion.png Cold Fusion
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_excel.png Excel
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_flash.png Flash
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_gear.png Settings/Config (gear)
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_h.png .h
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_paint.png Paint
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_php.png PHP
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_ruby.png Ruby
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_visualstudio.png Visual Studio
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_word.png Word
 * http://www.famfamfam.com/lab/icons/silk/icons/page_white_world.png World/Globe
 * ...and others.

Even if no one likes my idea for the different file types, the basic folder, file, and deny icons could be used.

I've started hacking this together in my own Trac install, but I'm not a python developer, so I'm not sure if it's worth anything to anyone else.  I'll be posting a first-attempt patch in just a moment.",Curtis Buys <trac@…>,next-major-releases
defect,8509,[PATCH] use precompiled regex for match_request,web frontend,normal,,new,2841 days,29 by 12,"This patch changes all the trac match_request calls to use precompiled regular expressions, avoiding multiple re compilations per request.
",mixedpuppy <shanec@…>,next-major-releases
enhancement,7371,Use authentication variables populated by Apache,web frontend,normal,,new,2842 days,7 by 3,"Documentation here:
  http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#exposed

If the display name and email are part of the LDAP query, the AUTHENTICATE_DISPLAYNAME and AUTHENTICATE_MAIL environment variables will be set.

Presumably other Apache auth modules may also set these variables. The attached patch will check for the existence of the variables and set the corresponding profile data.
",john.barstow@…,next-major-releases
enhancement,9617,Private user-specific saved ticket queries,report system,minor,,new,2844 days,20 by 9,"I would greatly appreciate the ability to save custom ticket queries on a per-user basis.  Saved queries currently show up in the reports view as part of all the public reports and are visible to everyone.  I would like an option to save a query in a separate section that only I can see.  This could be another section of the Reports view called ""Personal Reports"".  

This way I can save queries that may only be of interest to me, and do things like re-order columns and sorting to my personal preference without affecting everyone else.  This seems like a relatively simple change to make that could enhance user experience.  I think it would also be very useful in multiple project scenarios, which are being planned for Trac 0.13.",nslowes@…,next-major-releases
enhancement,7872,"[Patch] Styling for ""Powered by"" footer element",general,minor,,new,2845 days,16 by 8,"This patch for Trac design alters theme.html and CSS to allow plugins add new ""Powered by"" blocks into footer with a simple jQuery.
{{{
  $('<p>Powered by TracHacks</p>').appendTo(""#footer"");
}}}
",techtonik <techtonik@…>,next-major-releases
enhancement,4080,[Patch] Detect charset using enca or chardet,version control/changeset view,normal,,new,2846 days,10 by 6,"to detect charset in multiply charset repository

http://gitorious.org/enca",mpv,next-major-releases
enhancement,11141,Add ConfigSection to all sections,general,normal,,new,2846 days,3 by 3,"After I modified the [[http://trac-hacks.org/wiki/TracIniAdminPanelPlugin|TracIniAdminPlugin]] to show the description for sections I noticed that a proper description is very helpful.

Please add a !ConfigSection entry for each section, not only for the default-empty ones. Also this would improve [wiki:TracIni].",Dirk Stöcker,next-major-releases
enhancement,7022,Reports Organizer,report system,minor,,new,2857 days,7 by 3,"Improve on the way to organize the list of ''Available Reports'' using folders/sub-folders, groups or tree views.",rmgomes@…,next-major-releases
enhancement,976,Wiki Page redirects to other Wiki pages and possibly other Trac resources,wiki system,minor,,new,2859 days,26 by 13,"There should be a way to redirect from a wiki page to another Wiki page. A ![[Redirect(target)]] macro could do that.
The `target` could actually be any Trac resource, if specified by a TracLink.

That could be handy in several situations:
 - singular/plural form of WikiPageNames: TracLink redirecting to TracLinks
 - direct alias to a source file: ChangeLog redirecting to source:/trunk/ChangeLog
 - direct alias to a ticket: TooManyDatabaseLocks redirecting to #3446

It could be useful to implement this in Trac core instead of a plugin so that one provide a generic way to detect that one was redirected, and eventually provide a ''Edit'' button that would 
trigger the edition of the originally requested page (the one
containing the ![[Redirect]] macro or the #redirect directive, 
or whatever is chosen to implement it...)


",Christian Boos,next-major-releases
enhancement,11163,Option to set HTML title.,wiki system,minor,,new,2859 days,2 by 2,"Currently no option to set HTML title. At preset, title seems to be the same as the page name. The problem with this is the title can end up like ""section/subsection/subsubsection/mypage"" which isn't very handy.

I've tried using the html processor, as follows; 
!{{{
#!html
<head><title>Test Title</title></head>
}}}
but no luck there either.",anonymous,next-major-releases
enhancement,10945,"horizontal scrollbar in ""editing wiki"" textareas",wiki system,minor,,new,2872 days,4 by 3,"Hi there, 

Could you please add an horizontal scrollbar to ""Editing wiki"" textareas 
i.e. could you please change 
{{{<textarea id=""text"" class=""wikitext"" name=""text"" cols=""80"" rows=""20"">}}}
to 
{{{<textarea id=""text"" class=""wikitext"" name=""text"" cols=""80"" rows=""20"" wrap=""off"">}}}
Wrapping is really annoying when you have large arrays.
I know the ""off"" value of the wrap attributes is not (yet?) supported in HTML5 (http://www.w3schools.com/html5/att_textarea_wrap.asp).
But all browsers I've tried support it: Firefox(16), Opera(12), Chrome(23), Safari(5), IE(7).
And there does not seem to exist any other way to do so (css white-space:nowrap, ...).

Cheers, 
Mathieu
",mtrocme,next-major-releases
enhancement,12004,Replace uses of assert with exception-raising statements,general,normal,,new,2878 days,6 by 1,"It was noted in comment:7:ticket:11295 that we should consider replacing uses of `assert`, which will be removed when running the Python interpreter in optimized (`-O`) mode, with `raises`. Here is an example: [browser:/tags/trac-1.0.5/trac/web/session.py@:242-244#L241].

There are a few possible paths we could pursue:
1. Replace all uses of `assert`.
1. Use `assert` to protect against coding errors, `raise` exceptions for errors that can be triggered by a user in the scenario of proper-functioning code.

Whichever approach we take, it should be captured in TracDev/CodingStyle.",Ryan J Ollos,next-major-releases
enhancement,8607,Option to skip notification to subscribers when a ticket is updated,notification,normal,,new,2885 days,18 by 11,"Consider the following scenarios for editing a ticket:
 1. Changing a minor typo in the ticket '''Description'''
 1. Adding some entries to the '''Keywords''' field
 1. Changing the '''Milestone''', '''Component''', '''Type''', etc ...
 1. Adding an attachment, when the attachment was mentioned in the previous message, therefore all users can expect it will be posted to the ticket within minutes and don't need to see another email telling them an attachment was added.

Users on my team receive a lot of email from Trac each day, and it is frustrating and Trac becomes less effective when they receive email notifications when someone is just cleaning up or making some minor changes to a ticket.

Rather than setting up a lot of options in ''trac.ini'' that determine who and when a subscriber is notified of changes, I propose that a checkbox is added to the right of '''Submit Changes'''.  When the '''Don't Notify Subscribers''' checkbox is selected, notifications emails are not sent on a ticket update.

[[Image(SubmitChangesButton.png)]]

The question then arises, what permission should be required for this checkbox to be present.  Perhaps someone running a Trac instance does not want users to be able to change a ticket without, for instance, the ticket's owner receiving a notification.  I propose two options for the [notification] section of trac.ini.

 1. `optional_notify_authenticated = {true, false}`
 1. `optional_notify_anonymous = {true, false}`

Option 1 would show/hide the '''Don't Notify Subscribers''' checkbox for authenticated users.  Option 2 would show/hide the '''Don't Notify Subscribers''' checkbox for anonymous users.  Users with `TICKET_ADMIN` permission would always see the checkbox.



",Ryan J Ollos,next-major-releases
task,11985,Create a [database] section in trac.ini,database backend,normal,,new,2907 days,4 by 2,"Continuing with the theme of better categorizing the options in trac.ini (#11776, #11703, #11849, #11956, and less-so #11856, #11976), I'm considering the following:

* `[trac]` `backup_dir` -> `[database]` `backup_dir`
* `[trac]` `database` -> `[database]` `connection_uri`
* `[trac]` `timeout` -> `[database]` `connection_timeout`
* `[trac]` `debug_sql` -> `[database]` `debug_sql`
* `[trac]` `pg_dump_path` -> `[postgresql]` `dump_path`
* `[trac]` `mysqldump_path` -> `[mysql]` `dump_path`

I'm considering putting the latter two in the `[database]` section, however note that an [TracIni#sqlite-section [sqlite]] section already exists.

Careful review of the `[trac]` section may lead to some other options for re-categorization. Given the number of Option changes that are already made for milestone:1.2, it seems best to make these changes before that release.",Ryan J Ollos,next-major-releases
enhancement,8314,Dynamic Default Values,ticket system,normal,,new,2907 days,5 by 4,"In the config file, we have options to provide default values for multiple fields. It appears that these can only be string literals though. 

Is it possible, or easy to implement, a dynamic default value. 

More specific:

The way I have permissions set-up, there are several groups. Each user belongs to one of these groups, and has no other permissions set. 

I want this group to be the default value for a field, so that we can later sort them by what group/company these tickets originated from.

thanks",anonymous,next-major-releases
enhancement,11133,Color overdue dates red,general,normal,,new,2941 days,3 by 2,"Create config option for 'due_date_fields' in reports.
    
These dates are colored red if in the past.

This implementation assumes dates are stored in a text custom field in ISO format (i.e., yyyy-mm-dd).
",chris.nelson.1022@…,next-major-releases
defect,10185,"Roadmap view doesn't cache ""Show completed milestones""",roadmap,normal,,new,2941 days,7 by 5,"When enabling ""Show completed milestones"" it isn't cached, so when calling Roadmap page again it isn't enabled. Same for ""Hide milestones with no due date"".",anonymous,next-major-releases
defect,9689,Links on  SVG images do not work,rendering,normal,,new,2948 days,12 by 7,"I have a SVG graphic with external links. I can open this graphic in my web browser and get redirected to the external links (by clicking on the image). After attaching this image to a wiki post (in trac), this is no longer possible.
I attached the SVG I tried to upload in a wiki.",anonymous,next-major-releases
enhancement,11887,List Ticket Attachments in TracNotification,notification,normal,,new,2955 days,5 by 4,"I'd like to list the filenames and possibly URLs of a ticket's attachments in each notification email.  I need to gain access to ticket attachments in the `trac_notify_email.txt`.  I've been working on it for the past couple of days and am not sure if this is possible.  Please excuse my limited experience working with Trac and Genshi.

Is this something that can be done currently?  If not maybe it's worth adding as a feature?  Thanks",anonymous,next-major-releases
enhancement,11959,"Add custom fields to ""Group results by"" drop down in Custom Query page.",ticket system,normal,,new,2973 days,4 by 2,"Currently, the ""Group results by"" drop down in the ""Custom Query"" page only includes standard fields.  No custom ticket fields appear there.

It would be very useful to include custom fields there.
",anonymous,next-major-releases
enhancement,10739,Give Trac a sidebar widget provider,web frontend,normal,,new,2974 days,3 by 3,"I think it's about time. I searched ""sidebar"" through tickets and am not seeing any discussion about this topic throughout the years.

First, let's take wiki for example:

 * there's plenty of horizontal room on the screen even with minimum resolutions (1024x)
 * all room is currently filled with text...
 * but usability guidelines say text readability starts to suffer at >600px width

So there's plenty of room available.

Second, ticket view:

 * we simply have a centered ticket view, although having much better width for usability (compared to wiki), there's A LOT of whitespace filling the edges
 * whitespace is monstrous with larger screens
 * '''most importantly''' key pieces of information are mostly out of sight - i foresee launchpad style participant list, various statistics about the ticket, etc other useful things

Third, search view:

 * faceted browsing, with ebay style checkboxes controlling search results

I'll stop here with the examples at the moment.

th:FullBlogPlugin already has useful sidebars self-implemented. rjollos has also worked on th:TicketSidebarProviderPlugin. I hereby propose a universal sidebar area and some standardized Provider interfaces for plugin authors to fill them with their widgets if they so desire.

Sidebars should of course be '''optional''' for the user. I am '''not''' proposing that core start creating new widgets for the sidebar, at least not right off the bat. Perhaps some single widget as a learning example. Whatever comes over time, comes. I think many of the useful things people create can be adopted easily due to widgets usually being very focused and therefore small in code size.

Also, I just lately ran into a [http://blog.jackcheng.com/post/25160553986/the-slow-web clean blog design with a position:fixed sidebar] and absolutely loved the feeling of control there. Just a design experiment thought.

[http://wordpress.org WordPress] for one, which I've lately worked with extensively, has a very polished widget system (and a lot more that Trac should adopt over time.. except PHP!) :>. This surely has affected my thinking about this. If any of the people interested in this want to have access to a demo site to get a feel of how it works there, I can easily provide access.",lkraav <leho@…>,next-major-releases
defect,12121,Subversion copies could show peg revision in browser view,version control/browser,normal,,new,2976 days,1 by 1,"Here is an example from the browser view:
{{{#!html
<li>
          <div class=""cp""> </div>
            <a title=""Show entry in browser"" href=""/browser/psi/Projects/Presto/Software/tags/urs_1.02.06?rev=10791"">
              Projects/Presto/Software/tags/urs_1.02.06
            </a>
          <span class=""comment"">(copied)</span>
            <small><em>(copied from <a href=""/browser/psi/Projects/Presto/Software/branches/REL-1.xx-URS?rev=10603"" title=""Show original file (revision 10603)"">
                Projects/Presto/Software/branches/REL-1.xx-URS</a>)</em></small>
            </li>
}}}

The proposed change is to show the peg revision in the path:

{{{#!html
<li>
          <div class=""cp""> </div>
            <a title=""Show entry in browser"" href=""/browser/psi/Projects/Presto/Software/tags/urs_1.02.06?rev=10791"">
              Projects/Presto/Software/tags/urs_1.02.06
            </a>
          <span class=""comment"">(copied)</span>
            <small><em>(copied from <a href=""/browser/psi/Projects/Presto/Software/branches/REL-1.xx-URS?rev=10603"" title=""Show original file (revision 10603)"">
                Projects/Presto/Software/branches/REL-1.xx-URS@10603</a>)</em></small>
            </li>
}}}",Ryan J Ollos,next-major-releases
defect,10317,"log?rev=N&stop_rev=N-1&limit=2 only shows a single revision, but should show two revisions",version control/log view,normal,,new,2977 days,4 by 3,"To reproduce:

* Go to http://trac.edgewall.org/log/trunk?rev=10769&stop_rev=10768&limit=2

Only a single revision is shown. If you instead go to either of these URLs:

* http://trac.edgewall.org/log/trunk?rev=10769&stop_rev=10768&limit=3
* http://trac.edgewall.org/log/trunk?rev=10769&limit=2

…two revisions are shown.

Since ""limit"" corresponds to the ""Show at most N revisions per page"" form field, it seems like limit=2 should allow 2 revisions to be shown, even when combined with rev and stop_rev.",adam@…,next-major-releases
enhancement,12077,Ticket workflow should support negated permissions,ticket system,normal,,new,2984 days,2 by 1,"This would support the user case of overlapping workflow actions in which it is redundant to show both actions to a user that has the higher permission. For example, consider a case in which any user with `TICKET_MODIFY` can reopen a ticket, but only a user with `TICKET_ADMIN` can reopen and change the owner of a ticket. The user with `TICKET_ADMIN` would see both the //reopen// and //reopen_and_assign// actions, which is redundant.
{{{#!ini
reopen.permissions = TICKET_MODIFY, !TICKET_ADMIN
reopen_and_assign.permissions = TICKET_ADMIN
}}}",Ryan J Ollos,next-major-releases
defect,9478,Concurrent ticket modifications is still possible,ticket system,minor,,new,2985 days,3 by 3,"Before saving a ticket modification, we try to detect if the page was not already modified by another user (r5449). However this check is not done within a single transaction, and therefore it can be ineffective if two changes happen concurrently.

See ticket:9235#comment:10 for an example (or `comments:10` actually ;-) ).",Christian Boos,next-major-releases
enhancement,11452,Implement a set_field workflow action,ticket system,normal,,new,2985 days,7 by 3,"As mentioned on the [https://groups.google.com/d/msg/trac-users/lxDpEoiF8ws/VvQXnM0YmNMJ mailing list], it would be nice to have a `set_field` action that would couple a specified field to a workflow action in the same way that `set_owner` and `set_resolution` couple the owner and resolution fields to the workflow action.
",Ryan J Ollos,next-major-releases
enhancement,9073,Allow milestones on roadmap to be folded,roadmap,minor,,new,2985 days,9 by 4,"The motivation for this feature is that we have a lot of milestones on our Trac system, and it is sometimes a bit difficult to navigate the roadmap page or get a view of all the upcoming milestones without scrolling.

As discussed in #9036, I initially thought the best way to improve this would be to set up some filters via a plugin (filer to show only milestones due within a certain time period, and so forth). However, I really like the way that Trac 0.12's ticket view has the '''Modify Ticket''' section folded on initial view.

It occurred to me today that a really good solution for my group's purposes would be to just show the milestone summary, and perhaps the due date on initial view of the roadmap page. The description and progress bar would be folded initially.

Alternatively, just the description could be folded, but I'd prefer the former.

Would this be a good change to make to Trac? If the change was made, would you want an option, perhaps in TracIni, to determine if milestones are initially shown as folded when navigating to the roadmap page?

",Ryan J Ollos,next-major-releases
defect,9141,'Retarget associated tickets' does not respect [milestone-groups] config,roadmap,normal,,new,2985 days,3 by 3,"Hi,

first of all thanks for a great application.

We recently completed a large milestone with 300 associated tickets. We use a custom [milestone-groups] section to accomodate QA after the ticket has been marked closed by the developer.

{{{
[milestone-groups]
active = *
active.css_class = open
active.label = in progress
active.order = 1
closed = closed,verified
closed.order = 0
closed.overall_completion = true
closed.query_args = group=resolution
}}}

After closing the milestone, all tickets with verified status were moved to the next milestone, leaving us with ~20 tickets on the completed one.

'Retarget associated tickets' should respect the [milestone-groups] section.",jakob.gruber@…,next-major-releases
enhancement,7690,Add doctype supporting mathml,rendering,normal,,new,2998 days,9 by 7,"I've been trying to add support for mathml in the Trac wiki.  We work on the development of algorithms for imaging and the inclusion of equations into tickets and the wiki would be extremely useful.

I think that we can do this by using the commands to embed html into the wiki markup then cutting and pasting mathml from an editor.  The issue is that genshi doesnt support a suitable doctype and there is also no way of setting the doctype on a per project basis

Ideally, I would like the following definition to be available so that math code can be pasted into the wiki

{{{#!xml
<?xml version=""1.0"" encoding=""UTF-8""?>
<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN""
               ""http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"" [
  <!ENTITY mathml ""http://www.w3.org/1998/Math/MathML"">
]>
}}}",Tim Kerby,next-major-releases
enhancement,2141,Upload more than one attachment at a time,attachment,normal,,new,2998 days,36 by 21,It would be nice to be able to upload and delete multiple attachments.,anonymous,next-major-releases
defect,11977,Attachment title in search results does not render closed ticket with strikethrough,attachment,normal,,new,3002 days,2 by 1,"Ticket #10833 is closed, but the attachment title does not indicate that.

[[Image(NotStrikethrough.png)]]",Ryan J Ollos,next-major-releases
defect,10764,refactor changeset search,version control,major,,new,3002 days,3 by 1,"Currently it's done at the level of the `ChangesetModule`, assuming all the data is in the database's `revision` table!

(see [source:trunk/trac/versioncontrol/web_ui/changeset.py@11093#L1143])

Obviously this won't work for non-cached repositories. The current implementation needs to be moved to the cached repository and each repository should be able to provide results (or not, e.g.  on a per repository basis depending on some settings, like don't search that non-cached linux repo, as it's too big).",Christian Boos,next-major-releases
enhancement,4827,TracPermissions to access WebAdmin should be more fine-grained,admin/web,normal,,new,3019 days,2 by 2,"I stated the problem broadly, but really there is one simple set of permission that would help me out with 95% of my need:

{{{COMPONENT_CREATE}}}, {{{COMPONENT_MODIFY}}} (etc): access to create/modify (etc) components via WebAdmin, but no other part of WebAdmin.

Currently, I am giving far more users {{{TRAC_ADMIN}}} permissions than I am comfortable with, just so they can CRUD components without needing to bother an admin.",nick+trac@…,next-major-releases
enhancement,6173,"Allow accounts to be disabled, such that they no longer receive email notifications",notification,major,,new,3020 days,11 by 7,"When a developer or other Trac user becomes inactive in a project, it would be nice to be able to simply 'lock' their account, preserving as much information as possible. Because otherwise they'll be receiving email notifications for every bug they've reported, etc.

Workarounds, and why they're undesirable:
 * Modify every ticket they've reported. Error-prone and tedious, plus minor data loss.
 * Modify the configuration of the mail server to alias the login to /dev/null. Not always practical, and sometimes you still want non-automated emails to go through to them.
 * {{{DELETE FROM session WHERE sid=:developername AND var_name='email';}}} Someone needs to look this code up, and if the schema changes it might break. Also, encouraging people to mess with the database internals is probably a bad idea in the long term.

If there's a way for Trac to determine whether the auth system has locked an account, relying on that would probably be the most elegant solution.",anonymous,next-major-releases
enhancement,11862,Allow keywords to be highlighted in code WikiProcessor,rendering,normal,,new,3029 days,2 by 1,"The proposed enhancement adds a `keywords` WikiProcessor argument, for highlighting in bold the words or phrases specified in a comma-separated list. Related to SO:21775494.",Ryan J Ollos,next-major-releases
defect,6515,Trac detected an internal error: Session ID not set,general,normal,,new,3033 days,17 by 10,"Oops…
Trac detected an internal error:

If you think this really should work and you can reproduce it, you should consider reporting this problem to the Trac team.

Go to http://trac.edgewall.org/ and create a new ticket where you describe the problem, how to reproduce it. Don't forget to include the Python traceback found below.

TracGuide — The Trac User and Administration Guide
Python Traceback

{{{
Traceback (most recent call last):
  File ""/usr/local/lib/python2.5/site-packages/trac/web/main.py"", line 406, in dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/local/lib/python2.5/site-packages/trac/web/main.py"", line 184, in dispatch
    req.session = Session(self.env, req)
  File ""/usr/local/lib/python2.5/site-packages/trac/web/session.py"", line 48, in __init__
    self.get_session(sid)
  File ""/usr/local/lib/python2.5/site-packages/trac/web/session.py"", line 90, in get_session
    self.bake_cookie()
  File ""/usr/local/lib/python2.5/site-packages/trac/web/session.py"", line 56, in bake_cookie
    assert self.sid, 'Session ID not set'
AssertionError: Session ID not set
}}}",franz.x.maier@…,next-major-releases
enhancement,4980,"configurable default value for ""Group results by"" in Milestone view",roadmap,minor,,new,3041 days,4 by 2,"It would be nice to have ability to define default value for field ""Group results by""",eapenkin@…,next-major-releases
enhancement,11730,Don't quickjump if multiple words in search phrase,search system,normal,,new,3042 days,2 by 1,"I noticed when seaching for a ticket that `TracLinks wiki diff` will result in a quickjump to the TracLinks page. When multiple words are used for search, I assume in most cases the user does not want to quickjump.",Ryan J Ollos,next-major-releases
enhancement,3021,wiki namespace support like the one in dokuwiki,wiki system,major,,new,3047 days,9 by 5,"It would be very great to have wiki namespace support, for sorting wiki pages and protect user to build too big pages. I think it's very important to support wiki namespaces. 
----
As the topic is broad, it's worth to discuss it in a specific proposal page, see TracDev/Proposals/WikiNamespaces.",trac.ticket@…,next-major-releases
defect,3470,improve handling of scoped repositories with copy history,version control,major,,new,3047 days,12 by 5,"While testing r3015, the revisions are still not working properly.  I removed trac 0.9.6, checked out and installed r3570.  I ran all the required upgrade commands and resync'd, but trac still always shows one rev for the part of the svn repo moved from another part.

Here's an example... the svn repo had proj1/trunk/java/src and proj2/trunk/websrc.  I renamed websrc in proj2/trunk to src.  Then I created proj1/trunk/web and moved src from proj2/trunk to proj1/trunk/web.  When I make a change to web/src/file1 the revision is incremented, but all files in web/src show that revision too.

If I point trac to the root of the repo and resync, things work better, but if I point to proj1, the revision for the moved code is always the latest revision for files that haven't been updated since the move.

I'm guessing this is because trac is indexing only the current point in the history since the move.",posterday@…,next-major-releases
enhancement,3386,Embedding part of Wiki in other Wiki (e.g. Help: prefix for the TracGuide),wiki system,normal,,new,3047 days,9 by 6,"I'd like to be able to embed part of Wiki associated with some project in Wiki of other project, in order to reduce duplication of information and avoid using external links between wikis.

By `embed` i mean they do share (part of?) namespace, and links between them are internal to wiki. The embedded part should be accessible, linkable and editable from both Wikies, without using any special syntax nor, possibly, addresses.

Example:
lets say i have:
 * /projects/FlagshipProject, containing:
  * wiki/Globals/AboutDevelopers/*,
  * wiki/Globals/AboutCompany/*,
  * wiki/Globals/OtherStuff;
and 
 * /projects/OtherProject.
In Wiki of the later i'd like to embed /projects/FlagshipProject/wiki/Globals/*",dexen^^^goofy.pl,next-major-releases
defect,8645,More readable header IDs,wiki system,normal,,new,3047 days,14 by 5,"The initial report was about invalid header IDs; they're actually not invalid in XHTML 1.0, but their readability can nevertheless be greatly improved. Re-targeting the ticket that way, see comment:5 for details.


=== Original Report

Headers IDs generated from headers with non-ASCII characters keep/have them what is invalid:

  An ID attribute does not conform with the HTML document type specification. ID tokens must begin with a letter, and may contain only letters, digits, hyphens, underscores, colons, and periods.

We could do something like [http://search.cpan.org/~sburke/Text-Unidecode-0.04/lib/Text/Unidecode.pm Text::Unidecode].",Mitar,next-major-releases
enhancement,1132,Use Subversion (or the source repository) for Trac's data as well,general,critical,,new,3047 days,68 by 37,Use Subversion for data repository like [http://subwiki.tigris.org/ subwiki],twenim@…,next-major-releases
enhancement,2465,"Add ""custom query"" functionality for changesets",version control/changeset view,critical,,new,3047 days,5 by 2,"I think it would be really useful to have the ability to quickly define queries on changesets, similarily to what can be done on tickets (ie. with a GUI allowing filters on changeset comments, author, file path and commit dates).[[BR]]
This page should also implement RSS feed (as Ticket custom queries), to allow notification of specific changes. [[BR]]

I suppose that the implementation would be similar to the ticket 'custom query' page (but I havn't looked in depth at the code, not being a Python developer... yet).
I leave it to the TRAC people to set milestone, priority, etc. Many Thanks for this great software BTW.",guillaume.tardif@…,next-major-releases
enhancement,1329,Ticket Search should (optionally) search only non-closed tickets,ticket system,major,,new,3047 days,23 by 10,"One of the popular uses for searching (I believe) is to search the ticket database if an issue has already been filed. It would help if the search would only search tickets that have not been closed. 

This request is similar to Ticket #584 but I would like a way to filter the results so that only open tickets are displayed in the search result. It does not help much if you need to browse loads of resolved tickets to find the one open ticket you are looking for.

''fixed typos''",Norbert Unterberg <nepo@…>,next-major-releases
enhancement,2456,Implement API for user management,general,major,,new,3047 days,56 by 27,"I'm adding this ticket to keep track of the on-going discussion about creating a new 'user detail' interface to Trac.

The new interface would be something like:

{{{
#!python
class IUserProvider(Interface):

  def get_known_users(attrs=('name', 'email'), limit=None):
      pass

  def get_user_attribute(user, attr):
      pass

  def get_supported_attributes():
      pass
}}}

Related ML thread:
 * http://lists.edgewall.com/archive/trac/2005-December/005771.html
",Emmanuel Blot,next-major-releases
enhancement,2469,timeline should show my own tickets in bold,timeline,major,,new,3047 days,14 by 8,"Everyday when I start working, I check the Timeline to see what's up.
Someone may have changed or commented on a ticket I'm working on.
So, the Timeline should display my own tickets in bold (or other visual clue).

btw, thanks for the great product. we started using it in october, and all the team is pleased.",rodolfo.borges@…,next-major-releases
defect,5535,[inherit] not working for me (error on missing config),general,major,,new,3047 days,20 by 10,"plugins in the inherited plugin directory don't show up in my administration, etc.  They work fine if I move them into the local trac env's plugins directory.

local and global confs attached.",Dave Abrahams <dave@…>,next-major-releases
enhancement,1796,Stylesheet for Docutils output,rendering,minor,,new,3047 days,20 by 8,"{{{
#!rst
Some output elements (e.g. line blocks or admonitions) of reStructuredText look really crappy without a stylesheet.

May I suggest you store tools/stylesheets/default.css from the Docutils tarball at /trac_common/css/docutils.css and add ``@import url(/trac_common/css/docutils.css)`` in front of the other import statements?

The Docutils stylesheet shouldn't interfere with any elements outside the Docutils-generated HTML code.
}}}",Felix Wiemann <Felix.Wiemann@…>,next-major-releases
defect,2036,Inconsistent sub-menu on Browse Source comparing with View Tickets,report system,minor,,new,3047 days,8 by 4,"Menu ''View Tickets'' contains two sub-items:
 * ''Available Reports''
 * ''Custom Query''
An item are not clickable when active.

In opposite, ''Browse Source'' contains one sub-item that changes its value depending on the active selection:
 * ''Revision Log''
 * ''View Latest Revision''

This needs to be unified in either way.",pkou at ua.fm,next-major-releases
enhancement,3251,A documentation about components should be added,wiki system,minor,,new,3047 days,17 by 8,"I'm trying to update the list of components for my ticket system, but I've been unable to find any way in either the gui or configuration that will allow me to do this.",dcarter@…,next-major-releases
enhancement,3320,Custom fields can't be hidden,ticket system,minor,,new,3047 days,11 by 6,"Though this is already fixed in the new workflow branch, it would be nice to fix this for 0.10. 

All that needs to be done is add to following [source:trunk/trac/ticket/api.py@3444#L161 here]:
{{{
#!python
'skip': config.getbool(name + '.skip', False)
}}}",coderanger@…,next-major-releases
enhancement,3584,"[PATCH] Zip file names should match the latest version of their contents, not of the whole repository",version control/browser,minor,,new,3047 days,14 by 8,"The original ticket appears as th:ticket:558.

I don't know which solution is the best to implement such a feature (renaming feature as Alec suggested, ...), but the current implemention is a real issue on multi-project host servers such as TracHacks.
",Emmanuel Blot,next-major-releases
defect,3841,commit after adding attachments to tickets,attachment,minor,,new,3047 days,8 by 7,"I had the problem after adding attachments I lost my other changes to the ticket: either I had to click the back button in my browser twice or go to the ticket again (now with attachments) and add other changes.

Wouldn't it be better in a ticket after adding an attachment to go back to the ticket view and be able to either click ""Submit changes"" or ""Cancel"" as usual (including the fresh attachement)?? ",anonymous,next-major-releases
defect,4398,Inconsistent search for single-digit tickets,search system,minor,,new,3047 days,6 by 4,"If you search for #1 in the search field, you will jump to that ticket.  If you try to search for #1 on the search page, you get an error that the search term is too short.  (So you'll get that error on the first 9 tickets of the project.)

It is also useful to search for tickets that reference a ticket number; perhaps the search page should do that instead.
",eli.carter@…,next-major-releases
enhancement,5856,Enterprise workflow enhancements for request info,general,minor,,new,3047 days,6 by 5,"I'm trying to use the enterprise workflow and I stumbled upon some obstacles.

For example:
A new ticket is created and assigned to a user. 
The user finds he needs more information so he presses request info.
The ticket gets state infoneeded_new and the only actions available is provide_info and leave.

Suggestion:
 1. Make it possible to assign a user when requesting more information. If in the infoneeded_new state I would like it to be automatically assigned to the reporter
 2. It should alse be able to reassign a ticket in infoneeded_new state.

2. Can be fixed by adding the following to the workflow:
{{{
reassign_infoneeded_new = infoneeded_new -> infoneeded_new
reassign_infoneeded_new.name = reassign
reassign_infoneeded_new.operations = set_owner
reassign_infoneeded_new.permissions = TICKET_MODIFY
}}}

1. Looked easy but I found something unwanted in default_workflow.py. Apparently set_owner adds a ""to"" between the name and the assignee.
If I modify requestinfo_new to:
{{{
requestinfo_new = new -> infoneeded_new
requestinfo_new.name = request info from
requestinfo_new.operations = set_owner
requestinfo_new.permissions = TICKET_MODIFY
}}}
Then the output will be:
request info from to 

Isn't it better to remove the ""to"" from default_workflow.py and let the user configure the whole string in trac.ini instead?

Cheers / Erik",kirean@…,next-major-releases
enhancement,6249,Customized field labels for standard fields,ticket system,minor,,new,3047 days,2 by 2,I'd like to be able to easily modify the labels on standard fields.,anonymous,next-major-releases
enhancement,6365,Show trac:summary (oneliner_properties) property at the directory level,version control/browser,minor,,new,3047 days,2 by 2,"If !trac:summary is set on `trunk/prop` I think it would be good to see it shown in the listing for `trunk`, e.g.:

{{{
Name   	               Size   	Rev  	 Age   	Last Change
addins                            7        3    Something
prop  Proposal files              9        2    Something else
zap.py                 11k        3       23    Imported
}}}

if for example !trac:summary was set to 'Proposal files' on prop.
",TerryBrown,next-major-releases
enhancement,6858,Improve intra-line diff highlighting,version control/changeset view,minor,,new,3047 days,8 by 6,"Looking at this one:
http://trac.edgewall.org/wiki/TracInstall?action=diff&version=231

{{{
#!diff
--- TracInstall
+++ TracInstall
@@ -43,7 +43,7 @@
 * [http://www.postgresql.org/ PostgreSQL] 
 * [http://initd.org/projects/psycopg2 psycopg2] or [http://pypgsql.sourceforge.net/ pyPgSQL] 
 
- '''Warning''': Postgresql-8.3 uses a strict type checking mechanism. To use trac with the 8.3 Version of Postgresql, you will need the latest version of trac. 
+ '''Warning''': PostgreSQL 8.3 uses a strict type checking mechanism. To use Trac with the 8.3 Version of PostgreSQL, you will need the latest version of Trac. 
 
 === For MySQL === 
 
}}}

I think we should be able to do much better, something like:

{{{
#!html
<div class=""diff""><ul class=""entries""><li class=""entry"">
  <h2>TracInstall</h2>
  <table cellspacing=""0"" summary=""Differences"" class=""inline"">
   <colgroup><col class=""lineno""/><col class=""lineno""/><col class=""content""/></colgroup>
   <thead><tr>
    <th>old</th>
    <th>new</th>
    <th> </th>
   </tr></thead><tbody><tr><th>43</th><th>43</th><td class=""l""><span>* [http://www.postgresql.org/ PostgreSQL] </span> </td></tr><tr><th>44</th><th>44</th><td class=""l""><span>* [http://initd.org/projects/psycopg2 psycopg2] or [http://pypgsql.sourceforge.net/ pyPgSQL] </span> </td></tr><tr><th>45</th><th>45</th><td class=""l""><span/> </td></tr></tbody><tbody class=""mod""><tr class=""first""><th>46</th><th> </th><td class=""l""> '''Warning''': Postgre<del>sql-</del>8.3 uses a strict type checking mechanism. To use <del>t</del>rac with the 8.3 Version of Postgre<del>sql</del>, you will need the latest version of <del>t</del>rac.  </td></tr><tr class=""last""><th> </th><th>46</th><td class=""r""> '''Warning''': Postgre<ins>SQL </ins>8.3 uses a strict type checking mechanism. To use <ins>T</ins>rac with the 8.3 Version of Postgre<ins>SQL</ins>, you will need the latest version of <ins>T</ins>rac.  </td></tr></tbody><tbody><tr><th>47</th><th>47</th><td class=""l""><span/> </td></tr><tr><th>48</th><th>48</th><td class=""l""><span>=== For MySQL === </span> </td></tr><tr><th>49</th><th>49</th><td class=""l""><span/> </td></tr></tbody>
  </table>
 </li>
</ul></div>
}}}

That would be especially useful for Wiki text diffs, where it's common to have one line for a full paragraph, but the clarity of code diffs would probably benefit of this enhancement as well.

A somewhat related enhancement would be to have an heuristic for triggering the intra-line diff highlighting also when the base and new block length differ, as it's common to have common lines changed together with lines added/removed, in the same chunk.

",Christian Boos,next-major-releases
enhancement,7043,save custom queries,report system,minor,,new,3047 days,15 by 3,It would be very helpful to be able to return to custom queries. Especially when adding a ticket you can't get back to the query that you were working off of.,dmeyers@…,next-major-releases
enhancement,7044,RSS feed on Sourcechanges,version control/browser,minor,,new,3047 days,3 by 3,"In 'Browse Source' add RSS feed on changes for a specific directory.

This would be usefull for developers interested only in a part of the sourcecode changes.
If a directory has changes in sourcecode it should give a new RSS feed.

",allarddijk@…,next-major-releases
enhancement,756,trac-admin initenv might prompt for a wiki-default path,admin/console,normal,,new,3047 days,7 by 6,"Trac-admin prompts for default template path, but not for default wiki page path.

The following patch supports wiki-default path on command line and prompts for such a path when {{{initenv}}} command is invoked.

=== Proposed patch ===

{{{
#!diff
Index: scripts/trac-admin
===================================================================
--- scripts/trac-admin	(revision 915)
+++ scripts/trac-admin	(working copy)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python
 # -*- coding: iso8859-1 -*-
 __author__ = 'Daniel Lundin <daniel@edgewall.com>, Jonas Borgström <jonas@edgewall.com>'
 __copyright__ = 'Copyright (c) 2004 Edgewall Software'
@@ -427,7 +427,7 @@
 
     ## Initenv
     _help_initenv = [('initenv', 'Create and initialize a new environment interactively'),
-                     ('initenv <projectname> <repospath> <templatepath>',
+                     ('initenv <projectname> <repospath> <templatepath> <wikipath>',
                       'Create and initialize a new environment from arguments')]
 
     def do_initdb(self, line):
@@ -460,6 +460,13 @@
         dt = trac.siteconfig.__default_templates_dir__
         prompt = 'Templates directory [%s]> ' % dt
         returnvals.append(raw_input(prompt) or dt)
+        print
+        print ' Please enter location of Trac initial wiki pages.'
+        print ' Default is the location of the site-wide wiki pages installed with Trac.'
+        print
+        dw = trac.siteconfig.__default_wiki_dir__
+        prompt = 'Wiki pages directory [%s]> ' % dw
+        returnvals.append(raw_input(prompt) or dw)
         return returnvals
          
     def do_initenv(self, line):
@@ -470,18 +477,21 @@
         project_name = None
         repository_dir = None
         templates_dir = None
+        wiki_dir = None
         if len(arg) == 1:
             returnvals = self.get_initenv_args()
             project_name = returnvals[0]
             repository_dir = returnvals[1]
             templates_dir = returnvals[2]
-        elif len(arg)!= 3:
+            wiki_dir = returnvals[3]
+        elif len(arg)!= 4:
             print 'Wrong number of arguments to initenv %d' % len(arg)
             return
         else:
             project_name = arg[0]
             repository_dir = arg[1]
             templates_dir = arg[2]
+            wiki_dir = arg[3]
         from svn import util, repos, core
         core.apr_initialize()
         pool = core.svn_pool_create(None)
@@ -498,6 +508,9 @@
            or not os.access(os.path.join(templates_dir, 'ticket.cs'), os.F_OK):
             print templates_dir, ""doesn't look like a Trac templates directory""
             return
+        if not os.access(os.path.join(wiki_dir, 'WikiStart'), os.F_OK):
+            print wiki_dir, ""doesn't seem to contain initial Wiki pages""
+            return
         try:
             print 'Creating and Initializing Project'
             self.env_create()
@@ -516,7 +529,7 @@
             # Add a few default wiki pages
             print ' Installing wiki pages'
             cursor = cnx.cursor()
-            self._do_wiki_load(trac.siteconfig.__default_wiki_dir__,cursor)
+            self._do_wiki_load(wiki_dir,cursor)
 
             print ' Indexing repository'
             sync.sync(cnx, rep, fs_ptr, pool)
}}}
",eblotml@…,next-major-releases
enhancement,1513,Multi-language support in the wiki,wiki system,normal,,new,3047 days,71 by 17,"Let trac be the first-ever multi-lingual wiki on the market!  Have the ability to translate wiki articles into different languages.  A user can select their language when they view the wiki.  We have looked around and there isnt a wiki out there that handles this.  And if you dont have time to do it, do you mind having some volunteers help you out? :)",Paul Baranowski <paul@…>,next-major-releases
enhancement,1520,Highlight TracLinks in browser,wiki system,normal,,new,3047 days,13 by 4,"It would be nice to highlight TracLinks in browser file view.

For example to display ticket links when viewing source:trunk/ChangeLog@latest. 
 //This is already possible by specifying text/x-trac-wiki as the mimetype for this kind of files//

Another example would be to wiki format the inline Wiki syntax present in comments (this needs some cooperation from the syntax highlighter, e.g. the Pygments renderer).",shad,next-major-releases
enhancement,2382,WebAdmin: resync from the web interface,version control,normal,,new,3047 days,12 by 7,"It would be nice to be able to resynchronize from the web interface. I've written a WebAdmin component that does this for any repository that supports the 'sync' method.

(Should we have a WebAdmin component for tickets?)",Manuzhai,next-major-releases
enhancement,2636,browsing a directory with many files takes a long time,version control/browser,normal,,new,3047 days,5 by 3,"when browsing a repository browser with a lot of files (tested with 3370) it takes a long time (minutes) before the files are shown in the browser.[[BR]]
'''enhancement:''' It would be better to limit the amount of files processed, as to process them in blocks (configurable, default 250?)

tested with gentoo-linux on a P4 2.4GHz 512MB RAM with apache and fastcgi (5 preforks) as interface to trac (0.9.3) (all processing power was available to trac at that moment)[[BR]]
client is windows xp with firefox 1.5.0.1

",joramagten@…,next-major-releases
enhancement,2639,Add userid/author in RSS feeds for repository commit information,timeline,normal,,new,3047 days,12 by 8,"We have an interest in using the RSS feed feature of Trac.  Besides the issues described in #2580, which I am very happy to see resolved, we would also like to see the changeset author's name in the RSS feed information.

For instance, when subscribing to the Timeline's RSS feed, you would see a title such as: '''{{{Changeset [614]: Fixed reset procedure.}}}''', with a body of '''{{{Fixed reset procedure.}}}'''.  There is apparently no author information, although this is a very useful part of the Timline page itself.

It appears to me that the revison log RSS feed is also hobbled in this way.",Dan <trac@…>,next-major-releases
enhancement,2733,Push some more behaviour to the vc backend,version control,normal,,new,3047 days,7 by 4,"In order to get my new TracDarcs plugin working, I had to apply [http://artiemestieri.tn.it/~lele/projects/trac-darcs/trac-api-2866.patch this patch] that 

 1. Fixes #2731
 1. Adds an ""hash"" field to the `revision` table
 1. Moves the actual insertion of the cache data from the `CachedRepository` class to the `Changeset` one

Point 3 allows the backend to augment the cached data as needed, simply by overriding a `Changeset` method (see [http://artiemestieri.tn.it/~lele/projects/trac-darcs/tracdarcs/changeset.py for example]). 

Of course, I could have reimplemented the whole `sync()` machinery in a subclass of `CachedRepository`, but DRY approach suggests that's not the right way.
",Lele Gaifax,next-major-releases
enhancement,3080,Custom field sorts only as text,general,normal,,new,3047 days,13 by 10,"I've created a custom field to enable me to manually order tickets.  I've used integers as the value, but it seems to be sorting as text. 

For instance, the order shows up like 1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9

Would like to be able to sort numerical values through custom fields.

",aroach@…,next-major-releases
enhancement,3236,Support for a merge change type in version control API,version control,normal,,new,3047 days,9 by 4,"Trac currently supports ''add'', ''edit'', ''delete'', ''copy'' and ''move'' change types for files in a changeset. However, it would also be nice if Trac supported some of the ''merge'' change type for changes that involve merging changes from other files.

I realise that Subversion doesn't currently implement merge tracking natively (''yet''), but I have been working on a [http://www.perforce.com/ Perforce] plugin for Trac (similar to the one described in #257 but based on [http://pyperforce.sourceforge.net/ PyPerforce]) and would like to be able to get Perforce's merge/integration information displayed through Trac.

Perforce supports a number of different merge/integration types:
 * '''branch from''' - An exact copy of a file to a new location. Equivalent to Trac's ''copy'' or ''move'' depending on whether the source file was also deleted in the same changeset.
 * '''add from''' - A copy of a file to a new location that has been modified before checkin (related to #3172).
 * '''copy from''' - A merge operation that ignores any changes in the target file, effectively replacing the target with the source.
 * '''ignore from''' - A merge operation that ignores any changes in the source file, keeping the target file's changes.
 * '''merge from''' - A merge operation that merges the changes from both source and target files.
 * '''edit from''' - A merge operation that merges the changes from both source and target files and contains original user edits.
 * '''delete from''' - A merge of a deleted source file into the target file, deleting the target file. Basically a delete operation with an associated source file.

See the [http://www.perforce.com/perforce/doc.052/manuals/cmdref/integrated.html#1040665 p4 integrated] documentation for more info on the Perforce integration model.
",lewisbaker@…,next-major-releases
enhancement,3302,Add Permission Change Hooks to Trac,general,normal,,new,3047 days,9 by 5,"summary says most of it, attaching a patch.

basically, allow plugins to listen for permission changes (i've written an svn_authz generating plugin that would like to know when to rebuild the file)",trac@…,next-major-releases
enhancement,3511,quick access to favorite reports/queries,report system,normal,,new,3047 days,7 by 3,"Users should be able to define ""favorite"" reports and save queries in their session for quick access.  The ""View Tickets"" menu item could be enhanced with a menu that drops down when hovering over it to display this list of reports and queries.",Matthew Good,next-major-releases
enhancement,3737,"login-id, trac-nick",general,normal,,new,3047 days,24 by 11,"as also noted in #3667 there are cases where the username may change. also login mechanisms coming via basic auth may provide some userid which is not easy to remember. therefor it would be great to have more fields for a user, i.e. a username, userid, a nick, and maybe the nick is displayed.
",ThurnerRupert <rupert.thurner@…>,next-major-releases
defect,4022,Provide Etag and/or Last-Modified HTTP headers to ease cache control,wiki system,normal,,new,3047 days,12 by 9,"Trac serves pages without any Etag or Last-Modified header, which makes cache management rather troublesome, and increases the server load. This is particularly important for RSS feeds, which might be checked relatively often.

(In one of the comments for #663 it was mentioned that conditional GET was planned for 0.9, but one of Trac setups I'm checking on is based on 0.10 and the functionality seems to be missing.)

I think most pages could be served with a Last-Modified header containing the date of the last change (for wiki and ticket pages) or the date of the most recent thing changed (for RSS feeds).
",Giuseppe Bilotta <giuseppe.bilotta@…>,next-major-releases
defect,4130,Ticket Component Interface Fails to Properly Check for Existing Component,ticket system,normal,,new,3047 days,6 by 4,"When using the ticket.model.Component class, it will raise a `TracError` if passed the name of a non-existent component on instantiation.

If the component is instantiated with an existing component name, it will assert an error if one tries to call insert().  However, if one instantiates the object with out a name, and then sets the name and owner after the fact, and then calls insert(), no checking of duplicate rows is done.

Possible borkage:
{{{
#!python
c = Component(env)
c.name = 'component1'
c.owner = 'sombody'
c.insert()
}}}

The API should be modified to either raise a TracError in the case in question, and/or provide a method for discovering whether or not a Component exist.

Personally, I think that the following would be desired behavior:
{{{
#!python
c = Component(env, 'new component')
c.insert()
}}}
Where the insert() is a noop if the component already exists.  The `exists` property could also reflect whether or not the Component instance references an existing component or not.
{{{
#!python
c = Component(env, 'new component')
if not c.exists:
  c.insert()
}}}
I find this preferable to:
{{{
#!python
try:
  c = Component(env, 'new component')
except TracError:
  c = Component(env)
  c.name = 'new component'
  c.insert()
}}}
",pacopablo,next-major-releases
defect,4160,Broken InterWiki Link,version control/log view,normal,,new,3047 days,20 by 6,"The following InterWiki link behaves strangely:

|| '''Syntax''' || '''Behavior''' ||
|| `[tps-t6:1234567]` || Displays as-is, not hyperlinked. ||
|| `[tps-t6:1234567 test]` || Displays `test` hyperlinked to a working URL. ||
|| `tps-t6:1234567` || Displays `tps-t6:1234567` hyperlinked to a working URL. ||

If I change the InterWiki link to tps instead of tps-t6, all of the above syntaxes generate a hyperlink to a working URL as expected.
",jeff.wise@…,next-major-releases
enhancement,4224,Using SVN AUTHZ groups to map to group permissions in Trac,admin/web,normal,,new,3047 days,10 by 6,"I have an authz file that I use with Apache/SVN that has a definition of some groups.

e.g. G_developers, G_admin, etc

I have the same named groups in Trac created.

I want Trac to automatically consider the usernames in the AUTHZ file to have the same permissions as the groups that match.

How do I do this?",leighmcc@…,next-major-releases
defect,4286,Accepts email addresses without validation,notification,normal,,new,3047 days,14 by 9,"trac accepts email addresses without validation several different places -- on the New Ticket screen, on the settings screen, etc.

This is bad for several reasons.  For starters, it could be abused by spammers.  They could put the email address of a victim in the ""Your email"" box on the New Ticket screen, and submit a ticket to any Trac instance configured to send notifications of new tickets to the submitter.

It could also be used by a miscreant to subscribe an unwitting victim to notifications, as an annoyance.

trac should never send any emails that aren't verified opt-in emails.",John Goerzen <jgoerzen@…>,next-major-releases
enhancement,4412,batch copy/rename wiki pages,wiki system,normal,,new,3047 days,19 by 8,"==== Use cases
===== cross cutting wiki versions
If I have a product in version 1.x and I'm about to release 2.0, there are probably many changes to the wiki. However, I'd like to still retain a view of the 1.x wiki, for users of 1.x. Moreover, the 1.x wiki may continue to change with releases to the 1.x stream.",ittayd@…,next-major-releases
enhancement,4590,There is no interface for providing conversion over files or changeset like in wiki IContentConverter,version control/browser,normal,,new,3047 days,5 by 3,It will be useful. But now i should modify Trac sources.,mou@…,next-major-releases
enhancement,4733,Option for all login links to use HTTPS,general,normal,,new,3047 days,26 by 20,"It would be nice if trac could automatically use the https protocol in creating links to login with an appropriately configured web server.

I have tried a number of mod_rewrite rules and LocationMatch directives, but have not been successful in getting logins for multiple trac projects to be re-directed to the secure server for processing.",jeffcorbets@…,next-major-releases
enhancement,4778,simplified wikification of svn log messages,wiki system,normal,,new,3047 days,16 by 6,"Is it possible to simplify the wikification of svn log messages? The problem I get is if we have 
some math content (like 
{{{
x^5+x^4+x
}}}
which will show like x^5+x^4+x. There are some other things as well, which we don't actually need in or project, as the log messages are and will always be plain text. The only thing I'd like to keep is the recognition of revision numbers in the log messages with the appropriate links.

Is it hard to achieve this? (Would be ok if it is in the source, i.e. not configurable by admin/user)

Thanks.",Sergei Haller <sergei@…>,next-major-releases
enhancement,4788,show symlink info in source browser,version control/browser,normal,,new,3047 days,15 by 3,"Currently the source browser doesn't seem to display if a given file in the svn repository is a symlink.

In the browser of the directory containing a symlink, it could be something like
{{{
(&rarr; target)
}}}
right after the name of the file.
And in the browser of the symlink itself it could be an extra line like
{{{
Symbolic linc to target
}}}
where ""target"" would be a link to the appropriate file (if the target is also in the repository)",Sergei Haller <sergei@…>,next-major-releases
enhancement,4887,Option for changeset viewer to show added and deleted files inline,version control/changeset view,normal,,new,3047 days,14 by 7,"The unified diff correctly includes new files.  However the web changeset view does not.

For an example, see this change set on r4848 trac.  It is missing the contents of trunk/trac/htdocs/js/ie_pre7_hacks.js.",paul.wants.no.spam@…,next-major-releases
defect,4931,notification with SMTP through SSL is not supported (fix included),notification,normal,,new,3047 days,18 by 9,"Sending mail notifications does not work with SSL SMTP server. Python hangs (so does not raise an Error) on source:/trunk/trac/notification.py@4316#L278.

This could be fixed using the ssmtplib from http://aleph-null.tv/downloads/ssmtplib.py

The method 'beginSend' on source:/trunk/trac/notification.py@4316#L277.should be like:
{{{
#!python
def begin_send(self):
        if self._use_tls:
                self.server=ssmtplib.SMTP_SSL(self.smtp_server, self.smtp_port)
        else:
                self.server=ssmtplib.SMTP(self.smtp_server, self.smtp_port)
        if self.user_name:
                self.server.login(self.user_name, self.password)
}}}
",info@…,next-major-releases
enhancement,5177,"norobots option for: raw source code, rss, old source code",version control/browser,normal,,new,3047 days,9 by 7,"it would be beneficial if there would be an option to prevent search engines from spidering:
 * rss
 * raw contents if the contents is  displayed beautifully rendered in trac
 * old versions out of svn
via e.g. norobots or similar.
",ThurnerRupert,next-major-releases
enhancement,5641,Allow enums to be used in ticket custom value sets,general,normal,,new,3047 days,8 by 4,"I am writing a plugin that just adds a custom ticket field. It is to hold a list of clients to which a ticket ""belongs"" but that is not really important.

The possible values for this could be quite long and using the {{{.options}}} value of the .ini file doesn't seem appropriate.

So I thought a sensible route would be to use the enum table to hold the values and write a simple extension to TracWebAdmin to add another editing page page based on !AbstractEnumAdminPage type (I'm not sure if this is still part of Trac 0.11 with merged TracWebAdmin tho' :))

Anyway, this patch allows easy use of the enum table and easy ways to hook up custom fields to use that list. This would not really be of use to people unless they create a plugin to admin the  actual list too but it's still a useful feature IMO and the patch itself is fairly unobtrusive, so hopefully you can accept it.

The changes just allow a {{{.options}}} value of ""enum:name"" where name is the name you give to your enum and this will load the values from the database rather than parsing a pipe-separated list.

The other change was for when an enum name is updated (name changed) and which then updates the ticket table to reflect said changes. I just added a check so that it can update the ticket_custom table instead.

Hope this is acceptable. Not adding my mail here as I don't want it spammed but I will check back for updates. Patches are against 0.10.4 ",Colin Guthrie,next-major-releases
enhancement,5850,Search Results Per Page Variable,search system,normal,,new,3047 days,9 by 6,"Currently when I want to set the results per page from a search, I modify the Search.py ""RESULTS_PER_PAGE"" variable.  This however effects all of my sites.  It would be very useful if I could set this in trac.ini.  Something like results_per_page = 20 within the [search] section.

Additionally, I would write this into WebAdmin and have it web administer-able.",jchan@…,next-major-releases
enhancement,5999,From ticket to wiki : add links to ticket/comment metadata when appropriate,ticket system,normal,,new,3047 days,5 by 4,"In a ticket, we have several metadata that relates to something existing in the Trac system: milestone, component, etc.

It would be helpful to have these fields link to their actual wiki page (or to a template-based url, defined in the configuration file):
 * the milestone field would redirect to the milestone page,
 * the component would redirect to the component view in the milestone page,

Plus, in case these would exist as well in the near future:
 * each keyword could redirect to a search page looking for every item with this keyword,
 * each person (reporter, owner, on cc list, anyone who adds to the ticket) could redirect to a user page summarizing done and pending work in the whole Trac.

While not adding direct context to a ticket, it would make it easier to access data related to it, without a need for a manually typed search or several clicks.",romain.dalverny@…,next-major-releases
enhancement,6154,better formatted rss feed,ticket system,normal,,new,3047 days,15 by 8,"would be nice to have more contents and details in the rss feed.

The Bucktracker Bugdar has a nice layout for RSS Feeds

see e.g. (with a rss reader)
http://www.bluestatic.org/bugs/syndicate.php",markus.staab@…,next-major-releases
enhancement,6158,"Use separate, multiple CSS classnames to enable more versatile stylesheet customization",report system,normal,,new,3047 days,3 by 3,"Customizing CSS for trac reports is a bit difficult at the moment because semantically independent classnames are concatenated together in a single class.

For example, ""color2-odd"" reflects that a row is both at an odd index, and that it should have color2 applied to it.  Thus, changing the even/odd color style requires defining at least 12 styles (6 colors X 2 even/odd values), as seen in the current report.css.

=== Generic Color Styling ===
If, instead, the classname were specified as ""color_N odd"", (where N indicated the cell value) then CSS rules could be specified like so:
{{{
.even {...}
.odd {...}
.color_1 {...}
.color_2 {...}
...
.color_6 {...}
}}}

=== Cell-Specific Styling ===
Furthermore, individual cells should have a class value that reflects both the cell name and cell value.  For example, cells showing ticket priority should have a class of ""priority priority_N"" (where N is the priority value). E.g. the markup should look like this:

E.g. a cell could have class=""priority priority_''N''"", instead of just class=""priority""

=== Backward Compatibility ===
Note that existing stylesheets can continue to be supported by simply including the existing stylenames as part of the 'class' attribute in the markup.  To illustrate what this might look like for all of this ...

{{{
<tr class=""color2-odd odd color_2"">
  <td class=""id"">...</td>
  <td class=""subject"">...</td>
  <td class=""owner owner_is_user"">...</td>
  <td class=""reporter reporter_is_user"">...</td>
  <td class=""status status_4>...</td>
  <td class=""priority priority_3"">...</td>
</tr>
}}}
",robert@…,next-major-releases
enhancement,6160,Enhanced Query for All Tickets by Milestone + RFE for a new automatically detected datatype,report system,normal,,new,3047 days,3 by 2,"The below query orders all milestones and tickets by their respective due date or the time of creation in case of the ticket, as was implemented before.

It would be nice to have a DUE datatype being mapped to the datetime datatype in order for displaying the due date in the `__group__` header along with the `t.milestone` name.

TIA

Carsten


-----------------
{{{
SELECT p.value AS __color__,
   t.milestone ||' Release' AS __group__,
   t.id AS ticket, t.summary, t.component, t.version, t.type AS type, 
   (CASE status WHEN 'assigned' THEN t.owner||' *' ELSE t.owner END) AS owner,
   t.time AS created, m.due as date,
   t.changetime AS _changetime, t.description AS _description,
   t.reporter AS _reporter
  FROM ticket t
  LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
  LEFT JOIN milestone m ON m.name = milestone
  WHERE status IN ('new', 'assigned', 'reopened') 
  ORDER BY (milestone IS NULL),m.due, p.value, t.type, time
}}}",Carsten Klein,next-major-releases
enhancement,6226,Value for limit size of logfile,general,normal,,new,3047 days,17 by 6,"It would be great if TRAC would able rotate logfiles exceeding a size limit.

It means: I want able to say don't let logfiles get bigger than 10MB, if size is reached, rotate them ''count'' times. So if ''count'' is set to 5, then it will get rotated up to log.5. 

This would very handy when running in debug mode when something goes wrong not often and so debug-logging must run a long time and this stuff shouldn't go into syslog.
",trac@…,next-major-releases
defect,6330,'Back to query' when no query has been used,ticket system,normal,,new,3047 days,12 by 5,"I'm not sure whether its a feature or a bug:

When a ticket is entered in the search box with the quickjump syntax, the ticket page contains the usual ""previous ticket"", ""back to query"" and ""next ticket"" links.

The ""back to query"" link is quite unexpected, as no query has been used to reach the ticket page, and the default report ({6}) seems to come a bit out of the blue to me.

I would have expected that in this case (no query, direct access to the ticket) the 'Back to query' link not to be shown, and that 'previous ticket' and 'next ticket' links lead to the immediate existing tickets, ''i.e.'' for ticket #''N'', 'previous ticket' jumps to ticket #''N,,-1,,'' and 'next ticket' jumps to ticket #''N,,+1,,'', whatever their status (closed or not)
",Emmanuel Blot,next-major-releases
enhancement,6783,Diff Tabular / Unified switcher highlights the wrong way around?,version control/changeset view,normal,,new,3047 days,6 by 4,"When viewing a diff, the selected alternative is bolded (and not linked) and the alternative option that can be selected is greyed out (with link).

Shouldn't it be the other way around? It is very confusing, and contrary to common UI practice. Or could it be adjusted like the appearance of small mini tabs or something where both look like valid choices, but where current choice can still be clearly seen?


",osimons,next-major-releases
enhancement,6807,Option to skip revisions with lots of added files,version control/changeset view,normal,,new,3047 days,3 by 2,"On the real production systems with several millions LOC,
it should be possible to skip the revisions that contain initial import
of the sources into svn. Such a revisions could contain thousands of files
and to trac it takes a hours to process such a revision, probably because of the indexing or code diff calculation.

The request is to have an option to skip such a revision, i.e. either make 
them invisible to trac somehow, or make trac know to take the special care of such a cases.
Ideally, trac could detect such a revisions by itself and proceed according to 
some config. The huge revisions could be detected by the size of the revision file,
for example.
",moisei,next-major-releases
enhancement,6958,prevent double activation of the same functionality (component sub-classing),general,normal,,new,3047 days,4 by 4,"we activated trac tags including the wiki module. it was possible to activate the standard trac wiki module too. the effect was that in the timeline two ""include wiki changes"" appeared (see http://groups.google.com/group/trac-users/browse_thread/thread/bfdff087ad1eddf8). it would be great having some mechanism preventing such a behaviour.
",ThurnerRupert,next-major-releases
enhancement,7073,notify dup subscribers,notification,normal,,new,3047 days,2 by 2,"if a set of users is on a ticket and that ticket is marked as dup of another, notifications should now be done to both tickets subscribers.",tracbugs@…,next-major-releases
defect,7176,Workflow actions indistinguishable from user changes,ticket system,normal,,new,3047 days,3 by 3," - someone writes a workflow action that modifies a user-modifiable ticket field
 - user selects that action, and previews the change
 - user selects a different action
 - user previews or submits changes

The changes made by the workflow action will still be present; they will not be reverted.

Internally, the code does not differentiate between user changes and workflow changes across a preview.

The correct behavior here, particularly in cases where the user modifies the same fields as the workflow, is open for debate.
",Eli Carter,next-major-releases
enhancement,7196,restrict ticket properties to add/edit only/...,ticket system,normal,,new,3047 days,4 by 4,"would be nice to have the ability to define if a property should be readonly/disabled/not mentioned at all, if in ticket add-mode/edit-mode...

so e.g. the milestone field could be set to edit-mode, so the creator is not able to choose the value for it... this is the intended behavior  on t.e.o.

also the priorty field should be set by a developer, so maybe also a restriction to some usertypes would be great..

such restriction would also make sense for other fields and also in other scenarios.

this would improve the user-experience and help also the developer team, because of less misfilled tickets",Markus.Staab,next-major-releases
defect,7699,TracQuery documentation on Query Language operators is incorrect,general,normal,,new,3047 days,12 by 5,"The documentation at [wiki:TracQuery#QueryLanguage] regarding the operators is incorrect.

It says:
{{{
The available operators are:
|| '''`=`''' || the field content exactly matches the one of the values ||
|| '''`~=`''' || the field content contains one or more of the values ||
|| '''`^=`''' || the field content starts with one of the values ||
|| '''`$=`''' || the field content ends with one of the values ||

All of these operators can also be negated:
|| '''`!=`''' || the field content matches none of the values ||
|| '''`!~=`''' || the field content does not contain any of the values ||
|| '''`!^=`''' || the field content does not start with any of the values ||
|| '''`!$=`''' || the field content does not end with any of the values ||
}}}

However, these operators don't seem to work in a query. In fact, when selecting their equivalent from the custom query dropdown it seems the generated operators are in fact the other way around, with a leading `=` instead of a trailing one.

It seems it really should be:
{{{
The available operators are:
|| '''`=`''' || the field content exactly matches the one of the values ||
|| '''`=~`''' || the field content contains one or more of the values ||
|| '''`=^`''' || the field content starts with one of the values ||
|| '''`=$`''' || the field content ends with one of the values ||

All of these operators can also be negated:
|| '''`=!`''' || the field content matches none of the values ||
|| '''`=!~`''' || the field content does not contain any of the values ||
|| '''`=!^`''' || the field content does not start with any of the values ||
|| '''`=!$`''' || the field content does not end with any of the values ||
}}}",kamil@…,next-major-releases
enhancement,7990,Can't view plain text wiki links,wiki system,normal,,new,3047 days,3 by 2,"You can no longer view the plain text version of a wiki page in your browser by selecting the plain text link - instead you are forced to download.

I understand the security concerns but, having read #7603, I expected to be able to enable the old behaviour by setting
{{{
[wiki]
render_unsafe_content = yes
}}}
However, this doesn't work. Is it meant to?

Admittedly the description of this option in TracIni#wiki-section doesn't say this will work. However, wouldn't it make sense to make this consistent with the same option from the `browser` and `attachment` sections?",David Matthews,next-major-releases
enhancement,8328,Repeat SCRIPT_NAME fixup using SCRIPT_URL after environment selection,web frontend,normal,,new,3047 days,12 by 5,"Ticket #2299 introduced a very useful feature to guess the SCRIPT_NAME from the SCRIPT_URL. However, this works less than optimal in some scenarios using an env_parent_dir.

'''Example:''' suppose you want to serve multiple project home pages using multiple virtual hosts from apache, and suppose further that, in order to save memory e.g. on a virtual server, you want to serve all Trac requests from a single FastCGI process. You can configure the process to serve from a parent of all trac environments, and add a line like this to the individual vhosts:
{{{
ScriptAlias /trac/ /path/to/trac.fcgi/my.environment.name/
}}}

This works well enough, except for the links. The link detection checks that the SCRIPT_URL (e.g. `/trac/wiki/PageName`) ends with the PATH_INFO (e.g. `/my.environment.name/wiki/PageName`) - which is not the case. Subsequently, the first part of the PATH_INFO is used to choose the environment, and moved from PATH_INFO to SCRIPT_NAME, causing a wrong script name of `/trac/my.environment.name`.

This can easily be solved by doing the same fixup ''after'' the environment has been chosen. In that case, PATH_INFO only contains `/wiki/PageName` which allows correct detection of `/trac` as the SCRIPT_NAME for that environment, not all environments.

In order to produce correct link in the listing of all available projects (in setups providing access to this list, not in a vhost like the one above), the fixup before should probably be kept in place as well, or be moved to send_project_index. Because it has to be executed from two places, it might make sense to factor it into a separate function.

A patch for this is easy. If you want me to write one, I'll do so. For now, I've simply moved the whole block dealing with script_url to after the env_path selection, as I don't need the project listing. So the concept is proven.",Martin.vGagern@…,next-major-releases
enhancement,8335,Create People page with user profiles and status of who's doing what.,general,normal,,new,3047 days,6 by 4,"As you may see, the idea is fairly simple -- let the first page be a page with user profiles that reflects a project's team structure. Let each profile contain user name, avatar, role in a team (dev, qa, etc), status (idle, working, blocked, etc), and the last few messages/events from the timeline made by user.",Alex Radzie <aradzivanovich@…>,next-major-releases
enhancement,8507,Developer WSGI Profiling and Debugging,general,normal,,new,3047 days,21 by 8,"I have a wsgi setup for development that includes the ability to use a couple different methods of profiling as well as debugging using DBGP (a debugger protocol for dynamic langauges, used in Komodo, Eclipse DLTK, and a bunch of other editors/ides).  I hope this makes it easy for others who are interested in profiling and/or debugging trac.  A couple small changes would make it useful for any wsgi application.
",Shane Caraveo <shanec@…>,next-major-releases
enhancement,9123,WikiFormatting in link text does not work,wiki system,normal,,new,3047 days,3 by 2,"Try to use a link which has a text that makes use of WikiFormatting. Like this [SandBox link to `SandBox`] or this [source:/ link to the ''root'' of the Trac sources]. I expect the link texts to be rendered in a way so that they contain “`SandBox`” and “''root''”, respectively, not “!`SandBox`” and “!''root!''”.

It is impossible to use markup consistently in, for example, a ticket comment when you also like to link to files, other tickets, revisions, etc., and you use monospace highlighting for file names, or have some other convention or personal preference for using markup.

I have successfully been able to reproduce this shortcoming in the sandbox in the [/demo-0.11/wiki/SandBox 0.11] and [/demo-0.12/wiki/SandBox 0.12] demo installations.",n-roeser@…,next-major-releases
enhancement,9214,expandable blockquotes,wiki system,normal,,new,3047 days,6 by 5,"Would be nice to have an ability to configure blockquotes as ""expandable by jQuery"". Sometimes the content of blockquote is very large, say, 1000 lines, and a wiki page would look ugly with such a long text. Making a blockquote ""expandable"" would help, for example:

{{{
{{{+expandable
#!xml
...very long xml...
}} }
}}}

Maybe such feature exists already, but I didn't find it. Thanks.",team@…,next-major-releases
enhancement,9537,to implement cherry-picking for wiki pages,wiki system,normal,,new,3047 days,3 by 3,"partially motivated by #1114

Would be nice to have an ability to pick any version from wiki revision history and ''copy'' it, making it the latest version. This way we don't need to delete anything (as mentioned in #1114). Instead, we keep full history intact, but just bring the version we need to the ""head"".",team@…,next-major-releases
enhancement,9550,Ticket should be divisible,ticket system,normal,,new,3047 days,6 by 6,"Sometimes tickets are entered into the ticket system that contain more than one issue. These tickets should be diversible. When something like this happens I create new tickets with the parts and assign them to their owners. The all new ticket ids are put into the 'parent'.
It would be nice if trac could help with this task and manage a parent/child relationship between tickets. When childs of a ticket are created the parent ticket should be set on hold until all children are resolved. The parent could show a progress bar or something. Notifications for children should be send to their subscribers and the subscribers of the parent ticket.",stephan@…,next-major-releases
enhancement,9554,plain text download of wiki pages reveals comments not meant for public consumption,wiki system,normal,,new,3047 days,9 by 7,"I find this one critical in that one might prototype content in the wiki that is not meant to be released to the public yet.

In order to reconstruct the scenario,

1. create a new wiki page
2. enter some content
3. enter
{{{

{{{
#!comment
TBD

Critical information that must not yet be leaked to the public.
}}}

}}}

4. download as plain text

in the downloaded plain text you can see also the comment with content that was not yet meant to be consumed by the public.
",Carsten Klein <carsten.klein@…>,next-major-releases
enhancement,9655,Source code navigation in browser,version control/browser,normal,,new,3047 days,4 by 2,"It would be very cool if when viewing source code in Trac source browser, it will render the language elements (e.g. functions, methods, classes, module imports / includes) as links to where they are defined (like most IDEs).

The lacking of this is the only reason that my team uses !SlickEdit for code-reviews, and not Trac browser. (well, this and the ability to annotate the reviewed code with comments, but that's another enhancement request).

Now, I assume this is a heavy feature (language awareness?!), but thought I'd raise it anyway. Maybe it can be done partially using other libraries (I guess Pygments is doing something similar, syntax-analysis or something of that sort).",Itamar Ostricher,next-major-releases
enhancement,9673,Some TracIni settings should be user configurable,general,normal,,new,3047 days,25 by 6,"Many aspects of Trac are configurable, via the TracIni settings. A lot of these switches are presentation or slight behavior tweaks that are largely a matter of personal taste and preferences. As those are TracIni settings, this has the effect that the project owners' preferences are enforced, not necessarily the same as those of their users.

It should however not be hard to allow //some// of these options to be tailored to the end users' needs. As suggested in #3360, we could extend our Option descriptors with an extra `user` parameter.

For example:
{{{#!python
    section = Section('ticket', N_('Ticket Settings'))

    chronological_order = BoolOption('ticket', 'chronological_order',
        default=True, 
        user=N_(""Show Change History in Chronological Order""),
        doc=N_(""""""
        Controls in which direction the Change history is displayed. 
  
        ''(since 0.13)''
        """""")
}}}

We could use this parameter to pass the option summary that the user will see in a new preference panel.

We could either have one user panel, with field sets grouping options from a given section, or we could have one panel per section (but then we need to fix the layout of panel tabs to allow for having lots of panels).

For getting back the values, we could think about having a helper function `userpref(env, req, section, option)`, or something smarter that would fetch the value first from the `req.session` and only if not found pick the environment's default.

A few tickets are concerned by this new feature:
[[TicketQuery(keywords=~userpreferences,format=table)]]

",Christian Boos,next-major-releases
enhancement,9674,[PATCH] trac.ini parameterization support,general,normal,,new,3047 days,30 by 6,"I'm running trac using the {{{trac.env_parent_dir}}} option. It would be useful to have a variable that can be expanded within an inherited trac.ini file, which indicates the subfolder for the trac instance using it. (Of course, other variables could also be conceived of).

For example, given the following layout of trac environments:
{{{
/trac
  - /env1
  - /env2
  - /env3
}}}

A common trac.ini file could be created that references a {{{%{project}}}} variable, which is interpreted to be env1, env2, or env3, depending on which environment is inheriting the configuration.

The following is all the instances in a common trac.ini file for which I found the variable useful (in my setup, at least):
{{{
[account-manager]
authentication_url = https://some.domain.com/trac/%{project}/login

[authz_policy]
authz_file = /var/auth/trac.%{project}.authz

[notification]
smtp_from = trac-%{project}@some.domain.com

[trac]
authz_file = /etc/apache2/auth/authz/trac.%{project}.authz
base_url = https://some.domain.com/trac/%{project}/

[project]
url = https://some.domain.com/trac/%{project}/
}}}

If it were just one field that needed customization, I'd override it in the individual trac.ini files of each environment. Or, if it were a set of fields within a common section, I could use ConfigParser's support for {{{%variable}}} within that section (1). But, since it's many fields across many sections (as shown above), I went ahead and looked into creating a patch.

(1) A relevant Python patch I ran across while looking for solutions: http://bugs.python.org/issue9876",sahendrickson@…,next-major-releases
defect,9775,implement get_path_history in the versioncontrol cache,version control/log view,normal,,new,3047 days,6 by 3,"While doing a GET operation on `/log/oppimappi`, Trac issued an internal error.

'''Steps to reproduce:'''
* Click ""Browse Source""
* Select a line with a git repository and click hex label in the ""Rev"" column (View Revision Log)
* Select ""Show only adds and deletes"" in ""Revision Log Mode:"" and hit ""Update""
* ""Trac detected an internal error:"" and ""NotImplementedError:"" (note that it seems that the error string is missing the end of error message)

I'd guess that this is caused by an unimplemented feature in TracGit. Notice that ""Stop on copy"" and ""Follow copies"" do not cause errors (though I guess, they don't do anything with TracGit because everything is labelled as ""Modified"").

I think the ""Summary"" for this ticket is bad but I'll leave it as is to make this issue easier to find from the ""Internal Error""'s ""search for similar issues"" link.

The string ""oppimappi"" is the repository name in my trac environment.

Request parameters:
{{{
{'action': u'stop_on_copy',
 'limit': u'100',
 'mode': u'path_history',
 'path': u'/oppimappi',
 'rev': u'f55567eb3a36f3189e3212678aedf5cfd7e0d0c2',
 'stop_rev': u''}
}}}

User agent: `Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.04 (lucid) Firefox/3.6.12`

==== System Information ====
|| '''`Trac`''' || `0.12.1` ||
|| '''`Babel`''' || `0.9.5` ||
|| '''`Genshi`''' || `0.6` ||
|| '''`GIT`''' || `1.7.0.4` ||
|| '''`pysqlite`''' || `2.4.1` ||
|| '''`Python`''' || `2.6.5 (r265:79063, Apr 16 2010, 13:09:56) ` [[br]] `[GCC 4.4.3]` ||
|| '''`RPC`''' || `1.1.0-r9360` ||
|| '''`setuptools`''' || `0.6` ||
|| '''`SQLite`''' || `3.6.22` ||
|| '''`Subversion`''' || `1.6.6 (r40053)` ||
|| '''`jQuery`''' || `1.4.2` ||

==== Enabled Plugins ====
|| '''`TracGit`''' || `0.12.0.5dev` ||
|| '''`TracXMLRPC`''' || `1.1.0-r9360` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.1-py2.6.egg/trac/web/main.py"", line 511, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.1-py2.6.egg/trac/web/main.py"", line 237, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.1-py2.6.egg/trac/versioncontrol/web_ui/log.py"", line 163, in process_request
    for old_path, old_rev, old_chg in history():
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.1-py2.6.egg/trac/versioncontrol/web_ui/log.py"", line 119, in history
    for h in repos.get_path_history(path, rev):
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.1-py2.6.egg/trac/versioncontrol/cache.py"", line 386, in get_path_history
    limit)
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.1-py2.6.egg/trac/versioncontrol/api.py"", line 888, in get_path_history
    raise NotImplementedError
NotImplementedError
}}}
",Mikko Rantalainen <mikko.rantalainen@…>,next-major-releases
defect,10091,Exception when formatting Mercurial changeset link,plugin/mercurial,normal,,new,3047 days,10 by 4,"When trying to format `[cset:34c7144cba5a]` or `[123:34c7144cba5a]` when having multiple Mercurial repositories but no default repository fails with the following exception:

{{{
UnboundLocalError: local variable 'errmsg' referenced before assignment
}}}

Stack trace:

{{{
File ""/usr/lib/python2.6/dist-packages/trac/ticket/templates/ticket_change.html"", line 61, in <Expression u'wiki_to_html(context, change.comment, escape_newlines=preserve_newlines)'>
  <py:otherwise>${wiki_to_html(context, change.comment, escape_newlines=preserve_newlines)}</py:otherwise>
File ""/usr/lib/python2.6/dist-packages/trac/wiki/formatter.py"", line 1497, in format_to_html
  return HtmlFormatter(env, context, wikidom).generate(escape_newlines)
File ""/usr/lib/python2.6/dist-packages/trac/wiki/formatter.py"", line 1452, in generate
  escape_newlines)
File ""/usr/lib/python2.6/dist-packages/trac/wiki/formatter.py"", line 1240, in format
  result = re.sub(self.wikiparser.rules, self.replace, line)
File ""/usr/lib/python2.6/re.py"", line 151, in sub
  return _compile(pattern, 0).sub(repl, string, count)
File ""/usr/lib/python2.6/dist-packages/trac/wiki/formatter.py"", line 1158, in replace
  replacement = self.handle_match(fullmatch)
File ""/usr/lib/python2.6/dist-packages/trac/wiki/formatter.py"", line 1154, in handle_match
  return internal_handler(match, fullmatch)
File ""/usr/lib/python2.6/dist-packages/trac/wiki/formatter.py"", line 540, in _lhref_formatter
  return self._make_lhref_link(match, fullmatch, rel, ns, target, label)
File ""/usr/lib/python2.6/dist-packages/trac/wiki/formatter.py"", line 581, in _make_lhref_link
  fullmatch)
File ""/usr/lib/python2.6/dist-packages/trac/wiki/formatter.py"", line 590, in _make_link
  fullmatch)
File ""build/bdist.linux-x86_64/egg/tracext/hg/backend.py"", line 438, in _format_link
  title=errmsg, rel=""nofollow"")
}}}",Mitar,next-major-releases
enhancement,10125,CommitTicketUpdater should call manipulators and listeners,ticket system,normal,,new,3047 days,30 by 8,"I don't use this hook myself, but I frequently get questions about it on IRC and try to help out. One very frequent request is some or handling for additional fields or related plugins that need to act on what gets updated on the ticket.

Example can be also adjusting estimates or time spent on fixing bugs, or updating some other related fields and structures.

Anyway, I quickly scanned the source and see that we don't call ticket system manipulators or listeners? That would provide the hooks to either change fields directly together with commit-update, or be handle updating of related information after-the-fact via listener.

Any reason not to call manipulators and listeners?",osimons,next-major-releases
defect,10183,How to browser sources which folders have been changed and/or removed?,version control/browser,normal,,new,3047 days,7 by 4,"When I try to browser sources which folders have been changed and/or removed, there is an error message:

No node ""/path/to/oldfile"" at revision ""head revision number"".

Could I browser these kind of sources through Trac browser?

Thank you!",zheng.bangyou@…,next-major-releases
defect,10305,Incomplete URL sent to Akismet API,web frontend,normal,,new,3047 days,4 by 3,"Akismet integration wasn't working for me (I hope I've fixed it now), in combination with lighttpd and fastcgi: the log just says ""invalid API key.""

I'm using Trac 0.11 but I see what I think is the problem in the 0.12 version of [source:plugins/0.12/spam-filter-captcha/tracspamfilter/filters/akismet.py]: when calling the Akismet Rest API, the spam filter plugin passes {{{req.base_url}}} for the ""blog"" parameter.  This does the wrong thing when {{{TRAC_BASE_URL}}} is not a full URL to the Trac instance, with protocol and hostname.  (In my case it was set to ""/development"").

In retrospect, this is probably just my mistake in configuring lighttpd but given how sparse its documentation is, I probably won't be the last user to get that wrong.  And Akismet's API gives no details beyond ""invalid,"" so debugging this is little fun.  (In my case it was about two days, a support session, thirty spam bugs, and a tcpdump trace of fun.  ☺)

Assuming there's no good way to make up a host name to send to Akismet if {{{base_url}}} contains none, it'd be helpful if the plugin could detect this particular problem and log it.

Or if it turns out to be __almost__ possible to construct a full URL: Akismet support tells me they normalize protocol and hostname, so subtleties such as https vs. http or a ""www."" prefix don't matter.


(By the way, love the interactive ticket preview at the bottom of the newticket page!  Hadn't seen that before.)",Jeroen Vermeulen <jtv@…>,next-major-releases
enhancement,10682,Show the path of changesets in log view,version control/log view,normal,,new,3047 days,6 by 3,"Would be great if the path of the changed file is visible in the log view. If multiple files were changed, the highest common path of all changed files should be showed.

I know this feature from WebSVN and it's very helpful to survey which parts of the project were actually changed.",anonymous,next-major-releases
defect,10741,"more readable ""closed"" style",general,normal,,new,3047 days,11 by 8,"The current strikethrough style is barely readable, as already mentioned in the past, like in #9981. If people can get used to it for numbers (but what about #8080 for example?), it's really a bother for milestones ([milestone:0.11.8 a milestone that didn't turn into a release]) or comments ([ticket:9981#comment:5 as was said before]).

We just revived the subject in #10012 (see [ticket:10012#comment:42 comment:42]), with several new interesting proposals, notably the one from Peter which is to append an unicode '!CHECK MARK' character to the ticket (✓).",Christian Boos,next-major-releases
defect,7150,"""contrib/workflow/showworkflow"" is KDE centric",general,trivial,,new,3047 days,10 by 7,"I reckon this should call evince where kpdf is not available (like on Gnome desktops, which is a pretty common occurance). Here's a patch:

{{{
Index: trac/contrib/workflow/showworkflow
===================================================================
--- trac/contrib/workflow/showworkflow	(revision 6880)
+++ trac/contrib/workflow/showworkflow	(working copy)
@@ -24,4 +24,8 @@
 
 dot -T ps -o ""$ps"" ""$dot"" && ps2pdf ""$ps"" ""$pdf"" || exit 1
 dot -T png -o ""$png"" ""$dot""
-kpdf ""$pdf""
+if [ -n ""`which kpdf 2>/dev/null`"" ] ; then
+    kpdf ""$pdf""
+else
+    evince ""$pdf""
+fi
}}}
",trac@…,next-major-releases
enhancement,533,Support for custom reports,report system,major,,new,3047 days,6 by 5,"Provide a method to support reports generated by Python code rather than just SQL.  This would allow developers to write custom reports that pull data from other sources (e.g. the Subversion repository, site-specific databases, etc.) but still take advantage of the reporting framework. (e.g. sorting by clicking on column header, color coding, etc.)

Ideas as far as integrating this feature into Trac:

1) Re-rename 'View Tickets' back to 'Reports'? :)

2) Add a new module specifically for custom reports.

3) Only provide interface, coders should use framework to code new modules (e.g. each custom report would be its own module).  This may work -- 

4) Aren't the Timeline and Searching features just custom reports?

5) Provide reports/ directory in trac environment for custom reports, scan this directory to provide listing.",bsoudan,next-major-releases
enhancement,1748,"Per-screen and per-field help text, configurable per trac environment",general,minor,,new,3047 days,6 by 3,"It would be very useful for us to be able to specify help on a per-field basis (on tickets, milestone admin, etc.) and a per-screen basis reports, new tickets, roadmap, milestone add/edit/close, etc.

This would allow us to document our production processes at the point where they are being used (i.e. trac), not just in a manual which no one bothers to read / reads and forgets.

I think this could be done without any major changes to trac, e.g. by using Wiki pages for the per-page help, and trac.ini parameters for the per-field values in tickets, etc.

It might also be good to be able to hide/show the help so that power-users could 'de-clutter' the screen.",Ian Leader <__ian.leader__@…>,next-major-releases
enhancement,2616,Show ticket submission time in Change History,ticket system,minor,,new,3047 days,5 by 4,"It would be very useful if it were easier to figure out the exact date and time of a ticket's submission. Currently it's only shown as e.g. ""three months ago"" at the detailed ticket view instead of ""2005-10-12 15:18"". All modifications are shown with the exact second it happened, but not the original creation.[[BR]]
I suggest the time of creation is added to the Change History of the ticket view.",johan.levin-atsign-lorensbergs.com,next-major-releases
enhancement,3335,Improve the rendering of the wiki syntax for citations,wiki system,minor,,new,3047 days,6 by 3,"A little thing, but looks nicer IMHO

{{{
#!css
blockquote p { margin: 0 0 1em 0; }
blockquote.citation { 
 margin: -0.3em 0;
 padding: .5em 0 0 .5em;
 border-style: solid; 
 border-width: 1px 0 0 2px; 
 border-color: #b44;
}
}}}

",Christian Boos,next-major-releases
enhancement,3734,Provide Possibility to 'freeze' a Milestone,ticket system,minor,,new,3047 days,15 by 9,"It should be possibly to flag a milestone as 'freezed', thus no new tickets can be filed.

see #3730 for an example-conflict.",ilias@…,next-major-releases
enhancement,4695,Icons for InterTrac and InterWiki links,wiki system,minor,,new,3047 days,7 by 5,"provide a facility to configure Icons for InterTrac and InterWiki links.

i.e. the Wikipedia favicon for a Wikipedia InterWiki link. this Icon can stay alone if no Text there for the given link.

",Holger Winkelmann <hw@…>,next-major-releases
enhancement,5119,"zip source download link should support ""current version""",version control/browser,minor,,new,3047 days,7 by 6,"the source download link should be depending on the revision which is displayed in the source browser. i.e.:
 * if trunk (head, latest) is displayed, the download link should be trunk too, [http://trac.edgewall.org/changeset/trunk/trunk?old_path=%2F&format=zip like this]
 * if some revision is displayed, the download link should be that revision too, [http://trac.edgewall.org/changeset/5000/trunk?old_path=%2F&format=zip like this, r5000]

this would allow to give somebody else a direct download link by just copy-pasting the link.
",ThurnerRupert,next-major-releases
enhancement,5227,provide option to insert summary in a ticket link,wiki system,minor,,new,3047 days,22 by 12,"It would be nice to be able to create a ticket link that automatically includes the summary line for the ticket.  A possible syntax for this could be `[ticket:23:summary]` and have it do the same thing as `[ticket:23 #23: Prettier ""Access Denied"" message.]`, so it would look like [ticket:23 #23: Prettier ""Access Denied"" message.].",Eli Carter,next-major-releases
enhancement,5498,Use #. as a wiki markup for ordered list,wiki system,minor,,new,3047 days,9 by 6,"It would seem natural to write ordered list using the `#` character, such as:
{{{
  #. first item
  #. second item
}}}

This syntax would not replace the current syntax, i.e. using `1.`, but would be an add-on.
",Emmanuel Blot,next-major-releases
enhancement,5663,Suggestions for Ticket Reports,ticket system,minor,,new,3047 days,3 by 3,"One nice feature of the ticketing system at http://versionone.com/ is the ability to edit ''Ticket Properties'' fields in the table view itself, i.e. via dropdowns right there, without having to open each individual ticket. I know this feature would help me.

Another idea which would help me is to load at least part of the ''Description'' field (even in a plain text version) onto the report page and then show it to me in a popup when I rollover the ticket. This would also help me, as the ''short summary'' is often not enough to recall the full details.

Thanks.",fredthejonester@…,next-major-releases
defect,5933,"Add search options for ""match case"" and ""match whole word""",search system,minor,,new,3047 days,4 by 2,"The search feature is sometimes hardly usable.

For example, searching ""UNC"" on trac.edgewall.org returns hundreds of hits, most of them being matched from the ""function"" word.

It would be very useful to add common search options such as ""match case"" and ""match whole word"".",Emmanuel Blot,next-major-releases
enhancement,6232,Setting different completion ratios on different ticket states in [milestone-groups],roadmap,minor,,new,3047 days,11 by 5,"It would make sense to be able to set [milestone-groups] ''ticketstate''.overall_completion to a percentage rather than a boolean.

I have set up a ticket workflow that goes like this: open -> programmed -> reviewed -> tested (closed). I want to assign completion ratios something like this:
 * programmed - 40%
 * reviewed - 20%
 * tested - 40%

That in effect means that if all tickets were programmed, but none open, reviewed or tested, the overall completion would stand at 40%.

",tjorvi@…,next-major-releases
enhancement,6424,Next/previous diff support,version control/changeset view,minor,,new,3047 days,6 by 4,"While stumbling upon a FishEye on a site I noticed the diff it generates has useful icons next to the diff sections that allow you to quickly jump between the sections in the diff.

This is related to #6423.",Jeroen Ruigrok van der Werven,next-major-releases
enhancement,6709,Extended 'view diff' feature does not update the browsing position,version control/changeset view,minor,,new,3047 days,6 by 4,"When a changeset is browsed (`/changeset/xxx`) and that the max size/file limit is reached, the changeset diff is not rendered: only the changeset log message and the list of modified files are rendered. This is the expected behaviour.

A handy feature is that each modified file appears in the list with a ""view diff"" clickable link. When such a link is selected, the diff of the file is rendered, again with the log message of the same changeset.

However the browser shows the regular diff page, without scrolling down to the actual diff section.

When the log message is a bit long, the user experience is a bit weird: it seems that the link led to the same page as the full changeset: the same long log message is rendered, and the selected diff does not appear in the browsing window. 

It would be nice to add an anchor to the diff section so that the browser directly jump to the actual diff, that is the info he selected from the changeset view.
",Emmanuel Blot,next-major-releases
defect,6904,Annotate Does not show full user name.,version control,minor,,new,3047 days,2 by 2,"When using annotate the user name is truncating after a space in the user name.

For Exmaple...

My NT User Name: = ''' DOMAIN\David Shaw ''' [[BR]]

Annotate tool tip: ''' DOMAIN\David: svn log text '''",trac@…,next-major-releases
enhancement,1200,Provide syntax to link to file-differences from svn log messages,version control/changeset view,normal,,new,3047 days,7 by 3,"It would be nice if there was a syntax for filenames in svn log messages, so that the filename in question becomes a link that jumps to the corresponding file in the diff.",arnarb@…,next-major-releases
enhancement,1410,Post commit script for Tags changes,general,normal,,new,3047 days,10 by 5,"It would be useful to have a post-commit script that will check for the creation of new Subversion tags and add the corresponding value to the Trac version field, and mark the corresponding Milestone as completed.",Matthew Good,next-major-releases
enhancement,1502,Ticket searches don't interpret [[BR]],search system,normal,,new,3047 days,7 by 6,"When searching for tickets, the returned descriptions doesn't apply any WikiFormatting. I'm not surprised that it doesn't do that for regular WikiFormatting, but it's annoying that it ignores ![[BR]]s as well. It would be nice if the search results would interpret ![[BR]] tags as well as !![[BR]] tags (i.e. just show that as ![[BR]])",anonymous,next-major-releases
enhancement,2467,Link user name in reports to custom query showing that user's open tickets,ticket system,normal,,new,3047 days,3 by 3,It would be nice if the usernames in the report view linked to custom queries showing active tickets belonging to that user.,earle at downlode dot org,next-major-releases
enhancement,2497,Change custom query with group to also have a table of contents for group,ticket system,normal,,new,3047 days,4 by 3,"If group results option is selected in a custom query it would be nice if the results starts off with a table of contents (TOC) with links to the coresponding table.  For example if group by components is selected then list of components should be listed with links to the individual component ticket tables.  It may also be good to list the number of tickets that are new, assigned, reopened, and closed for each component in the TOC.",anonymous,next-major-releases
enhancement,3153,Include tickets without milestone in iCal,ticket system,normal,,new,3047 days,8 by 6,Currently if you wish to download your tickets for a specific project in Ical format that can be read using Mac's Ical (which is what I use). Often I write tickets with no specific milestone on gamedev.acm.cs.rpi.edu and I would like them in the same format as all my other tickets. My request is that the feature enabling me to download milestones to Ical be implimented on the ticket system.,bowenk@…,next-major-releases
enhancement,3249,Default env with parent_dir,general,normal,,new,3047 days,7 by 6,"Attached is a patch to allow for a default environment to be given when using TRAC_ENV_PARENT_DIR. This means that instead of a simple listing, you can have a full Trac at the base of a domain. The logic is simple, though the code may need to be cleaned up a bit. The patch is against a current checkout (r3369 for the file).",coderanger@…,next-major-releases
enhancement,3255,Context-sensitive new ticket prefill,ticket system,normal,,new,3047 days,14 by 6,"I'd like to extend the idea behind a `worksforme`-ed #3253 as follows: it'd be nice to enter a ticket quickly based on the conditions I'm ''looking at'' right now.

  Example: I create a query for __owner__ ''X'' and __milestone__ ''Y'' using TracQuery. I review the results and decide to add to the workload of ''X'' and create one more task. It'd be great to simply be able to click on a link that says __Create new ticket in this view__ (not a good wording) or something like that.

Similarly, and that's what #3253 was proposing, it'd be nice to create a ticket right from the milestone's page that is assigned to this milestone. Or create a ticket assigned to this milestone and a particular component by clicking one of the `[`now imaginary`]` knobs next to one of the __sort by ''component''__ progress bars on the right of the milestone's view. Or by clicking somewhere in the query that results from clicking on this progress bar... You get the idea.

Moreover, I actually would prefer the standard __New Ticket__ action to be ''context-sensitive'' as I describe above and always prefill ticket fields for me based on what is in the current page's view.

To extend this beyond milestones and queries, when I'm looking at a Wiki page or a commit log or a source code item, and I click __New Ticket__, I'd be glad to see that there's a [wiki:TracLinks TracLink-ified] reference to that object. Maybe that's one of the ideas TracObjectModelProposal is trying to accommodate, but it would need help from Trac on how to ''deduce'' some relations between Trac objects, in this case to help fill out a ticket more quickly.",s.lipnevich@…,next-major-releases
enhancement,4374,Custom Tickets Select Box Auto-generation,ticket system,normal,,new,3047 days,6 by 2,"It would be nice if instead of specifying all the available options for a select box like: 

option1|option2|option3...

in trac.ini, which could run into hundreds, if instead you could specify some kind of query so that this list is automatically generated from the database and keeps up to date. For example, if you had 'is associated with customer' as a select box and the customers are generated from a 'Customers' table in the database. e.g. 'select name from Customer where active=1' so that only customers who are still active (assuming this list changes quite often) are shown in the list. 

Apologies for the poor example.

At the moment I have written a script that reads trac.ini and modifies this manually but it is far from ideal as it only runs once a day so the data isnt always up-to-date",a.rodger@…,next-major-releases
enhancement,5382,improve storage of binary content in the database,database backend,normal,,new,3047 days,20 by 8,"r5390/#4087 breaks compatibility with python2.3, as there doesn't seem to be a unicode.decode method.

Patch attached (don't know if this is the best solution though, but works for me at least).[[BR]]
Decoding content via str() should be safe (base64 ;)).",Nils Maier <MaierMan@…>,next-major-releases
enhancement,5755,Multiple Milestone Dates,roadmap,normal,,new,3047 days,10 by 5,"It would be nice to be able to assign multiple dates to a milestone. For example I might want a CodeComplete date, TestingComplete date and a Launch date.",anonymous,next-major-releases
enhancement,6009,colons in revision identifiers,version control,normal,,new,3047 days,7 by 4,"At least for, but not limited to `source:path@rev` links, it would be nice to have support for revision identifiers that contain a colon, as such identifiers are common for some non-svn version control systems, e.g. mercurial or monotone.

However, looking at [source:trunk/trac/versioncontrol/web_ui/browser.py@5877#L557 trac/versioncontrol/web_ui/browser.py], a colon separates the revision identifier from a line number mark (what is a ""line number mark""? - this is not covered by TracLinks).

Additionally, in revision log or diff links, a colon is used to separate the start and end revision identifier.

So, it seems a colon cannot be used literally in a revid. Would it be possible to get some support for escaping such special characters in revision identifiers?",thomas.moschny@…,next-major-releases
enhancement,6145,Query correlation with SVN commits,general,normal,,new,3047 days,4 by 2,"The one thing that we keep looking to report on, that I can not find an easy way to do, is show tickets that where closed between SVN rev X and SVN rev Y.

As far as I can tell there is no way to access the SVN information (log, rev, etc...) to cross correlate it with the ticket data.

Note there are many reports that I used the SQL report facility for that I can not do in the query module.  If you guys drop the SQL reports the Query module needs some significant improvements.

I will try to create a more detailed ticket about the reporting system, in general, later; right now this ticket is just to address data cross correlation with SVN data.

Thanks!  Trac is very nice!

Note, I am the Sr. Project Manager for Rosetta Stone's software development group.  We have about 7-8 teams all using Trac.",DStrickler@…,next-major-releases
enhancement,7215,Default to base_path if SCRIPT_NAME not set for tracd,web frontend/tracd,normal,,new,3047 days,3 by 2,"I'm not sure if this is an issue with the deployment at Dreamhost PS w/ the domain proxy, but this is a work-around that could prove useful in other situations, too.

Setup: domain.tld/project => proxied to localhost:8000

Then, starting standalone tracd as follows:
{{{
$ tracd --base-path=/project -e ~/trac
}}}

SCRIPT_NAME in BasePathMiddleware is unset, so all requests go to /<project> instead of /project/<project>

This patch fixes the problem by defaulting to base_path if there's nothing better available:
{{{
--- trac/web/standalone.py.orig 2008-05-09 02:09:51.195020000 -0700
+++ trac/web/standalone.py      2008-05-09 02:10:09.201738000 -0700
@@ -92,6 +92,9 @@
         self.application = application
 
     def __call__(self, environ, start_response):
+        if not environ.get('SCRIPT_NAME', ''):
+            environ['SCRIPT_NAME'] = self.base_path
+
         path = environ['SCRIPT_NAME'] + environ.get('PATH_INFO', '')
         environ['SCRIPT_NAME'] = self.base_path
         environ['PATH_INFO'] = path[len(self.base_path):]
}}}",mail+trac@…,next-major-releases
enhancement,8135,"[PATCH] Prev, Query, Next links at bottom of ticket page",ticket system,normal,,new,3047 days,20 by 9,"When you're viewing a ticket after selecting it from some report/query, there are usually three links at the top of the page saying (roughly):

* Previous ticket
* Back to Query
* Next ticket

Is there some way to have these links repeated at the bottom of the page? When updating tickets, most of the work happens at the bottom of the page and it's a pain to keep scrolling to the bottom to do the work, then to the top to click ""Next ticket"" then back to the bottom again...

I tried looking around for some HTML templates that I can edit to achieve this but I got as far as finding that the changes I need to make are probably in ticket/web_ui.py before calling it a day.

Can I request this feature be added? Also, if there is a quick hack I can make to my existing (trac 0.11.3) install, I'm all ears...

Ta.
",srevill@…,next-major-releases
defect,8727,cannot create TracLinks to attachments with number sign in file name,wiki system,normal,,new,3047 days,9 by 3,"attachments with the number sign (#, also referred to as hash mark or pound sign) can be uploaded properly into trac, and the link generated in the Attachments section of the ticket works properly.

however, i cannot create TracLinks to the file.
{{{
attachment:attachment#1.txt
}}}
attachment:attachment#1.txt
{{{
attachment:'attachment#1.txt'
}}}
attachment:'attachment#1.txt'
{{{
[attachment:attachment#1.txt]
}}}
[attachment:attachment#1.txt]
{{{
[attachment:'attachment#1.txt']
}}}
[attachment:'attachment#1.txt']

this is important for us because we document everything the client sends us, including file attachments, which sometimes come named with the number sign.",jhn@…,next-major-releases
enhancement,9125,Report rendering needs some general overhaul,report system,normal,,new,3047 days,10 by 5,"
When using column_ for breaking the row after the column, everything works fine except that the column has no colspan assigned to extend it across the columns left available to the right.

E.g.

select id, summary as summary_, component, milestone from ticket...

will render both the id and the summary in one line and the rest in the following line.

However, the summary column will only be one column wide whereas it should extend across the available N-1 columns to the right.

",Carsten Klein <carsten.klein@…>,next-major-releases
defect,10917,check semi-automatic bug reporting for plugins,general,normal,,new,3047 days,10 by 4,"==== How to Reproduce ====

While doing a GET operation on `/stats`, Trac issued an internal error.

''(please provide additional details here)''

Request parameters:
{{{
{'path': '/'}
}}}

User agent: `Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1284.2 Safari/537.13`

==== System Information ====
|| '''`Trac`''' || `1.0` ||
|| '''`Babel`''' || `0.9.6` ||
|| '''`CustomFieldAdmin`''' || `0.2.6-r10460` ||
|| '''`Docutils`''' || `0.9.1` ||
|| '''`Genshi`''' || `0.6 (without speedups)` ||
|| '''`mod_python`''' || `3.3.1` ||
|| '''`Pygments`''' || `1.5` ||
|| '''`pysqlite`''' || `2.6.3` ||
|| '''`Python`''' || `2.7.3 (default, Oct 13 2012, 03:49:29) ` [[br]] `[GCC 4.5.3]` ||
|| '''`pytz`''' || `2012f` ||
|| '''`setuptools`''' || `0.6` ||
|| '''`SQLite`''' || `3.7.14.1` ||
|| '''`Subversion`''' || `1.6.17 (r1128011)` ||
|| '''`jQuery`''' || `1.4.3` ||

==== Enabled Plugins ====
|| '''`ContextMenuPlugin`''' || `0.1` ||
|| '''`ExcelDownloadPlugin`''' || `0.12.0.1` ||
|| '''`FootNoteMacro`''' || `1.03-r11767` ||
|| '''`graphviz`''' || `0.7.5` ||
|| '''`RedirectsPlugin`''' || `0.1` ||
|| '''`SvnAuthzAdminPlugin`''' || `0.2` ||
|| '''`timingandestimationplugin`''' || `1.1.9` ||
|| '''`TracAccountManager`''' || `0.3.2` ||
|| '''`TracCollapsiblePlugin`''' || `0.1` ||
|| '''`TracCustomFieldAdmin`''' || `0.2.6-r10460` ||
|| '''`TracDateField`''' || `1.0.2-r10435` ||
|| '''`TracDiscussion`''' || `0.8` ||
|| '''`TracIncludeMacro`''' || `3.0.0dev-r12030` ||
|| '''`TracMasterTickets`''' || `3.0.2` ||
|| '''`TracMetrixPlugin`''' || `0.1.8` ||
|| '''`TracStats`''' || `0.4` ||
|| '''`TracTags`''' || `0.7dev-r12165` ||
|| '''`TracTicketChangelogPlugin`''' || `0.1` ||
|| '''`TracTocMacro`''' || `11.0.0.3` ||
|| '''`TracWorkflowAdmin`''' || `0.12.0.1` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/usr/lib64/python2.7/site-packages/trac/web/main.py"", line 497, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/lib64/python2.7/site-packages/trac/web/main.py"", line 214, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/usr/lib64/python2.7/site-packages/TracStats-0.4-py2.7.egg/tracstats/web_ui.py"", line 162, in process_request
    result = self._process(req, cursor, where, data)
  File ""/usr/lib64/python2.7/site-packages/TracStats-0.4-py2.7.egg/tracstats/web_ui.py"", line 234, in _process
    td = datetime.timedelta(seconds=age)
OverflowError: normalized days too large to fit in a C int
}}}",info@…,next-major-releases
defect,2264,"Tickets with created with """" Milestone show up under ""Release""",report system,trivial,,new,3047 days,7 by 6,"If you set up a new test env. You have the dropdown box with """", ""milestone1"", ""milestone2"", ""milestone3"" and ""milestone4"".

If you create a ticket and do not select a milestone it will show up in the {3} All Tickets by Milestone Report under ""Release"" and not under ""None"".

See {6} for reference in this trac.",Markus Tacker <m@…>,next-major-releases
enhancement,1465,Trac could use a distributed VCS storage,wiki system,critical,,new,3047 days,16 by 8,"hi!

a friend and i are running a small publishing house, and are collaborating with trac and instant messaging - kudos to you, because it does just about all we need!

here's what trac doesn't do very well: we both use laptop computers, and are travelling quite often. in order to work on shared documents, we need to be online constantly, as conventiently most of our shared documents are in wiki format by now. it's not always possible to guarantee internet connetcivity, though...

i realise that subversion is not the ideal repository format for our needs, we really need something like monotone that works well with local repositories that can be merged with a central repository or updated from there. still, writing a whole set of tools such as trac offers on top of monotone would be quite tedious.

so, in a roundabout way what i'm asking is whether it would be possible to run trac in a 'local' mode where it reads the subversion repository information from a local copy _only_ (with limited history/changeset functionality, of course). in addition, trac should store all wiki, ticket and other data in a filesystem structure instead of a db that can also be manages via a seperate or the same subversion repository.

a ""commit now"" or ""i'm online, try to merge with the central repository"" button or something similar might be all that's left to make trac the ultimate in collaboration tools.

now being a developer myself in my day job, i realize that this could be a HUGE feature. depends on your architecture, and even if it lends itself to implement something like that, HUGE just reduces to LARGE.

still, i'd like to see it :)
",jens@…,next-major-releases
defect,6101,browsing folder with too many files should use paging,version control/browser,minor,,new,3047 days,10 by 5,"From time to time and everytime when I try to open a folder which contains many files at the ""Browse source"" component I get this memory error:

{{{
Traceback (most recent call last):
  File ""/usr/local/python2.5/lib/python2.5/site-packages/Trac-0.11dev_r6038-py2.5.egg/trac/web/api.py"", line 342, in send_error
    'text/html')
  File ""/usr/local/python2.5/lib/python2.5/site-packages/Trac-0.11dev_r6038-py2.5.egg/trac/web/chrome.py"", line 601, in render_template
    return stream.render(method, doctype=doctype)
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 154, in render
    return encode(generator, method=method, encoding=encoding)
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 45, in encode
    output = u''.join(list(iterator))
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 274, in __call__
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 519, in __call__
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 679, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 459, in __call__
    for ev in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 212, in _ensure
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 212, in _ensure
    for event in stream:
  File ""/usr/local/python2.5/lib/python2.5/site-packages/Trac-0.11dev_r6038-py2.5.egg/trac/web/chrome.py"", line 631, in _strip_accesskeys
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 212, in _ensure
    for event in stream:
  File ""/usr/local/python2.5/lib/python2.5/site-packages/Trac-0.11dev_r6038-py2.5.egg/trac/web/chrome.py"", line 620, in _generate
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 252, in _include
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 322, in _match
    content = list(self._include(content, ctxt))
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 252, in _include
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 297, in _match
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 286, in _strip
    event = stream.next()
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 242, in _exec
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 421, in _eval
    result = data.evaluate(ctxt)
  File ""build/bdist.linux-i686/egg/genshi/template/eval.py"", line 136, in evaluate
    return eval(self.code, _globals, {'data': data})
  File ""/usr/local/python2.5/lib/python2.5/site-packages/Trac-0.11dev_r6038-py2.5.egg/trac/templates/error.html"", line 161, in <Expression u'shorten_line(repr(value))'>
    <td><code>${shorten_line(repr(value))}</code></td>
MemoryError
}}}

This error only occurs when I have some data in the associated repository.",alex.theissen,next-major-releases
enhancement,6947,Change in colouring scheme for nested replies in the ticket,wiki system,minor,,new,3047 days,7 by 5,"Currently, when another reply to the ticket's description or comment is added, colours of the reply levels are ""shifted"" - thus, for example, the original post is marked with different colours in each reply. I think that colours for particular level should be preserver, and just another colour should be introduced ""on the left"" (currently new colour appears ""on the right"").

That would make finding the same sentences in different replies much easier (user will just search for the same colour).",Przemyslaw Lapko <przemyslaw.lapko@…>,next-major-releases
defect,7361,"Error in Wiki Rendering if Colon "":"" is used with a word and quote mark",wiki system,minor,,new,3047 days,4 by 2,"I have found the following Wiki rendering issue.  Seems like if a word has a colon at the end followed by quote mark then the style marks are not interpreted correctly.

Probably best by example:
{{{

'''phrase word testing''' other things.

'''phrase word: testing''' other things.

'''phrase 'word' testing''' other things.

'''phrase 'word:' testing''' other things. (Fault)

'''phrase 'word:two' testing''' other things.

'''phrase 'word two:' testing''' other things. (Fault)

''phrase 'word:' testing'' other things. (Fault)
}}}

which renders as:
{{{
#!div style=""border: 1px solid #ddd; margin: 1em 1.75em; padding: .25em""

'''phrase word testing''' other things.

'''phrase word: testing''' other things.

'''phrase 'word' testing''' other things.

'''phrase 'word:' testing''' other things. (Fault)

'''phrase 'word:two' testing''' other things.

'''phrase 'word two:' testing''' other things. (Fault)

''phrase 'word:' testing'' other things. (Fault)
}}}

This is just frustrating, not a big usability issue.


I hope this is not already known - I did search and have not found a match.  I also hope this is not a valid feature I haven't found yet.",paul@…,next-major-releases
defect,9897,'>' cannot be properly escaped,wiki system,minor,,new,3047 days,6 by 3,"{{{ >:: greater than\\}}}

will yield

 >:: greater than\\

which is not what I want but:

{{{ !>:: greater than\\}}}

 !>:: greater than\\

obviously isn't right either.

I could write html code to do this as a workaround but this is really something that could be simply fixed by an escape character.  
",anonymous,next-major-releases
defect,1278,attaching file to wiki page does not register as changed page,attachment,normal,,new,3047 days,11 by 8,"When a file is attached to a wiki page, the page does not show a change in its page history and the page does not show up on the list of RecentChanges or timeline.

For example, I attached a file to SandBox/SubPage on 2005-03-10, but that page's history indicates that it was last modified on 2004-11-16.",Phil Mocek <pmocek-edgewall-tracwiki@…>,next-major-releases
enhancement,1678,Show component view in timeline view for checkins,timeline,normal,,new,3047 days,8 by 3,"It would be kinda nice if Trac would show the name of the subproject in the timeline changesets.

so for example I could have a mapping:
 * /trunk/printer/ = Printer
 * /trunk/ABC_RP/ = Scripts
 * /trunk/other/FileParser/ = FileParser

and based on the file names involved in the checkin, determine the component name by checking if the prefixes in the above list match any of the file names involved in the checkin.

So then in the timeline view, it would display for instance [Printer, Scripts] if my checkin affects Printer and Scripts.




",anonymous,next-major-releases
enhancement,3006,Want to be able to merge tickets,ticket system,normal,,new,3047 days,23 by 12,"Rather than marking ticket A as closed and a duplicate of ticket B, it should be possible to mark ticket A as a duplicate of another ''without'' closing it; then when B is closed, A is closed as well, and the resolution message appended to both.",dcrosta,next-major-releases
enhancement,4760,"""Newer revisions"" link",version control/log view,normal,,new,3047 days,8 by 3,"can we have a link ""Newer revisions"" (similar to ""Older revisions"")
in the Revision log browser?

Thanks",Sergei Haller <sergei@…>,next-major-releases
enhancement,5912,Offline mode using HTML5 Web Storage,general,normal,,new,3047 days,18 by 11,"Somebody mentioned to me today that he wished Trac had an offline mode.  ""Google Gears"" is a browser plugin which facilitates this sort of thing.

I don't know how much work it would be to add Google Gears support to Trac.  I may look into it at some point, but right now this is purely a wishlist issue.
",ken@…,next-major-releases
enhancement,9216,changeset hook for wiki pages,wiki system,normal,,new,3047 days,9 by 5,"I configured a changeset post-commit hook from SVN to Trac, and now every time I add a new changeset to SVN with a properly formatted comment, Trac automatically adds a message to the corresponding ticket. Would be nice to have the same functionality for wiki pages. When I make a change to some wiki page, and format comment properly, Trac ticket gets a message, automatically. Thanks.",team@…,next-major-releases
enhancement,7071,keyboard nav implementation,version control/browser,trivial,,new,3047 days,10 by 5,"why do you do such operations like


{{{
+   $(function() { 
+     $('a,input,select,textarea,button') 
+       .focus(function(event) { 
+         ENABLE_KEY_NAV = false; 
+       }) 
+       .blur(function(event) { 
+         ENABLE_KEY_NAV = true; 
+       }); 
+   });
}}}
see r6724

if you could do things easier using a :not selector with jquery

{{{
$(""*:not(a,input,select,textarea,button,option)"")
}}}

Another little thing:
the '''option''' tags should also be ingored to be IE friendly",Markus.Staab,next-major-releases
enhancement,6638,Allow file exclusions in diffs,version control/changeset view,normal,,new,3055 days,6 by 4,"Trac should allow us to set file types (by extension) that should not be diff-ed. A lot of large auto generated xml-based files are showing up in changesets and they really hurt performance and make Trac difficult to use.
",anonymous@…,next-major-releases
enhancement,11627,Backport Bloodhound search API,search system,normal,,new,3057 days,7 by 4,"Bloodhound has an enhanced search API (bh:wiki:/Proposals/BEP-0004) and a [https://pypi.python.org/pypi/Whoosh/ Whoosh] plugin. A plugin for [http://lucene.apache.org/solr/ Apache Solr] is being developed: bh:wiki:/Proposals/BEP-0014. This ticket will explore whether the API, and possibly the plugins as well, can be backported.",Ryan J Ollos,next-major-releases
enhancement,8672,Filter ticket queries by user groups,ticket system,normal,,new,3105 days,9 by 6,"We had a need to filter the results of a TicketQuery by user groups (from the permission system) to keep query results from becoming overwhelming. The attached patch does this by expanding a 'username' like '@software' in the owner field of a query to all the users with that role. This is a very rough implementation for now (the group functionality should be provided by the permissions system and there should be a way to list groups on the Custom Query page) but I'm putting it up anyway in the hope that the idea is useful.

We use this like

{{{
[[TicketQuery(status=blocked,order=owner,owner=@software)]]
}}}
",joshua.hoke@…,next-major-releases
enhancement,9807,Wrong sections are collapsed by default!,ticket system,normal,,new,3116 days,36 by 20,"Collapsing the sections in a ticke is great - the trouble is that the section that is used 99% of the time is the ""modify"" section which is pre-collapsed.

An ideal solution would be to make this system configurable (or even user configurable).

It is going to pee-off my users to now have to press that extra button... petty I know.... but its the truth.",morgand,next-major-releases
enhancement,11353,Hierarchical tree of repositories,version control/browser,normal,,new,3130 days,5 by 3,"For a big project it would be really nice to organize git repositories into the hierarchical tree. Like 

[[Image(http://dside.dyndns.org/projects/screenshots/trac-repotree-small.png)]]

I have hacked in a small patch for myself, but it will be really nice to have a proper implementation upstream.
http://dside.dyndns.org/projects/patches.dir/trac-ds-repotree.diff",csa@…,next-major-releases
enhancement,10381,"Use full width for custom textarea fields, and make them collapsible",ticket system,normal,,new,3132 days,9 by 6,"The content of custom textareas might get very big, so it would be better to place these fields in full width after description field.

Furthermore it would be nice, if these fields are collapsable, so you could close them, if you do not need them at the moment.",anonymous,next-major-releases
enhancement,11946,Allow multiple permissions to be assigned in single submit,admin/web,normal,,new,3132 days,2 by 1,"It is quick to remove multiple permissions from a subject because they can be selected and removed in a single submit. Assigning multiple permissions is not as quick.

The Django admin page has been suggested on the Bloodhound mailing list as a good example to follow:

[[Image(img6eR8.png,100%)]]

[http://www.erichynds.com/examples/jquery-ui-multiselect-widget/demos/ jQuery multiselect widget] provides another possible implementation.",Ryan J Ollos,next-major-releases
enhancement,425,Wiki page name need to support digits and periods,wiki system,normal,,new,3132 days,19 by 7,"Restricting Wiki page names to only alphabetic chars makes
it very have to create pages that discuss MilestoneV1.0 etc

Is there any problem with allowing digits and period?
",barry.scott@…,next-major-releases
enhancement,8945,[PATCH] Send Notification Email with local timezone,notification,normal,,new,3132 days,9 by 5,"Currently, Trac sends out notifications with an UTC Date header.
I would like to see my server's local timezone (patch attached) or even better the users' configured timezone.

Related: http://trac.edgewall.org/changeset/1512",hwyss@…,next-major-releases
enhancement,9091,Use RawConfigParser instead of ConfigParser in the Configuration component,general,normal,,new,3132 days,7 by 5,"The use of `ConfigParser` in the configuration layer causes issues when using `%(foo)s` values in the config file.  The th:IrcLogsPlugin does this and causes a traceback when trying to write the sample config during upgrade.

Trac itself doesn't use the interpolation feature of the `ConfigParser` nor do we advertize the interpolation feature of the `ConfigParser`.

As the interpolation feature is of dubious value, I think that we should replace `ConfigParser` with `RawConfigParser`.  This should also give us case sensitivity in the section fields.",John Hampton,next-major-releases
enhancement,108,OrphanedPages macro,wiki system,normal,,new,3132 days,14 by 10,"It would be good to have a list of pages that aren't linked to from anywhere.

Example:   http://moinmoin.wikiwikiweb.de/OrphanedPages",daniel,next-major-releases
enhancement,1245,Highlight changes of a wiki page since last visit,wiki system,normal,,new,3132 days,9 by 6," 1. It would be very handy to be able to choose the versions we want to see the diff between. A la moinmoinwiki, see [http://moinmoin.wikiwikiweb.de/MoinMoinFeatures?action=info here] for an example.
 2. It would be nice to display the changes of a page since last visit
 3. It would be nice to have a diff mode where only changes are displayed (not the whole page source), with perhaps a preview of the rendered page below the diff.

Just ideas. :)",kilian.cavalotti@…,next-major-releases
defect,8165,[PATCH] csv download doesn't process 'description' field,report system,minor,,new,3132 days,17 by 7,"In a report that includes the ticket 'description' field, the text is processed by the wiki processor, but when I choose to download the report by clicking on 'comma-delimited-text', the 'description' field in the csv file is *not* processed.
E.g. I have a macro which displays its output correctly in the onscreen report, but just shows ""![[MyMacro()]]"" in the csv file.",pellatt@…,next-major-releases
defect,5441,Timeline shows incomplete information about status changes for customized workflow,timeline,normal,,new,3132 days,14 by 10,"Currently 'Timeline' shows details about status transitions only for few standard values ('new', 'reopened' and 'closed') and everything else shows as ""''status'' changed"", which is not very convenient if custom workflow has more states.

We could have something like records in ticket's change history.

Sample patch is attached.

More generic solution (e.g. show changes in custom fields similarly) could be even better...",anonymous,next-major-releases
enhancement,7867,"h,l keyboard shortcuts",version control/browser,normal,,new,3132 days,8 by 4,"A request to add h and l to move up and down (or better say left and right) the directory tree structure expanding/collapsing leaves as needed.

There is also a bug in j,k shortcuts that they stop work after <Tab> is pressed.",techtonik <techtonik@…>,next-major-releases
enhancement,8559,New Report: Tickets of Interest,report system,normal,,new,3132 days,29 by 8,"When one visits a Trac system as a user of a product and not as a developer of the product, one often wants to search for those tickets of personal interest.  Such tickets would be defined as those tickets where the user is the Reporter '''OR''' in the CC (or maybe additionally as a commenter).  

 * It would be nice to see such a report added here.  

 * Additionally, it would also be nice to see this added as one of the default reports thus would likely to be found on other Trac installations.

 * This report is easy to write as an SQL based report.  However, I do not see how one could implement this as a Custom Query report.  Thus it is currently not possible to add such a report when the SQL report system is fully deprecated.  Also it is not possible for a user to implement this as a custom query that they could save as a book mark.",mpotter@…,next-major-releases
defect,9510,Action block stays visible when no actions available,ticket system,normal,,new,3132 days,10 by 6,"The action block on the ticket page is visible (empty) even if there are no actions available.

I've implemented a custom workflow for our trac site, removing the ""leave"" action for users that were having just that option (senseless). In that case though, the action block is still there, empty (senseless and ugly now :)).",fredck@…,next-major-releases
enhancement,10413,[PATCH] Descriptive component names in trac.log,general,normal,,new,3132 days,24 by 8,"trac.log doesn't contain full component names and as a result it is hard to filter information relevant to plugins.

Consider the following excerpt:
{{{
2011-10-15 01:24:47,716 Trac[main] DEBUG: Dispatching <Request ""POST '/login'"">
2011-10-15 01:24:47,744 Trac[svn_fs] DEBUG: Subversion bindings imported
2011-10-15 01:24:47,747 Trac[api] INFO: Synchronized '' repository in 0.03 seconds
2011-10-15 01:24:47,747 Trac[web_ui] DEBUG: authenticate() method called
2011-10-15 01:24:47,747 Trac[session] DEBUG: Retrieving session for ID ''
2011-10-15 01:24:47,748 Trac[web_ui] DEBUG: user_locked: False
2011-10-15 01:24:47,753 Trac[chrome] DEBUG: Prepare chrome data for request
2011-10-15 01:24:47,755 Trac[web_ui] DEBUG: authenticate() method called
}}}

Here:
 - Trac[main] is probably trac.core.main
 - Trac[web_ui] is acct_mgr.web_ui
 - Trac[session] is ???

I'd propose to change that default format to replace Trac[] with full module name (i.e. __name__)
",anatoly techtonik <techtonik@…>,next-major-releases
enhancement,10670,Image macro references inconsistent with attachment links,wiki system,normal,,new,3132 days,7 by 4,"The format of the reference for [WikiMacros#Image-macro Image macro] is not aligned with that of `attachment:` links.

External reference to attachment is stated as ""`attachment:file:module:id`"". It would be nice if one could copy an attachment link to the Image macro by just ripping away ""`attachment:`""

Now, one has to swap parts of the attachment reference to suit the Image macro:

 `attachment:file:module:id` > `[[Image(module:id:file)]]`

This is annoying/confusing.

My view is that the Image macro is fault since both `attachment:` and `comment:` links use the same pattern. ''(Hard to accept, I imagine, since that would break existing image references to external resources.)''",Mikael Relbe,next-major-releases
defect,10914,Changeset columns overlapping,version control/changeset view,normal,,new,3132 days,4 by 3,"The columns with changeset information are overlapping (for a Git repository), as shown in this screenshot:

[[Image(git-changeset.png)]]

This is on Ubuntu 12.04 with Firefox.",Thijs Triemstra,next-major-releases
enhancement,10915,Provide example repository paths,admin/web,normal,,new,3132 days,4 by 3,"It's not clear what path to use when adding a repository without reading the documentation.

It would be nice to have some example paths (like `/home/john/test/.git` or `svn://test.com/svn/trunk`) in the interface:

[[Image(repository-add.png)]]

I was also not able to locate the proper path format for Git repositories in the documentation, and the logs suggested rather vaguely what path I should be using instead:

{{{
Trac[test-trac:PyGIT] ERROR: entry '.git' found in '/home/john/repository' -- maybe use that folder instead...
}}}",Thijs Triemstra,next-major-releases
enhancement,11119,Indicate enabled or disabled status of plugins on web admin panel,admin/web,normal,,new,3132 days,5 by 4,"There are occasions when I want to be able to determine what plugins are enabled from the Web Admin page, and it is tedious to expand each folded section and inspect the checkboxes. Initially, I started thinking about a solution similar to what is present for other folded sections, such as attachments, for which a number is shown next to the heading to indicate the number of attachments.

What might be more useful in this case, is to change the background color of the `form` depending on whether the plugin is enabled or disabled. Maybe that is not obvious enough though. [th:hasienda] has done some nice work on the [th:AccountManagerPlugin] lately using icons guide the user through the configuration process (see th:#8930 and [http://trac-hacks.org/attachment/ticket/8930/20130215_acct_mgr-cfg_wizard_p6_dev.png this] attachment). That got me thinking that maybe a check or x icon could be used to indicate a plugins enabled or disabled status (with enabled being defined as at least one component being enabled).
",Ryan J Ollos,next-major-releases
enhancement,11539,Remove deprecated methods in trac.wiki.formatter,general,normal,,new,3132 days,4 by 1,"The pre-0.11 formatting utilities `wiki_to_html`, `wiki_to_oneliner` and `wiki_to_outline` could be removed on the trunk, but it looks like we need a replacement for `wiki_to_outline` (`format_to_outline`?): [browser:/trunk/trac/wiki/formatter.py@12551:1604-1640#L1604].",Ryan J Ollos,next-major-releases
enhancement,11722,Batch ticket delete,query system,normal,,new,3132 days,2 by 1,The batch ticket delete feature request mentioned in th:#8074 could be useful. Users should be required to have `TICKET_BATCH_MODIFY` and `TICKET_DELETE` (or perhaps even have a `TICKET_BATCH_DELETE` permission).,Ryan J Ollos,next-major-releases
enhancement,11879,Prevent ticket workflow hints from wrapping,ticket system,normal,,new,3132 days,4 by 3,"It would be nice to prevent the text wrapping in the workflow hint that is seen even with the default workflow.

One option would be to prevent line wrapping and truncate overflow with ellipsis. The entire hint could be shown in the `title` of the `span`.

[[Image(20141212T104313.png,100%)]]",Ryan J Ollos,next-major-releases
enhancement,8949,add sortable tables to wiki,wiki system,normal,,new,3134 days,11 by 6,"See

http://en.wikipedia.org/wiki/Help:Sorting

for Wikipedia's approach to sortable tables.

An approach that does not require JavaScript is preferred, even if it causes the page to reload, but any approach will do.

Useful trac-hacks related to this ticket may include:

http://trac-hacks.org/wiki/FlatTableMacro
http://trac-hacks.org/wiki/MultiSortReportPatch
http://trac-hacks.org/wiki/WikiTableMacro
http://trac-hacks.org/wiki/SqlQueryMacro

A work-around is also appreciated.",anonymous,next-major-releases
enhancement,11968,Contextual navigation link to log view from changeset view,general,normal,,new,3138 days,1 by 1,"It would be beneficial to have a link to the //Revision Log// from the changeset view. The link could be placed in the contextual navigation, like we see on the //Browser// page.",Ryan J Ollos,next-major-releases
enhancement,5001,offer possibility to inform users of new releases and changes,notification,normal,,new,3180 days,7 by 4,"I can see that more and more Open Source projects are now using Trac as their development tool which is nice.
There's only one thing I dislike about it:
Most Trac sites don't have a possibility to inform users of changes or new releases of the software.
I have noticed that some sites offer a RSS-feed. But sites like sourceforge.net or http://www.berlios.de offer a automated email notification which is very convenient for system admins etc.

Maybe some RSS2news solution could be implementet. then rss could automatically also be send via email.

Thanks for addressing this.",timmichelsen@…,next-major-releases
defect,10666,Setting fine grained permissions using AuthzPolicy does not work,plugin/git,normal,,new,3191 days,5 by 4,"While attempting to use AuthzPolicy to set fine-grained (per-branch) permissions, I found out that there seemed to be no way to set these permissions for a git repository (simply using repository: did not do anything). After reading up a bit on how the AuthzPolicy permissions work, I found out that these apparently make use of 'resource descriptors' to check whether a user has permission to do something, and digging through the TracGit source brought me to the conclusion that there does not seem to be any kind of implementation of resource descriptors - which, of course, means I have no way of addressing a specific branch in my permissions configuration.

I've come to the above conclusion by attempting to disallow all features for all repositories by setting user permissions on [repository:*@*] to nothing, which did not do anything and still left all repositories and branches visible. Disallowing everything on [*] worked fine, so I know that at least the permissions system itself is working.

Unless I'm missing something, it seems a rather vital feature is missing. Is this something that is planned to be implemented, or have I overlooked something and is this functionality already present?",jamsoftgamedev@…,next-major-releases
enhancement,11676,Reusable commenting module,general,major,,new,3196 days,12 by 3,"Trac so far only supports comments on tickets, but not on other resources like:
* Wiki pages (#4279)
* Changesets (#2035)
* Source files
* Attachments
* Milestones
* Resources provided by external plugins

I would like to implement a reusable ''comment'' module, that (similar to the existing ''attachment'' module) allows us (and plugin writers) to easily add a commenting feature to all kinds of resources.

=== Existing plugins
th:AddCommentMacro, th:WikiCommentsPlugin, th:CodeCommentsPlugin, various CodeReview plugins

=== Related previous ideas
[wiki:TracDev/Proposals/AdvancedWikiOperations#/generic%20comment AdvancedWikiOperations], [wiki:TracDev/Proposals/DataModel#/comment DataModel], [wiki:TracObjectModelProposal#/comment TracObjectModelProposal], [wiki:TracDev/ContextRefactoring#/generic%20comment ContextRefactoring], GenericTrac, GenericTrac/Brainstorm, CodeReview/Annotations
",Peter Suter,next-major-releases
enhancement,10757,Use language specific starting day for date picker,i18n,normal,,new,3272 days,20 by 7,"It would be nice, if the date picker introduced with ticket #10245 would use the language specific starting day of a week.

In Germany for example the starting day of a week is Monday (and not Sunday, like in US).

Alternatively it could be a user-specific preference.",framay <franz.mayer@…>,next-major-releases
enhancement,7747,timeline rss-feeds should be able to show diffs of wiki changes,timeline,normal,,new,3323 days,6 by 4,"I use rss-feeds to get the latest news about wiki (and other) changes of my project via Thunderbird. Viewing the rss message of a wiki change I only see the whole ''actual'' state of that wiki page, which may be even overturned. I’d prefer to see the diffs made on that wiki page directly without having to click through to it (and that even on an other program (Firefox)). Therefore I suggest to add a rss_wiki_show_diff (or so) option to the [timeline] section of the trac.ini; or to change that behavior at the whole. The page the feed shall link to shall be http://wiki.neo-layout.org/wiki/“wiki_page”?action=diff&version=“new_version” (be careful! new_version doesn’t need to mean the up-to-date version, but the one meant by this special change.)",m.p.roppelt@…,next-major-releases
defect,10866,"custom search query cannot do ""keywords contains x and y""",query system,normal,,new,3325 days,2 by 2,"The custom search query (eg: on this site) cannot search for tickets containing both of two keywords. 

If you enter a keyword search for ""x"", then use the ""And"" dropdown to add a second keyword ""y"" to the search, the GUI indicates that it will search for ""x or y"", and indeed, the found tickets are those that contain one of more of ""x"" and ""y"".
",ian.wood@…,next-major-releases
enhancement,5821,Wiki blame support,wiki system,normal,,new,3343 days,11 by 6,"One feature we never got implemented into the blame branch from 2006 was blame support for wiki pages.  I now have a straw-man implementation for review.  Please give this patch a try on your 0.11-dev install and specifically let me know:

 * Does it produce ''correct'' blames on your pages?
 * Is it fast enough?
 * Should there be a new permission for annotations? some meta tags to disallow robots?
 * Should there be something more like an IBlameAnnotator with callbacks for rev links, or is this best handled through the existing IHTMLPreviewAnnotator?  I could see a lot of possibility for reuse if we eventually have versioned tickets and vc backends that don't support blames natively.
",Tim Hatch,next-major-releases
enhancement,9738,"Add ""attach file"" button at the end of the ticket",ticket system,normal,,new,3345 days,5 by 5,"Add ""attach file"" button at the end of the ticket as some (novice) users have problems finding a way to attach a file. They are used from wiki that button is at the bottom and in ticket also a change ticket form is at the bottom. So it is not really reasonable to imagine that there is one button up there (if you missed it). Even the anchor link to attachments does not help much. So I believe it would be useful to simply add ""attach file"" at the bottom, too.",Mitar,next-major-releases
enhancement,8637,"""Add to CC"" for anonymous with TICKET_APPEND permissions",ticket system,major,,new,3347 days,13 by 6,"Currently when `always_notify_updater` is set to `false` an commenter/updater has to put himself/herself to the CC list of a ticket to be notified about future changes. However, to do so the user is required to have `TICKET_MODIFY` permissions. If an administrator only want the users to be able to comment on tickets (i.e. only grants `TICKET_APPEND` permissions) the user has no way of being notified about future changes.

So it would be nice to activate this checkbox even when the user only has `TICKET_APPEND` permissions.",Sebastian Krysmanski <sebastian@…>,next-major-releases
enhancement,7724,Allow user provided mime-type for attachments,attachment,major,,new,3347 days,14 by 8,"While for svn repository files the '`svn:mime-type`' property can be used there is no way to explicit provide the mime-type for wiki attachments.

The files which mime-type is not automatically detected by Trac can not be correct inline displayed when the mime-type isn't provided by the user.
For `source` files the correct `svn:mime-type` can be set, but not for attachments.

This affects e.g. plugins implementing `IHTMLPreviewRenderer` for non-standard mime-types. Here the plugin isn't used for attachments because of the missing correct mime-type.

Question: Is there a possibility to register a file extension with a curtain mime-type, without hacking `/trac/mimeview/api.py`?

",martin@…,next-major-releases
enhancement,10047,Add RSS support for Roadmap,roadmap,normal,,new,3347 days,4 by 4,"Hello,

i'm requesting RSS support for the ""roadmap"" data.
Something like the RSS output for timeline:
http://trac.edgewall.org/timeline?format=rss

Not working currently: http://trac.edgewall.org/roadmap?format=rss
This would be usefull to display the list of milestones with dates
in an rss-reader or in another website.

Best regards, Jens",vain@…,next-major-releases
defect,9046,Cannot create a TracLink to heading in ticket description,wiki system,normal,,new,3349 days,4 by 3,"Perhaps an over-extension of the intended functionality of TracLinks, but I thought I would report it just in case it is a true defect in the intended design.

One can link to a section heading in a description: `comment:description#anchor`.

However, it doesn't seem to work to link to a section heading in the description field of another ticket: `comment:description#anchor:ticket:num`.

For example, see:
 1. [/demo-0.12/ticket/52#comment:1]
 1. [/demo-0.12/ticket/17#comment:2]

The resulting error when selecting the TracLink in (1) is:
{{{
#!html
<div class=""system-message"">
No handler matched request to /ticket/ticket
</div>
}}}",Ryan J Ollos,next-major-releases
defect,10423,Destroy trac.ini at race condition.,admin/web,normal,,new,3403 days,5 by 3,"May be destroy trac.ini when several users change trac.ini from Trac Admin page.

When change trac.ini, config module is executed save() method and parse_if_needed method 
in order.
However, If several users change trac.ini, Happen race condition between save() method and parse_if_needed method.
  A) self._section and self.parser_sectios is cleared by if_parse_needed method,
  B) save() method read into ""section"" (local value of save() method) from self.parser._sections(into self.sections())

Unable to check process that search the change option value when A and B execute at the same time. As a result, destroyed trac.ini by save() method.

I have fix this bug using RLock object of threading module.
{{{
#!diff
Index: trac/config.py
===================================================================
--- trac/config.py
+++ trac/config.py
@@ -24,6 +24,9 @@
 from trac.util.text import printout, to_unicode, CRLF
 from trac.util.translation import _, N_
+import threading
 
+lock=threading.RLock()
+
 __all__ = ['Configuration', 'Option', 'BoolOption', 'IntOption', 'FloatOption',
            'ListOption', 'ChoiceOption', 'PathOption', 'ExtensionOption',
            'OrderedExtensionsOption', 'ConfigurationError']
@@ -214,48 +217,53 @@
             return
 
         # Only save options that differ from the defaults
-        sections = []
-        for section in self.sections():
-            section_str = _to_utf8(section)
-            options = []
-            for option in self[section]:
-                default_str = None
-                for parent in self.parents:
-                    if parent.has_option(section, option, defaults=False):
-                        default_str = _to_utf8(parent.get(section, option))
-                        break
-                option_str = _to_utf8(option)
-                current_str = False
-                if self.parser.has_option(section_str, option_str):
-                    current_str = self.parser.get(section_str, option_str)
-                if current_str is not False and current_str != default_str:
-                    options.append((option_str, current_str))
-            if options:
-                sections.append((section_str, sorted(options)))
-
-        # At this point, all the strings in `sections` are UTF-8 encoded `str`
         try:
-            fileobj = AtomicFile(self.filename, 'w')
-            try:
-                fileobj.write('# -*- coding: utf-8 -*-\n\n')
-                for section, options in sections:
-                    fileobj.write('[%s]\n' % section)
-                    for key_str, val_str in options:
-                        if to_unicode(key_str) in self[section].overridden:
-                            fileobj.write('# %s = <inherited>\n' % key_str)
-                        else:
-                            val_str = val_str.replace(CRLF, '\n') \
-                                             .replace('\n', '\n ')
-                            fileobj.write('%s = %s\n' % (key_str, val_str))
-                    fileobj.write('\n')
-            finally:
-                fileobj.close()
-            self._old_sections = deepcopy(self.parser._sections)
-        except Exception:
-            # Revert all changes to avoid inconsistencies
-            self.parser._sections = deepcopy(self._old_sections)
-            raise
-
+            lock.acquire()
+            sections = []
+            for section in self.sections():
+                section_str = _to_utf8(section)
+                options = []
+                for option in self[section]:
+                    default_str = None
+                    for parent in self.parents:
+                        if parent.has_option(section, option, defaults=False):
+                            default_str = _to_utf8(parent.get(section, option))
+                            break
+                    option_str = _to_utf8(option)
+                    current_str = False
+                    if self.parser.has_option(section_str, option_str):
+                        current_str = self.parser.get(section_str, option_str)
+                    if current_str is not False and current_str != default_str:
+                        options.append((option_str, current_str))
+                if options:
+                    sections.append((section_str, sorted(options)))
+        
+            
+            # At this point, all the strings in `sections` are UTF-8 encoded `str`
+            try:
+                fileobj = AtomicFile(self.filename, 'w')
+                try:
+                    fileobj.write('# -*- coding: utf-8 -*-\n\n')
+                    for section, options in sections:
+                        fileobj.write('[%s]\n' % section)
+                        for key_str, val_str in options:
+                            if to_unicode(key_str) in self[section].overridden:
+                                fileobj.write('# %s = <inherited>\n' % key_str)
+                            else:
+                                val_str = val_str.replace(CRLF, '\n') \
+                                                 .replace('\n', '\n ')
+                                fileobj.write('%s = %s\n' % (key_str, val_str))
+                        fileobj.write('\n')
+                finally:
+                    fileobj.close()
+                self._old_sections = deepcopy(self.parser._sections)
+            except Exception:
+                # Revert all changes to avoid inconsistencies
+                self.parser._sections = deepcopy(self._old_sections)
+                raise
+        finally:
+            lock.release()
+                
     def parse_if_needed(self, force=False):
         if not self.filename or not os.path.isfile(self.filename):
             return False
@@ -263,13 +271,17 @@
         changed = False
         modtime = os.path.getmtime(self.filename)
         if force or modtime > self._lastmtime:
-            self._sections = {}
-            self.parser._sections = {}
-            self.parser.read(self.filename)
-            self._lastmtime = modtime
-            self._old_sections = deepcopy(self.parser._sections)
-            changed = True
-        
+            try:
+                lock.acquire()
+                self._sections = {}
+                self.parser._sections = {}
+                self.parser.read(self.filename)
+                self._lastmtime = modtime
+                self._old_sections = deepcopy(self.parser._sections)
+                changed = True
+            finally:
+                lock.release()
+                
         if changed:
             self.parents = []
             if self.parser.has_option('inherit', 'file'):
}}}

And I confirmed fix at Windows platform Apache and tracd.",kawamuramst,next-major-releases
defect,7608,Private ticket permission users can get ticket counts that include tickets they're not allowed to view,report system,normal,,new,3414 days,12 by 10,"A user with private tickets permissions can still query how many tickets meet criteria even if they can't see the tickets listed or view them.

For instance they can type in query?status=!closed&priority=critical to get a count of how many critical defects are open. 

I originally wrote this ticket on the !PrivateTicketsPlugin ([http://trac-hacks.org/ticket/3674 #3674]) but heard that it's a problem in Trac core.",jevans,next-major-releases
enhancement,1424,MediaWiki-style table syntax support,wiki system,normal,,new,3466 days,11 by 5,"Just a personal preference, but I really like mediawiki's formatting styles for lists and tables (lists, because they make more sense to me, and tables because they're more powerful than trac's implementation)..   (by tables, I mean the pipe-format, not the html or pseudo-html formats).

http://en.wikipedia.org/wiki/Help:Table#Guide_to_the_pipe_syntax",xris@…,next-major-releases
defect,9947,Unexpected resolver result for TracLinks in wiki page within hierarchy,wiki system,normal,,new,3486 days,9 by 4,"Current wiki parser seems unable to translate links like
{{{WikiPage}}}, {{{[../WikiPage]}}} or even {{{[wiki:WikiPage]}}}
to the expected target, a least if used to reference an equally named page from within a wiki subpage:

See [wiki:TranslationDe/TracWiki@1], where I tried to reference {{{[wiki:TracWiki]}}} by typing just TracWiki at the top of the page but got the equivalent of {{{[wiki:TranslationDe/TracWiki]}}} instead, what is plain wrong.

I tried all of the aforementioned syntax and came up with {{{[/wiki/TracWiki]}}} as valid workaround to get the expected «top-hierarchy page» for a fixed revision in [wiki:TranslationDe/TracWiki@2].",Steffen Hoffmann,next-major-releases
enhancement,11323,WikiProcessor argument to limit line width,wiki system,normal,,new,3490 days,1 by 1,"The th:EmailProcessorMacro can be used to limit the width of text in a `pre` block. It would be generally useful to add an argument to WikiProcessors for limiting the width of the text. The argument could be `wrap` or `cols` and should allow for a numeric argument for number of columns (`wrap=79` or `cols=79`).

Additionally, we might consider ""auto-wrapping"" columns based on the width of the screen.",Ryan J Ollos,next-major-releases
enhancement,11206,Reduce join in query process,query system,normal,,new,3491 days,2 by 2,"Hi,

We are running Trac with 10k tickets, and some modules need query through TracQuery a lot, but we found backend MySQL's load is heavy.

From ''show processlist'', we found join query of ""copy to tmp table"" action between tables may cost a lot of time.

We debugged the SQL below:
{{{
SELECT COUNT(*) FROM (SELECT t.id AS id,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.resolution AS resolution,t.time AS time,t.changetime AS changetime,t.summary AS summary,priority.value AS priority_value
FROM ticket AS t
  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)
WHERE ((COALESCE(t.summary,'')='querystr'))
ORDER BY COALESCE(priority.value,'')='',CAST(priority.value AS signed),t.id) AS foo
}}}

After profiling the query: Copying to tmp table cost 99.355% percentage of whole time.
If `((COALESCE(t.summary,'')='querystr'))` changed to `t.summary = ""querystr""`,
this copy action will not take that much time.
And if count only 0, problem still happens, if not count, problem not exists, maybe we can directly select the result with count.
Or break this query into `t.summary = '' or t.summary is null` if query string is empty.

Another problem is 'priority' column are regarded as required fields even I deselect priority column, thus join will be need every query.

Maybe in default, join on priority can be removed, or deselect priority column will disable it.

Thanks!
V.E.O",VEOVUSH@…,next-major-releases
defect,9946,CommitTicketUpdater does not honor wiki_format_messages setting,version control/changeset view,normal,,new,3507 days,6 by 4,"When the {{{[changset] wiki_format_messages}}} option is set to {{{false}}}, I would expect that the changset message that gets sent by email and that gets added as a comment to any referenced ticket(s) would be pre-formatted (i.e., not in wiki format).  However, this is not the case.

In looking at the code, it seems the option isn't even checked - line 195 of method {{{CommitTicketUpdater.make_ticket_comment()}}} in {{{tracopt/ticket/commit_updater.py}}}:
{{{
    def make_ticket_comment(self, repos, changeset):
        """"""Create the ticket comment from the changeset data.""""""
        revstring = str(changeset.rev)
        if repos.reponame:
            revstring += '/' + repos.reponame
        return """"""\
In [%s]:
{{{
#!CommitTicketReference repository=""%s"" revision=""%s""
%s
}}}"""""" % (revstring, repos.reponame, changeset.rev, changeset.message.strip())
}}}
",guttman@…,next-major-releases
enhancement,5031,Queries ought to support less/great than for ordered values (i.e. priorities and severities),ticket system,normal,,new,3508 days,10 by 5,I.e. expand the [is|is not] operator set a bit.,macke@…,next-major-releases
enhancement,9472,Workflow actions not translated,i18n,minor,,new,3597 days,9 by 7,"I'm administering an installation of Trac 0.12, Python 2.5.4, with multi-lingual users.

Though most of Trac is translated correctly, the ''Action'' menu (under ''Modify Ticket'') still lists the main options in English. This is true for all languages that I have tried, namely Japanese, Hebrew and German.",sajjad@…,next-major-releases
enhancement,9310,Allow cookies be set for textarea heights upon resize and restore upon document load,general,trivial,,new,3605 days,26 by 5,"
This basically involves incorporating the jquery plugin for handling cookies.

The patch is rather simple. See the attached jquery_cookies.js which must be included with trac/htdocs/js/.

Here is the original project page for reference:

http://plugins.jquery.com/project/cookie


{{{#!diff
Index: htdocs/js/resizer.js
===================================================================
--- htdocs/js/resizer.js	(Revision 57)
+++ htdocs/js/resizer.js	(Arbeitskopie)
@@ -5,6 +5,15 @@
     var textarea = $(this);
     var offset = null;
     
+    function getCookieName(textarea) {
+      if (textarea.attr(""id"")) {
+        return ""trac."" + textarea.attr(""id"");
+      }
+      else if (textarea.attr(""name"")) {
+        return ""trac."" + textarea.attr(""name"");
+      }
+    }
+    
     function beginDrag(e) {
       offset = textarea.height() - e.pageY;
       textarea.blur();
@@ -18,6 +27,12 @@
     }
     
     function endDrag(e) {
+      // set cookie for permanently storing information 
+      // on the height of the resizable, if possible
+      name = getCookieName(textarea);
+      if (name) {
+        $.cookie(name, textarea.height(), ( new Date() ).getTime() + 1000000);     	
+      }
       textarea.focus();
       $(document).unbind('mousemove', dragging).unbind('mouseup', endDrag);
     }
@@ -27,5 +42,15 @@
             .parent().append(grip);
     grip.style.marginLeft = (this.offsetLeft - grip.offsetLeft) + 'px';
     grip.style.marginRight = (grip.offsetWidth - this.offsetWidth) +'px';
+    
+    // restore height from cookie, if avail
+    var height = 0;
+    var name = getCookieName(textarea);
+    if (name)
+    {
+      height = $.cookie(name)
+    }
+    textarea.height(Math.max(32, height));
   });
 });
+
Index: web/chrome.py
===================================================================
--- web/chrome.py	(Revision 57)
+++ web/chrome.py	(Arbeitskopie)
@@ -522,6 +522,7 @@
         add_link(req, 'help', req.href.wiki('TracGuide'))
         add_stylesheet(req, 'common/css/trac.css')
         add_script(req, 'common/js/jquery.js')
+        add_script(req, 'common/js/jquery_cookies.js')
         # Only activate noConflict mode if requested to by the handler
         if handler is not None and \
            getattr(handler.__class__, 'jquery_noconflict', False):
}}}


BTW Thanks for incorporating this, it makes using trac a lot more easier.
",Carsten Klein <carsten.klein@…>,next-major-releases
defect,8426,Unable to print any of the admin pages,admin/web,normal,,new,3633 days,11 by 4,"From any of the admin pages (e.g. [/admin/general/perm], [/admin/accounts/users], [/admin/ticket/components]) am unable to generate a useful printout.  When one does so, I get the page title and Administration navigate box, but no useful information that was on the page.  I assume the is a CSS issue.",mpotter@…,next-major-releases
defect,11301,intermittent failure with notification test,ticket system,normal,,new,3664 days,5 by 2,"The usual `make test` after a recent pull on trunk gave me the following:
{{{
ERROR: test_from_author (trac.ticket.tests.notification.NotificationTestCase)
Using the reporter or change author as the notification sender
----------------------------------------------------------------------
Traceback (most recent call last):
  File ""c:\Trac\repos\trunk\trac\ticket\tests\notification.py"", line 369, in test_from_author
    ticket.save_changes('noemail', 'More changes')
  File ""c:\Trac\repos\trunk\trac\ticket\model.py"", line 387, in save_changes
    old_db_values[name], db_values.get(name, '')))
  File ""c:\Trac\repos\trunk\trac\db\util.py"", line 121, in execute
    cursor.execute(query, params)
  File ""c:\Trac\repos\trunk\trac\db\util.py"", line 54, in execute
    r = self.cursor.execute(sql_escape_percent(sql), args)
  File ""c:\Trac\repos\trunk\trac\db\sqlite_backend.py"", line 78, in execute
    result = PyFormatCursor.execute(self, *args)
  File ""c:\Trac\repos\trunk\trac\db\sqlite_backend.py"", line 56, in execute
    args or [])
  File ""c:\Trac\repos\trunk\trac\db\sqlite_backend.py"", line 48, in _rollback_on_error
    return function(self, *args, **kwargs)
IntegrityError: columns ticket, time, field are not unique

----------------------------------------------------------------------
Ran 1212 tests in 13.759s

FAILED (errors=1)
}}}
Twice in a row... also on 1.0-stable, then not anymore: I could do 10 runs without any errors. Wonder if it's a timing issue or something like that. The errors all happened with Python 2.7 but I don't think this has anything to do with it.

Looking at the code, I find a succession of 4 `save_changes` calls, without much done in between. It might simply be that the 3rd `save_changes` (line 369) happens within the same microsecond(?) than the 2nd `save_changes` (line 361).

This raises the interesting question if we should try to fix this for the tests only or if it would be useful to introduce a small delay in general for the `save_changes` so that this API becomes ""timing"" safe.

For example, here's a very simple way to reproduce this error:
{{{#!diff
Index: trac/ticket/tests/model.py
===================================================================
--- trac/ticket/tests/model.py	(revision 12049)
+++ trac/ticket/tests/model.py	(working copy)
@@ -110,6 +110,8 @@
         ticket2 = self._create_a_ticket()
         ticket2.insert()
         ticket2['summary'] = 'Bar'
+        ticket2['foo'] = 'New value 0'
+        ticket2.save_changes('santa', 'this is my comment 0')
         ticket2['foo'] = 'New value'
         ticket2.save_changes('santa', 'this is my comment')
         return ticket2
}}}

But ""fixing"" this is not straightforward, as experimenting shows that it's not obvious how to pick the appropriate value for the delay. On Windows, adding a call to `time.sleep(0.001)` did the trick, but 0.0001 didn't. I wonder if 0.001 would be good enough for all platforms and versions of Python.

Then of course, using ""time"" as part of the key was also not the best idea we ever had...",Christian Boos,next-major-releases
defect,11013,Unable to hotcopy SQLite database on Windows if >1Gb,admin/console,normal,,new,3901 days,1 by 1,"System Information:
- Trac 0.12
- Windows XP 64bits SP2 (should be reproduceable on any version of Windows)


How To Reproduce:

Assuming your Trac env use a large (>1Gb) SQLite database, when you use ""trac-admin hotcopy ENV"" (while Trac is running), the copy of the database fails at 1Gb.

''Why :''
On Windows, when a SQLite DB is locked (eg, during a transaction), database file has an exclusive lock between 1Gb and 1Gb + 512bytes (see http://www.mail-archive.com/sqlite-users@sqlite.org/msg08077.html), so hotcopy fails to read it.

''Proposition :''
When SQLite backend is used, skip the database file during the hotcopy process and use something like ""sqlite3 trac.db .backup trac.db.bak"" instead.",pdecourcel@…,next-major-releases
defect,10311,improve ticket change hints in custom query,query system,normal,,new,4075 days,4 by 3,"Steps to reproduce:
 1. query tickets owned by user A and B group by owner
 2. reassign one ticket found in step 1 to user C
 3. query tickets owned by user A and B again, with the same constraint as in step 1

Expect result,
 tickets are shown group by user A and B

In fact,
 user C with the ticket just assigned to him shown too.

After a quick look at the source code, found it's the cached ""query_tickets"" session attribute caused the issue. If query constraints keep the same but ticket changed within time delta, query result may be wrong.
",haterw@…,next-major-releases
enhancement,10182,Unit tests do not run in their own sandbox,general,normal,,new,4097 days,11 by 5,"Unit tests use the system temporary directory to create sub dirs and files. This leads to two distinct issues:
 1. Two test sessions running at once on the same host may collide, as they create, update and remove files and directories within the same top directory
 1. If the temporary directory already contains files or dirs from a previous test session, the current test session fails within the setUp() methods. This issue causes the Python `unittest` framework not to call the clean up tearDown() methods, leaving the faulty directory unfixed. Any subsequent unit test session keeps failing until manual removal of the directory is performed.

A unique temporary directory could be created and used for every single test session, to avoid those issues.
",Emmanuel Blot,next-major-releases
enhancement,10049,Trac-admin should permit issue or task creation,admin/console,normal,,new,4103 days,11 by 7,"Hello,

I saw trac-admin allows to close an issue. I suppose this is dedicated to let user create SVN hooks for example.

In the same way, I'd like to be able to open an issue or a task from CLI. Indeed, it would be a great way to automate ticket opening.

It would be interesting to open a task from crontab or to create a function in our programs to relay some stderr to trac-admin in order to open an issue.

Concerning tasks, I suppose everybody could be concerned. Concerning issues, I know that most projects do not need this because tickets are bugs detected by users but in other organizations, people worked this way (particular error need to be solved via a ticket or particular jobs take an inventory of possible errors in a ticket). I personally would be really interested to open an issue if a program do not execute the ""if"" but the ""else"" :)

Regards,
Phil.",philippe@…,next-major-releases
defect,10733,Renamed files and prev/next links don't work well,version control,normal,,new,4115 days,2 by 2,"source:trunk/trac/versioncontrol/web_ui/browser.py@10924#L427 creates links for the previous, next and latest revision of a given file. This does not take name changes into account: the link will always be for the created_path member value, which is described in #3340. But in the presence of a rename, both the preceding and the next revision of a file might be in a different location.

So Repository.previous_rev and next_rev should probably be allowed to not only return a revision but a new path as well. Perhaps you could allow them to return a tuple, either checking the actually returned value using isinstance or breaking backwards compatibility. Or you could introduce a new method. Up to you.
Current api at source:trunk/trac/versioncontrol/api.py@11059#L873
Perhaps this would help getting rid of created_path altogether, as it would now be up to the repository backend to decide what path to return.",Martin.vGagern@…,next-major-releases
enhancement,10579,"Do not use ""anonymous"" updater's email in ticket notification From",notification,normal,,new,4235 days,1 by 1,"Originally an additional suggestion to #8360 in [comment:11:ticket:8360 comment:11]:

With the ""improvement"" mentioned in [comment:9:ticket:8360 comment:9], it would be possible for a malefactor to use a Trac system to send emails (new tickets or comments) that would appear to come from someone else.

Suggestion: The new `smtp_from_author` feature should only use email addresses from authenticated users.",Mark Potter <mpotter@…>,next-major-releases
defect,7680,Broken Error Reporting?,rendering,normal,,new,4248 days,4 by 3,"The following comes up as the entire literal contents of the page I'm viewing.  It seems to me to be broken in several ways:

 1. It's not valid HTML
 2. Trac's nice built-in traceback display is bypassed.
 3. It appears to be generating an error while reporting an error.  In this case the original error is lost and the system tells the user almost nothing she needs to know in order to debug the problem.

Is that really the intended behavior?

{{{
#!python
Traceback (most recent call last):
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/api.py"", line 339, in send_error
    'text/html')
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/chrome.py"", line 702, in render_template
    if not req.session or not int(req.session.get('accesskeys', 0)):
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/api.py"", line 169, in __getattr__
    value = self.callbacks[name](self)
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/main.py"", line 257, in _get_session
    return Session(self.env, req)
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/session.py"", line 150, in __init__
    self.get_session(req.authname, authenticated=True)
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/session.py"", line 164, in get_session
    super(Session, self).get_session(sid, authenticated)
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/web/session.py"", line 56, in get_session
    (sid, int(authenticated)))
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/db/util.py"", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/db/util.py"", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
ProgrammingError: current transaction is aborted, commands ignored until end of transaction block
}}}",dave@…,next-major-releases
enhancement,8371,need to view ticket-list of only tickets with unanswered updates,report system,normal,,new,4248 days,7 by 3,"Trac is so good that one's database grows rapidly.  I need to be able to view a filtered ticket-list, showing only those tickets which:
-  were created by me
-  the last update was by someone else, not me
ie tickets which have queries I need to answer.

We can't see how to do this.     Tony",carrt7@…,next-major-releases
enhancement,8387,Need method to view source code of RST files,rendering,normal,,new,4248 days,4 by 2,"As discussed in WikiRestructuredText, files in the repository are parsed using RST if the Subversion property `svn:mime-type` is set to `text/x-rst` (for example - source:trunk/INSTALL).

This is a very useful feature in general. However, on occasions I would like to be able to view the RST file as a text file complete with line numbers. For example, this would allow me to highlight a set of lines in the file.

Links are already provided at the bottom of the page for ""Original Format"" and ""Plain Text"". Could an additional link be provided for ""Source""?

This would also apply to files containing wiki markup which have had `svn:mime-type` set appropriately (can't remember what you have to set this to and I can't find it in the documentation :-( ).",David Matthews,next-major-releases
enhancement,8670,Ticket owner list should not depend on TICKET_MODIFY permission,ticket system,normal,,new,4248 days,7 by 3,"It's nice to be able to use `restrict_owner` in the `[ticket]` section of trac.ini to yield a select box (dropdown) for the ""Assign to"" field.

But the list contains everyone who has a profile and has TICKET_MODIFY privileges. It would be very, very nice to have a restrict_group option after it, which would allow me to define a group with a given privilege constellation (e.g. developers), and then only have their names appear as candidates.",fewayne@…,next-major-releases
defect,10059,prop.rendered not properly set in browser.html,version control/browser,normal,,new,4270 days,5 by 3,"Hi,

despite having the wiki_properties set to a property that is rendered correctly as wiki syntax, the prop.rendered in browser.html is not set. This causes everything to be displayed not in the py:when case of a span and a div.",anonymous,next-major-releases
defect,10525,TicketQuery macro broken for some keywords-based queries,query system,major,,new,4274 days,1 by 1,"Example:
1. What I want- A list of tickets that contain the keyword `svnauthz` and also does not contain the keyword `permission`
1. How I think I should do it- `[[TicketQuery(keywords~=svnauthz&keywords!~=permission, format=table, col=keywords)]]`
1. The result:
[[TicketQuery(keywords~=svnauthz&keywords!~=permission, format=table, col=keywords)]]

== The problem
Note that #4503 is on the list, although it has the `permission` keyword.

In fact, the result is identical to `[[TicketQuery(keywords~=svnauthz, format=table, col=keywords)]]`.

I have observed the same issue in 0.12.3dev, and was able to debug this into the trac.ticket.query.Query class.

When executing the query, the keywords constraint looks like {'keywords': ['~svnauthz', '!~permission']}, but in `get_clause_sql` the `neg` and `mode` variables are set only according to the first item (e.g. `'~svnauthz'`), so the generated SQL comes out messed up w.r.t the second constraint.

Sorry for not suggesting a patch, but this code is quite complex...",Itamar Ostricher,next-major-releases
defect,10455,A repository hides a directory which has the same name in default repository,version control/browser,normal,,new,4341 days,3 by 3,"=== Reproduce
 1. Create a repository with `trac/versioncontrol/tests/svnrepos.dump` and adds as default repository. The root directory has `trunk`, `branches`, `tags` directories in the repository.
 2. Create another repository and add it with repository name being `tags`.
 3. Launch tracd and view `/browser` page.
 4. Expand `tags` directory in default repository. It will show second repository instead of `tags` in default repository.",Jun Omae,next-major-releases
defect,9735,TicketQuery adds reporter by default,ticket system,normal,,new,4353 days,4 by 3,`TicketQuery` macro adds reporter row by default if using `rows` option. It seems this is [source:trunk/trac/ticket/query.py#L430 hard-coded]. It would be great to be able to disable this feature for those who wants more concise output.,Mitar,next-major-releases
enhancement,9574,add filters to TicketQuery from query string arguments,wiki system,normal,,new,4357 days,6 by 4,"I'm using wiki pages and the TicketQuery macro to create ticket summary/overview pages, as I find them much more flexible than reports as I can have multiple 'views' on the same page (for example, have 'Assigned to you', 'Awaiting assignment', 'In progress', etc - each shows top 10, has different filters and ordered by different columns, all in the same page. Creating a page like that isn't possible with reports).

So - what I'm trying to do is create a per-project ('project' being a custom field I added) and per-components ticket overview using the Wiki. Instead of copying the wiki page for every project/component I have, I want to use something like `wiki/TicketSummary?project=foobar` and than read the query-string argument (`project`) to be used inside the TicketQuery macro and `[query:]`.

I was trying to do it using IWikiSyntaxProvider and get_wiki_syntax (http://pastie.org/private/evw1r9jkhcmq3m6jjgrojw), by replacing ${foobar} with `req.args['foobar']`, which works - but not inside other macros.

I think the best way is adding this functionality to core, by parsing custom arguments inside the TicketQuery macro and `[source:]` link, in a similar way to how $USER is replaced with the currently logged in user - but replacing them with query-string arguments instead.

This will give users better control and flexibility in creating their own custom ticket overviews, which can replace the reports in some cases if those pages could be dynamic and show different content based on arguments.",shesek,next-major-releases
enhancement,10409,Link to list of supported macros/processors on error,rendering,normal,,new,4367 days,2 by 1,"The message below can link to pages with supported macros and processors.
{{{
#!noteX
some error
}}}",anatoly techtonik <techtonik@…>,next-major-releases
enhancement,9683,Make htdocs_location more useful,web frontend,normal,,new,4397 days,5 by 3,"At the occasion of the discussion on r10203 and r10204, osimons pointed me at the limitations of the [TracIni#htdocs_location-option htdocs_location] and the fact that it was sometimes pretty useless as such, as it only coped with the core trac resources (those below `common/`). 

You end up having to add rewrite rules in the web server if you want to serve the static resources of the plugins, those exported along with Trac core ones when using `trac-admin <env> deploy <dir>`.

This got me thinking if we couldn't enhance the `htdocs_location` internal rewrite mechanism so that it would take care of all the chrome/ resources (except for the `site/` and `shared/` ones).

By using a new setting, `htdocs_location_prefix`, we could control the restriction that we currently apply on resources starting with `common/`. So the default value for that new setting will be `common/`, but we would also support the empty value for serving everything but `site/` and `shared/` prefixes, and *, serving everything including `site/` and `shared/`.

Testing here on [/demo-0.13], seems to work well, but OTOH, there are no plugins ;-)  Feedback welcomed.
",Christian Boos,next-major-releases
enhancement,10325,Way to delete ticket comments versions,ticket system,normal,,new,4422 days,1 by 1,"In a similar way that it is possible to delete just wiki page versions, it would be great to be able to delete also ticket comments versions. Currently it is possible only to delete the comment as a whole, with all versions.

Similar maybe also for summary versions?",Mitar,next-major-releases
enhancement,8677,Ability to follow/unfollow a ticket,ticket system,minor,,new,4497 days,16 by 7,"It would be great to be able to start following (receive notifications to email) or stop following any ticket you are watching in one click. This would work for logged in users only of course. 

",Alexey Timanovsky <timanovsky@…>,next-major-releases
defect,10202,TracQuery fails to handle checkbox custom fields,query system,major,,new,4504 days,1 by 1,"Define a custom field

{{{
col_private = checkbox
col_private.label = Private
col_private.value = 0
col_private.order = 10
}}}

If you now create a new TracQuery via webpage, select this custom field for filter and set filter value to 'No', all previous created tickets are filtered out.
Ok, accepting that the old tickets do not have a ""Private"" value set, we edit the `query:`-String and replace `col_private=0` by `col_private!=1`. But now all tickets are listed, including all tickets set as ""Private"".
The macro TicketQuery ""fails"" too using `col_private=0` for filtering, but can handle `col_private!=1` properly.

||Trac  	||0.12.2||
||Babel 	||0.9.6||
||Genshi 	||0.6||
||pysqlite 	||2.6.3||
||Python 	||2.4.3 (#1, Sep 3 2009, 15:37:37) [GCC 4.1.2 20080704 (Red Hat 4.1.2-46)]||
||pytz 	||2011e||
||setuptools 	||0.6c11||
||SQLite 	||3.3.6||
||Subversion 	||1.4.2 (r22196)||
||jQuery:	||1.4.2||",anonymous,next-major-releases
defect,10168,trac generates error 500 in case no prermission to conf/trac.ini,general,normal,,new,4529 days,4 by 2,"Hi,

I just spend several hours trying to debug a trac problem. Which can be easily reproduced.

I got ...
{{{
Trac Error

TracError: The Trac Environment needs to be upgraded.

Run ""trac-admin /srv/trac upgrade""
}}}

Then I realized that by changing the owner of the config file conf/trac.ini it got to work.

To reproduce this do:
{{{
root@Apollon:/srv/trac # chown root conf/trac.ini
root@Apollon:/srv/trac # ll conf/trac.ini
-rw------- 1 root apache 6,8K  5. Mai 18:18 conf/trac.ini
root@Apollon:/srv/trac # service httpd restart
httpd beenden:                                             [  OK  ]
httpd starten:                                             [  OK  ]
}}}
It does now not work.

{{{
root@Apollon:/srv/trac # chown apache conf/trac.ini
root@Apollon:/srv/trac # service httpd restart
httpd beenden:                                             [  OK  ]
httpd starten:                                             [  OK  ]
}}}

Now it works again.

I am using Trac 0.12.3dev-r10683.",mail@…,next-major-releases
enhancement,10167,"Column ""Date"" in Change History of a Wiki Page",wiki system,minor,,new,4529 days,2 by 2,"This column should by labelled ""Age"" (and the css class should be ""age""), since it actually shows the age of the changes (... days '''ago'''), not the date.",wilfred.berger@…,next-major-releases
enhancement,10150,Plugin installation errors should be shown on admin page,admin/web,normal,,new,4538 days,3 by 2,"The last few times I've tried to install a plugin, I've made some sort of stupid mistake. Either I got an egg for the wrong version of Python, or I've right-click copied what I thought was the url from trac-hacks, but was actually the html page with the link to the attached egg. (Then I wget the ""egg"" and I'm none the wiser until I investigate it).

And when I put it in the plugins directory and reload trac... nothing happens. I have to do the investigation myself. It would be nice if, whatever it is that makes trac decide to reject the egg, would be displayed in the same screen as the list of plugins.

Thanks!",orblivion@…,next-major-releases
defect,9868,Impossible to see the changelog of a branch using Mercurial,version control/log view,normal,,new,4547 days,5 by 3,"Using Mercurial Plugin:
 * browse source
 * select a branch
 * go to revision log

Due to the nature of how it is implemented, it only shows in the first row the tip of such branch and the rest of revisions belongs to all branches. ",Ismael de Esteban <ismael@…>,next-major-releases
defect,9734,Redirecting to non-HTTP URLs not possible,general,normal,,new,4552 days,9 by 4,"Redirecting to non-HTTP URLs is not possible because of the [source:trunk/trac/web/api.py#L369 check in the code] which assumes only `http` or `https` based URLs. Of course redirect should work for any valid URL.

I also doubt there is any reason why Trac itself should try to fix non-absolute URLs. This is browser's work to do.",Mitar,next-major-releases
enhancement,8383,Render baetle as RDFa on ticket pages,web frontend,normal,,new,4597 days,7 by 2,"Baetle is an ontology for describing bugs / tickets.

http://code.google.com/p/baetle/

Google, Yahoo have started indexing RDFa. It would be reasonably easy to mark up the rendered XHTML from trac tickets and comments as RDFa using Baetle.
This would allow user agents like Yahoo to extract structured information about bugs from trac installations, and provide possibly enhanced search results.


See also:
http://osdir.com/ml/version-control.subversion.trac.devel/2008-03/msg00004.html",daniel.oconnor@…,next-major-releases
enhancement,9938,Improve on static resources,web frontend,normal,,new,4598 days,6 by 4,"I know there are multiple ways of externally optimizing servicing static resources from a trac environment.

However, for must users these are way off their limits, so here is a different approach that is directly built into trac.

By default, the chrome component is the instance where all template providers will be evaluated for servicing static resources for a given prefix and filename /aka path.

As of now, requests for these files will be processed by the chrome component's request handler, which then will call req.send_file for sending the file.

Since this requires the whole bunch of the default request dispatcher component, along with multiple other instances of components being either instantiated or referenced, overall servicing latency is rather high, especially for resources that lead to a 404 or 304 response.

My proposition is now to introduce a `StaticResourceCache` component at the web.main level, which will then be used by both the chrome component for registering resources and the main _dispatch_request routine.

The cache will be filled lazily, so for each resource currently not in the cache, the default request dispatcher will call chrome to process the request normally.

As soon as the resource is in the cache, the _dispatch_request function will intercept the call and directly handle the static resource request.

In my local environment, this has lowered response times by about 100...500ms.

As an example, for a given page I did multiple reloads and viewing the results in firebug's network monitor.
Without the optimizations, response times for static resources vary from 13ms to >200ms. With the optimizations, response times for static resource become much more reproducible, varying also from 13ms to >200ms. The peaks, however, are now less frequent and overall response times are well below the 60ms mark.

A nice side effect is that, the overall time for fetching a simple page has dropped from >560ms .. 1,2s (without optimizations) to 420ms..1,2s (with the optimizations). Again, here the peaks are less perceptible, especially when reloading the same page during edit/save/preview cycles.

You can find the source for that patch under http://github.com/axnsoftware/trac-bugs-n-features.

I will name you the branch as soon as I have the ticket id.
",Carsten Klein <carsten.klein@…>,next-major-releases
enhancement,9248,Trac as reST editor,wiki system,normal,,new,4599 days,4 by 2,"Trac markup is nice, but it is not suitable for documentation that should be distributed in various formats. For example, for Bitten reST is a better option as it could transformed by Sphinx into various stuff.

It could be nice if Trac could maintain documentation in specially designated wiki namespace as reST docs, so that these docs can be then synced back with version control system.

If it is possible to create a 1:1 symmetrical Trac to reST markup mapper (Genshi?), even partial - Trac could be used as online editor for Bitten docs, which will surely improve community participation.",anatoly techtonik <techtonik@…>,next-major-releases
defect,9157,backtrace in attachment description,attachment,minor,,new,4599 days,6 by 3,"Seen this backtrace in the logs:
{{{
[pid  1122634064] 2010-03-22 10:02:24,962 Trac[main] ERROR: Internal Server Error:
Traceback (most recent call last):
  File ""build/bdist.linux-x86_64/egg/trac/web/main.py"", line 504, in _dispatch_request
    dispatcher.dispatch(req)
  File ""build/bdist.linux-x86_64/egg/trac/web/main.py"", line 235, in dispatch
    resp = chosen_handler.process_request(req)
  File ""build/bdist.linux-x86_64/egg/trac/attachment.py"", line 371, in process_request
    parent_name = get_resource_name(self.env, parent)
  File ""build/bdist.linux-x86_64/egg/trac/resource.py"", line 332, in get_resource_name
    return get_resource_description(env, resource)
  File ""build/bdist.linux-x86_64/egg/trac/resource.py"", line 329, in get_resource_description
    return manager.get_resource_description(resource, format, **kwargs)
  File ""build/bdist.linux-x86_64/egg/trac/attachment.py"", line 527, in get_resource_description
    parent=get_resource_name(self.env, resource.parent))
  File ""build/bdist.linux-x86_64/egg/trac/resource.py"", line 332, in get_resource_name
    return get_resource_description(env, resource)
  File ""build/bdist.linux-x86_64/egg/trac/resource.py"", line 322, in get_resource_description
    manager = ResourceSystem(env).get_resource_manager(resource.realm)
AttributeError: 'NoneType' object has no attribute 'realm'
}}}

This was for the following request:
{{{
66.249.65.117 trac.edgewall.org - [22/Mar/2010:10:02:25 +0100] ""GET /attachment/attachment/ticket/6109/?action=new HTTP/1.1"" 500 9389 ""-"" ""Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)""
}}}
",Christian Boos,next-major-releases
defect,10027,TicketQuery groups without translation,ticket system,minor,,new,4599 days,1 by 1,"I'm using Trac 0.12.2 with German language.
On my WikiStart page I have a TicketQuery with ""order=milestone"". The group title results in ""test milestone Tickets:"". Due to my language settings I would expect something like ""test Meilenstein Tickets:"" as the German word ""Meilenstein"" is associated with the English ""Milestone"".

Without having it tested, I assume it's the same e.g. for component (""Komponente"") and all these normally translated default fields. (see [source:/tags/trac-0.12.2/trac/ticket/query.py#L1338 here])",the3illings@…,next-major-releases
enhancement,10032,Wiki page mouse hover tooltip,wiki system,minor,,new,4607 days,2 by 2,"When I am currently in a comment (or even on the timeline), the WikiPages and CamelCase words are highlighted in red. But they do not show tooltips when the mouse hovers over them. It is really nice when the mouse hovers over ticket numbers like #1 it will show the summary of the ticket. This would be nice if it works with WikiPages and CamelCase words as well.",francoishill11@…,next-major-releases
defect,9979,[PATCH] Single changeset resync fails if changesets are missing,version control,normal,,new,4637 days,6 by 4,"When running {{{repository resync repo rev}}} the operation fails if the revision you are trying to resync is missing from the revisions table.  Attached patch ""fixes"" that, maybe not in the most elegant or correct way.  Improvements welcome. ",barry@…,next-major-releases
enhancement,8952,trac-admin hotcopy should (be able to) copy contents of symbolic links,admin/console,normal,,new,4671 days,8 by 4,"I have some symlinks in the my trac project folder and when I run {{{trac-admin myproject hotcopy}}} it copies the symlink. Is it possible to make a copy of the folder that includes the content of those symlinks? That way I don't need to worry about those when I make a backup.. The {{{htdocs}}} and {{{templates}}} folders in my environment are symlinks as well (to checkouts of svn repositories) that contain the templates and config files for my trac project, so they're essential to be part of the hotcopy. If you don't want to do it by default for some reason, is it possible to add an option that makes this possible?

The test below shows the output of hotcopy contains a symbolic link to {{{folder -> ../folder}}}.

{{{
#!sh
thijs@home:~/Sites$ mkdir test
thijs@home:~/Sites$ cd test/
thijs@home:~/Sites/test$ ls -l
thijs@home:~/Sites/test$ trac-admin myproject initenv
Creating a new Trac environment at /Users/thijs/Sites/test/myproject

Trac will first ask a few questions about your environment 
in order to initialize and prepare the project database.

[snip]

thijs@home:~/Sites/test$ ls -l
total 0
drwxr-xr-x  11 thijs  staff  374 10 Jan 14:31 myproject
thijs@home:~/Sites/test$ mkdir folder
thijs@home:~/Sites/test$ cd myproject/
thijs@home:~/Sites/test/myproject$ ln -s ../folder
thijs@home:~/Sites/test/myproject$ cd ..
thijs@home:~/Sites/test$ trac-admin myproject hotcopy mycopy
Hotcopying /Users/thijs/Sites/test/myproject to mycopy ...
Hotcopy done.
thijs@home:~/Sites/test$ ls -l mycopy
total 24
-rw-r--r--  1 thijs  staff   98 10 Jan 14:31 README
-rw-r--r--  1 thijs  staff   27 10 Jan 14:31 VERSION
drwxr-xr-x  2 thijs  staff   68 10 Jan 14:31 attachments
drwxr-xr-x  4 thijs  staff  136 10 Jan 14:31 conf
drwxr-xr-x  3 thijs  staff  102 10 Jan 14:35 db
lrwxr-xr-x  1 thijs  staff    9 10 Jan 14:35 folder -> ../folder
drwxr-xr-x  2 thijs  staff   68 10 Jan 14:31 htdocs
drwxr-xr-x  2 thijs  staff   68 10 Jan 14:31 log
drwxr-xr-x  2 thijs  staff   68 10 Jan 14:31 plugins
drwxr-xr-x  3 thijs  staff  102 10 Jan 14:31 templates
}}}",Thijs Triemstra,next-major-releases
enhancement,2293,Make rss-feeds of more parts of trac available,wiki system,normal,,new,4687 days,10 by 5,"Hi there,

I frequently want to have rss feeds that monitor specific parts of a trac install. Now the only part of trac witch offers rss feeds are the TracTimeline, the TracReports and TracQuerys and the TracBrowser.

What I'd want is more flexibility mostly in the wiki, so I can have rss feeds of changes on a individual website, or only websites with a comon prefix.

Now, offering rss links on every page would be not very good I think, as it would be hard to explain on which page you get an rss feed of what option - BUT on the Timeline page it would be very natural, to restrict it only one page, or only pages with a specific prefix.

And then simply offering an rss feed for the currently selected options.",Martin Häcker <spamfaenger@…>,next-major-releases
enhancement,7898,[PATCH] Keep NavigationContributor Ordering,general,normal,,new,4690 days,3 by 3,"I have a small patch which applies against both 0.11-stable (r7236) branch and the trunk (r7768).  It updates the use of INavigationContributors, so if one contributor returns more then one navigation item the order they are returned in is retained when they reach the main/meta navigation bar.  This is of course over-ridden by the *_order settings in the configuration file.

The justification for this patch is that some plugins may wish to dynamicly generate navigation items which are perhaps based on user supplied wiki content.  The order of the navigation items could be significant, so its bad to throw it away. Since the items are generated dynamically it makes adding the order to the trac.ini file impractical.

The patch includes a unit test, and an update the INavigationContributor interface documentation.  I also think ticket #3695 has a little bit of bearing on this.",anonymous,next-major-releases
defect,9843,Non existing Wiki pages should return 404.,general,minor,,new,4699 days,1 by 1,"When a request is made to a non-existent wiki pages (for example: http://trac.edgewall.org/wiki/doesnotexist), a 200 OK code is returned. Shouldn't it return 404? ",AP²,next-major-releases
defect,9707,search ticket does not work when query for both subject keyword and comment keyword,search system,major,,new,4722 days,1 by 1,"If I [http://trac.edgewall.org/search?q=optionally+anticipate&noquickjump=1&ticket=on search tickets] for query ""optionally anticipate"", this should yield #1329 in the results, as the subject for this ticket contains ""optionally"" and one of the comments contains ""anticipate"".

But the search contains 0 results as you can see.",tejas81@…,next-major-releases
defect,9653,tracd --base-path matches any string of the same length,web frontend/tracd,minor,,new,4740 days,3 by 2,"Say I start `tracd` with a a script that looks like:

{{{
#!/bin/bash
export ENV=/srv/trac-alpha
tracd -r -p 8081 -s --basic-auth=trac-alpha,$ENV/htpasswd,example.com --base-path=trac/ $ENV
}}}

Then any 4-character URL works as the base path. For example visiting http://example.com:8081/trac/timeline shows the timeline, as does http://example.com:8081/1234/timeline or any other 4-character string.

Visiting http://example.com:8081/123/timeline gives an error page with ""No handler matched request to timeline"" and visiting http://example.com:8081/123/timeline gives an error page with ""No handler matched request to 5/timeline""",kamil@…,next-major-releases
enhancement,9642,Resizable textarea for the attachment description,attachment,minor,,new,4745 days,6 by 4,"When uploading attachments, you can add a one-line file description. It would be nice if it'll also be possible to add some longer text in a textarea, that'll be displayed after the short description in the ticket comment.

Currently, I'll usually upload the attachment with a short description and add another separate comment with a longer description, which is a bit annoying.",shesek,next-major-releases
enhancement,9263,"if SVN is used, milestone should manage/allowtoassign links for branch and tag",roadmap,normal,,new,4747 days,6 by 5,"The history of milestones is a history of SVN release tags on different branches here.

After years or months when I look into the history of milestones I need to know what SVN branch and tag the milestone actually was.

One could say, add a note in the milestone description but I'd prefer if the creation/closing of a milestone offers to set the branch and tag information. And also displays it in the same way as the date information.

I used your search engine to find out if it was already desired but haven't found such wish.",fbrettschneider@…,next-major-releases
defect,9601,Disallow robot navigation for edit pages,wiki system,minor,,new,4754 days,2 by 2,"Quite often search results contain links to Trac wiki pages that lead to ?action=edit URLs. These could be disallowed for crawlers.

http://www.google.com/search?q=genshi+%3Faction%3Dedit",anatoly techtonik <techtonik@…>,next-major-releases
enhancement,6863,Included wiki page makes web research irrelevant,wiki system,minor,,new,4754 days,4 by 2,"OK, this may seem odd, but I've started using trac 3 days ago and spent a lot of time setting up everything, learning pythonm etc.

The biggest problem I've faced while doing this was to find relevant litterature to help me in all those procedure concerning trac configuration/plugin setup/etc.

In fact, while I was google-ing key words, most of the proposed links were actually the wiki page of installed trac websites containing exactly the same content as the main site...

I wanted to point that out, as a noob into the trac country. Information is Hard to find as it is always the same. Finding websites with different explanation is try-and-error trial.

I'm not sure how this could be corrected.. Maybe a ""listener"" for robots, a (don't remember how it's spelled) ""don't follow these links"" for the wiki stuff unless page is changed by the websites users...",david.coll.78@…,next-major-releases
defect,9621,Display problem with side by side diff and ignore blank lines,version control/changeset view,minor,,new,4754 days,1 by 1,"Example: changeset:10046, view differences side by side, show the changes in full context, ignore blank lines.

After line 639 (which is removed in this changeset) the content becomes offset by 1 line. Further down the files get re-aligned because line 675 is repeated on the right.

Presumably this ought to be displayed in the same way as it would be without blank lines ignored, just without the blank line highlighted.
",Dave Matthews,next-major-releases
enhancement,9443,"Dropdown list on ""View tickets""",report system,normal,,new,4771 days,3 by 3,"If you work frequently with tickets it is a pain to go from ""view ticket"" to a new page where you then have to pick the propper sorting. An enhancement would be if this list drops down when the mouse is over ""view tickets"" in the menu. Also, when a ticket is modified, there is no button to go back to the ticket list that you came from. This could also be fixed with this enhancement.",marc.rawer@…,next-major-releases
defect,9539,Attachments do not change Last Modified Time,attachment,major,,new,4805 days,3 by 2,"Adding attachments/files to a ticket does not change the value of Last Modified Time.  I am using the RPC API to find recently updated Tickets.  Since attachments do not change the modified time value, I never know if a ticket had new attachments.",kageex@…,next-major-releases
enhancement,9205,Make the timeline threaded,timeline,normal,,new,4838 days,3 by 1,"From a little dicussion in [http://groups.google.com/group/trac-users/browse_thread/thread/377dfea4090c7a85 trac-users], it came out that it might be a good idea to have a threaded timeline with the possibility to expand/collapse threads. This would make the timeline less noisy, especially on busy timelines.

What I mean here is something like (expanded view):
{{{
04/07/10
  Ticket #123 created by
  Ticket #122 created by
  Ticket #100 closed by
    Ticket #100 updated by
      Ticket #100 created by
  Ticket #121 created by 
}}}
Or a collapsed view:
{{{
04/07/10
  Ticket #123 created by
  Ticket #122 created by
  + Ticket #100 closed by (2 more events)
  Ticket #121 created by
}}}
And if you click on the plus sign at !#100, the view gets expanded. We already have this in TracBrowser.

The user should be able to configure this behaviour in her/his preferences.",r.sokoll@…,next-major-releases
enhancement,8735,wiki import should maintain page hierarchy,wiki system,normal,,new,4845 days,3 by 1,"When importing wiki pages via 
{{{
trac-admin ENV wiki import
}}}
it would be great if the directory structure in the import directory was maintained as the page hierarchy in the wiki. Alternatively, it could be useful if an import directory could be placed in some specific page in the wiki page hierarchy.
",anonymous,next-major-releases
enhancement,8526,SubWiki link & SubMapTxt page,wiki system,normal,,new,4845 days,4 by 2,"There are several nice features added to support SubWiki in Trac to categorize simliar wiki pages in hierarchical tree structure however linking to SubWiki from an arbitary Trac page can be really tedious if the level of depth become more than one.

If I have a SubWiki page Page/SubPage/SubSubPage/SubSubSubPage and it should be explicitly specified using full path to the SubWiki page.

{{{
[wiki:Page/SubPage/SubSubPage/SubSubSubPage]

or

[wiki:Page/SubPage/SubSubPage/SubSubSubPage ""This is SubSubSubPage""]

}}}

I can use InterWiki and InterMapTxt to create shortcuts to SubWiki pages under Page/SubPage/SubSubPage/.

{{{
Define an entry in InterMapTxt
===
SubSubPage http://localhost/trac/wiki/Page/SubPage/SubSubPage/$1 # Categorized under SubSubPage

}}}

and then use it as shown below

{{{
SubSubPage/SubSubSubPage

or

[SubSubPage/SubSubSubPage ""This is SubSubSubPage""]

}}}

It worked almost but a problem is that it does not create internal Trac database update (as it is treated as external link) which means Trac does not know the relationship between pages. i.e. [th:BackLinksMacro BackLinksMacro] can not display the back link to SubWiki page if InterWiki is used.

SubWiki macro support simliar to InterWiki using customizable SubMapTxt (like InterMapTxt) would be of great use for those who using SubWiki intensively to categorize simliar wiki pages.

This macro can possibly add /SubSubPage handler which can be utilzed in maintab or navtab to create direct access to categorized SubWiki pages list from Trac menu. (Simliar to [th:HierWikiPlugin#SubWiki HierWikiPlugin#SubWiki] mcaro)

I created a Requset-a-Hack ticket [th:#5569] in Trak-Hacks site as well.",Jae <zzzzoooo@…>,next-major-releases
enhancement,1376,Alternate Template for wiki pages,wiki system,normal,,new,4845 days,8 by 2,"Alternate templates for wiki pages could come really handy when you need to format the wiki text for the end users. For example users can click on a help button and the we can pop up a small window with documentation without any trac navbar or edit buttons. 

Also, this would allow to separate ""Project Page"" with project description wiki pages and ""Developer Page"" with all the power of trac.",amasiar@…,next-major-releases
enhancement,9149,Conf option for showing previous query instead of default query,ticket system,minor,,new,4846 days,2 by 2,"Trac stores query_href into session. It would be nice to have option for using that value as a default value.

{{{
[query]
default_query = ${session_query_href}
}}}",anonymous,next-major-releases
enhancement,9281,Allow IAttachmentManipulator to easily check on the uploaded attachment's file data,attachment,normal,,new,4894 days,4 by 2,"
Currently, both the filename and the file data is not available to the manipulator,
unless it would reimplement part of the logic found in AttachmentModule#_do_save.

_do_save already does some verification on the uploaded file, which I presume is present in some temporary location on the local filesystem.

My proposal would be to also pass in the upload file object associated with that
file to the manipulator so that it is able to verify its contents, for example scanning it with an antivirus scanner and so on.

See also ticket #9280.
",Carsten Klein <carsten.klein@…>,next-major-releases
enhancement,8482,Proposal: Plugin update notification,web frontend,trivial,,new,4896 days,2 by 2,"I'm using a trac (0.11.1) server in a project environment with a couple of plugins. Some of them work fine, some of them still have bugs and some of them had to be patched to get them working properly.
However, most of them are hardly under development.

So I thought that it would be nice to have a 'check for update' function for each or all of the plugins.

Wouldn't it make sense to add such a feature to future Trac versions which compares the version or changeset number of the used plugin against it's source repo? (Maybe also with an automatic function from the web frontend)",the3illings@…,next-major-releases
defect,8967,Partial conversion of files when calling trac.mimeview.api.Mimeview.convert_content,rendering,major,,new,4948 days,5 by 4,"
In the aforementioned function there is a branch that is used to guess the content type of the input file. In order to do that `max_preview_size` bytes are read from the beginning of the file, and then the file is not used anymore. This means that only that first block is converted rather than the whole file.

The exact location of the code I am talking about is [source:trunk/trac/mimeview/api.py@8899:648-652#L648 here]

",olemis+trac@…,next-major-releases
enhancement,7660,Be able to search for commenters by name,ticket system,normal,,new,5086 days,3 by 2,"Somewhat related/started by http://trac.edgewall.org/ticket/7581

On the Pidgin instance of Trac I would like to be able to search  (via the query module) for tickets that have been commented by myself...so search for text such as:

    ""...ago by bernmeister..."" 

Or really, just search for ""bernmeister"".

At the moment there are a lot of Pidgin tickets I've touched and I want to search across all tickets to tell me which ones I've touched that are still NEW (or PENDING or CLOSED or ...).

BTW, Pidgin's Trac instance does NOT have ticket reports enabled. 

What say you (please)?",anonymous,next-major-releases
enhancement,8380,Search In Report / Search In Query functionality,search system,normal,,new,5208 days,1 by 1,"It would be nice to be able to use the search function, restricted to the tickets returned in a report or query.",Denis de Bernardy <ddebernardy@…>,next-major-releases
enhancement,8403,Encourage users to select meaningful values for 'required' fields,ticket system,normal,,new,5208 days,1 by 1,"When an enum field, in particular, is marked as 'required', the blank option is removed from the select element, and the first option is selected by default, if no other default value is set.

The problem with this is that it often leads to users submitting tickets with those fields left in their default values.  It doesn't force them to select a meaningful value.

A decent workaround is to have a catchall (like 'general' for the Component field) as the default value for the field.  But I've had use cases where we want to make sure the user has paid some attention to the field.  The desired behavior here would be to have something like 'Select a Component...' as the first option.  If this option is selected when the form is submitted, a warning would be displayed, and the ticket would not be saved.",ebray,next-major-releases
enhancement,7929,make links clickable in annotate view,version control/browser,minor,,new,5330 days,1 by 1,"In the 'annotate' view, the first column contains for each source row a hyperlink to an associated changeset. The problem is that if javascript is enabled, the 'href' attribute gets removed, destroying the link. I would like to be able to open the linked page in a new browser tab. But that's currently not possible, because...

All mouse clicks are captured and used to trigger ajax-ish retrieval of the linked page and display it in an overlay, which finally contains a clickable link. Also, each associated row gets highlighted blue as a side effect, which is cpu-intensive. This makes it somewhat annoying.

A solution was proposed to me by 'coderanger_' on IRC.

  instead of removing the href, we should capture and reject clicks on the <a> (the click handler is on the table cell itself, not the <a>)

Hopefully the handler would only catch LMB clicks, leaving MMB ('open in new tab') or at least RMB ('context menu') functionality intact.
",theultramage@…,next-major-releases
defect,2611,"Problem with SVN bindings (SVN 1.3.0, Trac r2771)",version control,major,Christian Boos,new,254 days,109 by 31,"Every morning when I first try to get to Trac, I get this error on the first request:

{{{
Mod_python error: ""PythonHandler trac.web.modpython_frontend""

Traceback (most recent call last):
...
  File ""/home/manuzhai/dev/trac/trac/versioncontrol/svn_fs.py"", line 31, in ?
    from svn import fs, repos, core, delta
  File ""/usr/lib/python2.4/site-packages/svn/fs.py"", line 19, in ?
    from libsvn.fs import *
  File ""/usr/lib/python2.4/site-packages/libsvn/fs.py"", line 29, in ?
    import core
  File ""/usr/lib/python2.4/site-packages/libsvn/core.py"", line 3049, in ?
    svn_pool_create()
  File ""/usr/lib/python2.4/site-packages/libsvn/core.py"", line 1098, in svn_pool_create
    return apply(_core.svn_pool_create, args)

TypeError: argument number 0: a 'apr_pool_t *' is expected, 'instance()' is received
}}}

''Similar symptoms: ''
{{{
[Fri Sep 29 22:05:12 2006] [error] [client 127.0.0.1] PythonHandler trac.web.modpython_frontend: TypeError: argument number 0: a 'apr_pool_t *' is expected, 'instance(<libsvn.core.GenericSWIGWrapper instance at 0xb6924c8c>)' is received
}}}

Subsequent requests seem to just work...

=== Note ===

This is now a well-known issue having to do with the way the SVN Python bindings behaves when multiple Python interpreters are used within the same process, as this can be the case with mod_python e.g. when more than one virtual host is used. 

Most SVN binding versions are affected, though there's no confirmed report of this with 1.2.x (the bug started to be reported with 1.3.0) and reverting to SVN 1.2.4 is sometimes mentioned as a workaround.

There are other documented workarounds where one can keep using SVN 1.3.x and 1.4.x or any newer version:
 - see #3455
 - see comment:72 (`mod_python`)
 - see comment:94 (`mod_wsgi`)

Related issue: #3371
",Manuzhai,not applicable
defect,6953,trac has locale problem,general,normal,,new,1227 days,14 by 8,"There is a general problem for Turkish for the following conversion:

{{{
i->İ
ı->I
}}}
----

MOD_PYTHON ERROR

{{{
ProcessId:      7382
Interpreter:    'main_interpreter'

ServerName:     'trac.isikun.edu.tr'
DocumentRoot:   '/srv/www'

URI:            '/ifsaet/login'
Location:       '/'
Directory:      None
Filename:       '/srv/www/ifsaet'
PathInfo:       '/login'

Phase:          'PythonHandler'
Handler:        'trac.web.modpython_frontend'

Traceback (most recent call last):

  File ""/usr/lib/python2.5/site-packages/mod_python/importer.py"", line 1537, in HandlerDispatch
    default=default_handler, arg=req, silent=hlist.silent)

  File ""/usr/lib/python2.5/site-packages/mod_python/importer.py"", line 1229, in _process_target
    result = _execute_target(config, req, object, arg)

  File ""/usr/lib/python2.5/site-packages/mod_python/importer.py"", line 1128, in _execute_target
    result = object(arg)

  File ""/usr/lib/python2.5/site-packages/trac/web/modpython_frontend.py"", line 87, in handler
    gateway.run(dispatch_request)

  File ""/usr/lib/python2.5/site-packages/trac/web/wsgi.py"", line 87, in run
    response = application(self.environ, self._start_response)

  File ""/usr/lib/python2.5/site-packages/trac/web/main.py"", line 391, in dispatch_request
    env = _open_environment(env_path, run_once=run_once)

  File ""/usr/lib/python2.5/site-packages/trac/web/main.py"", line 58, in _open_environment
    env_cache[env_path] = open_environment(env_path)

  File ""/usr/lib/python2.5/site-packages/trac/env.py"", line 462, in open_environment
    env = Environment(env_path)

  File ""/usr/lib/python2.5/site-packages/trac/env.py"", line 142, in __init__
    load_components(self)

  File ""/usr/lib/python2.5/site-packages/trac/loader.py"", line 140, in load_components
    __import__(module)

  File ""/usr/lib/python2.5/site-packages/trac/ticket/web_ui.py"", line 27, in <module>
    from trac.ticket.notification import TicketNotifyEmail

  File ""/usr/lib/python2.5/site-packages/trac/ticket/notification.py"", line 25, in <module>
    from trac.notification import NotifyEmail

  File ""/usr/lib/python2.5/site-packages/trac/notification.py"", line 17, in <module>
    import smtplib

  File ""/usr/lib/python2.5/smtplib.py"", line 49, in <module>
    from email.base64MIME import encode as encode_base64

  File ""/usr/lib/python2.5/email/__init__.py"", line 79, in __getattr__
    __import__(self.__name__)

ImportError: No module named base64mIme
}}}",alperkanat@…,not applicable
task,11146,No Trac environment found at /var/www [Errno 2] No such file or directory: '/var/www/VERSION',web frontend,normal,,new,1592 days,5 by 3,"I configured an environment /var/trac.
I configured trac to work with apache2.
When I log in to my trac page, the first thing I see is

{{{
No Trac environment found at /var/www [Errno 2] No such file or directory: '/var/www/VERSION'
}}}

The server was looking in a wrong directory for trac environment.
If I ignore the error, I can proceed to the real page. But the error is so annoying.
Any information you can provide to resolve the issue?",tsrjtsrj@…,not applicable
enhancement,10447,install blockdiag family on t.e.o.,project,normal,,new,3132 days,5 by 5,"as a picture says more than a thousand words every so often, i'd like to propose making [http://blockdiag.com/en/ blockdiag, seqdiag, actdiag] (not sure about nwdiag) available for use on t.e.o.

th:TracBlockDiagPlugin

for existing things, stuff like wiki:TracDev/RequestHandling would actually perhaps become maintainable.

for new content, i think this is a big barrier drop for having illustrations available for technical documentation, for example when trying to collaboratively figure out stuff with complexity levels of wiki:TracDev/Proposals/UserSystem.",lkraav <leho@…>,not applicable
defect,11772,tracd js script resource loading intermittently crashes python,database backend,normal,,new,3282 days,2 by 2,"Not sure why or how, but some of the js resources loadings crash {{{tracd}}} 1.1.2b1. I'm not sure if there's a pattern whether some JS resources crash more than others. The crash is usually noticeable when jquery-ui doesn't load and some UI elements don't get their dynamics on that pageview.

This happens intermittently. A bunch of pageloads is fine, then one fails, etc. Less than 5 users are usually working with this instance. This {{{tracd}}} is sitting behind an Apache reverse proxy.

There's a relatively highly customized {{{site.html}}} active.

=== Trac detected an internal error:

{{{
SystemError: /var/tmp/portage/dev-lang/python-2.7.7/work/Python-2.7.7/Objects/tupleobject.c:142: bad argument to internal function
}}}

=== Traceback:

{{{
File ""/home/trac/src/trac.git/trac/web/main.py"", line 550, in _dispatch_request
  dispatcher.dispatch(req)
File ""/home/trac/src/trac.git/trac/web/main.py"", line 224, in dispatch
  resp = chosen_handler.process_request(req)
File ""/home/trac/src/trac.git/trac/web/chrome.py"", line 632, in process_request
  req.send_file(path, get_mimetype(path))
File ""/home/trac/src/trac.git/trac/web/api.py"", line 639, in send_file
  self.send_response(304)
File ""/home/trac/src/trac.git/trac/web/main.py"", line 82, in send_response
  self.session.save()
File ""/home/trac/src/trac.git/trac/web/api.py"", line 384, in __getattr__
  value = self.callbacks[name](self)
File ""/home/trac/src/trac.git/trac/web/main.py"", line 305, in _get_session
  return Session(self.env, req)
File ""/home/trac/src/trac.git/trac/web/session.py"", line 210, in __init__
  self.get_session(req.authname, authenticated=True)
File ""/home/trac/src/trac.git/trac/web/session.py"", line 227, in get_session
  super(Session, self).get_session(sid, authenticated)
File ""/home/trac/src/trac.git/trac/web/session.py"", line 89, in get_session
  """""", (sid, int(authenticated))))
File ""/home/trac/src/trac.git/trac/db/util.py"", line 128, in execute
  cursor.execute(query, params if params is not None else [])
File ""/home/trac/src/trac.git/trac/db/util.py"", line 72, in execute
  return self.cursor.execute(sql_escape_percent(sql), args)
File ""/home/trac/src/trac.git/trac/db/sqlite_backend.py"", line 82, in execute
  self.rows = PyFormatCursor.fetchall(self)
}}}

=== System Information

Trac 	1.1.2beta1
Genshi 	0.7 (with speedups)
Pygments 	1.6
pysqlite 	2.6.0
Python 	2.7.7 (default, Sep 16 2014, 10:26:02) [GCC 4.7.3]
setuptools 	0.9.8
SQLite 	3.8.2

=== Installed Plugins

||Name||Version||Location
||NavAdd||0.3||/home/trac/src/trac-hacks.git/navaddplugin/trunk
||trac-proxy-auth||0.2.0||/home/trac/src/trac-proxy-auth.hg/src
||tracvatar||1.9||/home/trac/src/tracvatar.git",lkraav <leho@…>,not applicable
defect,10896,Request-URI Too Large when submitting a Bug report,general,normal,Christian Boos,new,4004 days,6 by 2,"It all begins with...

{{{
Oops…
Trac detected an internal error:
RuntimeError: maximum recursion depth exceeded
This is probably a local installation issue.
}}}

Yeah - sure. You wish. Well, if I try to create a new ticket by clicking on the provided create button

{{{
Otherwise, please [CREATE]  a new bug report describing the problem and explain how to reproduce it.
}}}

I get

{{{
Request-URI Too Large

The requested URL's length exceeds the capacity limit for this server.
}}}

from trac.edgewall.org

*Boom* No Bugreport. So I'll write it manually. ;-)

System information:

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.8 (KHTML, like Gecko) Chrome/23.0.1255.0 Safari/537.8

Trac	0.12.3
Babel	0.9.6
CustomFieldAdmin	0.2.6-r10460
Docutils	0.8.1
Genshi	0.6
mod_python	3.3.1
Pygments	1.5
pysqlite	2.6.3
Python	2.7.2 (default, Apr 1 2012, 02:49:31) [GCC 4.5.3]
pytz	2011n
setuptools	0.6
SQLite	3.7.11
Subversion	1.6.17 (r1128011)
jQuery	1.4.4



",info@…,not applicable
defect,10421,RuntimeError: instance.__dict__ not accessible in restricted mode,general,major,,new,4270 days,14 by 5,"
==== How to Reproduce ====

While doing a GET operation on `/ticket/.assembla.com/pepperflow/ticket/1098`, Trac issued an internal error.

''(please provide additional details here)''



User Agent was: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.904.0 Safari/535.7`

==== System Information ====

|| '''Trac''' || `0.11.7` ||
|| '''Python''' || `2.6.6 (r266:84292, Dec 26 2010, 22:48:11) ` [[br]] `[GCC 4.4.5]` ||
|| '''setuptools''' || `0.6` ||
|| '''SQLite''' || `3.7.3` ||
|| '''pysqlite''' || `2.4.1` ||
|| '''Genshi''' || `0.6` ||
|| '''mod_wsgi''' || `3.3 (WSGIProcessGroup  WSGIApplicationGroup %{GLOBAL})` ||
|| '''Pygments''' || `1.3.1` ||
|| '''jQuery:''' || `1.2.6` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/web/main.py"", line 450, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/web/main.py"", line 176, in dispatch
    chosen_handler)
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/web/main.py"", line 296, in _pre_process_request
    chosen_handler = filter_.pre_process_request(req, chosen_handler)
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/versioncontrol/api.py"", line 86, in pre_process_request
    self.get_repository(req.authname).sync()
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/versioncontrol/api.py"", line 132, in get_repository
    for connector in self.connectors
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/core.py"", line 70, in extensions
    return filter(None, [component.compmgr[cls] for cls in extensions])
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/core.py"", line 207, in __getitem__
    component = cls(self)
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/core.py"", line 111, in maybe_init
    init(self)
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/versioncontrol/svn_fs.py"", line 266, in __init__
    Pool()
  File ""/usr/local/breakout-rest-auth/eggs/Trac-0.11.7-py2.6.egg/trac/versioncontrol/svn_fs.py"", line 156, in __init__
    self._pool = core.svn_pool_create(self._parent_pool())
  File ""/usr/lib/pymodules/python2.6/svn/core.py"", line 241, in svn_pool_create
    return Pool(parent_pool)
  File ""/usr/lib/pymodules/python2.6/libsvn/core.py"", line 1572, in svn_pool_create
    return _core.svn_pool_create(*args)
  File ""/usr/lib/pymodules/python2.6/libsvn/core.py"", line 5658, in _wrap
    obj.set_parent_pool(self)
  File ""/usr/lib/pymodules/python2.6/libsvn/core.py"", line 5571, in set_parent_pool
    self._parent_pool = parent_pool or application_pool
  File ""/usr/lib/pymodules/python2.6/libsvn/core.py"", line 5559, in <lambda>
    __setattr__ = lambda self, name, value: _swig_setattr(self, apr_pool_t, name, value)
  File ""/usr/lib/pymodules/python2.6/libsvn/core.py"", line 44, in _swig_setattr
    return _swig_setattr_nondynamic(self,class_type,name,value,0)
  File ""/usr/lib/pymodules/python2.6/libsvn/core.py"", line 39, in _swig_setattr_nondynamic
    self.__dict__[name] = value
RuntimeError: instance.__dict__ not accessible in restricted mode

}}}
    ",kjvdbent,not applicable
