﻿__group__,ticket,summary,component,version,type,severity,owner,status,created,_changetime,_description,_reporter
1.0 Release,9619,"Side-by-side editing fails if Preview significantly longer than source; needs smart, vertical locking!",wiki system,0.12-stable,defect,major,Christian Boos,reopened,2010-09-15T12:10:03+02:00,2023-01-10T14:50:43+01:00,"The side-by-side editing is rendered useless, if the Preview is significantly longer (due to large text, tables and inline images) than the source code. You might end up in a situation where the related source code to what you currently see in the Preview is 1 or 2 pages up the screen and it is currently impossible to see source code and related Preview together at once. This is a serious issue in my opinion. 

You can make a simple test by positioning a few large images using ![[Image(XYZ.jpg)]] underneath each other: The source code only takes a few lines, whereas the last image might by two screens down the window scroll bar.

A solution should look like this: The preview get dynamically positioned in such a way, that it (optionally) aligns vertically with the cursor position in the source code window, so that one really sees what one's editing.",klein@…
1.6.1 Release,12681,Restore the t.e.o specific customization after the switch to Jinja2,project,1.3dev,defect,normal,Christian Boos,assigned,2017-02-08T10:55:04+01:00,2023-09-23T22:47:00+02:00,cf. TracDev/Proposals/Jinja/TracInterfaceCustomization,Christian Boos
1.6.1 Release,13613,Remove code for creating Windows installers,general,,enhancement,normal,Ryan J Ollos,assigned,2023-09-23T22:59:55+02:00,2023-09-23T22:59:55+02:00,Remove code in Makefile and elsewhere for creating the Windows installers.,Ryan J Ollos
1.6.1 Release,13607,sqlite3.version_info is deprecated since Python 3.12 and will be removed in Python 3.14,database backend,,defect,normal,Jun Omae,assigned,2023-05-31T10:34:48+02:00,2023-05-31T19:23:26+02:00,"https://docs.python.org/3.12/library/sqlite3.html#sqlite3.version_info

After the following patch, it will retrieve `pysqlite3.version_info` only when `pysqlite3` is used.

{{{#!diff
diff --git a/contrib/make_status.py b/contrib/make_status.py
index 65278624a..ab4962a8d 100755
--- a/contrib/make_status.py
+++ b/contrib/make_status.py
@@ -51,8 +51,7 @@ PACKAGES = [
     (""Jinja2"",            'jinja2.__version__'),
     (""multipart"",         'multipart.__version__'),
     (""Babel"",             'babel.__version__'),
-    (""sqlite3"",           ('sqlite3.version',
-                           'sqlite3.sqlite_version')),
+    (""sqlite3"",           'sqlite3.sqlite_version'),
     (""PySqlite3"",         ('__main__._pysqlite3_version()',
                            'pysqlite3.dbapi2.sqlite_version')),
     (""PyMySQL"",           'pymysql.__version__'),
diff --git a/trac/db/sqlite_backend.py b/trac/db/sqlite_backend.py
index dc0bf4ca9..8f38af387 100644
--- a/trac/db/sqlite_backend.py
+++ b/trac/db/sqlite_backend.py
@@ -37,13 +37,13 @@ try:
     import pysqlite3.dbapi2 as sqlite
 except ImportError:
     import sqlite3 as sqlite
+    pysqlite3_version = None
+else:
+    pysqlite3_version = get_pkginfo(sqlite).get('version', '%d.%d.%s' %
+                                                           sqlite.version_info)

 sqlite_version = sqlite.sqlite_version_info
 sqlite_version_string = sqlite.sqlite_version
-pysqlite_version = sqlite.version_info
-pysqlite_version_string = get_pkginfo(sqlite).get('version',
-                                                  '%d.%d.%s'
-                                                  % pysqlite_version)
 min_sqlite_version = (3, 0, 0)


@@ -273,7 +273,8 @@ class SQLiteConnector(Component):

     def get_system_info(self):
         yield 'SQLite', sqlite_version_string
-        yield 'pysqlite', pysqlite_version_string
+        if pysqlite3_version:
+            yield 'pysqlite3', pysqlite3_version

     @lazy
     def _extensions(self):
diff --git a/trac/tests/env.py b/trac/tests/env.py
index e0f949949..80a700208 100644
--- a/trac/tests/env.py
+++ b/trac/tests/env.py
@@ -520,8 +520,6 @@ class SystemInfoTestCase(unittest.TestCase):
             self.assertEqual(info_before, info_after)
             self.assertRegex(get_info(info_before, 'SQLite'),
                              r'^\d+(\.\d+)+$')
-            self.assertRegex(get_info(info_before, 'pysqlite'),
-                             r'^\d+(\.\d+)+$')
         else:
             self.fail(""Unknown value for dburi %s"" % self.env.dburi)

}}}",Jun Omae
1.6.1 Release,13606,DeprecationWarning: pkg_resources is deprecated as an API,general,,defect,normal,,new,2023-05-31T05:27:03+02:00,2023-05-31T11:02:14+02:00,"`setuptools` warns `pkg_resources is deprecated as an API` since 67.5.0.

 - https://github.com/pypa/setuptools/commit/a1aeda391a0c462ea53627bcdf50dd4c0daadaed
 - https://github.com/pypa/setuptools/blob/v67.8.0/pkg_resources/__init__.py#L16-L20

==== Migration guide

 - https://importlib-resources.readthedocs.io/en/latest/migration.html
 - https://importlib-metadata.readthedocs.io/en/latest/migration.html

----

{{{
$ git grep -w pkg_resources | wc -l
86

$ git grep -h '^from *pkg_resources\>\|\<pkg_resources\.' \
> | sed -e 's/.*\(\<pkg_resources\.[A-Za-z0-9_]*\>\).*/\1/' \
> | sort -u
from pkg_resources import DistributionNotFound
from pkg_resources import DistributionNotFound, get_distribution
from pkg_resources import parse_version
from pkg_resources import parse_version as pv
from pkg_resources import resource_exists, resource_filename
from pkg_resources import resource_filename
from pkg_resources import resource_listdir, resource_string
from pkg_resources import working_set, DistributionNotFound, \
pkg_resources.Distribution
pkg_resources.DistributionNotFound
pkg_resources.Environment
pkg_resources.find_distributions
pkg_resources.get_distribution
pkg_resources.parse_version
pkg_resources.require
pkg_resources.resource_exists
pkg_resources.resource_filename
pkg_resources.resource_listdir
pkg_resources.set_extraction_path
pkg_resources.working_set
}}}",Jun Omae
1.6.1 Release,13599,The first parameter in the API docs for the interface's methods is incorrectly stripped,general,,defect,normal,,new,2023-05-09T04:27:17+02:00,2023-05-13T19:35:14+02:00," - https://www.edgewall.org/docs/trac-trunk/html/api/trac_web_api.html#trac.web.api.IRequestHandler.match_request
   - Missing `req` parameter
 - https://trac.readthedocs.io/en/latest/api/trac_web_api.html#trac.web.api.IRequestHandler.match_request
   - The API docs outdated but `req` parameter is not stripped",Jun Omae
1.6.1 Release,13567,Send summary of workflow to trac-builds mailing list on workflow_run event,project,,enhancement,normal,,new,2023-02-12T12:30:09+01:00,2023-02-24T08:33:31+01:00,"The [wiki:TracDev/AutomaticBuilds automatic builds] has been restored, however trac-builds mailing list is not working yet. I created a new workflow to send the summary to trac-builds on `workflow_run` event (smtp server and the user to send are required).

Proposed changes in [678ea4140/jomae.git] ([log:jomae.git@t13567]).

==== Configuration:

 - `SMTP_URL`: set `smtps://<hostname>:465` or `smtp://<hostname>:587`
 - `SMTP_USER`: set `<username>:<password>` to authenticate for the smtp server.
 - `SMTP_MAIL_FROM`: set sender address
 - `SMTP_MAIL_RCPT`: set `trac-builds@googlegroups.com`

build-completed.yml workflow in the changes works once committing to trunk (default branch).",Jun Omae
1.6.1 Release,13564,TicketQuery with format=progress doesn't show progress when no matched ticket (part of #13474),query system,1.4.3,defect,normal,,new,2023-02-11T03:21:35+01:00,2023-09-23T22:47:00+02:00,"Copied from [ticket:13474#comment:4]:
> Now, with the implemented fix, a progress bar for a query that yields no tickets looks as follows:
> [[Image(ticket:13474:fix_1.png,border=1)]]
> 
> It is definitely better than a python error message but it does not look especially pretty. One could try to display an empty progress bar here instead? 
> 
> I would not opt for a ""No Results"" message because when using `format=table` we get an empty table and not ""No Results"". An empty progress bar would be more consistent.
> 
> Open to suggestions! What is the expected behavior? Or would handling None values in `templates/progress_bar.html` be more preferable?

",Jun Omae
1.6.1 Release,13563,ResourceWarning raised when tracd is killed by CTRL-C (SIGINT),web frontend/tracd,1.5.3,defect,normal,,new,2023-02-11T02:46:30+01:00,2023-02-23T22:38:38+01:00,"`ResourceWarning` raised when `tracd` is killed by CTRL-C, however not raised when killed by SIGTERM.

{{{
$ python -Wdefault trac/web/standalone.py  -p 3000 /var/trac/1.5-sqlite
Server starting in PID 184511.
Serving on 0.0.0.0:3000 view at http://127.0.0.1:3000/
Using HTTP/1.1 protocol version
^Ctrac/web/standalone.py:385: ResourceWarning: unclosed <socket.socket fd=3, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('0.0.0.0', 3000)>
  pass
ResourceWarning: Enable tracemalloc to get the object allocation traceback
}}}",Jun Omae
1.6.1 Release,13550,OverflowError: Python int too large to convert to SQLite INTEGER,database backend,1.0.20,defect,minor,,new,2023-02-02T01:38:54+01:00,2023-09-23T22:47:00+02:00,"Passing a large integer to `version` parameter of wiki handler, `OverflowError` is raised.

{{{
09:20:38 AM Trac[main] ERROR: [192.168.11.15] Internal Server Error: <RequestWithSession ""GET '/wiki/WikiStart?version=999999999999999999999999999999999'"">, referrer 'http://192.168.11.122:3000/1.5-sqlite/wiki/WikiStart?version=999999999999999999999999999999999'
Traceback (most recent call last):
  File ""trac/web/main.py"", line 610, in dispatch_request
    dispatcher.dispatch(req)
  File ""trac/web/main.py"", line 302, in dispatch
    raise e
  File ""trac/web/main.py"", line 248, in dispatch
    resp = chosen_handler.process_request(req)
  File ""trac/wiki/web_ui.py"", line 126, in process_request
    versioned_page = WikiPage(self.env, pagename, version)
  File ""trac/wiki/model.py"", line 68, in __init__
    self._fetch(name, version)
  File ""trac/wiki/model.py"", line 87, in _fetch
    self.env.db_query(sql, args):
  File ""trac/db/api.py"", line 50, in execute
    return db.execute(query, params)
  File ""trac/db/util.py"", line 129, in execute
    cursor.execute(query, params if params is not None else [])
  File ""trac/db/util.py"", line 62, in execute
    r = self.cursor.execute(sql_escape_percent(sql), args)
  File ""trac/db/sqlite_backend.py"", line 89, in execute
    result = PyFormatCursor.execute(self, *args)
  File ""trac/db/sqlite_backend.py"", line 64, in execute
    return self._rollback_on_error(sqlite.Cursor.execute, sql,
  File ""trac/db/sqlite_backend.py"", line 56, in _rollback_on_error
    return function(self, *args, **kwargs)
OverflowError: Python int too large to convert to SQLite INTEGER
}}}",Jun Omae
1.6.1 Release,13514,Support zoneinfo tzinfo objects since Python 3.9,general,,enhancement,normal,,new,2023-01-11T04:08:16+01:00,2023-02-26T05:51:42+01:00," - [https://docs.python.org/3/library/zoneinfo.html#module-zoneinfo zoneinfo — IANA time zone support]
 - [https://peps.python.org/pep-0615/ PEP 615 – Support for the IANA Time Zone Database in the Standard Library | peps.python.org]
 - [https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html Migration Guide — pytz_deprecation_shim 0.1.0.post0 documentation]",Jun Omae
1.6.1 Release,13482,6 failures in unit-test with Babel 2.10.1,i18n,,defect,normal,Jun Omae,assigned,2022-04-24T01:10:16+02:00,2023-02-23T22:38:38+01:00,"[https://github.com/python-babel/babel/releases/tag/v2.10.1 Babel 2.10.1] has been released recently, which upgraded [https://github.com/python-babel/babel/blob/v2.10.1/CHANGES.rst#version-2100 CLDR 41] from [https://github.com/python-babel/babel/blob/v2.10.1/CHANGES.rst#version-291 CLDR 37].

----

{{{
======================================================================
FAIL: test_i18n_datetime_hint (trac.util.tests.datefmt.I18nDateFormatTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File ""/home/jun66j5/src/tracdev/git/trac/util/tests/datefmt.py"", line 1250, in test_i18n_datetime_hint
    self.assertIn(datefmt.get_datetime_format_hint(fr),
AssertionError: 'd MMM y, HH:mm:ss' not found in ('d MMM yyyy HH:mm:ss', 'd MMM y HH:mm:ss', ""d MMM y 'à' HH:mm:ss"")

======================================================================
FAIL: test_i18n_format_datetime (trac.util.tests.datefmt.I18nDateFormatTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File ""/home/jun66j5/src/tracdev/git/trac/util/tests/datefmt.py"", line 1175, in test_i18n_format_datetime
    self.assertIn(datefmt.format_datetime(t, tzinfo=tz, locale=fr),
AssertionError: '28 août 2010, 13:45:56' not found in ('28 août 2010 13:45:56', '28 août 2010 à 13:45:56')

======================================================================
FAIL: test_i18n_format_time (trac.util.tests.datefmt.I18nDateFormatTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File ""/home/jun66j5/src/tracdev/git/trac/util/tests/datefmt.py"", line 1233, in test_i18n_format_time
    self.assertIn(datefmt.format_time(t, tzinfo=tz, locale=zh_CN),
AssertionError: '13:45:56' not found in ('下午01:45:56', '下午1:45:56')

======================================================================
FAIL: test_i18n_parse_date_datetime (trac.util.tests.datefmt.I18nDateFormatTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File ""/home/jun66j5/src/tracdev/git/trac/util/tests/datefmt.py"", line 1367, in test_i18n_parse_date_datetime
    self.assertEqual(expected,
AssertionError: datet[16 chars]0, 8, 28, 13, 45, 56, tzinfo=<FixedOffset ""GMT +2:00"" 2:00:00>) != datet[16 chars]0, 8, 28, 1, 45, 56, tzinfo=<FixedOffset ""GMT +2:00"" 2:00:00>)

======================================================================
FAIL: test_i18n_parse_date_datetime_meridiem (trac.util.tests.datefmt.I18nDateFormatTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File ""/home/jun66j5/src/tracdev/git/trac/util/tests/datefmt.py"", line 1398, in test_i18n_parse_date_datetime_meridiem
    self.assertEqual(expected_am,
AssertionError: datet[16 chars]1, 2, 22, 0, 45, 56, tzinfo=<FixedOffset ""GMT +2:00"" 2:00:00>) != datet[16 chars]1, 2, 22, 12, 45, 56, tzinfo=<FixedOffset ""GMT +2:00"" 2:00:00>)

======================================================================
FAIL: test_i18n_parse_date_roundtrip (trac.util.tests.datefmt.I18nDateFormatTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File ""/home/jun66j5/src/tracdev/git/trac/util/tests/datefmt.py"", line 1454, in test_i18n_parse_date_roundtrip
    self.assertEqual(tz_t, actual,
AssertionError: datet[16 chars]0, 8, 28, 13, 45, 56, tzinfo=<FixedOffset ""GMT +2:00"" 2:00:00>) != datet[16 chars]0, 8, 28, 1, 45, 56, tzinfo=<FixedOffset ""GMT +2:00"" 2:00:00>) : datetime.datetime(2010, 8, 28, 13, 45, 56, tzinfo=<FixedOffset ""GMT +2:00"" 2:00:00>) != datetime.datetime(2010, 8, 28, 1, 45, 56, tzinfo=<FixedOffset ""GMT +2:00"" 2:00:00>) ('2010年8月28日 B1:45:56' Locale('zh', territory='TW', script='Hant'))

----------------------------------------------------------------------
Ran 2762 tests in 41.802s

FAILED (failures=6, skipped=5)
}}}",Jun Omae
1.6.1 Release,13456,distutils is deprecated and will be removed in Python 3.12,general,1.5.3,defect,normal,Jun Omae,assigned,2022-01-04T01:58:05+01:00,2023-07-14T11:42:33+02:00,"https://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated

{{{
$ git grep -w distutils mirror/trunk
mirror/trunk:.travis.yml:      print_sitelib='from distutils.sysconfig import get_python_lib; print(get_python_lib())'
mirror/trunk:trac/dist.py:`distutils.command.build` and `setuptools.command.install_lib` classes
mirror/trunk:trac/dist.py:from distutils import log as distlog
mirror/trunk:trac/dist.py:from distutils.cmd import Command
mirror/trunk:trac/dist.py:from distutils.command.build import build as _build
mirror/trunk:trac/dist.py:from distutils.errors import DistutilsOptionError
}}}",Jun Omae
1.6.1 Release,13430,Translation of past time expressions,i18n,1.4,defect,normal,,new,2021-10-10T12:17:20+02:00,2023-02-23T22:38:38+01:00,"If someone comments on a ticket, the timestamp is stored and gives a human-readable output when was something made. It's a great feature, but it seems the time parts are translated separately.

Example:

`2 months ago` appears, and translated as `2 <months> <ago>`. However, in Hungarian (possibly many more languages), the `months` and `ago` can't be translated separately, because it's an expression.

I suggest merging the two translation units into one because the current implementation results in mixed translations.

Possibly there are other places than comments when this appears, but I don't know Trac well enough to tell all of them :(",anonymous
1.6.1 Release,13406,Replace jQuery UI Timepicker,web frontend,,enhancement,normal,Ryan J Ollos,assigned,2021-05-27T22:38:42+02:00,2023-02-23T22:31:25+01:00,"The [https://trentrichardson.com/examples/timepicker/ Timepicker add-on] is deprecated (see JavaScript). Since we are doing a major release, we should replace it with an equivalent that is maintained.",Ryan J Ollos
1.6.1 Release,13349,Changesets are shown without repository name in search view,search system,,defect,normal,,new,2021-02-15T09:14:33+01:00,2023-09-23T22:47:00+02:00,"I think we should show changesets with repository name. Currently, all changesets are shown without repository name even if the repository is not default.

 Example:: `[662]: merge r661 from trunk into 0.9 maintenance branch` in demo-1.2:search:maintenance?noquickjump=1&changeset=on
 Should be:: `[662/babel.svn]: merge r661 from trunk into 0.9 maintenance branch`

{{{#!diff
diff --git a/trac/versioncontrol/web_ui/changeset.py b/trac/versioncontrol/web_ui/changeset.py
index 7563f2351..271e3bbcb 100644
--- a/trac/versioncontrol/web_ui/changeset.py
+++ b/trac/versioncontrol/web_ui/changeset.py
@@ -1154,6 +1154,8 @@ class ChangesetModule(Component):
                 cset = repos.resource.child(self.realm, rev)
                 if 'CHANGESET_VIEW' in req.perm(cset):
                     uids_seen.add(uid)
+                    if repos.reponame:
+                        drev = '%s/%s' % (drev, repos.reponame)
                     yield (req.href.changeset(rev, repos.reponame or None),
                            '[%s]: %s' % (drev, shorten_line(log)),
                            from_utimestamp(ts), author,
}}}",Jun Omae
1.6.1 Release,13332,Use pytidylib for HTML5 validation with jinjachecker,general,,enhancement,normal,Jun Omae,assigned,2020-12-19T04:06:40+01:00,2023-02-27T00:53:42+01:00,Discussed in comment:30:ticket:11988.,Ryan J Ollos
1.6.1 Release,13311,Toolbar button to quote text as a discussion citation,general,,enhancement,normal,Ryan J Ollos,assigned,2020-06-04T15:53:40+02:00,2023-02-23T22:31:25+01:00,"All Trac text input fields (like this ticket description field) have a little toolbar with buttons to make text bold or italic, insert a heading, a link, a code block, a horizontal rule, a new paragraph, a line break or an image.

It would be useful to have an additional button to quote the currently selected text as [WikiFormatting#DiscussionCitations DiscussionCitations] by adding `>` before each selected line.",anonymous
1.6.1 Release,13287,MS Outlook improvements for 1.4.1 shows only empty fields,general,1.4.1,defect,normal,,new,2020-05-07T14:41:52+02:00,2021-05-28T21:54:30+02:00,"Dear Ryan,

I updated the e-mail template by replacing the `${ticket_props}` as suggested here in TracNotification#CustomizingContent, with CookBook/Notification/Templates.


{{{
--------------------------------------------------------------------------
# set sel = ('Reporter', 'Owner', 'Type', 'Status', 'Priority', 'Milestone',
             'Component', 'Severity', 'Resolution', 'Keywords')
# for a in ticket_props.replace('|', '\n').splitlines()[1:-1]|map('trim'):
#   set a = a.split(':', 1)|map('trim')|list
#   if len(a) > 1 and a[0] in sel:
${'%-*s  %s'|format(12, a[0] + ':', a[1])}
#   endif
# endfor
--------------------------------------------------------------------------
}}}

So, notification works - no error, but I have only empty fields in the e-mail as it is shown here below:

{{{

#1703: NEST for coping with bunching of regulated traffic
--------------------------------------------------------------------------
Reporter:     
Owner:        
Type:         
Status:       
Priority:     
Milestone:    
Component:    
Severity:     
Resolution:   
Keywords:     
--------------------------------------------------------------------------
Comment (by Laszlo Elbert):

 testx
-- 
Ticket URL: <https://nest-tool.eurocontrol.int/trac/nest/ticket/1703#comment:32>
NEST <https://www.eurocontrol.int/nest>
NEST project
}}}
Thanks for the advise in advance
Laszlo",laszlo.elbert@…
1.6.1 Release,13275,Improve option documentation,general,,task,normal,Ryan J Ollos,assigned,2020-04-25T04:11:04+02:00,2023-02-23T22:31:25+01:00,"For 1.5.x there are a few tasks we could do on the option doc strings:
* Review and improve
* Ensure special values are documented. Example, what does the value `0` mean for [TracIni#changeset-max_diff_files-option changeset.max_diff_files]?
* Remove //(since ...)// for versions < 1.1",Ryan J Ollos
1.6.1 Release,13270,Default value column doesn't wrap on TracIni page,general,,defect,normal,,new,2020-04-22T21:21:21+02:00,2021-05-28T21:54:30+02:00,See TracIni#trac-section. It appears to expand to the width of TracIni#trac-permission_policies-option.,Ryan J Ollos
1.6.1 Release,13231,Egg files without SOURCES.txt not displayed correctly on plugin admin page,general,,defect,normal,,new,2019-12-05T05:33:03+01:00,2021-05-28T21:54:30+02:00,"Discussed in gmessage:trac-users:AUBRFehR83c/ZRjKm-SnCAAJ

Trac Debian package should have `*.egg-info/SOURCES.txt` file. Searching the `SOURCES.txt` file in debian packages, several packages have SOURCES.txt file.

     https://packages.debian.org/file:.egg-info/SOURCES.txt

(If *.dist-info structure is used, RECORD file must be included. (2))

However, according to The Internal Structure of Python Eggs (1), it seems that it is possible to have no `SOURCES.txt` file in egg-info structure.

Work around:

{{{#!diff
diff --git a/trac/util/__init__.py b/trac/util/__init__.py
index 1d3485e09..8808ebf90 100644
--- a/trac/util/__init__.py
+++ b/trac/util/__init__.py
@@ -700,6 +700,7 @@ def get_sources(path):
      """"""Return a dictionary mapping Python module source paths to the
      distributions that contain them.
      """"""
+    path = os.path.normpath(os.path.abspath(path))
      sources = {}
      for dist in find_distributions(path, only=True):
          if not dist.has_metadata('top_level.txt'):
@@ -717,6 +718,18 @@ def get_sources(path):
                             for row in reader if any(row[0].startswith(top)
                                                      for top in toplevels))
              continue
+        for top in toplevels:
+            dir_ = os.path.normpath(os.path.join(dist.location,
+                                                 top.rstrip('/')))
+            if not os.path.isdir(dir_):
+                continue
+            for root, dirs, files in os.walk(dir_):
+                for filename in files:
+                    if not filename.endswith('.py'):
+                        continue
+                    filename = os.path.join(root, filename)
+                    sources[filename[len(path):].strip(os.sep)
+                                                .replace(os.sep, '/')] = dist
      return sources
}}}

1. https://svn.python.org/projects/sandbox/trunk/setuptools/doc/formats.txt
1. https://www.python.org/dev/peps/pep-0376/#one-dist-info-directory-per-installed-distribution",Ryan J Ollos
1.6.1 Release,9740,Impossible to CC a username with spaces,ticket system,0.12-stable,defect,normal,,new,2010-11-01T14:22:20+01:00,2021-05-28T21:54:30+02:00,"It is impossible to CC a username with spaces in the username such as ""Joe Bloggs"", attempting to enter that treats as two different users Joe and Bloggs.

Suggest first attempt to establish that usernames separated by commas as known usernames before splitting by spaces for known usernames.",david+trac@…
1.7.1 Release,13600,Upgrade jQuery to 3.7.1,general,,enhancement,normal,,new,2023-05-11T21:49:00+02:00,2023-08-29T23:05:03+02:00,https://blog.jquery.com/2023/08/28/jquery-3-7-1-released-reliable-table-row-dimensions/,Ryan J Ollos
1.7.1 Release,13282,Ticket timeline events can't be filtered using a permission policy,ticket system,,defect,normal,,new,2020-05-02T05:05:15+02:00,2021-05-28T21:28:12+02:00,I'm trying to implement a solution for private ticket comments (th:#13776) and finding that the permission checking for timeline events is too coarse to implement a permissions policy that filters by resource realm `comment` and resource id `cnum`.,Ryan J Ollos
1.7.1 Release,13273,"Add a ""trac-admin session rename"" command",admin/console,,enhancement,normal,,new,2020-04-24T07:23:07+02:00,2022-07-08T20:37:06+02:00,The `session rename` command would be particularly useful if it updates table entries that store the `sid`.,Ryan J Ollos
1.7.1 Release,13215,Adding a repository does NOT trim trailing blanks,version control,1.2.2,defect,normal,,new,2019-10-27T15:57:50+01:00,2021-05-28T21:28:12+02:00,"Adding a new git repository fails to remove trailing blanks from the repository path. It took some time for me to figure out.

This happened with trac 1.2.2, I didn't test newer versions",strk@…
1.7.1 Release,13012,Allow direct docutils configuration,wiki system,,enhancement,normal,,new,2018-04-20T01:15:22+02:00,2021-05-28T21:28:12+02:00,"Add an option for the path to a docutils configuration file. This isn't strictly needed because there are [http://docutils.sourceforge.net/docs/user/config.html#configuration-files other ways to specify a configuration], but it might be a convenience.

Discussed in gmessage:trac-users:bxWbIZwZbh0/VHnIdD-4AAAJ.",Ryan J Ollos
1.7.1 Release,12925,Admin pages should add warnings rather than raising TracErrors,admin/web,,enhancement,normal,,new,2017-09-27T19:00:53+02:00,2021-05-28T21:28:12+02:00,"Noticed while working on #12923, we can make this more user-friendly by trapping `TracError`s and `add_warning`s.",Ryan J Ollos
1.7.1 Release,12406,Standardize nomenclature/options for cached repository,version control,,enhancement,normal,,new,2016-03-16T22:25:08+01:00,2022-03-22T03:19:05+01:00,"Cached SVN repository is specified using the type //svn//. Cached Git repository is specified using the option `[git]` `cached_repository`. I think the latter is more clear, however it can't be specified per-repository.

In order to be more consistent, we could make `cached` a repository attribute, and use it for Git and Subversion repositories. We could allow the attribute to be set from the //Manage Repositories// admin page. An upgrade could be added to migrate users to the new configuration.

Also, the admin panel shows two additional types: //direct-svnfs// and //svnfs//. Are these just aliases?",Ryan J Ollos
1.7.1 Release,11469,Add a custom field admin panel,ticket system,,enhancement,normal,,new,2014-02-03T05:27:06+01:00,2022-11-16T06:31:12+01:00,"The th:CustomFieldAdminPlugin seems to be a reasonable start for integrating a custom field admin panel to the Trac core. Here is an outline of the changes:
 * Rework the template for minor enhancements (e.g. #11027 and #11056), improved styling and to make the markup more consistent with the other ticket `admin_*` templates.
 * Add a `CustomField` class to `trac.ticket.model` that wraps the configuration. Later on, the storage can be changes from //trac.ini// to the database without changing the interface.
 * Modify the `CustomFieldAdminPanel` class to inherit from `TicketAdminPanel` and refactor.
 * Add functional test cases.

Proposed changes will be posted within the next few days.",Ryan J Ollos
1.7.1 Release,10136,Way to configure by default displayed branch,version control/browser,0.12.2,enhancement,normal,,new,2011-04-18T02:19:33+02:00,2022-06-14T01:15:13+02:00,"For (at least Mercurial) it would be great to be able to configure which branch should be displayed as default in source code browser. Currently tip is displayed, but sometimes it is useful that default is some more ""stable"" branch.",Mitar
1.7.1 Release,1660,Patch to get email notification (with diff) of wiki changes,notification,devel,enhancement,major,,new,2005-06-10T19:43:58+02:00,2021-05-28T21:28:12+02:00,"This is a little patch to get notification, with diff included, of wiki changes.
That's implemented against trunk/, revision 1777, as a component.
I did'nt know where to put plugins, so I put it in Notify.py (I use NotifyEmail class), but I don't like that too much ...
(patch follows ...)",pierre.palatin+trac@…
next-dev-1.7.x Release,10267,Version controls diffs of large text files kill the system,version control/changeset view,0.12.2,defect,major,,new,2011-07-15T18:25:07+02:00,2020-12-29T09:45:39+01:00,"We have some large text files (they are some data files we deal with) and when you try to view ""last revision"" or a revision with them it bombs (i.e. the service's cpu usage goes to 100%, and things come to a screeching halt).

Looks like the issue is in: versioncontrol/web_ui/changeset.py

The `_content_changes` method tries to do a diff of anything that isn't a binary.  This is fine for most text files, unless they are big (like even 5 to 10 megs seems a bit much for the diffing method used).  Anyway, I simply added the following to `_content_changes`:

{{{#!python
if (len(old_content) > 100000 or len(new_content) > 100000):
    return None
}}}

(Sorry if it isn't proper pep8)

It looks like you have a max_diff_bytes but that only effects the diff results.  Ideally you would want a threshold before you have the diff results.

",anonymous
next-dev-1.7.x Release,13304,Implement code formatting and style checking tools,general,,enhancement,normal,,new,2020-05-26T00:44:06+02:00,2022-04-07T12:57:20+02:00,"''(from comment:93:ticket:12130)''

In the release checklist, `reindent` is used to fix indentation. ​pypi:reindent doesn't support Python 3. It appears it's just packaged ​reindent.py from the Python Core. I've emailed the package owner to see if I can get maintainership to update it for Python 3.5+.

Use formatting and style checking tools such as:
* [pypi:autopep8]
* [pypi:pycodestyle]

Other candidates are:
* [pypi:black]
* [pypi:flake8]
* [pypi:autoflake8]
* [pypi:pylint]

Implement ignore rules, as needed, in `setup.cfg`. Example:
{{{#!ini
[pycodestyle]
max-line-length = 80
ignore = E126, E127, E128, E129, E131, E241, E731
}}}

Format code to remove all warnings and errors.

Add a Makefile command `make check-code`, which executes the style check tool and `contrib/jinja2checker.py`. The tool can be run before submitting a ""pull request"" and before releases.

Revise as needed:
* TracDev/CodingStyle
* TracDev/DevelopmentWorkflow
* TracDev/ReleaseChecklist
* TracDev/SubmittingPatches
* TracDev/UnitTests
* TracDev/FunctionalTests

`make status` echoes the version of pypi:coverage, but the tool isn't integrated into our development process, as far as I'm aware. It's use should be documented, or remove it from `make status`.

{{{
$ make status

Python: /Users/rjollos/.pyenv/shims/python

  Package        Version
  ----------------------------------------------------------------------------
  Python       : 3.6.10 (default, Jan 27 2020, 16:14:13)
               : [GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.33.17)]
  Setuptools   : 46.4.0
  Pip          : 20.1.1
  Wheel        : 0.34.2
  Jinja2       : 2.11.2
  Babel        : 2.8.0
  sqlite3      : 2.6.0 (3.28.0)
  PySqlite     : not installed
  PyMySQL      : 0.9.3
  Psycopg2     : 2.8.5 (dt dec pq3 ext lo64)
  SVN bindings : 1.15.0 (under development)
  Mercurial    : 5.4
  Pygments     : 2.6.1
  Textile      : 4.0.1
  Pytz         : 2020.1
  Docutils     : 0.16
  Selenium     : 3.141.0
  LXML         : 4.5.1
  coverage     : 5.1

Variables:
...

}}}

There is a `make test-coverage` command that runs unit tests with coverage. Before r17381, it also ran functional tests and figleaf was used for functional test coverage, but figleaf was removed for reasons described in comment:19:ticket:11988.

Consider adding a `requirements-dev.txt` for installing all development requirements.",Ryan J Ollos
next-dev-1.7.x Release,13302,Display plugin enable/disable message near anchor,admin/web,,enhancement,normal,Ryan J Ollos,assigned,2020-05-20T08:08:07+02:00,2020-12-29T09:45:39+01:00,"See comment:1:ticket:11269.

On submit the page refreshes and scrolls to the anchor (e.g. `/admin/general/plugin#no21`). The message is displayed at the top of the page, but is not visible.

[[Image(Screen Shot 2020-05-19 at 23.07.28.jpg,100%)]]

[[Image(Screen Shot 2020-05-19 at 23.06.33.jpg,100%)]]",Ryan J Ollos
next-dev-1.7.x Release,13301,"Remove ""Can't synchronize"" warnings or only show if user has TRAC_ADMIN",version control,,enhancement,normal,Ryan J Ollos,assigned,2020-05-20T08:02:15+02:00,2020-12-29T09:45:39+01:00,"First mentioned in comment:18:ticket:11269.

This warning describes a configuration problem and we shouldn't display it to a non-admin user.",Ryan J Ollos
next-dev-1.7.x Release,13283,"Per-realm always_{cc, bcc} options",notification,,enhancement,normal,,new,2020-05-02T20:37:33+02:00,2020-12-29T09:45:39+01:00,"Copied from [ticket:9148#comment:4]:
> I think it might be nice that `AlwaysEmailSubscriber` respects `[notification] smtp_always_{cc|bcc}.<realm>` option and falls back to `smtp_always_{cc|bcc}` option (e.g. `smtp_always_cc.ticket`, `smtp_always_cc.wiki`, ...).
",Ryan J Ollos
next-dev-1.7.x Release,13277,Add a macro for rendering code from the repository,version control,,enhancement,normal,,new,2020-04-29T19:59:03+02:00,2021-06-02T19:31:57+02:00,"The macro should render code from the repository, optionally with line numbers.

* Specify revision id to render
* Specify line range to render
* Render changesets from repository
 * Path as an optional argument to only render changeset for specified path

Examples:
* [th:IncludeMacro]
* [th:CiteCodeMacro]
* [th:CodeExampleMacro]",Ryan J Ollos
next-dev-1.7.x Release,13208,Add methods or property that formats default value for NotificationSystem.smtp_subject_prefix,notification,,enhancement,normal,,new,2019-09-17T21:15:32+02:00,2022-01-24T00:19:06+01:00,"Implementing notification systems for some plugins, I found it would be useful to have a method that handles the `__default__` value. I've named the method `get_smtp_subject_prefix`, but a suitably named property might be better.",Ryan J Ollos
next-dev-1.7.x Release,13206,Add ICustomFieldTypeProvider interface,ticket system,,enhancement,normal,,new,2019-09-06T20:51:38+02:00,2023-04-07T05:38:06+02:00,"Copied from [ticket:11469#comment:4]:
> Replying to [comment:3 rjollos]:
> >  * th:#7156 - API for defining new types of custom fields?
> 
> Previously, I've worked it in https://github.com/jun66j5/trac-customfieldadminplugin/commit/8532c814 by reference to FieldRefactoring. In the branch, it added `ICustomFieldTypeProvider` interface which allows to define new types.

I'd like to consider rebasing these changes and including in a 1.5.x release.

Use cases:
* th:comment:8:ticket:10284",Ryan J Ollos
next-dev-1.7.x Release,13185,Keywords: remove duplicates and fixup separators,ticket system,,enhancement,normal,,new,2019-07-30T23:10:45+02:00,2022-07-12T05:47:17+02:00,"In comment:16:ticket:13179, the following changes to the keywords field were proposed:
* Fixup separators. Example: `kw1, kw2; kw3 kw4` -> `kw1, kw2, kw3, kw4` (or use whitespace rather than comma separators). This would match the behavior for the CC field.
* Remove duplicates.",Ryan J Ollos
next-dev-1.7.x Release,13081,IWikiMacroProvider.is_inline should take macro name as argument,general,1.0,defect,normal,,new,2018-09-19T23:47:30+02:00,2020-12-29T09:45:39+01:00,"`IWikiMacroProvider.is_inline` was added in r10905.

Implementers of `IWikiMacroProvider` can define multiple macros, so the other interface methods take `name` as an argument. It would seem that `is_inline` should also take `name` as an argument since the different macros might produce different types of content.",Ryan J Ollos
next-dev-1.7.x Release,13080,Add [trac] mysql_storage_engine option instead of editting my.cnf,database backend,,enhancement,major,,new,2018-09-19T09:39:01+02:00,2020-12-29T09:45:39+01:00,"Cloned from ticket:10993#comment:8:
> This issue might be revisited in the future, for now I'm just summarizing the discussion in gdiscussion:trac-users:MO_KSSQMdnU.
> 
> > The requirement to set `default_storage_engine` and `default_tmp_storage_engine` in `my.cnf` could be removed if:
> > * The storage engine was specified in a trac.ini variable such as `[trac]` `mysql_storage_engine` or `[mysql]` `storage_engine`
> > * `MySQLConnector.to_sql` was modified to include the `ENGINE` table option in `TABLE CREATE` statements
> > * The modules in the `upgrade` package were modified to use the `ENGINE` table option either directly or indirectly by use of a helper function (such as `MySQLConnector.to_sql`)

We could set the `default_storage_engine` and `default_tmp_storage_engine` variables in session on connecting database, to remove the requirement.

{{{
SET @@session.default_storage_engine = 'InnoDB';
}}}

PoC: [f877c7e1d/jomae.git] ([log:jomae.git@t10993_storage_option]).

If `[trac] mysql_storage_engine` option is empty (default), the session variables is not set and global variables is referred.",Jun Omae
next-dev-1.7.x Release,13029,Attachment notifications despite Never notify: I update a ticket,attachment,1.2.2,defect,normal,,new,2018-05-16T17:04:17+02:00,2020-12-29T09:45:39+01:00,"I have configured:

  Subscription rules:
  Never notify: I update a ticket 

And this works well most of the time, but I still get a notification when I attach a file to a ticket.",anonymous
next-dev-1.7.x Release,13014,Deprecate and remove IPermissionStore.get_users_with_permission,general,,enhancement,normal,,new,2018-04-22T23:13:14+02:00,2021-05-28T21:29:49+02:00,"This is a follow-on to comment:15:ticket:12915.

The proposed changes are:
* Change `DefaultPermissionStore.get_user_permissions` so that `IPermissionGroupProviders` are not searched. `PermissionSystem.get_user_permissions` will search `IPermissionGroupProvider`s. `DefaultPermissionStore` will no longer have any knowledge of `IPermissionGroupProvider`s that it does not implement.
* Deprecate `IPermissionStore.get_users_with_permissions` and remove it in 1.5.1.
 * The method was added in #4245.
 * [th:LdapPlugin] is the only plugin on trac-hacks.org that implements `IPermissionStore`, and it has [th:browser:/ldapplugin/0.12/ldapplugin/api.py@16527:225-232#L222 copied the implementation] of [browser:tags/trac-1.2.2/trac/perm.py@:217-224#L209 DefaultPermissionStore.get_users_with_permissions].
 * `PermissionSystem.get_users_with_permission` can do the equivalent work for all `IPermissionStore`s.
* Change `PermissionSystem.get_users_with_permission` so that it does not call `IPermissionStore.get_users_with_permissions`.
",Ryan J Ollos
next-dev-1.7.x Release,12928,Pass author to wiki_page_deleted and wiki_page_version_deleted,wiki system,,defect,normal,,new,2017-10-11T19:19:45+02:00,2020-12-29T09:45:39+01:00,"See [https://github.com/trac-hacks/trac-wikinotification/issues/11 trac-wikinotification issue #11].

One possibility would be to modify the `page` object before passing to the change listener:
* Set the `author` to the user deleting the page
* Set the `content` to an empty string
* Set the `version` to `None`?

Similar changes made be wanted elsewhere, such as the `Ticket` model.",Ryan J Ollos
next-dev-1.7.x Release,12912,AuthzPolicy fine permissions for timeline and search,general,1.2.2,defect,normal,,new,2017-09-10T21:12:38+02:00,2020-12-29T09:45:39+01:00,"Hi,

I'm using trac for years now, and during all this time I've been using AuthzPolicy to define permissions. Today I noticed that all my users never saw the SEARCH and TIMELINE buttons, so I went my `authzpolicy.conf` file and added this

{{{
[*]
@administrators = TRAC_ADMIN
authenticated = SEARCH_VIEW, TIMELINE_VIEW
}}}

but it didn't work.

Checking the logs I saw this for SEARCH (notice the None at the end)

{{{
2017-09-10 13:57:38,827 Trac[authz_policy] DEBUG: Checking SEARCH_VIEW on *:*@*
2017-09-10 13:57:38,828 Trac[authz_policy] DEBUG: *:*@* matched section *:*@* for user johanna
2017-09-10 13:57:38,831 Trac[authz_policy] DEBUG: Checking WIKI_VIEW on *:*@*
2017-09-10 13:57:38,831 Trac[authz_policy] DEBUG: *:*@* matched section *:*@* for user johanna
2017-09-10 13:57:38,832 Trac[perm] DEBUG: No policy allowed johanna performing WIKI_VIEW on None
}}}

and this for TIMELINE (note the None at the end):

{{{
2017-09-10 13:14:24,654 Trac[authz_policy] DEBUG: Checking TIMELINE_VIEW on timeline:*@*                                            
2017-09-10 13:14:24,655 Trac[authz_policy] DEBUG: timeline:*@* matched section timeline:*@* for user johanna                       
2017-09-10 13:14:24,658 Trac[authz_policy] DEBUG: Checking WIKI_VIEW on *:*@*                                                                  
2017-09-10 13:14:24,658 Trac[authz_policy] DEBUG: *:*@* matched section *@* for user johanna
2017-09-10 13:14:24,659 Trac[perm] DEBUG: No policy allowed johanna performing WIKI_VIEW on None
}}}

I tried with `[timeline:*]` and `[search:*]` as resources but it didn't worked.

So, I went to check the code and I found that the `resource` is `None` at this file https://trac.edgewall.org/browser/trunk/trac/perm.py#L518 and it's passed as `None` to https://trac.edgewall.org/browser/trunk/tracopt/perm/authz_policy.py#L143.

For some reason, the resource is marked as `None` so there is no way to catch it (I also tried with `[None]` :)

I'm using this python package versions

{{{
Genshi==0.7
Pygments==2.2.0
Trac==1.2.2
## FIXME: could not find svn URL in dependency_links for this package:
TracSectionEditPlugin==0.2.6-r11208
argparse==1.2.1
click==6.7
configobj==5.0.6
docutils==0.14
pur==4.0.2
regex==2017.07.28
six==1.10.0
textile==2.3.16
wsgiref==0.1.2
}}}

Please, let me know if I can add more information.

Thanks!",humitos@…
next-dev-1.7.x Release,12898,Add interface for changes on cached repository,version control,,enhancement,normal,,new,2017-08-27T08:11:42+02:00,2020-12-29T09:45:39+01:00,"Plugins such as [th:TracTicketChangelogPlugin] implement an `IAdminCommandProvider` command to perform an initial synchronization.
{{{#!sh
$ trac-admin $env ticketlog sync
}}}

It would be nice if we could hook into the `repository sync` and `repository resync` commands rather than having a separate command for the plugin. I considered adding a `changeset_synchronized` method to `IRepositoryChangeListener`, but the pattern didn't seem quite right.

All of the other `I*ChangeListener` interfaces send notifications when the an instance of the model has changed. `IRepositoryChangeListener` sends a notification when the repository that is external to Trac has changed, and Trac uses that notification to synchronize the cache with the repository on disk.

That led to my thinking that a better solution would be an interface that sends notifications on changes to `CachedRepository`.

{{{#!python
class ICachedRepositoryChangeListener(Interface):

    def cache_deleted(repos):
        """"""Called when the cache is deleted.""""""

    def changeset_added(repos, changeset):
        """"""Called when a changeset is added.""""""

    def changeset_modified(repos, changeset, old_changeset):
        """"""Called when a changeset is modified.""""""
}}}",Ryan J Ollos
next-dev-1.7.x Release,12893,Empty time values should be stored as NULL,general,,defect,normal,,new,2017-08-16T18:10:33+02:00,2020-12-29T09:45:39+01:00,"Empty time values in the ticket system are stored as `0`. They should probably be stored as `NULL` instead. Example: [browser:tags/trac-1.2.2/trac/ticket/model.py@:1304#L1292 Version.update]

{{{
sqlite> SELECT time FROM version;
0
1496041616000000
1472327798000000
0
0
}}}

The issue is caused by behavior of [browser:tags/trac-1.2.2/trac/util/datefmt.py@:191-192#L189 to_utimestamp]. We should add a helper function:

{{{#!python
def _to_timestamp(time):
    return to_utimestamp(time) if time else None
}}}

Timestamps are stored in the following fields:
* `attachment.time`
* `wiki.time`
* `revision.time`
* `ticket.time`
* `ticket.changetime`
* `ticket_change.time`
* `milestone.due`
* `milestone.completed`
* `version.time`
* `notification_subscription.time`
* `notification_subscription.changetime`",Ryan J Ollos
next-dev-1.7.x Release,12646,Add group toggle functionality to timeline filters,timeline,,defect,normal,,new,2016-12-23T07:52:14+01:00,2020-12-29T09:45:39+01:00,Like was done in #12376 for the Search filters.,Ryan J Ollos
next-dev-1.7.x Release,12567,Image macro should support protocol-relative URLs,wiki system,,enhancement,normal,,new,2016-08-25T00:18:48+02:00,2020-12-29T09:45:39+01:00,"For example, `//www.edgewall.org/gfx/trac_bullet.png` could be used on WikiStart.

URLs starting with `//` should be interpreted as protocol-relative. Unfortunately, the Image macro interprets URLs starting with `//` as //server-relative//. If we were starting again, I might suggest we use something like `^//` for server-relative.

The only idea I have is to use `://` to indicate protocol-relative URLs. Other ideas are welcome.",Ryan J Ollos
next-dev-1.7.x Release,12161,Add a Revision Log macro,version control,,enhancement,normal,,new,2015-08-08T06:02:44+02:00,2020-12-29T09:45:39+01:00,This would be similar to the [th:ChangeLogMacro]. That changes could be based on that macro if the code was refactored and tests added.,Ryan J Ollos
next-dev-1.7.x Release,11871,Notification subscriber for @name mentions,notification,,enhancement,normal,,new,2014-12-08T22:20:16+01:00,2022-10-01T15:18:08+02:00,"Many websites allow users to mention `@name` (e.g. `@psuter`) in comments to notify that user of the comment.

We could add an optional `INotificationSubscriber` implementing this for ticket comments.",Peter Suter
next-dev-1.7.x Release,11870,"Optional notification subscribers for watching components, users, groups, individual resources, ...",notification,,enhancement,normal,,new,2014-12-08T20:28:24+01:00,2020-12-29T09:45:39+01:00,"th:AnnouncerPlugin has `TicketComponentSubscriber` so users' can subscribe to all tickets of certain components.

For the [wiki:TracDev/Proposals/AdvancedNotification#Advancedsubscriptions Advanced Notification proposal] we could add it (and more) to `tracopt.notification`.

It would use a preference child panel (#11853) to allow users to check components for watching, and the `notify_watch` DB table (#11869) to store these preferences.",Peter Suter
next-dev-1.7.x Release,11861,Add email fields property to TicketSystem,ticket system,,enhancement,normal,,new,2014-12-03T16:02:21+01:00,2020-12-29T09:45:39+01:00,In comment:3:ticket:11594 adding `email_fields` to the `TicketSystem` was discussed. A patch that needs more work was proposed in [a6ea05df/rjollos.git]. The proposed change will be further investigated in this ticket.,Ryan J Ollos
next-dev-1.7.x Release,11856,Default values of ticket workflow fields should be configured in the [ticket-workflow] section,ticket system,,enhancement,normal,,new,2014-12-02T01:21:31+01:00,2023-07-18T15:15:19+02:00,"The fields //resolution// and //status// in the list of `Ticket.protected_fields` ([browser:/tags/trac-1.0.2/trac/ticket/model.py@:51-52#L49]) are only modified by the workflow. #2045 moves Trac one step closer to adding `owner` to `Ticket.protected_fields` and only allowing the workflow to change the owner field (see comment:60:ticket:2045).

Having `default_resolution` and `default_owner` as attributes of a ticket workflow action and configured through the `[ticket-workflow]` section rather than the `[ticket]` section has a few advantages:
 * It should be clear that these fields are controlled by the ticket workflow.
 * Unique default values can be provided for each action in the workflow.

I've also found the attribute names `set_owner` and `set_resolution` to be a bit confusing. We might consider renaming these to `resolutions` / `owners` or `allowed_resolutions` / `allowed_owners`.

For completeness, we could also consider adding `restrict_owner` as a workflow attribute, replacing or overriding `[ticket] restrict_owner`. This was mentioned in comment:1:ticket:11976.",Ryan J Ollos
next-dev-1.7.x Release,11706,"""Can't synchronize"" warning message persists longer than it should",version control,,defect,normal,,new,2014-08-04T02:45:20+02:00,2020-12-29T09:45:39+01:00,"To reproduce:
 1. Add or modify an SVN repository (or any type) and set its `type` to be any other type.
 1. Save the changes and find the following message when redirected back to the //Manage Repositories// page:
 {{{#!html
<div id=""warning"" class=""system-message"">
        <a style=""display: inline;"" class=""trac-close-msg"" href=""#"" title=""Hide this warning""><span>close</span></a>
          <strong>Warning:</strong>
          Can't synchronize with repository ""(default)"" ('/home/user/Workspace/tracdev/repos/tracdev' does not appear to contain a repository (Mercurial 2.2.2 says RepoError: repository /home/user/Workspace/tracdev/repos/tracdev not found)). Look in the Trac log for more information.
      </div>
}}}
 1. Select the repository and set its type correctly.
 1. //Submit changes// and on redirect back to the //Manage Repositories// page, notice that the warning message is still present.
 1. Refresh the page to cause the warning message to disappear.
",Ryan J Ollos
next-dev-1.7.x Release,11675,IAttachmentStorage interface for pluggable attachment storage,general,,enhancement,normal,,new,2014-07-14T00:29:46+02:00,2021-05-28T21:29:49+02:00,"The interface would allow attachments to be saved to external storage, such as [https://www.dropbox.com/developers/core/start/python DropBox]. This has been discussed for implementation in bloodhound:#486. Related to #11339.",Ryan J Ollos
next-dev-1.7.x Release,11432,The href of customized navigation items doesn't work as documented,general,,defect,normal,,new,2014-01-08T17:32:57+01:00,2020-12-29T09:45:39+01:00,"TracNavigation#Notes suggests that the following mappings should occur:
 * `/projects/project1/wiki/WikiStart` -> `/projects/projects1/wiki/WikiStart`
 * `wiki/WikiStart` -> `/projects/project1/wiki/WikiStart` (when in the `project1` environment).

This is not the case however. An `href` beginning with `/` is treated as project-relative. There does not seem to be a way to create an interproject link in a multiproject/multienvironment setup sharing the same base url link without using the base url in the `href` or using `..` in the `href` (e.g. `../project2/wiki/WikiStart`).

Using an `href` such as `wiki/WikiStart` results in repeated clicks on the mainnav button mapping to `/projects/project1/wiki/WikiStart` -> `/projects/project1/wiki/WikiStart/wiki/WikiStart` -> `/projects/project1/wiki/WikiStart/wiki/WikiStart/wiki/WikiStart`.

Unfortunately I think the proper fix would change the behavior for existing users:
{{{#!diff
diff --git a/trac/web/chrome.py b/trac/web/chrome.py
index f627ae5..7b392f3 100644
--- a/trac/web/chrome.py
+++ b/trac/web/chrome.py
@@ -724,7 +724,8 @@ class Chrome(Component):
                         label = category_section.get(name + '.label')
                         href = category_section.get(name + '.href')
                         if href:
-                            if href.startswith('/'):
+                            if not href.startswith(('http://',
+                                                    'https://', '/')):
                                 href = req.href + href
                             if label:
                                 item = tag.a(label) # create new label
}}}",Ryan J Ollos
next-dev-1.7.x Release,11409,"Add a ""Versions released"" filter to the timeline",timeline,,enhancement,normal,,new,2013-12-19T17:59:38+01:00,2020-12-29T09:45:39+01:00,"//Milestones reached// is shown on the timeline (renamed to //Milestones completed// in #11051). It would probably make sense to also have versions entries in the timeline and a //Versions released// filter.

Related to the proposed work in #1233.",Ryan J Ollos
next-dev-1.7.x Release,11367,"Ticket change history not updated when deleting or renaming Components, Versions and Ticket System Enums",ticket system,,defect,normal,,new,2013-11-16T06:29:59+01:00,2020-12-29T09:45:39+01:00,"Similar to what we saw in #4582 for milestones, the ticket change history of associated tickets is not updated when deleting or renaming the following ticket system items:
 * Components
 * Enums (Priorities, Resolution, Severities, Ticket Types)
 * Versions

The current behavior is that on rename the ticket field's value has the new name, and on delete the ticket field's value has the deleted name.",Ryan J Ollos
next-dev-1.7.x Release,11343,"Retarget tickets when executing the ""trac-admin milestone remove/completed"" commands",admin/console,1.0-stable,enhancement,normal,,new,2013-10-20T20:59:53+02:00,2020-12-29T09:45:39+01:00,"Tickets are not retargeted when milestones are deleted or closed through trac-admin. To be consistent with the web interface, milestones should be retargeted to the //None// milestone by default. Additionally, we might consider adding a //retarget// parameter to specify which milestone tickets should be retargeted to.",Ryan J Ollos
next-dev-1.7.x Release,11339,Swappable Configuration implementations,general,,enhancement,normal,,new,2013-10-18T16:00:42+02:00,2020-12-29T09:45:39+01:00,"On some systems, it may be useful to initialize the Trac Environment with a non-standard Configuration object.  Use cases include:

 * Deploying Trac on Heroku with configuration from environment variables instead of `trac.ini`.  Heroku provides [https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem an ephemeral filesystem]; directly writing changes to files (vs. updating files locally in a git repository and pushing those changes to your Heroku instance) is risky, because those changes may disappear at any time (e.g. when redeploying code or when Heroku decides to reboot a system) and are not shared across application instances if you scale up your deployment.  Meanwhile, Heroku *does* provide [https://devcenter.heroku.com/articles/config-vars a persistent environment variable layer] that can store up to 16kb of data.  For a Heroku Trac deployment, a Configuration class that reads and writes its values via a JSON-structured environment variable would be more appropriate than a file-based configuration.

 * Preventing through-the-web changes to the configuration altogether to ensure that formatting and comments in a hand-edited `trac.ini` are not lost, until #7378 is closed.

 * Ensuring that `trac.ini` remains version-controlled by extending `Configuration.save()`to write out a diff from the previous file, or to commit changes directly to a repository in a subprocess.

See [[https://groups.google.com/d/topic/trac-dev/z4-gWs269X4|[Trac-dev] Setting database string from environmental variable?""]] for motivation.",ethan.jucovy@…
next-dev-1.7.x Release,11148,Generic ChangeListener events,general,1.1.1dev,enhancement,normal,,new,2013-04-11T11:47:24+02:00,2020-12-29T09:45:39+01:00,"The proposal is inspired by #8834. Initial proposition suggests a new IResourceChangeListener interface:

{{{#!python
class IResourceChangeListener(Interface):
    """"""Extension point interface for components that require notification
    when resources are created, modified, or deleted.

    'resource' parameters is instance of the a resource e.g. ticket, milestone
    etc.
    'context' is an action context, may contain author, comment etc. Context
    content depends on a resource type.
    """"""

    def get_subscribed_resources():
        """"""
        Implementation should return iterator of resource types for which
        the listener has to be notified.

        None or empty list means all types of resources.
        """"""

    def resource_created(resource, context):
        """"""
        Called when a resource is created.
        """"""

    def resource_changed(resource, old_values, context):
        """"""Called when a resource is modified.

        `old_values` is a dictionary containing the previous values of the
        resource properties that changed. Properties are specific for resource
        type.
        """"""

    def resource_deleted(resource, context):
        """"""Called when a resource is deleted.""""""

    def resource_version_deleted(resource, context):
        """"""Called when a version of a resource has been deleted.""""""
}}}

Please consider discussion related to this ticket on [https://groups.google.com/forum/?fromgroups=#!topic/trac-dev/aoJEUYm1wYM Trac Development group].

There is discussion on Bloodhound project about addition another !ChangingListener interface for within  transaction events and unifying I*Manipulator interfaces. So, the solution for the generic !ChangeListener events implementation can be used as basis for other generic events.",andrej@…
next-dev-1.7.x Release,11024,Losslessly compress images,general,,enhancement,normal,,new,2013-01-23T09:26:30+01:00,2021-06-04T02:18:31+02:00,Hi. Compressing the png images losslessly saves quite a few bytes.,anonymous
next-dev-1.7.x Release,10948,[PATCH] Clone functionality should also be available for users with TICKET_CREATE permission,ticket system,1.0,enhancement,normal,,new,2012-11-12T09:20:15+01:00,2020-12-29T09:45:39+01:00,"As described in ticket [ticket:4686#comment:14], it would be nice to enable clone functionality also for ""normal"" users, which have `TICKET_CREATE` permission. As you could copy / clone a ticket manually with `TICKET_CREATE` permission (by copy-paste) it should be sufficient to check `TICKET_CREATE` permission in `clone.py`.

As described in [ticket:10856#comment:6] it would also make more sense to put the clone-button on top of the properties table, since when you clone a ticket you clone '''all''' properties and not only the description.",franz.mayer@…
next-dev-1.7.x Release,10802,Cleanup Javascript code,general,1.0-stable,task,normal,,new,2012-08-11T13:47:48+02:00,2023-02-16T08:24:10+01:00,"Once we have Javascript minification (#10672) in place, we could:
* Switch from two spaces indentation to four spaces.
* Add copyright headers.
* Add documentation and other comments.
* Perhaps take the opportunity to cleanup code in general.

TracDev/CodingStyle#JavaScript advises to follow Douglas Crockford's style (with minor modifications). Perhaps using his [http://www.jslint.com/ JSLint] might help doing this more consistently.

''(See #633, #5997 for CSS cleanup.)''",Peter Suter
next-dev-1.7.x Release,10672,Automatically minify Javascript and CSS,general,,enhancement,normal,,new,2012-04-21T13:54:28+02:00,2020-12-29T09:45:39+01:00,"As [comment:5:ticket:10284 discussed] [comment:20:ticket:10245 previously] it might be a good idea to introduce a minification step that pre-processes the !JavaScript and CSS files stored in source control.

This would allow developing with clean, well-commented source files while improving performance. We could then switch our [TracDev/CodingStyle#JavaScript JavaScript coding style] to 4 spaces indentation and add copyright and documentation comments to file headers. (See #10802)

The step / a related step could do JSLint checking.

How should this be implemented?
 * [comment:5:ticket:10284 One suggestion] was a `make minify` step.
 * Another idea would be to add it to `setup.py`. [http://pypi.python.org/pypi/minify minify] or [https://github.com/bmathieu33/distwebres distwebres] provide setuptools commands (both use YUI compressor, which requires Java)
 * Alternatively, we could hook it into `trac-admin deploy` somehow.
 * Or the web frontend could dynamically minify and cache and combine just the files required for a request into one file. (Including scripts by plugins.)

An important requirement might be to keep this step optional.",Peter Suter
next-dev-1.7.x Release,10606,GitPlugin: Improve performance,plugin/git,1.0dev,enhancement,critical,,new,2012-03-04T15:22:25+01:00,2022-11-11T15:58:38+01:00,"''Created as part of the [ticket:10594 move of GitPlugin]. Tickets originally reported for th:GitPlugin: #746''

Quoting [th:ticket746:comment:6 hvr]:
>  - try to create an additional `libgit-thin`-based `Storage` in `PyGIT.py` to evaluate whether the exec+fork+parse overhead is still signifikant
>  - most external `git` calls can be avoided now thanks to extensive caching of meta-data; one of the remaining speed killers is listing directories in the source browser (`cat-file -s` calls can be optimized, by using GIT 1.5.3+ `-l` option to `ls-tree`; but having to call `rev-list` for each folder element still remains an issue... maybe it'll be possible to get an enhancement to `ls-tree` merged upstream to provide that information as well...)

----
See also: TracDev/Performance/Git",Peter Suter
next-dev-1.7.x Release,10532,Show word diff when summary changes (instead of <old value> to <new value>),ticket system,0.13dev,enhancement,minor,,new,2012-01-19T09:47:24+01:00,2020-12-29T09:45:39+01:00,"In this [http://trac.edgewall.org/ticket/8135#comment:11 summary change] you do not see any changes at once - and I guess there is not a change at all (which might be a defect).

It would be better readable if summary changes would be displayed in a diff view instead of ""<old value> to <new value>"" manner, since most summary changes are typos or small changes.

If it is a bigger change (maybe using some smart algorithm to determine that it has changed more than 50%) Trac could display it in this way: <old value> to <new value>.",framay <franz.mayer@…>
next-dev-1.7.x Release,10239,Enhancement: set default_owner from WebAdmin `Components`,admin/web,0.12.2,enhancement,minor,,new,2011-06-29T21:30:35+02:00,2020-12-29T09:45:39+01:00,"I have a few projects where they either want all new tickets to go to one person for filtering and/or they do not use the 'Components' option which would set the default owner (configurable through WebAdmin). 

I know I can set [ticket] `default_owner` in trac.ini but I think it 
would be nice to be able to modify this from the WebAdmin `Components` interface. 

See also: http://groups.google.com/group/trac-users/browse_thread/thread/fefcec45c2e5e364 which includes some useful info on how `default_owner` works...
",py.hieroglyph@…
next-dev-1.7.x Release,10040,Support for integer/float custom fields,ticket system,,enhancement,normal,,new,2011-02-22T12:38:30+01:00,2020-12-29T09:45:39+01:00,"See http://article.gmane.org/gmane.comp.version-control.subversion.trac.devel/6561 for some discussion.

We'd like to be able to mark some custom fields as ""contains integer"" or ""contains floating number"". This would then let us sort numerically, validate user input, add an aggregation/summing feature, and so on.

We're not thinking of changing the ''storage'' type, nor, currently, the Python type that exists in the ticket.fields list. Instead, we just validate the user input and then later we can also attempt to convert the field value to the numeric type if we want to do sorting or summing.

This can fix #3080, but walks in the wrong way for FieldRefactoring.
",pipern
next-dev-1.7.x Release,9331,trac-admin should upgrade static files in environment,admin/console,0.11.7,enhancement,normal,,new,2010-05-11T18:30:26+02:00,2021-01-02T20:35:00+01:00,"Trac 0.11 doesn't upgrade static files in environment. Therefore bugfixes in JS code and CSS styles are not propagated into environment. `trac-admin upgrade` should try to update them (if it knows where these static files are - and ideally it should know this even if these files are fetched only through web-server directly). If Trac can not update these resources automatically - it should at least instruct users how to update manually, i.e. use `trac-admin deploy` and compare to detect what files are modified. If Trac has embedded differ, it may try to do this automatically. At the very least it should propose to read wiki TracUpgrade page for more information.

P.S. Plugin installation/upgrade instructions should also include `trac-admin deploy` step to refresh resources.",anatoly techtonik <techtonik@…>
next-dev-1.7.x Release,9222,"""full delete"" of wiki page could be a non-fatal operation",wiki system,,enhancement,normal,,new,2010-04-12T17:09:32+02:00,2020-12-29T09:45:39+01:00,"When I delete a file from SVN, it stays there in previous versions. Would be nice to have the same possibility in Trac (maybe configured from trac.ini):

When I delete a page from Wiki, it goes off and I don't see it in Index and I '''can't''' reach it from web. But I can reach its previous versions! I just deleted the page in version 5. When I go to this page from web - Trac says that the page is absent and asks me whether I want to create it. But when I go to this page with `@5` suffix, I get directly to the deleted page, its latest version.

Such a behavior looks more effective/consistent for me, than ""full delete"", as it is now.",team@…
next-dev-1.7.x Release,8069,[PATCH] Support list of users as options list in ticket custom field,ticket system,0.11.3,enhancement,normal,,new,2009-02-18T19:57:54+01:00,2020-12-29T09:45:39+01:00,"In the process of migrating from a Borland StarTeam install to Trac+SVN, I needed the ability to assign multiple users to a ticket.  Borland provided the ability to include custom Change Request fields which could be limited to the list of valid users within the StarTeam project.

Attached is a patch which implements similar behavior in Trac.  The patch introduces a simple variable replacement scheme to the options attribute of a custom ticket field.  The INI section looks like this:

{{{
[ticket-custom]
devtest_assigned = select
devtest_assigned.label = Dev Tester Assigned
devtest_assigned.options = $userlist
}}}

Code in ticket/api.py checks for a select custom field which has an options attribute of literally ""$userlist"".  If such a field is found, the field is passed to the existing function eventually_restrict_owner() to insert the listing of valid users.

The attached trivial three-line patch appears to work well against Trac-0.11.3.",Zachary Bedell <zbedell@…>
next-dev-1.7.x Release,7820,[PATCH] Syslog Logging Not Working on FreeBSD,general,none,defect,normal,,new,2008-11-14T16:39:07+01:00,2020-12-29T09:45:39+01:00,"FreeBSD's syslog doesn't listen on /dev/log. It uses /var/run/log. Attached is a patch that allows you to specify the path to the UNIX socket instead of hardcoding it. It basically uses the logfile parameter, if it's None use /dev/log otherwise use it.

This bug affects all versions of Trac since about 0.7 it looks like.",david@…
next-dev-1.7.x Release,7628,[PATCH] (suggested) autocomplete users on ticket forms,general,,enhancement,normal,,new,2008-09-12T23:43:16+02:00,2021-06-04T02:13:28+02:00,"I've written a plugin, th:AutocompleteUsersPlugin , that uses AJAX to complete users in the owner and CC fields for new and existing tickets (for the latter, at least for the default workflow).  The attached patch is the plugin in patch form, fairly unmodified.  Performance should degrade gracefully for no JS or when {{{restrict_owner}}} is true.

The autocompleter completes from known users who have the TICKET_MODIFY permission, mirroring the performance of the select widget when {{{restrict_owner}}} is true and populates the fields with the user name, though (obfuscated) email and full names are shown in the drop down and are included in the completion algorithm.

I have included {{{autocomplete.js}}} from http://www.dyve.net/jquery/?autocomplete which is an updated version of the jquery plugin that source:trunk/trac/htdocs/js/suggest.js is based on.  The update is needed to decouple what is displayed in the drop-down from what is populated to the input field.  {{{suggest.js}}} could be updated with this as well as the only place it is used, source:trunk/trac/versioncontrol/web_ui/changeset.py , if this is desired.

A new !RequestHandler handles requests to {{{/users}}} to respond to AJAX request.  This handler could be made to do more if requests were descriminated upon {{{req.get_header('X-Requested-With') == 'XMLHttpRequest'}}}, or the whole data could be added into the JS on the server side (which is not possible with the existing {{{suggest.js}}}).

Several new javascript files are included, in addition to {{{autocomplete.js}}}.  These could be consolidated and/or generated on the server side if that is more desirable.",Jeff Hammel <jhammel@…>
next-dev-1.7.x Release,5211,Ticket - Wiki Integration enhancement/suggestion,ticket system,,enhancement,minor,,new,2007-04-24T17:36:50+02:00,2020-12-29T09:45:39+01:00,"Supposing that one used CamelCase to name their components, and that one then created wiki pages for their components; how about having the 'Component' column of reports created by the ticket system contain clickable links for each component that has a wiki page created for it.  Also perhaps, in the case that components do not have a page already created; those components might have a link to create the wiki page.

Thanks,
Cullen",Cullen Newsom <cullennewsom@…>
next-dev-1.7.x Release,4519,[PATCH] Feature: component owner ticket notification,notification,0.10.3,enhancement,normal,,new,2007-01-11T00:40:41+01:00,2020-12-29T09:45:39+01:00,"The following patch allows for component owner notification of ticket updates (even when the ticket is assigned to a different user than the component owner). This feature must be enabled in the trac.ini file with a line like this:

{{{
[notification]
always_notify_component_owner = true
}}}

We've been using this patch with Trac 0.10 and it has been working fine.

I made the patch against this trunk file:
http://svn.edgewall.org/repos/trac/trunk/trac/ticket/notification.py

Let me know if there are any problems with the patch and I'll be happy to address them. Thanks for your consideration.",jenalias@…
next-dev-1.7.x Release,3914,"ticket change notification should contain diff'ed text, not old and new",notification,0.10,enhancement,normal,,new,2006-10-11T15:23:04+02:00,2020-12-29T09:45:39+01:00,"it would be beneficial, if the notification mail on a ticket change containes a diff'ed output instead of the old and new text. especially when a description is long and just a little thing changed its quite a challenge to find out what changed.
",ThurnerRupert
next-dev-1.7.x Release,1233,Descriptions of Components,ticket system,0.8,enhancement,major,,new,2005-02-28T15:52:00+01:00,2020-12-29T09:45:39+01:00,"One annoying problem we have with our existing bug-tracking system is that users often
don't know what component to select for a ticket. They often end up choosing an inappropriate one.

One could argue that better component names would minimise this, but I've often found users to be
endlessly creative in their quest to misunderstand the (seemingly) obvious ;-)
A nice feature of bugzilla is that the component selector label is a link to a page listing the components for the project, along with owner and description. (If you prefer the link could be a separate item, like a '?' icon.)

(Currently I'm conducting a trial of trac, and I quite like it!)",Matthew Harrison
next-dev-1.7.x Release,8989,Milestones should have a 'Back to Roadmap' link in the contextual navigation,roadmap,0.12dev,enhancement,normal,,new,2010-01-22T02:15:37+01:00,2020-12-29T09:45:39+01:00,"When navigating to a milestone from the roadmap, there should be a '''Back to Roadmap''' link displayed in the contextual navigation menu.

This is not currently implemented in Trac `0.12dev`, as can be seen: milestone:0.12-multirepos

This seems simple enough that I'll try to implemented it and provide a patch.",Ryan J Ollos
next-major-releases Release,8813,"next_rev is slow, particularly in the direct-svnfs case",version control,0.11,defect,major,anonymous,new,2009-11-13T10:10:33+01:00,2023-03-23T22:27:14+01:00,"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 Release,886,Add support for Master tickets,ticket system,devel,enhancement,major,,new,2004-11-05T12:44:10+01:00,2023-04-13T09:07:18+02:00,"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 Release,11719,"Auto-preview breaks TicketExt plugin, possibily others",ticket system,1.0.1,defect,major,,new,2014-08-15T18:27:07+02:00,2021-07-03T20:18:35+02:00,"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 Release,10699,trac-admin - ticket export import,admin/console,0.12-stable,defect,normal,,new,2012-05-18T16:54:05+02:00,2019-08-27T19:38:16+02:00,"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 Release,10665,Search through all text fields,search system,,defect,normal,,new,2012-04-13T12:18:03+02:00,2023-03-29T15:28:04+02:00,"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 Release,10178,[PATCH] Allow TracQueries to order on multiple columns,query system,0.12dev,enhancement,normal,,new,2011-05-14T06:46:57+02:00,2021-11-10T22:37:39+01:00,"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 Release,9936,CSS and JS files should be versioned,web frontend,0.12.1,enhancement,normal,,new,2010-12-17T10:30:45+01:00,2020-11-02T19:43:43+01:00,"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 Release,9648,[PATCH] Improve ticket fields with tooltips,ticket system,0.12,enhancement,normal,,new,2010-09-27T11:29:42+02:00,2017-03-07T02:56:26+01:00,"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 Release,9643,[Patch] Ticket search by query with auto completion,search system,0.13dev,enhancement,major,,new,2010-09-24T08:11:33+02:00,2021-10-24T09:23:29+02:00,"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 Release,9574,add filters to TicketQuery from query string arguments,wiki system,0.13dev,enhancement,normal,,new,2010-08-18T21:54:08+02:00,2011-10-25T15:03:19+02:00,"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 Release,9037,Incorporate footnotes into Trac (for use in documentation),wiki system,0.12dev,enhancement,normal,,new,2010-02-06T07:34:27+01:00,2023-06-11T16:46:44+02:00,"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 Release,8645,More readable header IDs,wiki system,0.11.4,defect,normal,,new,2009-09-07T20:19:51+02:00,2015-05-26T20:50:57+02:00,"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 Release,8509,[PATCH] use precompiled regex for match_request,web frontend,0.11.5,defect,normal,,new,2009-07-23T20:42:45+02:00,2015-12-19T15:40:25+01:00,"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 Release,7871,Add start date to a milestone,general,none,enhancement,major,,new,2008-12-07T17:51:17+01:00,2022-10-12T20:04:57+02:00,"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 Release,7744,source:path@rev targeting a file below a copied dir may fail,version control/browser,0.11-stable,defect,minor,,new,2008-10-22T16:12:55+02:00,2020-09-23T06:08:21+02:00,"... 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 Release,7658,Option to disable automatic linking of CamelCase,wiki system,0.11-stable,enhancement,normal,,new,2008-09-22T13:32:30+02:00,2022-03-09T23:02:43+01:00,"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 Release,7014,"Trap  ""ZipImportError: bad local file header.. "" and suggest server restart",general,0.11b1,defect,normal,,new,2008-03-18T00:18:39+01:00,2020-09-06T17:39:05+02:00,"==== 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 Release,5648,DefaultPermissionGroupProvider not doing its whole job,general,devel,defect,critical,,new,2007-07-03T00:31:08+02:00,2023-02-24T10:30:11+01:00,"[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 Release,4588,User Page: trac links to these pages,general,,enhancement,normal,,new,2007-01-24T22:11:55+01:00,2021-07-24T22:55:48+02:00,"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 Release,4080,[Patch] Detect charset using enca or chardet,version control/changeset view,0.10,enhancement,normal,,new,2006-11-06T13:06:14+01:00,2015-12-14T14:37:03+01:00,"to detect charset in multiply charset repository

http://gitorious.org/enca",mpv
next-major-releases Release,3718,Trac should use HTTP 301 Moved when milestones get renamed,general,0.9.6,enhancement,major,,new,2006-09-14T06:11:44+02:00,2021-08-19T10:35:21+02:00," 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 Release,3519,browse source - edit feature?,version control,0.9.6,enhancement,normal,,new,2006-08-04T22:40:37+02:00,2022-01-29T18:33:38+01:00,"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 Release,3470,improve handling of scoped repositories with copy history,version control,devel,defect,major,,new,2006-07-25T21:44:29+02:00,2015-05-26T20:50:57+02:00,"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 Release,3386,Embedding part of Wiki in other Wiki (e.g. Help: prefix for the TracGuide),wiki system,0.9.6,enhancement,normal,,new,2006-07-12T11:43:19+02:00,2015-05-26T20:50:57+02:00,"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 Release,3332,Mimeview API v2,rendering,devel,enhancement,major,,new,2006-06-27T13:48:59+02:00,2022-10-19T18:03:49+02:00,"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 Release,3098,"Support ""Descript.ion"" files in Browse Source",version control/browser,0.9.5,enhancement,normal,,new,2006-05-01T18:46:20+02:00,2019-09-06T19:51:32+02:00,"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 Release,3021,wiki namespace support like the one in dokuwiki,wiki system,none,enhancement,major,,new,2006-04-11T17:47:04+02:00,2015-05-26T20:50:57+02:00,"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 Release,2463,Mandatory fields in tickets,ticket system,0.9.2,enhancement,normal,,new,2005-12-09T11:18:09+01:00,2020-08-07T00:45:49+02:00,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 Release,2035,Changeset commenting,version control/changeset view,,enhancement,major,,new,2005-09-09T15:35:21+02:00,2022-09-08T16:44:10+02:00,"Commenting on changesets would be great, it would substitute for code review tools.",polarfox@…
next-major-releases Release,1962,Due dates on tickets & email notification on overdue dates,ticket system,0.8.4,enhancement,minor,,new,2005-08-25T04:25:51+02:00,2021-06-03T22:03:37+02:00,"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 Release,1890,Can create tickets anonymously using the username of an authenticated user,general,0.8.4,defect,major,,new,2005-08-07T23:45:51+02:00,2022-03-01T05:06:05+01:00,"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 Release,1386,Adding properties to Wiki Pages,wiki system,devel,enhancement,major,,new,2005-03-31T22:23:28+02:00,2021-12-30T03:07:32+01:00,"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 Release,1113,Show milestone changes in timeline,timeline,0.8,enhancement,major,,new,2005-01-08T21:45:19+01:00,2021-11-27T07:16:12+01:00,It would be great to have the timeline noticing EVERY milestone change rather than only new milestones.,jens@…
next-major-releases Release,1084,Percentage complete,ticket system,0.8,enhancement,normal,,new,2004-12-26T16:53:05+01:00,2023-02-11T22:54:18+01:00,"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 Release,53,plugin infrastructure for rendering diff HTML previews,version control/changeset view,devel,enhancement,normal,,new,2004-02-10T21:10:27+01:00,2023-02-26T06:09:59+01:00,"== 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 Release,31,Bug dependencies/relations feature,ticket system,devel,enhancement,normal,,new,2004-01-29T05:53:39+01:00,2022-08-30T20:23:04+02:00,"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 Release,13279,Make cast method more robust,database backend,,enhancement,normal,,new,2020-04-30T04:43:37+02:00,2020-04-30T04:43:37+02:00,"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 Release,13201,URL parameter defaults for milestone forms,general,,enhancement,normal,,new,2019-09-03T12:20:23+02:00,2019-09-09T09:50:13+02:00,"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 Release,13022,Reports can't be used with some realms,report system,,defect,minor,,new,2018-04-29T13:01:22+02:00,2018-04-29T22:52:28+02:00,"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 Release,13019,Make dropdowns searchable / filterable,web frontend,,enhancement,normal,,reopened,2018-04-27T07:41:31+02:00,2021-07-24T22:55:15+02:00,"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 Release,12900,Hierarchy-specific PageTemplates,wiki system,,enhancement,normal,,new,2017-08-30T15:06:13+02:00,2019-09-06T19:51:32+02:00,"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 Release,12854,"""rows"" can be used as custom field but rows=... condition in query doesn't work",ticket system,,defect,normal,,new,2017-06-27T05:43:08+02:00,2019-09-06T19:51:32+02:00,"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 Release,12848,Add an ifnull function to database connection classes,database backend,,enhancement,normal,,new,2017-06-19T13:51:48+02:00,2019-09-06T19:51:32+02:00,"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 Release,12828,"Add a ""wiki set"" trac-admin command",wiki system,,enhancement,normal,,new,2017-06-05T19:49:52+02:00,2018-03-03T00:48:34+01:00,"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 Release,12810,Add a TicketReport macro,report system,,enhancement,normal,,new,2017-05-17T06:48:12+02:00,2022-03-28T19:27:46+02:00,"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 Release,12786,Allow custom queries to be saved without granting REPORT_CREATE,report system,,enhancement,normal,,new,2017-04-27T00:25:06+02:00,2017-04-27T00:30:26+02:00,"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 Release,12780,Save wiki expander state,wiki system,,enhancement,normal,,new,2017-04-19T10:02:35+02:00,2019-09-06T19:51:32+02:00,"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 Release,12746,Add keyboard shortcut for blame from file view,version control/browser,,enhancement,normal,,new,2017-03-25T22:54:16+01:00,2017-03-28T06:21:58+02:00,"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 Release,12741,Make WikiProcessors foldable,wiki system,,enhancement,normal,,new,2017-03-22T23:00:10+01:00,2019-09-06T19:51:32+02:00,"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 Release,12717,Paginated attachment index,attachment,,enhancement,normal,,new,2017-03-10T19:56:21+01:00,2017-03-13T04:20:38+01:00,"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 Release,12687,Provide additional hints when trac-admin repository commands are not provided a valid repository name,version control,,defect,normal,,new,2017-02-12T08:44:19+01:00,2017-02-12T08:44:19+01:00,"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 Release,12685,"Add action menu for creating, deleting and modifying resources or parts thereof",general,1.3dev,enhancement,normal,,new,2017-02-11T15:06:50+01:00,2019-09-06T19:54:30+02:00,"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 Release,12679,"Add ""View blame prior to this change"" link to blame view",version control/browser,,enhancement,normal,,new,2017-02-07T19:52:48+01:00,2019-09-06T19:54:30+02:00,"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 Release,12662,"TicketQuery macro, add title and select parameter for table format",query system,1.2,enhancement,normal,,new,2017-01-16T09:45:16+01:00,2019-09-06T19:51:32+02:00,"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 Release,12596,AuthzPolicy should recursively expand groups,general,,enhancement,normal,,new,2016-09-20T23:45:37+02:00,2016-09-20T23:45:37+02:00,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 Release,12595,TracAdmin should label invalid permissions,admin/console,,enhancement,normal,,new,2016-09-20T22:44:55+02:00,2016-09-20T22:44:55+02:00,"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 Release,12572,Add a download link to patch/diff renderer,wiki system,,enhancement,normal,,new,2016-08-31T01:25:06+02:00,2019-09-06T19:51:32+02:00,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 Release,12570,Create a deprecated function decorator,general,,enhancement,normal,,new,2016-08-31T01:05:32+02:00,2019-09-06T19:51:32+02:00,"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 Release,12549,Provide option for blame to use merged history,version control,,enhancement,normal,,new,2016-07-28T21:31:40+02:00,2016-08-09T19:52:01+02:00,"`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 Release,12485,Add an ITicketCommentProvider interface,ticket system,,enhancement,normal,,new,2016-05-21T01:31:23+02:00,2018-02-26T13:10:13+01:00,"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 Release,12442,Support per-repository authz_file,version control,,enhancement,normal,,new,2016-04-04T21:43:39+02:00,2019-09-22T01:31:38+02:00,"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 Release,12390,Attachment table primary key not unique when migrating from SQLite to MySQL,attachment,,defect,normal,,new,2016-03-07T09:22:36+01:00,2016-05-05T13:08:03+02:00,"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 Release,12388,Help text output from TracAdmin should be wrapped,admin/console,,defect,normal,,new,2016-03-06T22:33:03+01:00,2016-03-06T22:33:03+01:00,"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 Release,12257,Add single-sign-on authentication as an optional component,web frontend,,enhancement,normal,,new,2015-11-27T05:47:28+01:00,2019-08-12T23:28:57+02:00,"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 Release,12212,Order timeline filters alphabetically by label,timeline,,enhancement,normal,,new,2015-09-23T00:23:05+02:00,2016-02-23T09:12:45+01:00,"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 Release,12210,Show username and email in tooltip when hovering over a full name,general,,enhancement,normal,,new,2015-09-22T22:34:29+02:00,2016-04-30T10:42:10+02:00,"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 Release,12165,List users included and excluded from notification,notification,,enhancement,normal,,new,2015-08-12T22:18:41+02:00,2017-05-05T18:19:43+02:00,"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 Release,12162,Edit comment should be AJAX or standalone edit screen,ticket system,,enhancement,normal,,new,2015-08-09T12:06:55+02:00,2019-09-06T19:51:32+02:00,"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 Release,12121,Subversion copies could show peg revision in browser view,version control/browser,,defect,normal,,new,2015-07-14T21:51:09+02:00,2015-08-06T04:24:45+02:00,"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 Release,12119,Options not written to trac.ini when --inherit option used,database backend,,enhancement,normal,,new,2015-07-13T01:56:43+02:00,2021-04-19T12:05:27+02:00,"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 Release,12077,Ticket workflow should support negated permissions,ticket system,,enhancement,normal,,new,2015-05-17T01:38:13+02:00,2015-07-28T22:46:02+02:00,"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 Release,12004,Replace uses of assert with exception-raising statements,general,,enhancement,normal,,new,2015-03-27T20:06:23+01:00,2015-11-12T00:37:39+01:00,"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 Release,11992,Allow git commit hashes to be abbreviated to 7 characters,plugin/git,1.0.4,defect,normal,,new,2015-03-21T09:11:55+01:00,2022-08-07T15:41:34+02:00,"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 Release,11985,Create a [database] section in trac.ini,database backend,,task,normal,,new,2015-03-17T23:54:59+01:00,2015-10-14T03:55:00+02:00,"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 Release,11968,Contextual navigation link to log view from changeset view,general,,enhancement,normal,,new,2015-02-24T23:58:14+01:00,2015-02-25T02:44:54+01:00,"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 Release,11963,#!td processor inserts unwanted <p>...</p>,wiki system,1.0.4,defect,normal,,new,2015-02-19T10:51:32+01:00,2021-05-18T02:37:47+02:00,"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 Release,11959,"Add custom fields to ""Group results by"" drop down in Custom Query page.",ticket system,1.0.1,enhancement,normal,,new,2015-02-12T19:21:21+01:00,2015-08-09T05:33:28+02:00,"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 Release,11946,Allow multiple permissions to be assigned in single submit,admin/web,,enhancement,normal,,new,2015-02-02T21:16:48+01:00,2015-03-02T22:35:15+01:00,"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 Release,11943,Ticket delete notifications,notification,,enhancement,normal,,new,2015-01-31T21:16:14+01:00,2017-02-21T12:40:47+01:00,"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 Release,11939,Workflow graph should account for user/group permissions,ticket system,,defect,normal,,new,2015-01-27T09:11:12+01:00,2017-05-18T18:12:42+02:00,"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 Release,11937,Improve suggestion of similarly named pages,wiki system,,enhancement,normal,,new,2015-01-26T23:59:49+01:00,2019-09-06T19:51:32+02:00,"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 Release,11919,Make diff paths available in the UI.,web frontend,1.0.1,enhancement,normal,,new,2015-01-14T19:49:02+01:00,2019-09-06T19:51:32+02:00,"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 Release,11889,On-site notifications,notification,,enhancement,normal,,new,2014-12-21T19:45:00+01:00,2020-08-10T02:29:49+02:00,"''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 Release,11887,List Ticket Attachments in TracNotification,notification,1.0-stable,enhancement,normal,,new,2014-12-19T18:53:31+01:00,2015-08-27T07:13:59+02:00,"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 Release,11884,Notification distributor for XMPP,notification,,enhancement,normal,,new,2014-12-17T23:17:53+01:00,2019-09-06T19:51:32+02:00,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 Release,11879,Prevent ticket workflow hints from wrapping,ticket system,,enhancement,normal,,new,2014-12-12T20:46:30+01:00,2015-03-02T22:27:22+01:00,"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 Release,11866,Export information on /about page as wiki markup and plain text,general,,enhancement,normal,,new,2014-12-05T04:14:02+01:00,2017-08-30T08:40:55+02:00,"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 Release,11862,Allow keywords to be highlighted in code WikiProcessor,rendering,,enhancement,normal,,new,2014-12-03T16:13:43+01:00,2015-06-14T01:39:52+02:00,"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 Release,11840,Add ISessionAttributeProvider interface,general,,enhancement,normal,,new,2014-11-19T06:22:05+01:00,2019-09-06T19:51:32+02:00,"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 Release,11826,Optimize ticket.query.execute,query system,1.1.2,enhancement,minor,,new,2014-11-13T19:19:19+01:00,2021-10-21T21:53:55+02:00,"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 Release,11746,Generate list of valid default_handlers in ExtensionOption documentation,general,,enhancement,normal,,new,2014-09-08T11:06:28+02:00,2016-08-30T23:39:30+02:00,"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 Release,11730,Don't quickjump if multiple words in search phrase,search system,,enhancement,normal,,new,2014-08-24T03:28:01+02:00,2015-06-01T00:48:22+02:00,"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 Release,11722,Batch ticket delete,query system,,enhancement,normal,,new,2014-08-17T21:06:48+02:00,2015-03-02T22:27:22+01:00,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 Release,11713,Repositories can still be added when no IRepositoryConnectors enabled,admin/web,1.0-stable,defect,normal,,new,2014-08-09T18:55:27+02:00,2019-10-22T20:50:41+02:00,"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 Release,11702,Add a macro for listing ticket Components,ticket system,,enhancement,normal,,new,2014-08-03T08:23:47+02:00,2022-11-02T17:52:58+01:00,"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 Release,11683,Dynamic table sorting in Admin tables,admin/web,,enhancement,normal,,new,2014-07-18T00:10:26+02:00,2021-10-28T08:09:28+02:00,"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 Release,11676,Reusable commenting module,general,,enhancement,major,,new,2014-07-14T21:22:10+02:00,2014-12-29T11:53:53+01:00,"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 Release,11637,Hide versions and components,ticket system,,enhancement,normal,,new,2014-06-02T07:43:02+02:00,2019-12-05T03:55:09+01:00,"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 Release,11633,Allow CommitTicketReferenceMacro to be used in tickets that aren't referenced in the changeset message,ticket system,,enhancement,normal,,new,2014-05-31T19:12:08+02:00,2016-05-10T01:10:22+02:00,"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 Release,11627,Backport Bloodhound search API,search system,,enhancement,normal,,new,2014-05-28T21:17:23+02:00,2015-05-17T01:27:29+02:00,"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 Release,11619,Option to show whitespace and tab characters in file and diff view,version control/browser,,enhancement,normal,,new,2014-05-20T00:46:48+02:00,2016-03-23T15:15:20+01:00,"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 Release,11539,Remove deprecated methods in trac.wiki.formatter,general,,enhancement,normal,,new,2014-03-12T23:34:57+01:00,2015-03-02T22:27:22+01:00,"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 Release,11508,"Add a ""permission copy"" command to TracAdmin",admin/web,,enhancement,normal,,new,2014-02-28T21:30:55+01:00,2017-09-10T02:31:26+02:00,"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 Release,11452,Implement a set_field workflow action,ticket system,,enhancement,normal,,new,2014-01-21T08:13:21+01:00,2015-07-28T10:01:15+02:00,"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 Release,11446,Cummulative diff view for non-contiguous changesets,version control/changeset view,,enhancement,normal,,new,2014-01-15T01:17:13+01:00,2019-08-20T11:11:09+02:00,"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 Release,11398,Existing attachments can be overwritten without warning when uploading through trac-admin,admin/console,,enhancement,normal,,new,2013-12-13T18:50:27+01:00,2019-09-06T19:51:32+02:00,"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 Release,11378,SQLite backend does not use auto-incrementing primary keys,database backend,,defect,normal,,new,2013-11-28T06:29:45+01:00,2021-08-19T18:16:39+02:00,"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 Release,11353,Hierarchical tree of repositories,version control/browser,1.0.1,enhancement,normal,,new,2013-11-05T06:49:28+01:00,2015-03-05T14:43:47+01:00,"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 Release,11323,WikiProcessor argument to limit line width,wiki system,,enhancement,normal,,new,2013-10-10T00:41:50+02:00,2014-03-09T18:36:07+01:00,"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 Release,11301,intermittent failure with notification test,ticket system,1.0-stable,defect,normal,,new,2013-09-15T18:32:54+02:00,2013-09-17T00:41:15+02:00,"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 Release,11263,AuthzPolicy should allow restricting access to only the most recent version of a resource,general,1.0-stable,enhancement,normal,,new,2013-08-02T03:56:46+02:00,2017-05-01T00:16:52+02:00,"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 Release,11213,Updating Saved Query results does not save column order,query system,1.0.1,defect,normal,,new,2013-06-19T21:04:28+02:00,2017-04-27T11:39:42+02:00,"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 Release,11206,Reduce join in query process,query system,1.0dev,enhancement,normal,,new,2013-06-17T09:23:05+02:00,2014-03-08T23:01:17+01:00,"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 Release,11185,improve speed of TicketQuery for format=table,query system,1.0-stable,enhancement,major,,new,2013-05-13T19:11:22+02:00,2019-08-12T23:28:57+02:00,"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 Release,11163,Option to set HTML title.,wiki system,0.12.2,enhancement,minor,,new,2013-04-16T05:01:26+02:00,2015-11-30T22:30:50+01:00,"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 Release,11142,Add download link in attachment section,attachment,,enhancement,normal,,new,2013-04-04T11:24:40+02:00,2019-09-06T19:51:32+02:00,"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 Release,11141,Add ConfigSection to all sections,general,,enhancement,normal,,new,2013-04-03T17:33:20+02:00,2015-12-14T05:28:27+01:00,"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 Release,11133,Color overdue dates red,general,,enhancement,normal,,new,2013-03-26T17:53:42+01:00,2015-09-10T17:34:04+02:00,"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 Release,11130,Add an inlinelinkbutton class,general,,enhancement,normal,,new,2013-03-26T13:43:10+01:00,2019-09-06T19:51:32+02:00,"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 Release,11119,Indicate enabled or disabled status of plugins on web admin panel,admin/web,,enhancement,normal,,new,2013-03-17T19:35:04+01:00,2015-03-02T22:27:22+01:00,"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 Release,11078,Perform fine-grained permission checks on resource in get_navigation_items,wiki system,,enhancement,normal,,new,2013-02-23T18:00:27+01:00,2017-05-21T01:36:16+02:00,"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 Release,11061,"TypeError: Git object id must be byte or a text string, not: int",plugin/git,,defect,minor,,new,2013-02-13T08:10:33+01:00,2023-03-01T05:44:59+01:00,"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 Release,11049,TracD on Windows 8 (x64),web frontend/tracd,1.0,defect,normal,,new,2013-02-05T13:16:24+01:00,2019-09-06T19:51:32+02:00,"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 Release,10983,PATCH (and RFC) for IQueryPreprocessor extension point,ticket system,0.11.6,enhancement,normal,,new,2012-12-13T18:27:55+01:00,2018-06-14T19:47:14+02:00,"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 Release,10915,Provide example repository paths,admin/web,1.1.1dev,enhancement,normal,,new,2012-10-19T01:28:22+02:00,2015-03-02T22:27:22+01:00,"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 Release,10914,Changeset columns overlapping,version control/changeset view,,defect,normal,,new,2012-10-19T01:20:03+02:00,2015-03-02T22:27:22+01:00,"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 Release,10905,Enabled CommitTicketUpdater only for some repositories,version control,0.12.3,enhancement,normal,,new,2012-10-15T14:49:47+02:00,2017-09-09T00:45:15+02:00,"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 Release,10866,"custom search query cannot do ""keywords contains x and y""",query system,,defect,normal,,new,2012-09-25T06:50:08+02:00,2014-08-22T15:10:19+02:00,"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 Release,10764,refactor changeset search,version control,1.0dev,defect,major,,new,2012-07-12T16:38:43+02:00,2015-07-11T07:41:34+02:00,"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 Release,10757,Use language specific starting day for date picker,i18n,0.13dev,enhancement,normal,,new,2012-07-03T11:11:35+02:00,2014-10-14T17:04:01+02:00,"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 Release,10755,[PATCH] CommitTicketUpdater does not allow user to define what state to jump to,ticket system,0.12.3,enhancement,normal,,new,2012-07-02T22:27:07+02:00,2022-03-16T23:13:24+01:00,"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 Release,10741,"more readable ""closed"" style",general,1.0dev,defect,normal,,new,2012-06-25T22:37:55+02:00,2015-05-26T20:50:57+02:00,"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 Release,10739,Give Trac a sidebar widget provider,web frontend,1.0dev,enhancement,normal,,new,2012-06-25T13:34:28+02:00,2015-08-08T10:50:03+02:00,"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 Release,10736,env.get_known_users() should also return session.last_visit,general,0.12.3,enhancement,normal,,new,2012-06-25T00:14:53+02:00,2016-04-20T16:14:32+02:00,"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 Release,10733,Renamed files and prev/next links don't work well,version control,,defect,normal,,new,2012-06-20T21:37:43+02:00,2012-06-23T12:46:52+02:00,"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 Release,10682,Show the path of changesets in log view,version control/log view,,enhancement,normal,,new,2012-04-30T16:41:08+02:00,2015-05-26T20:50:57+02:00,"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 Release,10670,Image macro references inconsistent with attachment links,wiki system,0.13dev,enhancement,normal,,new,2012-04-17T23:47:11+02:00,2015-03-02T22:27:22+01:00,"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 Release,10633,TicketQuery 'clist' format,wiki system,,enhancement,normal,,new,2012-03-19T19:11:52+01:00,2018-07-13T12:29:32+02:00,"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 Release,10599,"GitPlugin: Show branches in timeline, changesets, browser",plugin/git,1.0dev,enhancement,normal,,new,2012-03-04T15:18:35+01:00,2017-11-23T13:50:35+01:00,"''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 Release,10579,"Do not use ""anonymous"" updater's email in ticket notification From",notification,,enhancement,normal,,new,2012-02-23T18:27:36+01:00,2012-02-23T18:57:29+01:00,"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 Release,10525,TicketQuery macro broken for some keywords-based queries,query system,0.13dev,defect,major,,new,2012-01-14T06:09:22+01:00,2012-01-15T18:51:53+01:00,"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 Release,10492,bash tab completion extension for trac-admin,admin/console,,enhancement,normal,,new,2011-12-06T04:13:00+01:00,2019-10-22T23:59:01+02:00,"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 Release,10455,A repository hides a directory which has the same name in default repository,version control/browser,0.12-stable,defect,normal,,new,2011-11-09T18:43:13+01:00,2011-11-10T10:13:26+01:00,"=== 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 Release,10425,[PATCH] Add support for configuring a default set of columns to show in a query.,query system,0.12dev,enhancement,normal,,new,2011-10-20T23:57:02+02:00,2017-04-27T11:42:00+02:00,"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 Release,10423,Destroy trac.ini at race condition.,admin/web,0.12.2,defect,normal,,new,2011-10-20T07:46:30+02:00,2014-06-05T08:47:51+02:00,"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 Release,10413,[PATCH] Descriptive component names in trac.log,general,,enhancement,normal,,new,2011-10-15T08:41:52+02:00,2015-03-02T22:27:22+01:00,"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 Release,10409,Link to list of supported macros/processors on error,rendering,0.12.2,enhancement,normal,,new,2011-10-14T17:30:38+02:00,2011-10-14T21:38:06+02:00,"The message below can link to pages with supported macros and processors.
{{{
#!noteX
some error
}}}",anatoly techtonik <techtonik@…>
next-major-releases Release,10396,"[PATCH] New extension point interface to reformat the ""replying to"" block in a comment",ticket system,0.12-stable,enhancement,normal,,new,2011-10-05T12:13:27+02:00,2015-12-19T16:53:00+01:00,"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 Release,10381,"Use full width for custom textarea fields, and make them collapsible",ticket system,0.12.2,enhancement,normal,,new,2011-09-29T11:14:09+02:00,2015-03-03T15:34:58+01:00,"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 Release,10376,Opening a link in a new window?,wiki system,,enhancement,normal,,new,2011-09-27T15:54:08+02:00,2016-12-19T15:54:19+01:00,"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 Release,10372,Search in wiki should prioritize title matches and whole word matches above partial word matches,search system,,enhancement,normal,,new,2011-09-26T04:35:52+02:00,2019-08-10T06:52:08+02:00,"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 Release,10350,e.g. [#1234] in svn commit 5678 comment generates wrong Trac link,wiki system,0.12.2,enhancement,minor,,new,2011-09-09T12:08:04+02:00,2020-07-14T19:19:11+02:00,"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 Release,10325,Way to delete ticket comments versions,ticket system,0.12.2,enhancement,normal,,new,2011-08-20T23:03:11+02:00,2011-08-20T23:58:49+02:00,"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 Release,10323,Enable sorting in TitleIndex macro,wiki system,,enhancement,normal,,new,2011-08-19T10:05:15+02:00,2021-11-19T05:32:16+01:00,"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 Release,10317,"log?rev=N&stop_rev=N-1&limit=2 only shows a single revision, but should show two revisions",version control/log view,0.11.7,defect,normal,,new,2011-08-17T18:40:12+02:00,2015-08-05T10:45:04+02:00,"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 Release,10311,improve ticket change hints in custom query,query system,,defect,normal,,new,2011-08-11T08:02:47+02:00,2012-08-02T14:00:12+02:00,"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 Release,10305,Incomplete URL sent to Akismet API,web frontend,,defect,normal,,new,2011-08-09T08:49:30+02:00,2015-05-26T20:50:57+02:00,"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 Release,10286,Way to query all tickets with attachments,query system,0.12.1,enhancement,normal,,new,2011-07-26T13:10:32+02:00,2020-07-14T19:19:20+02:00,"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 Release,10279,Sort admin page milestone table by descending due date,admin/web,,defect,minor,,new,2011-07-22T13:58:53+02:00,2022-07-08T10:52:32+02:00,"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 Release,10202,TracQuery fails to handle checkbox custom fields,query system,0.12-stable,defect,major,,new,2011-05-31T12:14:38+02:00,2011-05-31T12:45:22+02:00,"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 Release,10201,[Patch] WikiProcessors lacks detailed help,wiki system,0.13dev,enhancement,normal,,new,2011-05-29T18:32:23+02:00,2015-12-19T16:52:05+01:00,"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 Release,10185,"Roadmap view doesn't cache ""Show completed milestones""",roadmap,0.12.2,defect,normal,,new,2011-05-16T15:59:06+02:00,2015-09-10T10:19:58+02:00,"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 Release,10183,How to browser sources which folders have been changed and/or removed?,version control/browser,0.12.2,defect,normal,,new,2011-05-16T12:36:21+02:00,2015-05-26T20:50:57+02:00,"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 Release,10182,Unit tests do not run in their own sandbox,general,0.13dev,enhancement,normal,,new,2011-05-16T12:16:37+02:00,2012-07-11T07:54:18+02:00,"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 Release,10168,trac generates error 500 in case no prermission to conf/trac.ini,general,0.12.2,defect,normal,,new,2011-05-05T19:02:18+02:00,2011-05-06T09:01:26+02:00,"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 Release,10167,"Column ""Date"" in Change History of a Wiki Page",wiki system,0.12.2,enhancement,minor,,new,2011-05-05T18:35:29+02:00,2011-05-05T22:47:42+02:00,"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 Release,10162,Add a REPOS kind of Node,version control,0.12.1,defect,normal,,new,2011-05-03T00:34:39+02:00,2020-04-01T17:09:59+02:00,"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 Release,10152,"Custom Query - ""and"" becomes ""or""",query system,0.12.2,defect,normal,,new,2011-04-27T10:38:56+02:00,2017-03-07T07:00:53+01:00,"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 Release,10150,Plugin installation errors should be shown on admin page,admin/web,,enhancement,normal,,new,2011-04-26T22:13:49+02:00,2011-04-26T23:13:25+02:00,"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 Release,10125,CommitTicketUpdater should call manipulators and listeners,ticket system,0.12-stable,enhancement,normal,,new,2011-04-10T21:35:04+02:00,2015-05-26T20:50:57+02:00,"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 Release,10101,Broken permissions for changeset view,version control/changeset view,0.12,defect,normal,,new,2011-03-26T13:10:34+01:00,2019-09-06T19:51:32+02:00,"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 Release,10091,Exception when formatting Mercurial changeset link,plugin/mercurial,0.12.2,defect,normal,,new,2011-03-19T19:22:39+01:00,2015-05-26T20:50:57+02:00,"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 Release,10059,prop.rendered not properly set in browser.html,version control/browser,0.12.2,defect,normal,,new,2011-03-02T18:04:35+01:00,2012-01-19T19:40:14+01:00,"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 Release,10047,Add RSS support for Roadmap,roadmap,,enhancement,normal,,new,2011-02-26T14:48:53+01:00,2014-07-31T15:37:56+02:00,"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 Release,10032,Wiki page mouse hover tooltip,wiki system,0.11.7,enhancement,minor,,new,2011-02-17T12:58:02+01:00,2011-02-17T15:28:28+01:00,"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 Release,10027,TicketQuery groups without translation,ticket system,0.12.2,defect,minor,,new,2011-02-14T15:49:28+01:00,2011-02-25T11:11:46+01:00,"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 Release,9979,[PATCH] Single changeset resync fails if changesets are missing,version control,0.12-stable,defect,normal,,new,2011-01-15T00:28:50+01:00,2011-01-18T17:04:55+01:00,"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 Release,9978,Guard against pkg_resources.resource_filename errors,general,0.13dev,defect,normal,,new,2011-01-14T20:25:40+01:00,2016-11-03T07:08:11+01:00,"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 Release,9967,Allow setting option values through Option objects,general,0.12.1,enhancement,normal,,new,2011-01-08T13:57:33+01:00,2017-09-01T16:51:32+02:00,"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 Release,9947,Unexpected resolver result for TracLinks in wiki page within hierarchy,wiki system,0.12-stable,defect,normal,,new,2010-12-26T23:10:46+01:00,2014-03-14T00:55:54+01:00,"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 Release,9938,Improve on static resources,web frontend,0.13dev,enhancement,normal,,new,2010-12-18T20:06:31+01:00,2011-02-25T21:11:22+01:00,"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 Release,9868,Impossible to see the changelog of a branch using Mercurial,version control/log view,,defect,normal,,new,2010-11-24T21:37:43+01:00,2011-04-18T02:16:55+02:00,"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 Release,9843,Non existing Wiki pages should return 404.,general,,defect,minor,,new,2010-11-17T14:43:39+01:00,2010-11-17T15:12:46+01:00,"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 Release,9807,Wrong sections are collapsed by default!,ticket system,,enhancement,normal,,new,2010-11-10T01:38:35+01:00,2015-03-19T15:20:49+01:00,"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 Release,9775,implement get_path_history in the versioncontrol cache,version control/log view,0.12.1,defect,normal,,new,2010-11-05T10:08:57+01:00,2015-05-26T20:50:57+02:00,"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 Release,9738,"Add ""attach file"" button at the end of the ticket",ticket system,0.12dev,enhancement,normal,,new,2010-10-31T21:39:09+01:00,2014-08-02T06:47:32+02:00,"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 Release,9735,TicketQuery adds reporter by default,ticket system,0.12dev,defect,normal,,new,2010-10-31T02:01:36+01:00,2011-10-29T18:28:35+02:00,`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 Release,9734,Redirecting to non-HTTP URLs not possible,general,,defect,normal,,new,2010-10-30T20:12:35+02:00,2011-04-13T12:07:21+02:00,"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 Release,9707,search ticket does not work when query for both subject keyword and comment keyword,search system,0.12,defect,major,,new,2010-10-25T00:16:24+02:00,2010-10-25T09:23:39+02:00,"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 Release,9683,Make htdocs_location more useful,web frontend,0.13dev,enhancement,normal,,new,2010-10-10T20:53:25+02:00,2011-09-15T13:25:44+02:00,"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 Release,9674,[PATCH] trac.ini parameterization support,general,0.12,enhancement,normal,,new,2010-10-06T23:00:58+02:00,2015-05-26T20:50:57+02:00,"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 Release,9673,Some TracIni settings should be user configurable,general,0.13dev,enhancement,normal,,new,2010-10-06T20:49:07+02:00,2015-05-26T20:50:57+02:00,"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 Release,9655,Source code navigation in browser,version control/browser,,enhancement,normal,,new,2010-09-30T23:09:34+02:00,2015-05-26T20:50:57+02:00,"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 Release,9653,tracd --base-path matches any string of the same length,web frontend/tracd,0.12,defect,minor,,new,2010-09-29T23:35:37+02:00,2010-10-06T21:40:00+02:00,"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 Release,9646,[PATCH] Highlight selected line when #L123 is used in source browser,version control/browser,0.13dev,enhancement,normal,,new,2010-09-26T18:51:40+02:00,2015-12-19T16:40:59+01:00,"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 Release,9642,Resizable textarea for the attachment description,attachment,,enhancement,minor,,new,2010-09-24T00:24:23+02:00,2010-10-01T23:06:00+02:00,"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 Release,9638,Submit forms with CTRL+Enter in textareas,web frontend,,enhancement,normal,,new,2010-09-22T17:30:14+02:00,2019-09-06T19:51:32+02:00,"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 Release,9554,plain text download of wiki pages reveals comments not meant for public consumption,wiki system,0.12dev,enhancement,normal,,new,2010-08-07T00:16:20+02:00,2015-05-26T20:50:57+02:00,"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 Release,9550,Ticket should be divisible,ticket system,,enhancement,normal,,new,2010-08-06T04:51:22+02:00,2015-05-26T20:50:57+02:00,"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 Release,9539,Attachments do not change Last Modified Time,attachment,0.12-stable,defect,major,,new,2010-08-02T20:59:15+02:00,2010-08-03T00:48:44+02:00,"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 Release,9537,to implement cherry-picking for wiki pages,wiki system,,enhancement,normal,,new,2010-08-01T16:25:42+02:00,2015-05-26T20:50:57+02:00,"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 Release,9526,Fine Grained Permission possible realms and paths format are not documented.,wiki system,0.12,defect,minor,,new,2010-07-27T10:09:14+02:00,2019-09-06T19:51:32+02:00,"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 Release,9510,Action block stays visible when no actions available,ticket system,0.11-stable,defect,normal,,new,2010-07-20T12:20:58+02:00,2015-03-02T22:27:22+01:00,"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 Release,9478,Concurrent ticket modifications is still possible,ticket system,0.12,defect,minor,,new,2010-07-02T14:02:03+02:00,2015-07-28T12:31:04+02:00,"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 Release,9472,Workflow actions not translated,i18n,0.12,enhancement,minor,,new,2010-06-29T14:32:34+02:00,2013-11-23T01:54:34+01:00,"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 Release,9443,"Dropdown list on ""View tickets""",report system,0.12dev,enhancement,normal,,new,2010-06-17T08:59:20+02:00,2010-09-06T15:06:21+02:00,"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 Release,9343,"Because Trac support for multiple repos, each repo with a related encoding.",version control,0.12dev,enhancement,minor,,new,2010-05-15T14:50:12+02:00,2017-04-16T22:35:39+02:00,"So I recommend for each repos, set an distinct default charset for it.
",anonymous
next-major-releases Release,9310,Allow cookies be set for textarea heights upon resize and restore upon document load,general,0.12dev,enhancement,trivial,,new,2010-05-06T23:46:43+02:00,2013-11-15T04:26:51+01:00,"
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 Release,9281,Allow IAttachmentManipulator to easily check on the uploaded attachment's file data,attachment,0.12dev,enhancement,normal,,new,2010-04-29T21:48:04+02:00,2010-05-05T22:11:50+02:00,"
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 Release,9248,Trac as reST editor,wiki system,0.12dev,enhancement,normal,,new,2010-04-19T21:15:02+02:00,2011-02-25T15:52:39+01:00,"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 Release,9214,expandable blockquotes,wiki system,,enhancement,normal,,new,2010-04-10T12:19:49+02:00,2015-05-26T20:50:57+02:00,"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 Release,9205,Make the timeline threaded,timeline,0.12dev,enhancement,normal,,new,2010-04-07T22:42:51+02:00,2010-07-01T11:52:56+02:00,"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 Release,9172,Trac diff highlighting start and end points,version control/changeset view,0.11-stable,enhancement,minor,,new,2010-03-25T12:05:57+01:00,2017-04-16T17:22:25+02:00,"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 Release,9168,milestone URL persistence,roadmap,0.10.5,enhancement,major,,new,2010-03-24T15:30:22+01:00,2017-03-17T01:06:42+01:00,"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 Release,9149,Conf option for showing previous query instead of default query,ticket system,0.12dev,enhancement,minor,,new,2010-03-19T12:38:50+01:00,2010-06-23T17:53:27+02:00,"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 Release,9141,'Retarget associated tickets' does not respect [milestone-groups] config,roadmap,0.11.6,defect,normal,,new,2010-03-16T08:44:03+01:00,2015-07-28T09:49:49+02:00,"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 Release,9123,WikiFormatting in link text does not work,wiki system,0.12dev,enhancement,normal,,new,2010-03-09T10:42:09+01:00,2015-05-26T20:50:57+02:00,"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 Release,9091,Use RawConfigParser instead of ConfigParser in the Configuration component,general,0.12dev,enhancement,normal,,new,2010-02-25T20:45:15+01:00,2015-03-02T22:31:46+01:00,"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 Release,9085,Notification system silently drops failures to unicode email addresses,notification,,enhancement,major,,new,2010-02-25T03:07:42+01:00,2016-10-07T15:52:53+02:00,"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 Release,8967,Partial conversion of files when calling trac.mimeview.api.Mimeview.convert_content,rendering,0.11.5,defect,major,,new,2010-01-13T19:32:33+01:00,2010-03-12T21:26:24+01:00,"
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 Release,8961,[PATCH] Linkable lines on diff view,wiki system,0.12dev,enhancement,minor,,new,2010-01-12T14:44:39+01:00,2015-12-19T16:38:37+01:00,Lines are not linkable in diff view. This patch modifies diff_div.html so that lines are linkable.,niko.sten@…
next-major-releases Release,8952,trac-admin hotcopy should (be able to) copy contents of symbolic links,admin/console,0.11-stable,enhancement,normal,,new,2010-01-10T15:50:22+01:00,2010-12-14T18:22:42+01:00,"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 Release,8949,add sortable tables to wiki,wiki system,,enhancement,normal,,new,2010-01-10T00:37:19+01:00,2015-03-01T03:54:53+01:00,"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 Release,8945,[PATCH] Send Notification Email with local timezone,notification,,enhancement,normal,,new,2010-01-08T12:52:42+01:00,2015-03-02T22:31:46+01:00,"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 Release,8735,wiki import should maintain page hierarchy,wiki system,none,enhancement,normal,,new,2009-10-12T17:46:55+02:00,2010-06-24T18:45:14+02:00,"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 Release,8729,add Latest Comment option to custom query,report system,none,enhancement,normal,,new,2009-10-09T06:14:55+02:00,2022-09-03T15:04:54+02:00,"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 Release,8728,add Closed Date to list of columns offered in custom query,query system,,enhancement,normal,,new,2009-10-09T05:46:07+02:00,2021-01-27T12:28:36+01:00,"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 Release,8672,Filter ticket queries by user groups,ticket system,none,enhancement,normal,,new,2009-09-15T15:20:27+02:00,2015-03-30T18:37:03+02:00,"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 Release,8670,Ticket owner list should not depend on TICKET_MODIFY permission,ticket system,none,enhancement,normal,,new,2009-09-15T00:11:24+02:00,2012-02-10T22:50:27+01:00,"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 Release,8640,Enable headline numbering,wiki system,0.11.5,enhancement,normal,,new,2009-09-06T10:52:36+02:00,2016-04-08T21:00:48+02:00,"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 Release,8637,"""Add to CC"" for anonymous with TICKET_APPEND permissions",ticket system,0.11.5,enhancement,major,,new,2009-09-04T16:25:46+02:00,2014-07-31T15:41:40+02:00,"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 Release,8607,Option to skip notification to subscribers when a ticket is updated,notification,0.11.5,enhancement,normal,,new,2009-08-27T05:15:50+02:00,2015-11-05T13:20:33+01:00,"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 Release,8605,Allow non-authenticated users to replace their attachments,attachment,0.12dev,enhancement,normal,,new,2009-08-27T00:42:28+02:00,2021-08-27T13:35:43+02:00,"#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 Release,8559,New Report: Tickets of Interest,report system,0.11.4,enhancement,normal,,new,2009-08-10T23:01:18+02:00,2015-03-02T22:27:22+01:00,"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 Release,8541,[patch] recursive auto-expansion of folders containing only one sub-directory,version control/browser,0.12dev,enhancement,trivial,,new,2009-08-02T15:32:30+02:00,2015-12-19T16:36:40+01:00,"... 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 Release,8526,SubWiki link & SubMapTxt page,wiki system,0.12dev,enhancement,normal,,new,2009-07-28T01:34:52+02:00,2010-06-24T18:25:49+02:00,"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 Release,8519,internal SQL string matches are always case insensitive,database backend,none,defect,normal,,new,2009-07-27T14:56:05+02:00,2021-03-07T11:53:11+01:00,"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 Release,8507,Developer WSGI Profiling and Debugging,general,none,enhancement,normal,,new,2009-07-23T19:34:24+02:00,2015-05-26T20:50:57+02:00,"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 Release,8482,Proposal: Plugin update notification,web frontend,0.11.1,enhancement,trivial,,new,2009-07-15T08:09:49+02:00,2010-05-04T00:30:24+02:00,"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 Release,8426,Unable to print any of the admin pages,admin/web,0.11.4,defect,normal,,new,2009-06-29T20:09:25+02:00,2013-10-17T18:54:32+02:00,"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 Release,8403,Encourage users to select meaningful values for 'required' fields,ticket system,none,enhancement,normal,,new,2009-06-19T23:14:06+02:00,2009-06-26T15:57:26+02:00,"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 Release,8387,Need method to view source code of RST files,rendering,0.11.4,enhancement,normal,,new,2009-06-15T22:32:34+02:00,2012-02-10T22:52:02+01:00,"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 Release,8380,Search In Report / Search In Query functionality,search system,0.11.4,enhancement,normal,,new,2009-06-13T00:36:50+02:00,2009-06-26T17:42:55+02:00,"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 Release,8371,need to view ticket-list of only tickets with unanswered updates,report system,0.11.1,enhancement,normal,,new,2009-06-10T17:35:07+02:00,2012-02-10T22:52:45+01:00,"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 Release,8361,cannot find file trac-digest.py,general,0.11,defect,normal,,new,2009-06-08T13:15:42+02:00,2019-09-06T19:51:32+02:00,"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 Release,8335,Create People page with user profiles and status of who's doing what.,general,none,enhancement,normal,,new,2009-05-31T13:46:33+02:00,2015-05-26T20:50:57+02:00,"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 Release,8328,Repeat SCRIPT_NAME fixup using SCRIPT_URL after environment selection,web frontend,0.11-stable,enhancement,normal,,new,2009-05-27T23:02:14+02:00,2015-05-26T20:50:57+02:00,"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 Release,8219,[PATCH] Forward additional parameters from /report to /query,report system,0.11-stable,enhancement,normal,,new,2009-04-20T11:25:10+02:00,2015-12-19T16:32:13+01:00,"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 Release,8165,[PATCH] csv download doesn't process 'description' field,report system,0.12dev,defect,minor,,new,2009-03-27T12:33:46+01:00,2015-03-02T22:27:22+01:00,"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 Release,8146,Unified diff in changeset view differs from exported unified diff,version control/changeset view,0.12dev,defect,normal,,new,2009-03-21T20:59:58+01:00,2021-01-11T14:45:35+01:00,"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 Release,8094,Preview who will be notified,notification,none,defect,normal,,new,2009-02-28T21:12:42+01:00,2018-06-10T10:58:33+02:00,"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 Release,7990,Can't view plain text wiki links,wiki system,0.11.2.1,enhancement,normal,,new,2009-01-20T21:27:14+01:00,2015-05-26T20:50:57+02:00,"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 Release,7929,make links clickable in annotate view,version control/browser,none,enhancement,minor,,new,2009-01-05T03:13:19+01:00,2009-02-24T15:52:53+01:00,"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 Release,7898,[PATCH] Keep NavigationContributor Ordering,general,0.11-stable,enhancement,normal,,new,2008-12-18T21:27:40+01:00,2010-11-26T15:26:26+01:00,"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 Release,7884,Ticket should contain a field for the expected time to complete/fix it,ticket system,none,enhancement,normal,,new,2008-12-12T18:26:14+01:00,2017-05-08T11:14:10+02:00,"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 Release,7872,"[Patch] Styling for ""Powered by"" footer element",general,none,enhancement,minor,,new,2008-12-08T14:42:18+01:00,2015-12-15T10:39:24+01:00,"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 Release,7867,"h,l keyboard shortcuts",version control/browser,none,enhancement,normal,,new,2008-12-05T14:41:51+01:00,2015-03-02T22:27:22+01:00,"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 Release,7850,[patch] Update default_<enum> options in trac.ini when enum value is updated/deleted,ticket system,devel,enhancement,normal,,new,2008-12-01T18:49:08+01:00,2023-04-19T18:08:14+02:00,"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 Release,7793,[PATCH] Mail notifications for a ticket with multiple owners / reporters,notification,0.12dev,enhancement,normal,,new,2008-11-06T19:51:00+01:00,2018-06-10T16:42:54+02:00,"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 Release,7747,timeline rss-feeds should be able to show diffs of wiki changes,timeline,0.10.4,enhancement,normal,,new,2008-10-22T21:04:36+02:00,2014-08-24T12:39:38+02:00,"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 Release,7699,TracQuery documentation on Query Language operators is incorrect,general,0.11-stable,defect,normal,,new,2008-10-07T21:17:23+02:00,2015-05-26T20:50:57+02:00,"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 Release,7690,Add doctype supporting mathml,rendering,,enhancement,normal,,new,2008-10-03T13:37:28+02:00,2015-07-15T18:26:08+02:00,"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 Release,7680,Broken Error Reporting?,rendering,0.11.1,defect,normal,,new,2008-09-27T21:05:30+02:00,2012-02-10T22:55:04+01:00,"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 Release,7660,Be able to search for commenters by name,ticket system,0.11.1,enhancement,normal,,new,2008-09-23T00:57:03+02:00,2009-10-26T15:35:12+01:00,"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 Release,7608,Private ticket permission users can get ticket counts that include tickets they're not allowed to view,report system,0.11.1,defect,normal,,new,2008-09-08T18:19:21+02:00,2014-05-24T19:30:05+02:00,"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 Release,7573,base_url for many projects is painful,general,0.12dev,enhancement,normal,,new,2008-08-28T22:35:21+02:00,2016-09-08T15:48:46+02:00,"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 Release,7419,Custom ticket status: customised ordering of statuses,ticket system,0.11-stable,enhancement,normal,,new,2008-07-09T17:52:49+02:00,2019-12-03T03:44:58+01:00,"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 Release,7371,Use authentication variables populated by Apache,web frontend,,enhancement,normal,,new,2008-06-24T02:57:54+02:00,2015-12-17T23:17:47+01:00,"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 Release,7196,restrict ticket properties to add/edit only/...,ticket system,,enhancement,normal,,new,2008-05-05T10:16:39+02:00,2015-05-26T20:50:57+02:00,"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 Release,7176,Workflow actions indistinguishable from user changes,ticket system,devel,defect,normal,,new,2008-04-30T03:17:34+02:00,2015-05-26T20:50:57+02:00," - 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 Release,7150,"""contrib/workflow/showworkflow"" is KDE centric",general,devel,defect,trivial,,new,2008-04-23T00:25:33+02:00,2015-05-26T20:50:57+02:00,"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 Release,7106,File attachment 'added' time is incorrect,attachment,devel,defect,major,,new,2008-04-11T17:30:24+02:00,2020-04-30T09:56:23+02:00,"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 Release,7073,notify dup subscribers,notification,,enhancement,normal,,new,2008-04-03T15:35:05+02:00,2015-05-26T20:50:57+02:00,"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 Release,7069,'SearchResults doesn't indicate closed by etc..,search system,,enhancement,minor,,new,2008-04-02T18:15:36+02:00,2020-04-15T10:00:15+02:00,"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 Release,7055,"Add ""toggle line numbers"" JavaScript to source browser",rendering,devel,enhancement,normal,,new,2008-03-27T21:26:03+01:00,2019-09-06T19:51:32+02:00,"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 Release,7044,RSS feed on Sourcechanges,version control/browser,,enhancement,minor,,new,2008-03-25T19:51:30+01:00,2015-05-26T20:50:57+02:00,"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 Release,7043,save custom queries,report system,,enhancement,minor,,new,2008-03-25T17:41:01+01:00,2015-05-26T20:50:57+02:00,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 Release,7026,[Patch] Query module column reordering,report system,devel,enhancement,normal,,new,2008-03-20T22:29:37+01:00,2017-05-19T23:03:34+02:00,"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 Release,6986,MySQL schema changes for performance,general,0.11rc1,enhancement,major,,new,2008-03-10T21:44:57+01:00,2016-03-29T15:31:35+02:00,"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 Release,6958,prevent double activation of the same functionality (component sub-classing),general,0.10.4,enhancement,normal,,new,2008-03-07T11:23:04+01:00,2015-05-26T20:50:57+02:00,"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 Release,6858,Improve intra-line diff highlighting,version control/changeset view,,enhancement,minor,,new,2008-02-20T11:06:38+01:00,2015-05-26T20:50:57+02:00,"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 Release,6807,Option to skip revisions with lots of added files,version control/changeset view,,enhancement,normal,,new,2008-02-11T09:35:43+01:00,2015-05-26T20:50:57+02:00,"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 Release,6783,Diff Tabular / Unified switcher highlights the wrong way around?,version control/changeset view,devel,enhancement,normal,,new,2008-02-07T14:10:55+01:00,2015-05-26T20:50:57+02:00,"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 Release,6638,Allow file exclusions in diffs,version control/changeset view,,enhancement,normal,,new,2008-01-12T12:44:12+01:00,2015-05-18T20:07:03+02:00,"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 Release,6515,Trac detected an internal error: Session ID not set,general,,defect,normal,,new,2007-12-17T09:12:16+01:00,2015-06-09T23:41:15+02:00,"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 Release,6492,[PATCH] Change icons on timeline,timeline,0.10-stable,enhancement,normal,,new,2007-12-12T17:57:59+01:00,2015-12-19T15:52:49+01:00,"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 Release,6365,Show trac:summary (oneliner_properties) property at the directory level,version control/browser,devel,enhancement,minor,,new,2007-11-16T23:40:34+01:00,2015-05-26T20:50:57+02:00,"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 Release,6330,'Back to query' when no query has been used,ticket system,devel,defect,normal,,new,2007-11-12T12:59:29+01:00,2015-05-26T20:50:57+02:00,"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 Release,6249,Customized field labels for standard fields,ticket system,,enhancement,minor,,new,2007-10-26T14:56:12+02:00,2015-05-26T20:50:57+02:00,I'd like to be able to easily modify the labels on standard fields.,anonymous
next-major-releases Release,6226,Value for limit size of logfile,general,0.10.4,enhancement,normal,,new,2007-10-22T11:07:37+02:00,2015-05-26T20:50:57+02:00,"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 Release,6219,Excessive time taken by notification can lead to db timeout?,notification,,defect,major,,new,2007-10-20T23:32:02+02:00,2016-05-10T13:52:54+02:00,"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 Release,6173,"Allow accounts to be disabled, such that they no longer receive email notifications",notification,devel,enhancement,major,,new,2007-10-12T18:59:05+02:00,2015-06-23T17:44:12+02:00,"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 Release,6160,Enhanced Query for All Tickets by Milestone + RFE for a new automatically detected datatype,report system,0.10.3,enhancement,normal,,new,2007-10-09T22:47:17+02:00,2015-05-26T20:50:57+02:00,"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 Release,6158,"Use separate, multiple CSS classnames to enable more versatile stylesheet customization",report system,,enhancement,normal,,new,2007-10-09T19:47:50+02:00,2015-05-26T20:50:57+02:00,"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 Release,6154,better formatted rss feed,ticket system,0.10.4,enhancement,normal,,new,2007-10-09T01:18:19+02:00,2015-05-26T20:50:57+02:00,"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 Release,5999,From ticket to wiki : add links to ticket/comment metadata when appropriate,ticket system,,enhancement,normal,,new,2007-09-10T11:24:56+02:00,2015-05-26T20:50:57+02:00,"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 Release,5997,Clean name-spaces for CSS for 0.11+?,general,devel,enhancement,normal,,new,2007-09-09T20:05:01+02:00,2016-02-06T11:34:26+01:00,"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 Release,5979,Add more option to filters with drop-downs in custom query,query system,devel,enhancement,normal,,new,2007-09-05T17:08:14+02:00,2018-10-16T12:44:28+02:00,"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 Release,5856,Enterprise workflow enhancements for request info,general,devel,enhancement,minor,,new,2007-08-10T12:50:28+02:00,2015-05-26T20:50:57+02:00,"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 Release,5850,Search Results Per Page Variable,search system,0.10.3,enhancement,normal,,new,2007-08-09T20:05:18+02:00,2015-05-26T20:50:57+02:00,"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 Release,5670,[patch] Refactoring of general `NotifyEmail` class to make it easier to subclass,notification,devel,enhancement,normal,,new,2007-07-08T12:06:01+02:00,2017-03-11T22:40:53+01:00,"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 Release,5641,Allow enums to be used in ticket custom value sets,general,0.10.4,enhancement,normal,,new,2007-07-02T00:22:19+02:00,2015-05-26T20:50:57+02:00,"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 Release,5566,Postgresql admin security issue,admin/console,0.10.3,defect,normal,,new,2007-06-21T01:45:45+02:00,2017-06-12T04:47:13+02:00,"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 Release,5535,[inherit] not working for me (error on missing config),general,devel,defect,major,,new,2007-06-16T07:39:35+02:00,2015-05-26T20:50:57+02:00,"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 Release,5526,Support LIKE and wildcards in custom queries,report system,,enhancement,normal,,new,2007-06-15T08:50:35+02:00,2019-08-23T12:45:50+02:00,"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 Release,5506,Confusing formatting for attachments in Timeline,timeline,devel,defect,minor,,new,2007-06-12T23:10:01+02:00,2019-02-13T19:50:07+01:00,"{{{
#!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 Release,5441,Timeline shows incomplete information about status changes for customized workflow,timeline,devel,defect,normal,,new,2007-06-07T05:39:14+02:00,2015-03-02T22:27:22+01:00,"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 Release,5390,"Zip Archive: aliases, symlinks",version control/browser,0.10.3,defect,normal,Jun Omae,assigned,2007-05-30T04:13:24+02:00,2022-05-19T14:00:43+02:00,"Downloading source from the Trac Browsers ""Zip Archive"" generates Mac aliases or symlinks as files instead of links.",anonymous
next-major-releases Release,5246,[PATCH] Use permission system to store groups for authz access control,version control/browser,0.10-stable,enhancement,normal,,new,2007-05-02T00:11:50+02:00,2015-12-19T15:48:35+01:00,"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 Release,5177,"norobots option for: raw source code, rss, old source code",version control/browser,0.10.3,enhancement,normal,,new,2007-04-19T11:24:50+02:00,2015-05-26T20:50:57+02:00,"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 Release,5031,Queries ought to support less/great than for ordered values (i.e. priorities and severities),ticket system,0.10.2,enhancement,normal,,new,2007-03-27T10:48:40+02:00,2014-02-19T19:06:36+01:00,I.e. expand the [is|is not] operator set a bit.,macke@…
next-major-releases Release,5001,offer possibility to inform users of new releases and changes,notification,,enhancement,normal,,new,2007-03-23T11:15:06+01:00,2015-01-13T18:50:21+01:00,"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 Release,4931,notification with SMTP through SSL is not supported (fix included),notification,0.10.3,defect,normal,,new,2007-03-11T14:53:03+01:00,2015-05-26T20:50:57+02:00,"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 Release,4887,Option for changeset viewer to show added and deleted files inline,version control/changeset view,0.10.3,enhancement,normal,,new,2007-03-04T23:16:11+01:00,2015-05-26T20:50:57+02:00,"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 Release,4854,UI Wart: Log viewer navigation links should be duplicated at the bottom of the page,version control/log view,devel,enhancement,minor,,new,2007-02-26T23:08:55+01:00,2015-12-23T19:21:31+01:00,"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 Release,4788,show symlink info in source browser,version control/browser,devel,enhancement,normal,,new,2007-02-19T17:17:07+01:00,2015-05-26T20:50:57+02:00,"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 Release,4778,simplified wikification of svn log messages,wiki system,devel,enhancement,normal,,new,2007-02-19T01:11:11+01:00,2015-05-26T20:50:57+02:00,"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 Release,4733,Option for all login links to use HTTPS,general,,enhancement,normal,,new,2007-02-14T06:13:37+01:00,2015-05-26T20:50:57+02:00,"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 Release,4612,Changeset URL to contain the revision in the query string.,version control,0.10.3,enhancement,normal,,new,2007-01-28T21:00:56+01:00,2016-01-18T23:36:05+01:00,"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 Release,4590,There is no interface for providing conversion over files or changeset like in wiki IContentConverter,version control/browser,,enhancement,normal,,new,2007-01-25T10:59:28+01:00,2015-05-26T20:50:57+02:00,It will be useful. But now i should modify Trac sources.,mou@…
next-major-releases Release,4549,"[PATCH] Ticket std/custom fields improvements - sql based values, order by, labels, value evals,  ...",ticket system,0.10,enhancement,normal,,new,2007-01-16T14:05:36+01:00,2017-01-02T16:49:48+01:00,"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 Release,4468,better support for relative name handling,wiki system,0.10.3,defect,normal,,new,2006-12-28T06:30:09+01:00,2019-11-12T03:50:48+01:00,"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 Release,4412,batch copy/rename wiki pages,wiki system,0.10.3,enhancement,normal,,new,2006-12-17T11:22:09+01:00,2015-05-26T20:50:57+02:00,"==== 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 Release,4398,Inconsistent search for single-digit tickets,search system,0.10,defect,minor,,new,2006-12-14T23:11:41+01:00,2015-05-26T20:50:57+02:00,"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 Release,4298,tickets linked to multiple versions,ticket system,0.10.2,enhancement,critical,,new,2006-11-30T09:00:23+01:00,2016-04-10T12:08:45+02:00,"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 Release,4292,ROADMAP_VIEW / MILESTONE_VIEW privilege,roadmap,0.10.2,defect,minor,,new,2006-11-29T14:48:43+01:00,2021-08-26T03:00:12+02:00,"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 Release,4286,Accepts email addresses without validation,notification,0.10.2,defect,normal,,new,2006-11-28T20:41:57+01:00,2015-05-26T20:50:57+02:00,"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 Release,4270,Ticket notification emails contain wiki formatting,notification,0.10.2,defect,normal,,new,2006-11-27T18:52:01+01:00,2017-03-12T11:21:24+01:00,"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 Release,4224,Using SVN AUTHZ groups to map to group permissions in Trac,admin/web,none,enhancement,normal,,new,2006-11-21T00:13:46+01:00,2015-05-26T20:50:57+02:00,"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 Release,4160,Broken InterWiki Link,version control/log view,0.10,defect,normal,,new,2006-11-14T17:37:43+01:00,2015-05-26T20:50:57+02:00,"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 Release,4130,Ticket Component Interface Fails to Properly Check for Existing Component,ticket system,0.10,defect,normal,,new,2006-11-11T00:33:08+01:00,2015-05-26T20:50:57+02:00,"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 Release,4048,Diff between repositories,version control,devel,enhancement,normal,,new,2006-11-01T21:21:39+01:00,2017-07-11T12:46:51+02:00,"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 Release,4022,Provide Etag and/or Last-Modified HTTP headers to ease cache control,wiki system,0.10,defect,normal,,new,2006-10-24T21:32:30+02:00,2015-05-26T20:50:57+02:00,"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 Release,3911,"implement an object system (xwiki, roundup)",general,0.10,enhancement,major,,new,2006-10-11T11:30:16+02:00,2021-01-21T17:51:40+01:00,"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 Release,3906,Request for a files search (no indexing just plain find like search),version control/browser,0.10,enhancement,normal,,new,2006-10-11T03:15:59+02:00,2018-07-08T12:48:00+02:00,"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 Release,3841,commit after adding attachments to tickets,attachment,0.10,defect,minor,,new,2006-10-02T17:23:53+02:00,2015-05-26T20:50:57+02:00,"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 Release,3749,recent ticket-comments macro,ticket system,0.9.6,enhancement,normal,,new,2006-09-18T23:14:26+02:00,2020-05-19T19:23:14+02:00,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 Release,3737,"login-id, trac-nick",general,devel,enhancement,normal,,new,2006-09-16T20:30:15+02:00,2015-05-26T20:50:57+02:00,"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 Release,3689,"patch for mimeviewer: autodetect charset by ""# -*- coding: windows-1251 -*-""",version control/browser,0.10b1,enhancement,minor,,new,2006-09-09T07:54:32+02:00,2015-12-19T15:46:40+01:00,"***** 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 Release,3584,"[PATCH] Zip file names should match the latest version of their contents, not of the whole repository",version control/browser,devel,enhancement,minor,,new,2006-08-19T12:14:16+02:00,2015-05-26T20:50:57+02:00,"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 Release,3511,quick access to favorite reports/queries,report system,,enhancement,normal,,new,2006-08-04T03:24:12+02:00,2015-05-26T20:50:57+02:00,"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 Release,3320,Custom fields can't be hidden,ticket system,devel,enhancement,minor,,new,2006-06-26T16:16:35+02:00,2015-05-26T20:50:57+02:00,"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 Release,3302,Add Permission Change Hooks to Trac,general,devel,enhancement,normal,,new,2006-06-22T02:04:42+02:00,2015-05-26T20:50:57+02:00,"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 Release,3273,Add REGEXP support to SQL queries,report system,devel,enhancement,minor,,new,2006-06-15T16:54:53+02:00,2016-01-18T23:26:42+01:00,"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 Release,3251,A documentation about components should be added,wiki system,0.9.6,enhancement,minor,,new,2006-06-11T21:31:37+02:00,2015-05-26T20:50:57+02:00,"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 Release,3236,Support for a merge change type in version control API,version control,devel,enhancement,normal,,new,2006-06-08T03:36:04+02:00,2015-05-26T20:50:57+02:00,"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 Release,3162,LDAP support for  e-mail notification,notification,0.9.5,enhancement,normal,,new,2006-05-17T17:38:38+02:00,2021-06-22T01:21:14+02:00,"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 Release,3080,Custom field sorts only as text,general,0.9.5,enhancement,normal,,new,2006-04-24T18:50:46+02:00,2015-05-26T20:50:57+02:00,"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 Release,3022,Remove ROADMAP_ADMIN,roadmap,0.9.4,enhancement,minor,,new,2006-04-11T19:10:24+02:00,2022-06-18T19:27:08+02:00,Tiny ticket to track the removal of `ROADMAP_ADMIN` (alias of `MILESTONE_ADMIN`) in the next release of Trac.,Emmanuel Blot
next-major-releases Release,2961,custom comment fields,ticket system,0.9.4,enhancement,normal,,new,2006-03-30T21:41:12+02:00,2018-02-26T12:59:51+01:00,"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 Release,2827,Preview attachments in main ticket (or wiki) window,attachment,devel,enhancement,normal,,new,2006-03-02T16:58:56+01:00,2023-02-27T12:54:55+01:00,"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 Release,2733,Push some more behaviour to the vc backend,version control,0.9.3,enhancement,normal,,new,2006-02-08T21:26:43+01:00,2015-05-26T20:50:57+02:00,"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 Release,2702,markdown support,wiki system,0.9.3,enhancement,major,,new,2006-01-31T19:55:45+01:00,2017-04-04T01:55:59+02:00,"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 Release,2695,[PATCH] Pretty icons for various file types.,version control/browser,0.9.3,enhancement,normal,,new,2006-01-31T06:37:51+01:00,2015-12-19T15:46:12+01:00,"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 Release,2662,assign tickets to multiple users,ticket system,0.9.3,enhancement,normal,,new,2006-01-25T13:36:02+01:00,2021-09-19T18:37:53+02:00,"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 Release,2656,Make built-in documentation independent from wiki,wiki system,0.9.3,enhancement,major,,new,2006-01-24T11:13:55+01:00,2019-09-16T01:54:34+02:00,"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 Release,2639,Add userid/author in RSS feeds for repository commit information,timeline,0.10rc1,enhancement,normal,,new,2006-01-19T20:39:27+01:00,2015-05-26T20:50:57+02:00,"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 Release,2636,browsing a directory with many files takes a long time,version control/browser,0.9.3,enhancement,normal,,new,2006-01-19T13:05:15+01:00,2015-05-26T20:50:57+02:00,"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 Release,2625,Add option to send HTML mail messages,notification,0.11-stable,enhancement,normal,,new,2006-01-18T01:06:19+01:00,2023-09-15T04:02:49+02:00,"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 Release,2588,Option to show the latest completed milestone,roadmap,devel,enhancement,minor,,new,2006-01-12T02:28:44+01:00,2018-12-16T15:45:29+01:00,"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 Release,2469,timeline should show my own tickets in bold,timeline,0.9b2,enhancement,major,,new,2005-12-09T20:23:19+01:00,2015-05-26T20:50:57+02:00,"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 Release,2465,"Add ""custom query"" functionality for changesets",version control/changeset view,none,enhancement,critical,,new,2005-12-09T11:54:06+01:00,2015-05-26T20:50:57+02:00,"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 Release,2464,Conditional fields in tickets,ticket system,0.9.2,enhancement,major,,new,2005-12-09T11:34:48+01:00,2021-08-19T21:34:04+02:00,"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 Release,2456,Implement API for user management,general,0.9.2,enhancement,major,,new,2005-12-08T02:06:33+01:00,2015-05-26T20:50:57+02:00,"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 Release,2382,WebAdmin: resync from the web interface,version control,0.9,enhancement,normal,,new,2005-11-20T10:24:21+01:00,2015-05-26T20:50:57+02:00,"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 Release,2141,Upload more than one attachment at a time,attachment,devel,enhancement,normal,,new,2005-09-28T16:41:04+02:00,2015-07-14T20:29:06+02:00,It would be nice to be able to upload and delete multiple attachments.,anonymous
next-major-releases Release,2130,Sort Milestones in Roadmap and NewTicket alphabetically (as an option),roadmap,,enhancement,normal,,new,2005-09-27T13:29:18+02:00,2021-07-24T22:54:41+02:00,"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 Release,2036,Inconsistent sub-menu on Browse Source comparing with View Tickets,report system,0.9b1,defect,minor,,new,2005-09-09T19:44:51+02:00,2015-05-26T20:50:57+02:00,"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 Release,1804,[Patch] Strip off realm from usernames when using Kerberos,general,0.8.4,defect,normal,,new,2005-07-19T15:48:02+02:00,2018-12-31T09:58:38+01:00,"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 Release,1796,Stylesheet for Docutils output,rendering,0.8.4,enhancement,minor,,new,2005-07-16T00:07:20+02:00,2015-05-26T20:50:57+02:00,"{{{
#!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 Release,1520,Highlight TracLinks in browser,wiki system,0.8.1,enhancement,normal,,new,2005-05-08T11:45:46+02:00,2015-05-26T20:50:57+02:00,"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 Release,1513,Multi-language support in the wiki,wiki system,,enhancement,normal,,new,2005-05-06T16:14:51+02:00,2015-05-26T20:50:57+02:00,"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 Release,1329,Ticket Search should (optionally) search only non-closed tickets,ticket system,0.8.1,enhancement,major,,new,2005-03-21T09:19:37+01:00,2015-05-26T20:50:57+02:00,"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 Release,1242,[ER] Generalized automatic cross-references in Trac,wiki system,0.8,enhancement,critical,,new,2005-03-03T11:13:58+01:00,2022-11-16T06:31:00+01:00,"== 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 Release,1132,Use Subversion (or the source repository) for Trac's data as well,general,none,enhancement,critical,,new,2005-01-14T18:02:17+01:00,2015-05-26T20:50:57+02:00,Use Subversion for data repository like [http://subwiki.tigris.org/ subwiki],twenim@…
next-major-releases Release,978,Specify InterTrac context for a repository,version control,devel,enhancement,normal,,new,2004-11-22T11:22:12+01:00,2022-07-19T03:21:36+02:00,"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 Release,918,[patch] Custom Ticket Fields should support the multiple selection type,ticket system,devel,enhancement,normal,,new,2004-11-12T19:42:28+01:00,2018-05-12T08:56:20+02:00,"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 Release,791,"login/logout, authentication, and authorization",general,devel,enhancement,normal,,new,2004-09-30T06:13:49+02:00,2022-08-07T15:41:21+02:00,"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 Release,756,trac-admin initenv might prompt for a wiki-default path,admin/console,devel,enhancement,normal,,new,2004-09-10T16:19:22+02:00,2015-05-26T20:50:57+02:00,"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 Release,695,Keywords for wiki pages,wiki system,0.7.1,enhancement,major,,new,2004-08-11T16:49:42+02:00,2021-11-26T13:29:21+01:00,"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 Release,611,Backlinks,wiki system,0.7.1,enhancement,major,,new,2004-07-11T14:52:44+02:00,2021-04-07T13:43:14+02:00,"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 Release,515,Collapsible diff display,version control/changeset view,0.7.1,enhancement,normal,,new,2004-06-04T23:14:55+02:00,2023-02-26T06:25:47+01:00,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 Release,425,Wiki page name need to support digits and periods,wiki system,0.8,enhancement,normal,,new,2004-05-19T15:00:40+02:00,2015-03-02T22:31:46+01:00,"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 Release,221,Creating TR for multiple components,ticket system,,enhancement,critical,,new,2004-04-02T02:41:40+02:00,2020-09-09T13:20:24+02:00,"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 Release,13223,"""All Tickets Reported by Me"" should mention if a ticket is open or closed",ticket system,,enhancement,trivial,,new,2019-11-17T19:57:48+01:00,2019-11-17T20:28:47+01:00,"""{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 Release,13101,Unified diff in git format?,version control/changeset view,,enhancement,minor,,new,2018-11-06T12:52:25+01:00,2018-11-06T13:38:25+01:00,"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 Release,11977,Attachment title in search results does not render closed ticket with strikethrough,attachment,,defect,normal,,new,2015-03-09T05:17:47+01:00,2015-07-11T07:53:03+02:00,"Ticket #10833 is closed, but the attachment title does not indicate that.

[[Image(NotStrikethrough.png)]]",Ryan J Ollos
next-major-releases Release,11816,Some comment TracLinks are incorrectly displayed as missing,wiki system,,defect,minor,,new,2014-11-11T02:39:16+01:00,2022-09-23T13:44:11+02:00,"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 Release,11493,Add config option to show changeset files in ticket's comment,ticket system,1.0-stable,enhancement,minor,,new,2014-02-21T02:50:45+01:00,2017-09-09T00:45:38+02:00,"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 Release,11013,Unable to hotcopy SQLite database on Windows if >1Gb,admin/console,0.12,defect,normal,,new,2013-01-10T10:16:41+01:00,2013-01-23T09:19:40+01:00,"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 Release,10945,"horizontal scrollbar in ""editing wiki"" textareas",wiki system,,enhancement,minor,,new,2012-11-08T16:15:04+01:00,2015-11-18T12:51:12+01:00,"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 Release,10917,check semi-automatic bug reporting for plugins,general,1.0,defect,normal,,new,2012-10-20T15:38:26+02:00,2015-05-26T20:50:57+02:00,"==== 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 Release,10666,Setting fine grained permissions using AuthzPolicy does not work,plugin/git,,defect,normal,,new,2012-04-13T19:44:03+02:00,2015-01-03T09:33:41+01:00,"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 Release,10303,Faceted browsing in Search,search system,,enhancement,minor,,new,2011-08-08T19:26:45+02:00,2021-10-09T10:56:49+02:00,"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 Release,10049,Trac-admin should permit issue or task creation,admin/console,,enhancement,normal,,new,2011-02-26T19:40:37+01:00,2012-07-04T20:58:30+02:00,"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 Release,9946,CommitTicketUpdater does not honor wiki_format_messages setting,version control/changeset view,0.12.1,defect,normal,,new,2010-12-23T18:38:36+01:00,2014-02-21T05:58:10+01:00,"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 Release,9621,Display problem with side by side diff and ignore blank lines,version control/changeset view,0.13dev,defect,minor,,new,2010-09-15T15:31:50+02:00,2010-09-23T14:21:34+02:00,"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 Release,9617,Private user-specific saved ticket queries,report system,0.12,enhancement,minor,,new,2010-09-14T20:20:31+02:00,2015-12-15T19:19:18+01:00,"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 Release,9601,Disallow robot navigation for edit pages,wiki system,,defect,minor,,new,2010-09-02T19:49:31+02:00,2010-09-23T15:03:39+02:00,"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 Release,9263,"if SVN is used, milestone should manage/allowtoassign links for branch and tag",roadmap,,enhancement,normal,,new,2010-04-23T11:54:37+02:00,2010-09-30T10:03:52+02:00,"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 Release,9129,"TypeError: expecting datetime, int, long, float, or None; got <class 'genshi.template.eval.Undefined'>",version control,0.11.6,defect,normal,,new,2010-03-11T16:41:39+01:00,2016-04-08T21:18:01+02:00,"
==== 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 Release,9125,Report rendering needs some general overhaul,report system,0.12dev,enhancement,normal,,new,2010-03-09T20:26:03+01:00,2015-05-26T20:50:57+02:00,"
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 Release,9073,Allow milestones on roadmap to be folded,roadmap,0.12dev,enhancement,minor,,new,2010-02-23T06:50:13+01:00,2015-07-28T09:50:49+02:00,"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 Release,9048,Wiki history empty if end revision precedes start revision,wiki system,0.12dev,defect,minor,,new,2010-02-11T09:58:44+01:00,2021-01-12T09:21:21+01:00,"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 Release,9046,Cannot create a TracLink to heading in ticket description,wiki system,0.12dev,defect,normal,,new,2010-02-10T22:02:44+01:00,2014-07-29T17:02:39+02:00,"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 Release,8727,cannot create TracLinks to attachments with number sign in file name,wiki system,0.11.5,defect,normal,,new,2009-10-09T03:26:12+02:00,2015-05-26T20:50:57+02:00,"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 Release,8681,[PATCH] Allow adding usernames to a ticket CC list,ticket system,0.11.4,enhancement,normal,,new,2009-09-22T00:27:26+02:00,2015-12-19T17:03:38+01:00,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 Release,8677,Ability to follow/unfollow a ticket,ticket system,none,enhancement,minor,,new,2009-09-16T09:05:59+02:00,2011-06-07T17:51:05+02:00,"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 Release,8314,Dynamic Default Values,ticket system,0.11-stable,enhancement,normal,,new,2009-05-22T22:30:53+02:00,2015-10-13T22:35:38+02:00,"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 Release,8223,Mozilla/Firefox displaying images through html processor,wiki system,0.11.1,defect,normal,,new,2009-04-22T17:43:57+02:00,2019-09-06T19:51:32+02:00,"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 Release,8135,"[PATCH] Prev, Query, Next links at bottom of ticket page",ticket system,0.13dev,enhancement,normal,,new,2009-03-17T19:27:21+01:00,2015-05-26T20:50:57+02:00,"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 Release,8088,"Allow a WikiFormatted Custom Ticket Field Parse Through the Wiki Engine in Reports, without Using 'Magic' Column Name",report system,0.11.3,enhancement,minor,,new,2009-02-23T20:08:51+01:00,2019-03-25T20:42:06+01:00,"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 Release,7724,Allow user provided mime-type for attachments,attachment,0.12dev,enhancement,major,,new,2008-10-15T19:48:41+02:00,2014-07-31T15:38:11+02:00,"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 Release,7558,"New TracQuery match operator for ""contains the word"" would be useful",ticket system,0.11.1,enhancement,minor,,new,2008-08-24T04:52:14+02:00,2017-10-06T00:43:32+02:00,"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 Release,7215,Default to base_path if SCRIPT_NAME not set for tracd,web frontend/tracd,0.11rc1,enhancement,normal,,new,2008-05-09T11:18:24+02:00,2015-05-26T20:50:57+02:00,"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 Release,6904,Annotate Does not show full user name.,version control,0.11b1,defect,minor,,new,2008-02-29T12:46:50+01:00,2015-05-26T20:50:57+02:00,"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 Release,6863,Included wiki page makes web research irrelevant,wiki system,,enhancement,minor,,new,2008-02-20T18:42:57+01:00,2010-09-23T14:57:08+02:00,"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 Release,6709,Extended 'view diff' feature does not update the browsing position,version control/changeset view,0.11b1,enhancement,minor,,new,2008-01-25T12:28:38+01:00,2015-05-26T20:50:57+02:00,"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 Release,6623,"emitting invalid xml:space=""preserve"" attributes on wiki and ticket pages (causes failed W3C validation)",wiki system,0.11b1,defect,normal,,new,2008-01-09T16:57:38+01:00,2018-07-29T03:59:54+02:00,"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 Release,6424,Next/previous diff support,version control/changeset view,,enhancement,minor,,new,2007-12-01T16:21:36+01:00,2015-05-26T20:50:57+02:00,"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 Release,6232,Setting different completion ratios on different ticket states in [milestone-groups],roadmap,devel,enhancement,minor,,new,2007-10-23T10:26:00+02:00,2015-05-26T20:50:57+02:00,"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 Release,6145,Query correlation with SVN commits,general,0.10-stable,enhancement,normal,,new,2007-10-08T03:05:12+02:00,2015-05-26T20:50:57+02:00,"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 Release,6128,[Patch] Pagination for the Timeline,timeline,0.10.4,enhancement,normal,,new,2007-10-04T13:34:14+02:00,2017-09-10T01:52:39+02:00,"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 Release,6118,[patch] Add extension point for Session modification,general,devel,enhancement,normal,,new,2007-10-02T00:02:20+02:00,2015-12-19T17:01:50+01:00,"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 Release,6107,"to ""watch"" a milestone",notification,,enhancement,minor,,new,2007-09-29T06:31:32+02:00,2021-12-02T22:48:58+01:00,"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 Release,6009,colons in revision identifiers,version control,devel,enhancement,normal,,new,2007-09-11T19:26:44+02:00,2015-05-26T20:50:57+02:00,"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 Release,5933,"Add search options for ""match case"" and ""match whole word""",search system,devel,defect,minor,,new,2007-08-28T09:55:13+02:00,2015-05-26T20:50:57+02:00,"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 Release,5821,Wiki blame support,wiki system,devel,enhancement,normal,,new,2007-08-05T05:42:13+02:00,2014-08-04T05:29:58+02:00,"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 Release,5755,Multiple Milestone Dates,roadmap,,enhancement,normal,,new,2007-07-23T17:12:33+02:00,2015-05-26T20:50:57+02:00,"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 Release,5663,Suggestions for Ticket Reports,ticket system,,enhancement,minor,,new,2007-07-05T21:10:08+02:00,2015-05-26T20:50:57+02:00,"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 Release,5498,Use #. as a wiki markup for ordered list,wiki system,devel,enhancement,minor,,new,2007-06-12T14:56:33+02:00,2015-05-26T20:50:57+02:00,"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 Release,5420,EOL changes hidden in changeset view,version control/changeset view,0.10.1,defect,normal,,new,2007-06-04T18:26:58+02:00,2021-08-27T03:29:48+02:00,"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 Release,5382,improve storage of binary content in the database,database backend,devel,enhancement,normal,,new,2007-05-28T00:00:26+02:00,2015-05-26T20:50:57+02:00,"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 Release,5227,provide option to insert summary in a ticket link,wiki system,devel,enhancement,minor,,new,2007-04-26T20:43:32+02:00,2015-05-26T20:50:57+02:00,"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 Release,5170,max_diff_bytes should be honored even if only one file has changed,version control/changeset view,0.10.3.1,enhancement,normal,,new,2007-04-18T17:24:36+02:00,2016-10-13T10:27:55+02:00,"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 Release,5119,"zip source download link should support ""current version""",version control/browser,,enhancement,minor,,new,2007-04-10T12:46:54+02:00,2015-05-26T20:50:57+02:00,"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 Release,5010,shutdown hook for plugins,general,devel,enhancement,major,,new,2007-03-23T19:08:57+01:00,2022-01-05T19:36:19+01:00,"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 Release,4980,"configurable default value for ""Group results by"" in Milestone view",roadmap,,enhancement,minor,,new,2007-03-20T07:45:43+01:00,2015-06-02T12:12:29+02:00,"It would be nice to have ability to define default value for field ""Group results by""",eapenkin@…
next-major-releases Release,4827,TracPermissions to access WebAdmin should be more fine-grained,admin/web,,enhancement,normal,,new,2007-02-23T15:22:03+01:00,2015-06-23T22:09:58+02:00,"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 Release,4695,Icons for InterTrac and InterWiki links,wiki system,0.10.3,enhancement,minor,,new,2007-02-08T20:19:07+01:00,2015-05-26T20:50:57+02:00,"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 Release,4374,Custom Tickets Select Box Auto-generation,ticket system,0.10.2,enhancement,normal,,new,2006-12-11T16:36:37+01:00,2015-05-26T20:50:57+02:00,"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 Release,4279,add a plugin to comment on a page,wiki system,0.10.2,enhancement,major,,new,2006-11-28T11:07:37+01:00,2023-09-28T20:17:01+02:00,"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 Release,3734,Provide Possibility to 'freeze' a Milestone,ticket system,devel,enhancement,minor,,new,2006-09-16T02:04:54+02:00,2015-05-26T20:50:57+02:00,"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 Release,3416,IFrame,wiki system,0.9.6,defect,normal,,new,2006-07-17T12:38:13+02:00,2020-04-22T08:16:36+02:00,"If an iframe added to the wiki, via the HTML formatter, this is not viewed.",anonymous
next-major-releases Release,3335,Improve the rendering of the wiki syntax for citations,wiki system,0.9.5,enhancement,minor,,new,2006-06-28T17:43:53+02:00,2015-05-26T20:50:57+02:00,"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 Release,3255,Context-sensitive new ticket prefill,ticket system,none,enhancement,normal,,new,2006-06-13T00:27:35+02:00,2015-05-26T20:50:57+02:00,"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 Release,3249,Default env with parent_dir,general,devel,enhancement,normal,,new,2006-06-11T03:56:15+02:00,2015-05-26T20:50:57+02:00,"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 Release,3153,Include tickets without milestone in iCal,ticket system,0.9.5,enhancement,normal,,new,2006-05-15T16:53:34+02:00,2015-05-26T20:50:57+02:00,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 Release,3037,Multiple bugs in trac.config,general,devel,defect,minor,,new,2006-04-14T12:58:18+02:00,2019-09-06T19:54:30+02:00,"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 Release,2956,Upload files to the repository,version control/browser,0.9.4,enhancement,normal,,new,2006-03-30T01:37:44+02:00,2017-04-16T11:13:05+02:00,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 Release,2684,Appropriate name for TRAC_TEMPLATE_VARS (TracTemplateVars),general,0.9.3,defect,minor,,new,2006-01-29T23:26:43+01:00,2019-09-06T19:54:30+02:00,"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 Release,2616,Show ticket submission time in Change History,ticket system,0.9.3,enhancement,minor,,new,2006-01-16T20:52:30+01:00,2015-05-26T20:50:57+02:00,"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 Release,2523,TODO's from Sourcecode as a ticket,wiki system,0.9.2,enhancement,minor,,new,2005-12-25T02:36:40+01:00,2017-09-04T10:19:09+02:00,"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 Release,2497,Change custom query with group to also have a table of contents for group,ticket system,0.9.2,enhancement,normal,,new,2005-12-16T19:28:33+01:00,2015-05-26T20:50:57+02:00,"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 Release,2467,Link user name in reports to custom query showing that user's open tickets,ticket system,0.9.2,enhancement,normal,,new,2005-12-09T16:46:10+01:00,2015-05-26T20:50:57+02:00,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 Release,2344,sub milestone,roadmap,0.9,enhancement,major,,new,2005-11-11T19:13:18+01:00,2021-02-19T22:18:32+01:00,"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 Release,2293,Make rss-feeds of more parts of trac available,wiki system,0.9,enhancement,normal,,new,2005-11-02T10:39:16+01:00,2010-11-28T20:02:18+01:00,"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 Release,2264,"Tickets with created with """" Milestone show up under ""Release""",report system,devel,defect,trivial,,new,2005-10-26T15:30:24+02:00,2015-05-26T20:50:57+02:00,"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 Release,2194,Make user credentials available to IPermissionStore & IPermissionGroupProvider component,general,0.9b2,enhancement,normal,,new,2005-10-08T14:54:33+02:00,2018-11-13T06:28:19+01:00,"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 Release,2095,Have redundant 'action triggers' / controls on long pages,roadmap,0.8.4,enhancement,minor,,new,2005-09-21T01:26:54+02:00,2020-05-08T10:30:22+02:00,"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 Release,1748,"Per-screen and per-field help text, configurable per trac environment",general,devel,enhancement,minor,,new,2005-07-03T14:28:14+02:00,2015-05-26T20:50:57+02:00,"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 Release,1502,Ticket searches don't interpret [[BR]],search system,0.8.1,enhancement,normal,,new,2005-05-03T04:34:00+02:00,2015-05-26T20:50:57+02:00,"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 Release,1410,Post commit script for Tags changes,general,devel,enhancement,normal,,new,2005-04-06T23:05:38+02:00,2015-05-26T20:50:57+02:00,"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 Release,1395,Text box for duplicate when a bug is a duplicate,ticket system,devel,enhancement,normal,,new,2005-04-03T13:22:08+02:00,2023-05-04T02:49:53+02:00,"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 Release,1376,Alternate Template for wiki pages,wiki system,0.8.1,enhancement,normal,,new,2005-03-29T22:32:03+02:00,2010-06-24T15:54:01+02:00,"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 Release,1216,wiki pages caching,wiki system,devel,enhancement,normal,,new,2005-02-22T18:22:45+01:00,2020-06-14T05:34:50+02:00,"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 Release,1200,Provide syntax to link to file-differences from svn log messages,version control/changeset view,0.8,enhancement,normal,,new,2005-02-14T12:39:26+01:00,2015-05-26T20:50:57+02:00,"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 Release,787,Change attachment description,attachment,0.7.1,enhancement,normal,,new,2004-09-29T19:23:38+02:00,2018-06-29T16:09:11+02:00,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 Release,548,[Patch] Support for subcomponents,ticket system,devel,enhancement,normal,,new,2004-06-15T04:44:22+02:00,2015-12-19T16:59:28+01:00,"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 Release,533,Support for custom reports,report system,none,enhancement,major,,new,2004-06-10T18:14:46+02:00,2015-05-26T20:50:57+02:00,"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 Release,109,"MissingLinks, an index over missing wiki pages",wiki system,0.5.1,enhancement,normal,,new,2004-03-02T19:22:03+01:00,2018-08-04T09:54:30+02:00,"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 Release,108,OrphanedPages macro,wiki system,0.5.1,enhancement,normal,,new,2004-03-02T19:19:38+01:00,2015-03-02T22:31:46+01:00,"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 Release,12774,Separator line is shown twice,notification,1.0.15,defect,trivial,,new,2017-04-17T09:12:00+02:00,2019-09-06T19:51:32+02:00,"[[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 Release,9897,'>' cannot be properly escaped,wiki system,0.12dev,defect,minor,,new,2010-12-03T15:01:40+01:00,2015-05-26T20:50:57+02:00,"{{{ >:: 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 Release,9689,Links on  SVG images do not work,rendering,0.12-stable,defect,normal,,new,2010-10-13T14:47:47+02:00,2015-09-03T00:35:17+02:00,"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 Release,9296,Wiki autocompletion for TracLinks,wiki system,0.11.4,enhancement,normal,,new,2010-05-05T11:05:54+02:00,2018-03-13T22:18:17+01:00,"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 Release,9216,changeset hook for wiki pages,wiki system,,enhancement,normal,,new,2010-04-11T14:54:06+02:00,2015-05-26T20:50:57+02:00,"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 Release,9157,backtrace in attachment description,attachment,0.12dev,defect,minor,,new,2010-03-22T10:20:32+01:00,2011-02-25T11:40:28+01:00,"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 Release,9131,Customisation of default field labels,general,0.11.5,enhancement,normal,,new,2010-03-11T17:28:34+01:00,2020-06-29T11:52:20+02:00,"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 Release,9127,Drag and drop attachments,attachment,0.12dev,enhancement,normal,,new,2010-03-11T00:43:13+01:00,2023-03-02T17:51:50+01:00,"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 Release,9055,Auto numbering in wiki tables,wiki system,0.12dev,enhancement,normal,,new,2010-02-12T14:38:04+01:00,2017-04-20T06:05:11+02:00,"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 Release,8383,Render baetle as RDFa on ticket pages,web frontend,none,enhancement,normal,,new,2009-06-14T15:31:30+02:00,2011-02-27T11:38:20+01:00,"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 Release,8058,Smarter db connection pool,general,0.11.2.1,enhancement,normal,,new,2009-02-15T14:05:20+01:00,2016-07-09T22:31:15+02:00,"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 Release,7361,"Error in Wiki Rendering if Colon "":"" is used with a word and quote mark",wiki system,0.11rc2,defect,minor,,new,2008-06-20T03:02:43+02:00,2015-05-26T20:50:57+02:00,"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 Release,7071,keyboard nav implementation,version control/browser,0.11b2,enhancement,trivial,,new,2008-04-02T22:49:36+02:00,2015-05-26T20:50:57+02:00,"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 Release,7022,Reports Organizer,report system,,enhancement,minor,,new,2008-03-19T21:24:25+01:00,2015-12-02T23:19:48+01:00,"Improve on the way to organize the list of ''Available Reports'' using folders/sub-folders, groups or tree views.",rmgomes@…
next-major-releases Release,6947,Change in colouring scheme for nested replies in the ticket,wiki system,,enhancement,minor,,new,2008-03-06T12:00:14+01:00,2015-05-26T20:50:57+02:00,"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 Release,6101,browsing folder with too many files should use paging,version control/browser,devel,defect,minor,,new,2007-09-28T11:20:13+02:00,2015-05-26T20:50:57+02:00,"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 Release,5912,Offline mode using HTML5 Web Storage,general,devel,enhancement,normal,,new,2007-08-22T23:18:00+02:00,2015-05-26T20:50:57+02:00,"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 Release,4760,"""Newer revisions"" link",version control/log view,devel,enhancement,normal,,new,2007-02-16T08:17:31+01:00,2015-05-26T20:50:57+02:00,"can we have a link ""Newer revisions"" (similar to ""Older revisions"")
in the Revision log browser?

Thanks",Sergei Haller <sergei@…>
next-major-releases Release,4636,Component field sort order doesn't use locale,ticket system,0.10.3,defect,minor,,new,2007-02-01T11:03:46+01:00,2017-01-26T11:38:44+01:00,"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 Release,3006,Want to be able to merge tickets,ticket system,none,enhancement,normal,,new,2006-04-09T22:50:38+02:00,2015-05-26T20:50:57+02:00,"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 Release,1678,Show component view in timeline view for checkins,timeline,devel,enhancement,normal,,new,2005-06-16T11:12:18+02:00,2015-05-26T20:50:57+02:00,"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 Release,1514,Mantis conversion script,ticket system,,enhancement,normal,,new,2005-05-06T20:17:11+02:00,2017-03-28T02:42:21+02:00,"A script to convert from Mantis(http://www.mantisbt.org/) to Trac would be super-cool!

",Paul Baranowski <paul@…>
next-major-releases Release,1465,Trac could use a distributed VCS storage,wiki system,0.8.1,enhancement,critical,,new,2005-04-22T11:18:37+02:00,2015-05-26T20:50:57+02:00,"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 Release,1445,[ER] Revision Graph for the Version Control Browser,version control/log view,devel,enhancement,normal,,new,2005-04-18T13:36:32+02:00,2018-10-11T09:05:12+02:00,"== 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 Release,1424,MediaWiki-style table syntax support,wiki system,0.8.1,enhancement,normal,,new,2005-04-11T21:29:47+02:00,2014-04-03T11:12:17+02:00,"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 Release,1278,attaching file to wiki page does not register as changed page,attachment,0.8.1,defect,normal,,new,2005-03-10T19:40:16+01:00,2015-05-26T20:50:57+02:00,"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 Release,1245,Highlight changes of a wiki page since last visit,wiki system,0.8,enhancement,normal,,new,2005-03-03T15:32:14+01:00,2015-03-02T22:31:46+01:00," 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 Release,1069,"query by example (e.g. when creating a new ticket, check for similar tickets)",ticket system,0.8,enhancement,normal,,new,2004-12-17T15:46:06+01:00,2023-02-16T12:47:08+01:00,"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 Release,976,Wiki Page redirects to other Wiki pages and possibly other Trac resources,wiki system,0.11.2,enhancement,minor,,new,2004-11-21T12:28:33+01:00,2015-11-30T22:31:39+01:00,"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 Release,781,svn:log editing,version control/changeset view,,enhancement,normal,,new,2004-09-25T21:56:16+02:00,2023-02-26T06:24:51+01:00,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-stable-1.6.x Release,7687,"Add support for svn:externals ""1.5"" style",version control/browser,0.11.1,defect,normal,,new,2008-10-01T18:15:55+02:00,2023-09-23T22:33:10+02:00,"For now, Trac only supports the old-style syntax.

Subversion 1.5 URLs have the following special prefixes:

 ../ :: Relative to the URL of the directory on which the svn:externals property is set
 !^/ :: Relative to the root of the repository in which the svn:externals property is versioned
 // :: Relative to the scheme of the URL of the directory on which the svn:externals property is set
 / :: Relative to the root URL of the server on which the svn:externals property is versioned

Also, there's a new convention for svn:externals, instead of:
{{{
RELPATH [-r<rev>] URL
}}}
the mapping can now be written:
{{{
[-r<rev>] URL RELPATH
}}}

(taken from [http://svnbook.red-bean.com/en/1.5/svn.advanced.externals.html])",Emmanuel Blot
next-stable-1.6.x Release,4245,[PATCH] Tickets are slow with large amount of users and permissions,general,devel,defect,major,,new,2006-11-23T22:50:14+01:00,2023-09-23T22:33:10+02:00,"`TicketSystem.get_ticket_fields()` implements an extremely inefficient algorithm to find users that have a certain permission (O(n^2^,,users,, * perms_per_user,,avg,,)). I have added a more efficient function to `PermissionSystem` that enables querying users having a specified permission directly. It correctly resolves group memberships and hierarchical  permissions.",ants.aasma@…
next-stable-1.6.x Release,13587,"trans directive is not working with non-""messages"" domain on plugin's templates",i18n,1.4,defect,normal,,new,2023-04-02T02:31:52+02:00,2023-09-23T22:33:10+02:00,"I'm trying to show translated messages on plugin's templates with the `trans` directive. The `extract_messages` command successfully extracts the messages but the directive doesn't translate the messages.

Also, it is not possible to specify domain parameters in the `trans` directive, as in the `i18n:domain` in the Genshi template.

As a workaround, in the plugin's templates, is to use `${ dgettext(domain, ""..."") }` instead of the directive.",Jun Omae
next-stable-1.6.x Release,13579,Element factory doesn't convert underscores to hyphens for keyword arguments,general,1.4,defect,minor,,new,2023-03-16T00:34:12+01:00,2023-09-23T22:33:10+02:00,"{{{#!shell
$ script='from trac import __version__ as v; from trac.util.html import tag
; print(v); print(tag.span("""", data_name=""value""))'
$ ~/venv/trac/1.0.20/bin/python -c ""$script""
1.0.20
<span data-name=""value""></span>
$ ~/venv/trac/1.4.3/bin/python -c ""$script""
1.4.3
<span data_name=""value""></span>
$ ~/venv/trac/1.5.4/bin/python -c ""$script""
1.5.4
<span data_name=""value""></span>
}}}

Patch:

{{{#!diff
diff --git a/trac/util/html.py b/trac/util/html.py
index 600c30b98..a1230fcd0 100644
--- a/trac/util/html.py
+++ b/trac/util/html.py
@@ -431,6 +431,8 @@ class XMLElement(Fragment):
             if v is not None:
                 if k[-1:] == '_':
                     k = k[:-1]
+                if '_' in k:
+                    k = k.replace('_', '-')
                 v = self._attr_value(k, v)
                 if v is not None:
                     attrs.append((k, escape(v)))
}}}

Workaround is passing a dict with names converted to hyphens:
{{{#!shell
$ script='from trac import __version__ as v; from trac.util.html import tag
; print(v); print(tag.span("""", **{""data-name"": ""value""}))'
$ ~/venv/trac/1.0.20/bin/python -c ""$script""
1.0.20
<span data-name=""value""></span>
$ ~/venv/trac/1.4.3/bin/python -c ""$script""
1.4.3
<span data-name=""value""></span>
$ ~/venv/trac/1.5.4/bin/python -c ""$script""
1.5.4
<span data-name=""value""></span>
}}}",Jun Omae
next-stable-1.6.x Release,13457,Jinja2 version is blank on Trac 1.5.3 in Fedora 35,general,,defect,normal,,new,2022-01-05T08:10:12+01:00,2023-09-23T22:33:10+02:00,"The reporter says Jinja2 version is blank on Trac 1.5.3 in Fedora 35. See gmessage:trac-users:JJA_WX-JH-4/m/LxUK15C0EQAJ.

{{{
# cat /etc/redhat-release
Fedora release 35 (Thirty Five)
# python3
Python 3.10.0 (default, Oct  4 2021, 00:00:00) [GCC 11.2.1 20210728 (Red Hat 11.2.1-1)] on linux
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
>>> import jinja2
>>> from trac.util import get_pkginfo
>>> get_pkginfo(jinja2)
{}
>>> import pkg_resources
>>> from trac.util import get_module_path
>>> get_module_path(jinja2)
'/usr/lib/python3.10/site-packages'
>>> dists = list(pkg_resources.find_distributions('/usr/lib/python3.10/site-packages', only=True))
>>> dists
[Trac 1.5.3 (/usr/lib/python3.10/site-packages), setuptools 57.4.0 (/usr/lib/python3.10/site-packages), pytz 2021.3 (/usr/lib/python3.10/site-packages), Jinja2 3.0.1 (/usr/lib/python3.10/site-packages), Babel 2.9.1 (/usr/lib/python3.10/site-packages)]
>>> dist = dists[3]
>>> dist
Jinja2 3.0.1 (/usr/lib/python3.10/site-packages)
>>> dist.location
'/usr/lib/python3.10/site-packages'
>>> dist.has_metadata('installed-files.txt')
False
>>> dist.has_metadata('SOURCES.txt')
True
>>> for name in dist.get_metadata_lines('SOURCES.txt'):
...   if 'jinja2/__init__.py' in name:
...     name
...
'src/jinja2/__init__.py'
}}}

We expect that a line exactly matched with `jinja2/__init__.py` exists in `SOURCES.txt` file, however the entry starts with `src/`.",Jun Omae
next-stable-1.6.x Release,13426,Unable to import trac.db_default due to circular imports on Trac 1.4.x,general,1.4.3,defect,minor,,new,2021-10-01T02:29:14+02:00,2023-09-23T22:33:10+02:00,"It is unable to import `trac.db_default` before `trac.db.api` due to circular imports on Trac 1.4.x. It doesn't occur on Trac 1.5.x.

I noticed it while investigating th:#14054.

{{{
$ ~/venv/trac/1.4.3/bin/python
Python 2.7.18 (default, Mar  8 2021, 13:02:45)
[GCC 9.3.0] on linux2
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
>>> from trac import __version__
>>> __version__
'1.4.3'
>>> from trac import db_default
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
  File ""/home/jun66j5/venv/trac/1.4.3/local/lib/python2.7/site-packages/trac/db_default.py"", line 17, in <module>
    from trac.db.schema import Table, Column, Index
  File ""/home/jun66j5/venv/trac/1.4.3/local/lib/python2.7/site-packages/trac/db/__init__.py"", line 14, in <module>
    from trac.db.api import *
  File ""/home/jun66j5/venv/trac/1.4.3/local/lib/python2.7/site-packages/trac/db/api.py"", line 23, in <module>
    from trac import db_default
ImportError: cannot import name db_default
>>> 
>>> import trac.db.api
>>> from trac import db_default
}}}",Jun Omae
next-stable-1.6.x Release,13390,tracd with SQLite crashes when concurrently reloading configuration and sending requests,web frontend,,defect,normal,,new,2021-04-12T17:01:27+02:00,2023-09-23T22:33:10+02:00,"I noticed this issue while investigating #13345.

==== Session 1
Launch tracd:
{{{
$ ~/venv/trac/1.4.2/bin/python -m trac.web.standalone -p 3000 /dev/shm/tracenv-1.4
}}}

==== Session 2
Touch trac.ini repeatedly
{{{
>>> def touch_file_endless(filename):
...     while True:
...         os.utime(filename, None)
...         time.sleep(0.1)
...
>>> touch_file_endless('/dev/shm/tracenv-1.4/conf/trac.ini')
}}}

==== Session 3
Concurrently sending requests
{{{
$ ab -c2 -n1000000 http://127.0.0.1:3000/tracenv-1.4/wiki/WikiStart
}}}

==== Result
{{{
...
127.0.0.1 - - [12/Apr/2021 23:47:32] ""GET /tracenv-1.4/wiki/WikiStart HTTP/1.0"" 200 -
127.0.0.1 - - [12/Apr/2021 23:47:32] ""GET /tracenv-1.4/wiki/WikiStart HTTP/1.0"" 200 -
127.0.0.1 - - [12/Apr/2021 23:47:32] ""GET /tracenv-1.4/wiki/WikiStart HTTP/1.0"" 200 -
Segmentation fault
}}}

{{{
#0  sqlite3ErrorFinish (db=0x7fffe0062c48, err_code=err_code@entry=25) at sqlite3.c:31372
#1  0x00007ffff39ba6c4 in sqlite3Error (err_code=25, db=<optimized out>) at sqlite3.c:31384
#2  columnMem (pStmt=0x7fffe00643b8, i=<optimized out>) at sqlite3.c:18767
#3  0x00007ffff39c6e1e in sqlite3_column_type (pStmt=0x7fffe00643b8, i=i@entry=0) at sqlite3.c:84404
#4  0x00007ffff39a86c8 in _pysqlite_fetch_one_row (self=self@entry=0x7fffe8ebbcb0) at src/cursor.c:316
#5  0x00007ffff39a9445 in _pysqlite_query_execute (self=0x7fffe8ebbcb0, multiple=0, args=<optimized out>) at src/cursor.c:629
#6  0x00000000004a5a8e in PyObject_Call ()
#7  0x00000000004c620d in PyEval_CallObjectWithKeywords ()
#8  0x0000000000538e5c in ?? ()
#9  0x00000000004a5a8e in PyObject_Call ()
#10 0x00000000004beff5 in PyEval_EvalFrameEx ()
#11 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#12 0x00000000004c2214 in PyEval_EvalFrameEx ()
#13 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#14 0x00000000004d5869 in ?? ()
#15 0x00000000004eed1e in ?? ()
#16 0x00000000004a5a8e in PyObject_Call ()
#17 0x00000000004beff5 in PyEval_EvalFrameEx ()
#18 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#19 0x00000000004c2214 in PyEval_EvalFrameEx ()
#20 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#21 0x00000000004c1ad7 in PyEval_EvalFrameEx ()
#22 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#23 0x00000000004c1ad7 in PyEval_EvalFrameEx ()
#24 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#25 0x00000000004d5869 in ?? ()
#26 0x00000000004eed1e in ?? ()
#27 0x00000000004a5a8e in PyObject_Call ()
#28 0x0000000000549733 in ?? ()
#29 0x00000000004c194f in PyEval_EvalFrameEx ()
#30 0x00000000004c16ff in PyEval_EvalFrameEx ()
#31 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#32 0x00000000004d5869 in ?? ()
#33 0x00000000004ae691 in PyObject_CallFunctionObjArgs ()
#34 0x000000000041ce69 in _PyObject_GenericGetAttrWithDict ()
#35 0x00000000004bc609 in PyEval_EvalFrameEx ()
#36 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#37 0x00000000004c2214 in PyEval_EvalFrameEx ()
#38 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#39 0x00000000004c2214 in PyEval_EvalFrameEx ()
#40 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#41 0x00000000004c1ad7 in PyEval_EvalFrameEx ()
#42 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#43 0x00000000004c2214 in PyEval_EvalFrameEx ()
#44 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#45 0x00000000004c1ad7 in PyEval_EvalFrameEx ()
#46 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#47 0x00000000004c2214 in PyEval_EvalFrameEx ()
#48 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#49 0x00000000004c1ad7 in PyEval_EvalFrameEx ()
#50 0x00000000004c16ff in PyEval_EvalFrameEx ()
#51 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#52 0x00000000004c2214 in PyEval_EvalFrameEx ()
#53 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#54 0x00000000004c2214 in PyEval_EvalFrameEx ()
#55 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#56 0x00000000004d5869 in ?? ()
#57 0x00000000004eed1e in ?? ()
#58 0x00000000004a5a8e in PyObject_Call ()
#59 0x0000000000549733 in ?? ()
#60 0x00000000004c194f in PyEval_EvalFrameEx ()
#61 0x00000000004c16ff in PyEval_EvalFrameEx ()
#62 0x00000000004c16ff in PyEval_EvalFrameEx ()
#63 0x00000000004c16ff in PyEval_EvalFrameEx ()
#64 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#65 0x00000000004d5869 in ?? ()
#66 0x00000000004eed1e in ?? ()
#67 0x00000000004a5a8e in PyObject_Call ()
#68 0x00000000004d9342 in PyInstance_New ()
#69 0x00000000004c194f in PyEval_EvalFrameEx ()
#70 0x00000000004c16ff in PyEval_EvalFrameEx ()
#71 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#72 0x00000000004d59a3 in ?? ()
#73 0x00000000004a5a8e in PyObject_Call ()
#74 0x00000000004beff5 in PyEval_EvalFrameEx ()
#75 0x00000000004c16ff in PyEval_EvalFrameEx ()
#76 0x00000000004c16ff in PyEval_EvalFrameEx ()
#77 0x00000000004b9e36 in PyEval_EvalCodeEx ()
#78 0x00000000004d5869 in ?? ()
#79 0x00000000004eed1e in ?? ()
#80 0x00000000004a5a8e in PyObject_Call ()
#81 0x00000000004c61c0 in PyEval_CallObjectWithKeywords ()
#82 0x0000000000588142 in ?? ()
#83 0x00007ffff7bc16ba in start_thread (arg=0x7fffe8c60700) at pthread_create.c:333
#84 0x00007ffff78f74dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
}}}",Jun Omae
next-stable-1.6.x Release,13360,setlocale is not thread-safe but it is invoked from dispatch_request on multi-thread environment,web frontend,,defect,normal,,new,2021-03-16T10:22:44+01:00,2023-09-23T22:33:10+02:00,"[https://docs.python.org/3/library/locale.html#locale.setlocale setlocale] is not thread-safe on most systems. However, the function is invoked from `dispatch_request` on `tracd`, mod_wsgi with `threads=N` parameter.",Jun Omae
next-stable-1.6.x Release,13350,Search word not highlighting when word's length < 3,search system,,defect,minor,,new,2021-02-15T09:24:17+01:00,2023-09-23T22:33:10+02:00,"In CJK environments, `[search] min_query_length` option often is configured with `1` or `2`. However, search word is not highlighting when searching 2 characters word.

I think we should remove checking word's length in search.js:

{{{#!diff
diff --git a/trac/htdocs/js/search.js b/trac/htdocs/js/search.js
index e4cb164dd..110bcfc5b 100644
--- a/trac/htdocs/js/search.js
+++ b/trac/htdocs/js/search.js
@@ -44,8 +44,7 @@
               var term = this.replace(/^\s+$/, """")
                          .replace(/^['""]/, """")
                          .replace(/['""]$/, """");
-              if (term.length >= 3)
-                terms.push(term);
+              terms.push(term);
             }
           });
           return terms;
}}}",Jun Omae
next-stable-1.6.x Release,13247,Log warning if necessary environment directories are not writeable,general,,enhancement,normal,,new,2020-02-04T23:53:15+01:00,2023-09-23T22:33:10+02:00,"The following directories need to be writable:
* `files`
* `conf`: only if web administration is used. A warning is already raised (""Warning: Error writing to trac.ini, make sure it is writable by the web server. Your changes have not been saved.), but it could still be useful to log at environment startup.

If `file` logging is used, `log` must be writable, but the following error is already raised:
{{{
Internal Server Error

TracError: IOError: [Errno 13] Permission denied: u'/Users/rjollos/Documents/Workspace/trac-dev/tracenvs/proj-1.4/log/trac.log'
}}}

If SQLite is used, `db` must be writable, but an error is already raised/logged:
{{{
14:46:59 Trac[env] WARNING: Component <Component trac.db.api.DatabaseManager> failed with ConfigurationError: The user <code>rjollos</code> requires read _and_ write permissions to the database file <code>/Users/rjollos/Documents/Workspace/trac-dev/tracenvs/proj-1.4/db/trac.db</code> and the directory it is located in.
}}}

We could log a warning in [browser:tags/trac-1.4/trac/env.py Environment.verify] if the directories are not writable. Or we could have the associated module log the warning, such as `trac.admin.web_ui` for `conf`.

I'd also like to add some guidance to `TracInstall` or `TracEnvironment` on what files and directories need to be writable by the web server user. TracEnvironment says

    The user under which the web server runs will require file system write permission to the environment directory and all the files inside. 

However, that's not very precise. Write permissions aren't needed, and may be undesirable for security reasons, for the `htdocs`, `plugins` and `templates` directories.",Ryan J Ollos
next-stable-1.6.x Release,13235,Comment textarea doesn't get focus on loading when replying using Firefox and Edge,rendering,1.0.19,defect,minor,,new,2019-12-18T04:49:17+01:00,2023-09-23T22:33:10+02:00,"We expect comment textarea gets focus when visiting https://trac.edgewall.org/demo-1.0/ticket/1?replyto=description#comment, however it doesn't work using Firefox and Edge. It works fine using Chrome.",Jun Omae
next-stable-1.6.x Release,13226,Hard to find buttons of each report due to the border removed,report system,1.4,defect,normal,,new,2019-11-28T11:51:35+01:00,2023-09-23T22:33:10+02:00,"The layout of /report has changed after migration from 1.2.3 to 1.4. With 1.2.3 there was a dotted line from the report title to the buttons, separating the lines. Now that line has disappeared. While the page witdth is automatically set to window width it is hard to find the button on common screen sizes.  
The old version you can see on https://trac.edgewall.org/demo-1.2/report

Either put the buttons directly after the titles, reduce the width or add some line separators.

Is there a quick workaround by overwriting the CSS to solve this?",massimo.b@…
next-stable-1.6.x Release,13197,Redundant escaping exception messages from INavigationContributor components,rendering,,defect,normal,,new,2019-08-27T05:19:21+02:00,2023-09-23T22:33:10+02:00,"Exception messages from `INavigationContributor` components are redundantly escaped when showing as a warning.

[[Image(configuration-error-1.4-stable.png,width=100%)]]

{{{#!diff
diff --git a/trac/web/chrome.py b/trac/web/chrome.py
index 1bbb5f665..619d325d6 100644
--- a/trac/web/chrome.py
+++ b/trac/web/chrome.py
@@ -65,7 +65,7 @@ from trac.util.datefmt import (
     get_day_names_jquery_ui, get_timezone_list_jquery_ui,
     get_first_week_day_jquery_ui, get_timepicker_separator_jquery_ui,
     get_period_names_jquery_ui, localtz)
-from trac.util.translation import _, get_available_locales
+from trac.util.translation import _, get_available_locales, tag_
 from trac.web.api import IRequestHandler, ITemplateStreamFilter, HTTPNotFound
 from trac.web.href import Href
 from trac.wiki import IWikiSyntaxProvider
@@ -411,9 +411,10 @@ def component_guard(env, req, component):
         try:
             yield
         except Exception as e:
-            add_warning(req, _(""%(component)s failed with %(exc)s"",
-                               component=component.__class__.__name__,
-                               exc=exception_to_unicode(e)))
+            add_warning(req, tag_(""%(component)s failed with %(exc)s"",
+                                  component=component.__class__.__name__,
+                                  exc=tag(e.__class__.__name__, ': ',
+                                          to_fragment(e))))
             raise


}}}",Jun Omae
next-stable-1.6.x Release,13175,Add video renderer in Trac core,rendering,,enhancement,normal,,new,2019-06-26T12:01:59+02:00,2023-09-23T22:33:10+02:00,"Trac is able to render an image file but not a video file. I'd like to add the following component to trac/mimeview/api.py.

{{{#!python
class VideoRenderer(Component):

    implements(IHTMLPreviewRenderer)

    def get_quality_ratio(self, mimetype):
        if mimetype.startswith('video/'):
            return 8
        return 0

    def render(self, context, mimetype, content, filename=None, url=None):
        if url:
            return tag.div(tag.video(src=url, alt=filename, type=mimetype,
                                     controls='controls'),
                           class_='video-file')
}}}",Jun Omae
next-stable-1.6.x Release,13169,GitNode.get_content() read entire of a file into memory even if it is huge,plugin/git,,defect,minor,,new,2019-06-06T10:29:43+02:00,2023-09-23T22:33:10+02:00,"I think we should use `TemporaryFile`/`SpooledTemporaryFile` rather than `cStringIO`.

See also:

 - [source:/tags/trac-1.0.17/tracopt/versioncontrol/git/git_fs.py@:749#L746 GitNode.get_content()]
 - [source:/tags/trac-1.0.17/tracopt/versioncontrol/git/PyGIT.py@:851#L850 get_file()] - `cStringIO` is used
 - [source:/tags/trac-1.0.17/tracopt/versioncontrol/git/PyGIT.py@:702#L679 cat_file()] - entire of the content into memory by `Popen.stdout.read(size)`",Jun Omae
next-stable-1.6.x Release,13104,TracAdmin hotcopy fails with InnoDB backend,general,,defect,normal,,new,2018-11-15T06:11:55+01:00,2023-09-23T22:33:10+02:00,"Discussed in gmessage:trac-users:G3c4SoOVOZU/Ca_fpdq9BgAJ. The proposed change is:

{{{#!diff
diff --git a/trac/db/mysql_backend.py b/trac/db/mysql_backend.py 
index f607bce30..01cb4fc1d 100644 
--- a/trac/db/mysql_backend.py 
+++ b/trac/db/mysql_backend.py 
@@ -240,7 +240,8 @@ class MySQLConnector(Component): 
         db_params = db_prop.setdefault('params', {}) 
         db_name = os.path.basename(db_prop['path']) 

-        args = [self.mysqldump_path, '--no-defaults'] 
+        defaults_opt = '--no-defaults' 
+        args = [] 
         if 'host' in db_prop: 
             args.extend(['-h', db_prop['host']]) 
         if 'port' in db_prop: 
@@ -252,14 +253,15 @@ class MySQLConnector(Component): 
                 args.append('--compress') 
             elif name == 'named_pipe' and as_int(value, 0): 
                 args.append('--protocol=pipe') 
-            elif name == 'read_default_file':  # Must be first 
-                args.insert(1, '--defaults-file=' + value) 
+            elif name == 'read_default_file': 
+                defaults_opt = '--defaults-file=' + value 
             elif name == 'unix_socket': 
                 args.extend(['--protocol=socket', '--socket=' + value]) 
             elif name not in ('init_command', 'read_default_group'): 
                 self.log.warning(""Invalid connection string parameter '%s'"", 
                                  name) 
-        args.extend(['-r', dest_file, db_name]) 
+        args = [self.mysqldump_path, defaults_opt, '--single-transaction', 
+                '--quick'] + args + ['-r', dest_file, db_name] 

         environ = os.environ.copy() 
         if 'password' in db_prop:
}}}",Ryan J Ollos
next-stable-1.6.x Release,13011,Fixup whitespace on repository admin pages when saving changes,admin/web,,defect,normal,,new,2018-04-19T23:40:49+02:00,2023-09-23T22:33:10+02:00,"(Moved from #11371)

The following behaviours should be implemented to make the Repository admin page consistent with the other admin pages:
 * Call `simplify_whitespace` on the `name` and `alias`.
 * Remove leading and trailing whitespace from the `directory` and `url`.

Also:
 * we should `simplify whitespace` on the `Component` `owner` field. 
 * `simplify_whitespace` should be extended to remove zero-width spaces (comment:5:ticket:11351).",Ryan J Ollos
next-stable-1.6.x Release,12999,Render closed milestones in ticket query strike-through,query system,1.2.1,enhancement,normal,,new,2018-03-26T14:38:10+02:00,2023-09-23T22:33:10+02:00,"When embedding a ticket query like this

{{{
[[TicketQuery(component=MyApp&group=milestone,format=progress)]]
}}}

can closed milestones be rendered strike-through, consistent with milestones in other contexts and tickets in general?
",joerg.pleumann@…
next-stable-1.6.x Release,12997,"Sending email on ticket attachments with ""Replace existing attachment of the same name""",notification,,defect,normal,,new,2018-03-21T16:24:04+01:00,2023-09-23T22:33:10+02:00,"When a file is attached to a ticket and ""Replace existing attachment of the same name"" is choses, two emails are sent:
*) The first email contains ""Attachment ""zzz.patch"" removed and has as subject ""[Project #id] {Current summary} (was: {former summary})"".
*) The second email contains ""Attachment ""zzz.patch"" added and has as subject ""[Project #id] {Current summary}""

Including a summary the ticket has in the past is not necessary and clutters the email.  The email on uploading an attachment shall contain only the current summary, except the very same operation changes the summary.

I would like to get on the operation ""replacing existing attachment"" a single email.

https://code.djangoproject.com/ticket/ uses track and for these changes and I was told to report them here (https://code.djangoproject.com/ticket/29240)",dpa-bugs@…
next-stable-1.6.x Release,12969,query paging problem when num_items <= max and page > 1,query system,,defect,minor,,new,2018-01-03T16:25:08+01:00,2023-09-23T22:33:10+02:00,"Suppose a query generates 20 results. max=20 is specified in the query string. When page=n (n>1) is also specified, the query will always return the 20 results rather than ""beyond the number of pages"" Error.

It's ok with web UI, so not sure this is a bug or feature. But it does bring trouble to other components which rely on query system, such as XMLRPC plugin. Suppose you query through xmlrpc with max=20&page=1 and 20 results returned, then query with max=20&page=2 but another 20 results returned, which is not quite reasonable.

How to reproduce:
Visit here: [https://trac.edgewall.org/query?summary=~query+paging+problem&page=100&max=1]

Related code:
{{{ 
        if self.num_items <= self.max:
            self.has_more_pages = False

        if self.has_more_pages:
            max = self.max
            if self.group:
                max += 1
            sql += "" LIMIT %d OFFSET %d"" % (max, self.offset)
            if (self.page > int(ceil(float(self.num_items) / self.max)) and
                self.num_items != 0): 
                #this should not depend of has_more_pages condition
                raise TracError(_(""Page %(page)s is beyond the number of ""
                                  ""pages in the query"", page=self.page))
 }}}
",cauly@…
next-stable-1.6.x Release,12922,AuthzSourcePolicy doesn't deny viewing changeset on restricted path,version control,,defect,normal,,new,2017-09-24T07:36:34+02:00,2023-09-23T22:33:10+02:00,"There seems to be an inconsistency in `AuthzSourcePolicy` permission checking for files and changesets. For files, a `True` or `False` decision is made based on the authz configuration: [browser:tags/trac-1.2.2/trac/versioncontrol/svn_authz.py@:219#L181]. However, for changesets the decision will be `True` or `None`: [browser:tags/trac-1.2.2/trac/versioncontrol/svn_authz.py@:223-225#L181]. When the decision is `None`, other policies are consulted.

Simple example:
{{{#!ini
[/dir1]
user1 = r
[/dir2]
user2 = r
}}}

Consider a change to `/dir1/file1`, where no users have coarse-grained `FILE_VIEW` and `CHANGESET_VIEW`. `user1` can view the file and changeset and `user2` cannot. Now grant `FILE_VIEW` and `CHANGESET_VIEW` to `authenticated`. The behavior is the same for `user1`. However, `user2` can view the changeset but cannot view the file.

View of `user1`:

[[Image(Screen Shot 2017-09-23 at 22.35.26.png,border=2)]]

View of `user2`:

[[Image(Screen Shot 2017-09-23 at 22.36.15.png,border=2)]]

The issue may have been introduced in r10007.",Ryan J Ollos
next-stable-1.6.x Release,12909,Adding Ticket.select to bulk fetch records,ticket system,,enhancement,normal,,new,2017-09-07T05:05:13+02:00,2023-09-23T22:33:10+02:00,"When retrieving ticket records in custom query, `QueryModule` executes `SELECT` query to `ticket_custom` table N times a `Ticket` instance. That behavior is slow....

I think we could reduce it to 1 time with `Ticket.select` to bulk fetch records.

th:ExcelDownloadPlugin does bulk fetch tickets at th:source:exceldownloadplugin/0.12/tracexceldownload/ticket.py@16204#L57.",Jun Omae
next-stable-1.6.x Release,12903,Should catch KeyboardInterrupt when initenv is invoked via command line,admin/console,1.0.15,defect,minor,,new,2017-09-01T06:31:24+02:00,2023-09-23T22:33:10+02:00,"When `initenv` is invoked via command line and entering CTRL-C on prompt for project name, `KeyboardInterrupt` is raised. I think we should catch the `KeyboardInterrupt` error.

{{{
$ /venv/trac/1.2.2/bin/trac-admin /tmp/test-test-test initenv
Creating a new Trac environment at /tmp/test-test-test

Trac will first ask a few questions about your environment
in order to initialize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]> Traceback (most recent call last):
  File ""/venv/trac/1.2.2/bin/trac-admin"", line 9, in <module>
    load_entry_point('Trac==1.2.2', 'console_scripts', 'trac-admin')()
  File ""/venv/trac/1.2.2/lib/python2.6/site-packages/trac/admin/console.py"", line 647, in run
    return _run(args)
  File ""/venv/trac/1.2.2/lib/python2.6/site-packages/trac/admin/console.py"", line 632, in _run
    return admin.onecmd(' '.join(_quote_args(args[1:])))
  File ""/venv/trac/1.2.2/lib/python2.6/site-packages/trac/admin/console.py"", line 112, in onecmd
    rv = cmd.Cmd.onecmd(self, line) or 0
  File ""/usr/lib/python2.6/cmd.py"", line 219, in onecmd
    return func(arg)
  File ""/venv/trac/1.2.2/lib/python2.6/site-packages/trac/admin/console.py"", line 459, in do_initenv
    project_name, db_str = self.get_initenv_args()
  File ""/venv/trac/1.2.2/lib/python2.6/site-packages/trac/admin/console.py"", line 399, in get_initenv_args
    default=dp)).strip() or dp)
  File ""/venv/trac/1.2.2/lib/python2.6/site-packages/trac/util/text.py"", line 294, in raw_input
    return to_unicode(__builtin__.raw_input(), sys.stdin.encoding)
KeyboardInterrupt
}}}

However, `KeyboardInterrupt` is not raised when `initenv` is invoked in `trac-admin` console and entering CTRL-C.

{{{
$ /venv/trac/1.2.2/bin/trac-admin /tmp/test-test-test
Welcome to trac-admin 1.2.2
Interactive Trac administration console.
Copyright (C) 2003-2013 Edgewall Software

Type:  '?' or 'help' for help on commands.

Trac [/tmp/test-test-test]> initenv
Creating a new Trac environment at /tmp/test-test-test

Trac will first ask a few questions about your environment
in order to initialize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]>
$ 
}}}",Jun Omae
next-stable-1.6.x Release,12844,Log TracLinks don't work as documented,version control,,defect,normal,,new,2017-06-16T17:03:34+02:00,2023-09-23T22:33:10+02:00,"The documentation (TracLinks#Multi-repositorylinks) and [browser:/branches/1.2-stable/trac/versioncontrol/web_ui/tests/wikisyntax.py@14877:309#L307 wikisyntax.py] tests imply the following should work:

log:rjollos.git/1.0-stable

Before I edited (TracLinks@102#Multi-repositorylinks), the documentation seemed to imply that an explicit `branches` should be included, but that doesn't work either:

log:rjollos.git/branches/1.0-stable

The repository-relative path works for an svn repository:

log:svn/branches/1.0-stable

The following works for a Git repository:

log:rjollos.git:1.0-stable

Is this a defect, or do we just need to update the docs?",Ryan J Ollos
next-stable-1.6.x Release,12825,OverflowError is raised from to_datetime(),timeline,,defect,normal,,new,2017-06-02T08:16:05+02:00,2023-09-23T22:33:10+02:00,"`to_datetime()` has an issue while invoking `pytz.tzinfo.normalize()`: `/timeline?from=0001-01-01T01:00:00Z&daysback=0`

{{{
Traceback (most recent call last):
  File ""build/bdist.linux-x86_64/egg/trac/web/main.py"", line 567, in _dispatch_request
    dispatcher.dispatch(req)
  File ""build/bdist.linux-x86_64/egg/trac/web/main.py"", line 249, in dispatch
    resp = chosen_handler.process_request(req)
  File ""build/bdist.linux-x86_64/egg/trac/timeline/web_ui.py"", line 181, in process_request
    timedelta(days=daysback + 1), req.tz)
  File ""build/bdist.linux-x86_64/egg/trac/util/datefmt.py"", line 177, in to_datetime
    return tz.normalize(dt)
  File ""build/bdist.linux-x86_64/egg/trac/util/datefmt.py"", line 1049, in normalize
    return self.fromutc(dt.replace(tzinfo=self) - dt.utcoffset())
OverflowError: date value out of range
}}}

`ValueError` also can be raised.
{{{
>>> from trac.util.datefmt import to_datetime
>>> to_datetime(-10000000000000000000)
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
  File ""/venv/trac/1.0.13/lib/python2.5/site-packages/trac/util/datefmt.py"", line 170, in to_datetime
    dt = datetime.fromtimestamp(integer - 1, tz) + \
ValueError: year is out of range
>>> to_datetime(+10000000000000000000)
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
  File ""/venv/trac/1.0.13/lib/python2.5/site-packages/trac/util/datefmt.py"", line 173, in to_datetime
    dt = datetime.fromtimestamp(t, tz)
ValueError: year is out of range
}}}

I think we should catch `ValueError` and `OverflowError`, and raise a `TracError` (`TracValueError` if 1.2.1+) rather than.

Another case, timeline module has the same issue: `/timeline?from=0001-01-01T01:00:00Z&daysback=3`
{{{
Traceback (most recent call last):
  File ""build/bdist.linux-x86_64/egg/trac/web/main.py"", line 567, in _dispatch_request
    dispatcher.dispatch(req)
  File ""build/bdist.linux-x86_64/egg/trac/web/main.py"", line 249, in dispatch
    resp = chosen_handler.process_request(req)
  File ""build/bdist.linux-x86_64/egg/trac/timeline/web_ui.py"", line 181, in process_request
    timedelta(days=daysback + 1), req.tz)
OverflowError: date value out of range
}}}",Jun Omae
next-stable-1.6.x Release,12809,Add set_owner_default attribute to specify default value of set_owner in ticket-workflow,ticket system,,enhancement,normal,,new,2017-05-17T04:42:04+02:00,2023-09-23T22:33:10+02:00,"`set_owner` attribute in ticket-workflow currently uses `req.authname` for the default value. It would be useful to specify any username, //reporter//, //previous owner// or //component owner//. That is inspired by th:AdvancedTicketWorkflowPlugin.

|| //action//.set_owner_default = <reporter> || Ticket's reporter ||
|| //action//.set_owner_default = <previous> || Previous owner ||
|| //action//.set_owner_default = <component-owner> || Component's owner ||
|| //action//.set_owner_default = username || Any username ||

I implemented it via `IRequestFilter.post_process_request` with Trac 1.0.x.",Jun Omae
next-stable-1.6.x Release,12792,"Configuration parsing in svn_authz module ignores user ""rem"" as a comment",general,,defect,normal,,new,2017-04-30T07:37:57+02:00,2023-09-23T22:33:10+02:00,"Copied from [ticket:12649#comment:11]:
----
`ConfigParser` ignores a line started with `rem` as a comment. User named `rem` cannot be used in.

{{{#!pycon
>>> from trac.versioncontrol.svn_authz import parse
>>> from trac.util import read_file
>>> print(read_file('/tmp/svnauthz.txt'))
[/path/to]
foo = rw
REM = rw
Rem = rw
rem = rw

>>> parse('/tmp/svnauthz.txt', [''])
{'': {u'/path/to': {u'foo': True}}}
}}}",Ryan J Ollos
next-stable-1.6.x Release,12756,Pseudo anchors should allow whitespace and special characters,wiki system,,defect,normal,,new,2017-04-03T06:10:27+02:00,2023-09-23T22:33:10+02:00,"It doesn't seem to be possible to use whitespace or special characters in a [TracLinks#Linkanchors pseudo anchor] (#10284).

For example, I've wanted to have an anchor to `class Environment(Component)` in [browser:trunk/trac/env.py].
* [browser:trunk/trac/env.py#/Environment] anchors to an earlier instance of the `Environment` token
* None of the following work:
 * [browser:trunk/trac/env.py#/class%20Environment]
 * [browser:trunk/trac/env.py#/Environment(]
 * [browser:trunk/trac/env.py#/Environment%28]
 * [browser:trunk/trac/env.py#/'Environment(']
 * [browser:trunk/trac/env.py#/""Environment(""]",Ryan J Ollos
next-stable-1.6.x Release,12755,Some options on about page incorrectly showing as modified,general,1.2.1,defect,normal,,new,2017-04-02T10:35:46+02:00,2023-09-23T22:33:10+02:00,"On one site that I manage some options are incorrectly showing as highlighted, running Trac 1.2.1:

[[Image(Screen Shot 2017-04-02 at 01.31.36.png,100%)]]

The values in trac.ini are:
{{{#!ini
[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
}}}

None of the values in the `[browser]` section should be displaying as modified, but I have no idea what the problem might be.",Ryan J Ollos
next-stable-1.6.x Release,12745,Changeset view with single revision which has many files is so slow,version control/changeset view,,enhancement,normal,,new,2017-03-25T11:25:28+01:00,2023-09-23T22:33:10+02:00,"From [ticket:12545#comment:5]:
----
Changeset view with single revision which has many files is so slow caused by execution of `git ls-tree REV PATH` for each revision and file. I'd like to fix on 1.0-stable but it doesn't seem to be unable to fix without API changes.",Jun Omae
next-stable-1.6.x Release,12743,Closed milestones always shown on batch modify form,ticket system,,defect,normal,,new,2017-03-23T02:10:48+01:00,2023-09-23T22:33:10+02:00,"Closed milestones are only shown on the ticket page if the user has `TICKET_ADMIN`: [browser:tags/trac-1.2/trac/ticket/web_ui.py@:1582-1583#L1572]. However all milestones are shown on the batch modify form if the user has `TICKET_BATCH_MODIFY` and `MILESTONE_VIEW`, without having `TICKET_ADMIN`.

Also, empty milestone select is shown if user doesn't have `MILESTONE_VIEW`, but field should probably just be hidden.",Ryan J Ollos
next-stable-1.6.x Release,12742,"Invalid log link does not render with ""missing"" class",version control,,defect,normal,,new,2017-03-23T01:31:40+01:00,2023-09-23T22:33:10+02:00,"Example:
* log:/a/non-existent/file

Non-existent revision range does not render with missing class:
* r1:10000000
* r1000000:1000001

Minor issue: some missing TracLinks have a ""missing"" title, others do not:
* comment:10000:ticket:1 => //ticket comment does not exist//
* ticket:1000000 => no title attribute",Ryan J Ollos
next-stable-1.6.x Release,12733,Inconsistent linking for bold-formatted CamelCase words,wiki system,,defect,normal,,new,2017-03-16T23:47:25+01:00,2023-09-23T22:33:10+02:00,"Note in comment:3:ticket:11427, ExtensionOption, ExtensionOption: and **ExtensionOption** (`**ExtensionOption**`) are are rendered as links, but **ExtensionOption:** (`**ExtensionOption:**`) is not.",Ryan J Ollos
next-stable-1.6.x Release,12714,TypeError is raised when passing value to time field via query string of /newticket,ticket system,,defect,normal,,new,2017-03-06T06:43:21+01:00,2023-09-23T22:33:10+02:00,"`/newticket?timefield=0` crashes. `/newticket?timefield=now` and `/newticket?timefield=2017-03-06T12:34:56+00:00` work. However, `/newticket?timefield=2017-03-06T12:34:56Z` differs with `/newticket?timefield=2017-03-06T12:34:56+00:00`.

{{{
02:32:43 PM Trac[main] ERROR: Internal Server Error: <RequestWithSession ""GET '/newticket?timefield=0'"">, referrer None
Traceback (most recent call last):
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/web/main.py"", line 613, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/web/main.py"", line 273, in dispatch
    iterable=chrome.use_chunked_encoding)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/web/chrome.py"", line 1159, in render_template
    encoding='utf-8')
  ...
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/ticket/templates/ticket_box.html"", line 94, in <Expression u""pretty_dateinfo(value, field.format, dateonly=field.format != 'relative') if value else None"">
    ${pretty_dateinfo(value, field.format, dateonly=field.format != 'relative') if value else None}
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/timeline/web_ui.py"", line 283, in pretty_dateinfo
    absolute = user_time(req, format_datetime, date)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/util/datefmt.py"", line 909, in user_time
    return func(*args, **kwargs)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/util/datefmt.py"", line 312, in format_datetime
    return _format_datetime(t, format, tzinfo, locale, 'datetime')
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/util/datefmt.py"", line 268, in _format_datetime
    t = to_datetime(t, tzinfo or localtz)
  File ""/venv/trac/1.2/lib/python2.6/site-packages/trac/util/datefmt.py"", line 179, in to_datetime
    type(t))
TypeError: expecting datetime, int, long, float, or None; got <type 'unicode'>
}}}",Jun Omae
next-stable-1.6.x Release,12678,InterTrac link fails to link to a heading,wiki system,,defect,normal,,new,2017-02-05T22:54:24+01:00,2023-09-23T22:33:10+02:00,"I noticed while writing in [wiki:1.3/TracUpgrade], trac:TracFaq#Q:Attachmentsaremissingafterupgrade fails to link to the heading, whereas the full URL works fine https://trac.edgewall.org/wiki/TracFaq#Q:Attachmentsaremissingafterupgrade.",Ryan J Ollos
next-stable-1.6.x Release,12587,"""time_end"" and ""changetime_end"" custom fields conflict with text field for end of time and changetime in query filter",query system,,defect,normal,,new,2016-09-14T16:02:43+02:00,2023-09-23T22:33:10+02:00,"The filters of query page create text fields for start and end of range. Name of the text field for end of range would be `<name>_end`, e.g. `0_time_end`.

The name conflicts with `time_end` as custom field. The filters in query page doesn't work due to this issue.

[[Image(fieldname_with_end.png)]]",Jun Omae
next-stable-1.6.x Release,12575,Please improve documentation at TracNotification#Customizingthee-mailcontent,notification,,enhancement,normal,,new,2016-08-31T17:23:51+02:00,2023-09-23T22:33:10+02:00,"From TracNotification#Customizingthee-mailcontent it's not immediately obvious that the template can reference arbitrary ticket fields; in particular, the example given to better support Outlook actually implies that the best way to get at them is to parse them out of `ticket_props`.

According to comment:7:ticket:9494, the template can just reference e.g. `$ticket.product`.

I think the documentation should enumerate the variables that are available to the template, and that the Outlook example should be updated to use such direct references (because, as reported in #9494, the example doesn't work when text wrapping occurs in the `ticket_props` table).",korn-trac.edgewall.org@…
next-stable-1.6.x Release,12495,RuntimeError: maximum recursion depth exceeded if [inherit] file option refers itself or circularly refers,general,,defect,minor,,new,2016-05-31T04:42:38+02:00,2023-09-23T22:33:10+02:00,"{{{
$ trac-admin /dev/shm/tracenv initenv --inherit=trac.ini 'My Project' sqlite:db/trac.db
...
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 68, in __init__
    self.parse_if_needed(force=True)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 295, in parse_if_needed
    self.parents.append(Configuration(filename))
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 68, in __init__
    self.parse_if_needed(force=True)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 295, in parse_if_needed
    self.parents.append(Configuration(filename))
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 68, in __init__
    self.parse_if_needed(force=True)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 284, in parse_if_needed
    self._old_sections = deepcopy(self.parser._sections)
  File ""/usr/lib/python2.5/copy.py"", line 162, in deepcopy
    y = copier(x, memo)
  File ""/usr/lib/python2.5/copy.py"", line 254, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File ""/usr/lib/python2.5/copy.py"", line 162, in deepcopy
    y = copier(x, memo)
  File ""/usr/lib/python2.5/copy.py"", line 254, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File ""/usr/lib/python2.5/copy.py"", line 162, in deepcopy
    y = copier(x, memo)
RuntimeError: maximum recursion depth exceeded
}}}
{{{
$ cat /dev/shm/inherit1.ini
[inherit]
file = inherit2.ini
$ cat /dev/shm/inherit2.ini
[inherit]
file = inherit1.ini
$ trac-admin /dev/shm/tracenv initenv --inherit=/dev/shm/inherit1.ini 'My Project' sqlite:db/trac.db
...
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 68, in __init__
    self.parse_if_needed(force=True)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 295, in parse_if_needed
    self.parents.append(Configuration(filename))
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 68, in __init__
    self.parse_if_needed(force=True)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 295, in parse_if_needed
    self.parents.append(Configuration(filename))
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 68, in __init__
    self.parse_if_needed(force=True)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/config.py"", line 284, in parse_if_needed
    self._old_sections = deepcopy(self.parser._sections)
  File ""/usr/lib/python2.5/copy.py"", line 162, in deepcopy
    y = copier(x, memo)
  File ""/usr/lib/python2.5/copy.py"", line 254, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File ""/usr/lib/python2.5/copy.py"", line 162, in deepcopy
    y = copier(x, memo)
  File ""/usr/lib/python2.5/copy.py"", line 254, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File ""/usr/lib/python2.5/copy.py"", line 162, in deepcopy
    y = copier(x, memo)
RuntimeError: maximum recursion depth exceeded
}}}",Jun Omae
next-stable-1.6.x Release,12484,GitErrorSha is raised from /diff page when the git repository is empty,version control/changeset view,1.0.11,defect,minor,,new,2016-05-20T08:23:45+02:00,2023-09-23T22:33:10+02:00,"{{{
03:18:05 PM Trac[main] ERROR: Internal Server Error: <RequestWithSession ""GET '/changeset?old_path=%2Fempty.git&old=&new_path=%2Fempty.git&new='"">, referrer 'http://127.0.0.1:3000/diff'
Traceback (most recent call last):
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/web/main.py"", line 562, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/web/main.py"", line 249, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/versioncontrol/web_ui/changeset.py"", line 301, in process_request
    prev_path, prev_rev = new_path, repos.previous_rev(new)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/trac/versioncontrol/cache.py"", line 397, in previous_rev
    return self.repos.previous_rev(self.normalize_rev(rev), path)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/tracopt/versioncontrol/git/git_fs.py"", line 599, in previous_rev
    return self.git.hist_prev_revision(rev)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/tracopt/versioncontrol/git/PyGIT.py"", line 643, in hist_prev_revision
    return self.history_relative_rev(sha, +1)
  File ""/venv/trac/1.0.11/lib/python2.5/site-packages/tracopt/versioncontrol/git/PyGIT.py"", line 622, in history_relative_rev
    raise GitErrorSha()
GitErrorSha:
}}}",Jun Omae
next-stable-1.6.x Release,12460,Environment.shutdown() drops all connections for both self and other environments in connection pool,database backend,,defect,normal,,new,2016-04-20T07:59:00+02:00,2023-09-23T22:33:10+02:00,"I think that result means `Environment.shutdown()` can wrongly close a database connection used for a other request on multi-threads in trac/web/main.py.

{{{#!pycon
$ ~/venv/trac/1.0.10/bin/python
Python 2.5.6 (r256:88840, Oct 21 2014, 22:49:55)
[GCC 4.8.2] on linux2
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
>>> from __future__ import with_statement
>>> from trac.test import EnvironmentStub
>>> def fn():
...     env1 = EnvironmentStub()
...     env2 = EnvironmentStub()
...     with env1.db_query as db:
...         print(db('SELECT * FROM system'))
...         print(env2.db_query('SELECT * FROM system'))
...         env2.shutdown()
...         print(db('SELECT * FROM system'))
...
>>> fn()
[(u'database_version', u'29')]
[(u'database_version', u'29')]
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
  File ""<stdin>"", line 8, in fn
  File ""/home/jun66j5/venv/trac/1.0.10/lib/python2.5/site-packages/trac/db/api.py"", line 184, in __exit__
    self.db.close()
  File ""/home/jun66j5/venv/trac/1.0.10/lib/python2.5/site-packages/trac/db/pool.py"", line 51, in close
    self._pool._return_cnx(cnx, self._key, self._tid)
  File ""/home/jun66j5/venv/trac/1.0.10/lib/python2.5/site-packages/trac/db/pool.py"", line 166, in _return_cnx
    assert (tid, key) in self._active
AssertionError
}}}",Jun Omae
next-stable-1.6.x Release,12458,"TypeError: coercing to Unicode: need string or buffer, NoneType found",ticket system,1.0.10,defect,normal,,new,2016-04-18T17:01:08+02:00,2023-09-23T22:33:10+02:00,"It seems that this issue occurs when timeline view shows th:#12742 which has blank summary.

==== How to Reproduce ====

While doing a GET operation on `/timeline`, Trac issued an internal error.

Request parameters:
{{{
{}
}}}

User agent: `Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0`

==== System Information ====
|| '''`Trac`''' || `1.0.10` ||
|| '''`Babel`''' || `2.1.1` ||
|| '''`dnspython`''' || `1.12.0` ||
|| '''`Docutils`''' || `0.12` ||
|| '''`FullBlog`''' || `0.1.5` ||
|| '''`Genshi`''' || `0.6 (without speedups)` ||
|| '''`httplib2`''' || `0.9.2` ||
|| '''`mod_wsgi`''' || `4.3.0 (WSGIProcessGroup /srv/trac-hacks.org WSGIApplicationGroup %{GLOBAL})` ||
|| '''`Pillow`''' || `3.0.0` ||
|| '''`psycopg2`''' || `2.6.1` ||
|| '''`Pygments`''' || `2.1` ||
|| '''`Python`''' || `2.7.9 (default, Mar  1 2015, 13:01:26) ` [[br]] `[GCC 4.9.2]` ||
|| '''`python-oauth2`''' || `1.9.0.post1` ||
|| '''`pytz`''' || `2015.7` ||
|| '''`RPC`''' || `1.1.5` ||
|| '''`setuptools`''' || `20.2.2` ||
|| '''`SpamBayes`''' || `1.1b2` ||
|| '''`Subversion`''' || `1.8.10 (r1615264)` ||
|| '''`jQuery`''' || `1.7.2` ||
|| '''`jQuery UI`''' || `1.8.21` ||
|| '''`jQuery Timepicker`''' || `1.0.1` ||

==== Enabled Plugins ====
|| '''`BlogDraftPlugin`''' || `N/A` ||
|| '''`ChangeLogMacro`''' || `0.4.dev0` ||
|| '''`EmailProcessor`''' || `r10962 ` ||
|| '''`FootNoteMacro`''' || `1.5` ||
|| '''`SvnAuthzAdminPlugin`''' || `1.0.dev0` ||
|| '''`TracAccountManager`''' || `0.5.dev0` ||
|| '''`TracAcronyms`''' || `0.2` ||
|| '''`TracAutoWikify`''' || `0.2` ||
|| '''`TracExtractUrl`''' || `0.3` ||
|| '''`TracFullBlogPlugin`''' || `0.1.5` ||
|| '''`TracHacks`''' || `3.0.1.dev0` ||
|| '''`TracIncludeMacro`''' || `3.0.0.dev0` ||
|| '''`TracIniAdminPanel`''' || `1.0.1` ||
|| '''`TracNewsFlash`''' || `1.0.2` ||
|| '''`TracPoll`''' || `0.3.0.dev0` ||
|| '''`TracServerSideRedirectPlugin`''' || `1.0.0` ||
|| '''`TracSpamFilter`''' || `1.0.9.dev0` ||
|| '''`TracTags`''' || `0.9.dev0` ||
|| '''`TracTocMacro`''' || `11.0.0.5` ||
|| '''`TracVote`''' || `0.5.1.dev0` ||
|| '''`TracWikiExtras`''' || `1.0.dev0` ||
|| '''`TracXMLRPC`''' || `1.1.5` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/web/main.py"", line 554, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/web/main.py"", line 267, in dispatch
    iterable=chrome.use_chunked_encoding)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/web/chrome.py"", line 1114, in render_template
    encoding='utf-8')
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 183, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 58, in encode
    for chunk in iterator:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 339, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 826, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 670, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 771, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/output.py"", line 586, in __call__
    for ev in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/web/chrome.py"", line 1309, in _generate
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 686, in _unmark
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 1145, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 714, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 682, in _mark
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 686, in _unmark
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 1081, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 117, in __iter__
    event = self.stream.next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 714, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/filters/transform.py"", line 682, in _mark
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 378, in _match
    ctxt, start=idx + 1, **vars):
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 378, in _match
    ctxt, start=idx + 1, **vars):
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 327, in _match
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 545, in _flatten
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/path.py"", line 588, in _generate
    subevent = next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 316, in _strip
    event = next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 545, in _flatten
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/path.py"", line 588, in _generate
    subevent = next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/markup.py"", line 316, in _strip
    event = next()
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 565, in _flatten
    result = _eval_expr(data, ctxt, vars)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/base.py"", line 277, in _eval_expr
    retval = expr.evaluate(ctxt)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/genshi/template/eval.py"", line 178, in evaluate
    return eval(self.code, _globals, {'__data__': data})
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/timeline/templates/timeline.html"", line 59, in <Expression u""event.render('title', context)"">
    <span class=""time"">${format_time(event.date, 'short')}</span> ${event.render('title', context)}
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/timeline/web_ui.py"", line 366, in <lambda>
    provider.render_timeline_event(context, field, event)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/ticket/web_ui.py"", line 394, in render_timeline_event
    resolution, type)
  File ""/srv/trac-hacks.org/pve/lib/python2.7/site-packages/trac/ticket/api.py"", line 576, in format_summary
    summary = type + ': ' + summary
TypeError: coercing to Unicode: need string or buffer, NoneType found
}}}",Jun Omae
next-stable-1.6.x Release,12449,Batch modify should block tickets when selecting unavailable action for the tickets,ticket system,,defect,normal,,new,2016-04-10T20:03:36+02:00,2023-09-23T22:33:10+02:00,"When `[ticket-workflow]` has the following actions and both `reopened` and `closed` tickets are shown in custom query, both `resolve` and `reopen` actions are available in batch modify form.
{{{
resolve = new,assigned,accepted,reopened -> closed
resolve.permissions = TICKET_MODIFY
resolve.operations = set_resolution
reopen = closed -> reopened
reopen.permissions = TICKET_CREATE
reopen.operations = del_resolution
}}}
Then, if a user checks `reopened` and `closed` tickets and submits with `resolve` action, the `resolve` action wouldn't be applied to the `closed` tickets. The behavior is right but just confuse the users.

I think we should block submitting batch modify form when selecting unavailable actions for the tickets.

Example: it seems that //resolve// action is available for #2 in query:id=2|12449 but #2 has been resolved.",Jun Omae
next-stable-1.6.x Release,12427,Firefox does not scroll to the proper comment heading,web frontend,,defect,normal,,new,2016-04-04T15:30:07+02:00,2023-09-23T22:33:10+02:00,"On navigating to comment:18:ticket:12385, I noticed that while Chrome 49 scrolls to the correct location, Firefox 45 scrolls past the comment. This is on OSX 10.11.

I'd be interested to know if anyone else sees the same behavior.",Ryan J Ollos
next-stable-1.6.x Release,12363,Support ucs2/utf16/utf32 charset and utf16_bin/utf32_bin collation in MySQL,database backend,,enhancement,normal,,new,2016-02-22T11:15:29+01:00,2023-09-23T22:33:10+02:00,"In Trac 1.0.10 with MySQL ucs2/utf16/utf32, initenv command crashes:

{{{
Database connection string [sqlite:db/trac.db]> mysql://tracuser:password@127.0.0.1/trac_utf16

Creating and Initializing Project
Initenv for '/dev/shm/trac-1.0.10-mysql-utf16' failed.
Failed to create environment.
(1231, ""Variable 'character_set_client' can't be set to the value of 'utf16'"")
Traceback (most recent call last):
  File ""/venv/trac/1.0.10/lib/python2.5/site-packages/trac/admin/console.py"", line 461, in do_initenv
    options=options)
  File ""/venv/trac/1.0.10/lib/python2.5/site-packages/trac/core.py"", line 124, in __call__
    self.__init__(*args, **kwargs)
  File ""/venv/trac/1.0.10/lib/python2.5/site-packages/trac/env.py"", line 280, in __init__
    self.create(options)
  File ""/venv/trac/1.0.10/lib/python2.5/site-packages/trac/env.py"", line 602, in create
    DatabaseManager(self).init_db()
  File ""/venv/trac/1.0.10/lib/python2.5/site-packages/trac/db/api.py"", line 253, in init_db
    connector.init_db(**args)
  File ""/venv/trac/1.0.10/lib/python2.5/site-packages/trac/db/mysql_backend.py"", line 117, in init_db
    params)
  File ""/venv/trac/1.0.10/lib/python2.5/site-packages/trac/db/mysql_backend.py"", line 98, in get_connection
    cnx = MySQLConnection(path, log, user, password, host, port, params)
  File ""/venv/trac/1.0.10/lib/python2.5/site-packages/trac/db/mysql_backend.py"", line 374, in __init__
    cnx.query(""SET NAMES %s"" % self.charset)
OperationalError: (1231, ""Variable 'character_set_client' can't be set to the value of 'utf16'"")
}}}

If supplementary characters is needed, we have to use utf8mb4 charset prior to MySQL 5.5. Since MySQL 5.5, can use utf16/utf32. ~~However, max size of column would be short because 1 character requires 4 bytes for index. Since MySQL 5.5.3, utf16 supports supplementary characters using surrogate pair. 1 character in utf16 requires 2 bytes for index.~~

{{{
mysql> SHOW CHARACTER SET WHERE Charset = 'ucs2' OR Charset LIKE 'utf%';
+---------+----------------+--------------------+--------+
| Charset | Description    | Default collation  | Maxlen |
+---------+----------------+--------------------+--------+
| utf8    | UTF-8 Unicode  | utf8_general_ci    |      3 |
| ucs2    | UCS-2 Unicode  | ucs2_general_ci    |      2 |
| utf8mb4 | UTF-8 Unicode  | utf8mb4_general_ci |      4 |
| utf16   | UTF-16 Unicode | utf16_general_ci   |      4 |
| utf32   | UTF-32 Unicode | utf32_general_ci   |      4 |
+---------+----------------+--------------------+--------+
5 rows in set (0.01 sec)
}}}",Jun Omae
next-stable-1.6.x Release,12214,Description lists are unescapable,wiki system,,defect,normal,,new,2015-09-23T05:30:17+02:00,2023-09-23T22:33:10+02:00,"The following issue, reported in comment:7:ticket:2082, can be reproduced on 1.0-stable (r14332).

{{{
 {{{desc1::}}}:: blahblabla
}}}
 {{{desc1::}}}:: blahblabla

{{{
  `desc1::`:: blahblabla
}}}
  `desc1::`:: blahblabla",Ryan J Ollos
next-stable-1.6.x Release,12153,"""< default >"" is incorrectly removed from title in timeline rss",timeline,,defect,normal,,new,2015-08-06T04:38:59+02:00,2023-09-23T22:33:10+02:00,"Original title is {{{Changeset in rjollos.git [be6cc703]: Don't append `< default >` to the ticket query select.}}}. The `< default >` is removed in timeline rss like this.

{{{
    </item><item>
      <title>Changeset in rjollos.git [be6cc703]: Don't append `` to the ticket query select.</title>
}}}

I don't we should replace {{{`< default >`}}} to {{{``}}}. We should keep the original title.",Jun Omae
next-stable-1.6.x Release,12123,progress says 100% but it's not finished!,ticket system,1.0.4,defect,normal,,new,2015-07-16T10:41:49+02:00,2023-09-23T22:33:10+02:00,"If target value is not equal to current value, it should never say 100%!

[[Image(wrong.PNG)]]",anonymous
next-stable-1.6.x Release,12097,Add a script to contrib for converting MySQL storage engine,database backend,,enhancement,normal,,new,2015-05-31T21:31:13+02:00,2023-09-23T22:33:10+02:00,"User in SO:29982115/121694 claims to get an error //The current storage engine is MyISAM. It must be InnoDB or NDB storage engine to support transactions// after upgrading to Trac 1.0.2. That is what I'd expect after #10993.

I see that we've documented a fix in MySqlDb#Conversion. Would it be feasible to provide a script in `contrib` for fixing the storage engine and collation? That might help less experienced users.

I'm requesting feedback on whether this is a good idea before trying to create a script.",Ryan J Ollos
next-stable-1.6.x Release,12066,contrib/checkwiki.py doesn't work in quoting blocks and wiki processors,general,,defect,normal,,new,2015-05-09T16:26:42+02:00,2023-09-23T22:33:10+02:00,"Source:
{{{
#42 in paragraph

> quote start
> #42 in quote
> > quote start
> > #43 in quote
> > quote end
> quote end

    indent start
    #42 in indent
    indent end

{{{#!div
#42 in div
}}}

|| #42 ||\
{{{#!td
#42 in cell
}}}
}}}
Result:
{{{
Test:2:#42 in paragraph
Test:12:    #42 in indent
Test:19:|| #42 || blah ||\
}}}",Jun Omae
next-stable-1.6.x Release,12054,"Normalize newline of wiki text to CRLF on initenv, saving wiki and fetching wiki",wiki system,,defect,normal,,new,2015-05-01T05:40:24+02:00,2023-09-23T22:33:10+02:00,"Currently, Trac creates default pages with LF as newline on initenv. However, browsers send request with CRLFs for newline in textarea elements. Therefore, Trac creates a new version of the page even if the page is saved without changes.

{{{#!pycon
>>> v1 = WikiPage(env, 'WikiStart', 1)
>>> v2 = WikiPage(env, 'WikiStart', 2)
>>> v1.text[:40]
u""= Welcome to Trac 1.0.5 =\n\nTrac is a '''""
>>> v2.text[:40]
u""= Welcome to Trac 1.0.5 =\r\n\r\nTrac is a '""
>>> v1.text.replace('\n', '\r\n') == v2.text
True
}}}

I think we should normalize newlines in text of wiki page on initenv, saving wiki and fetching wiki.",Jun Omae
next-stable-1.6.x Release,11814,Wiki edit form area height preference is not saved without an explicit preview,wiki system,,defect,normal,,new,2014-11-04T23:34:30+01:00,2023-09-23T22:33:10+02:00,"The `editrows` preference is only updated when rendering the editor. Therefore the value will only be updated in the `session_attributes` table when the user explicitly submits a //Preview//. The value won't be saved when submitting wiki edits.

This might be a bit confusing to the user because other preferences are saved immediately. For example, changing the //Edit side-by-side// preference will trigger a //Preview//, which will result in the editor being rendered again and the preference being saved.",Ryan J Ollos
next-stable-1.6.x Release,11806,Tracd --daemonize does not work without --pidfile with systemd,web frontend/tracd,1.0.1,defect,major,,new,2014-11-03T00:37:22+01:00,2023-09-23T22:33:10+02:00,"The following systemd config is expected to work, since systemd would try to guess the PID (see [http://www.freedesktop.org/software/systemd/man/systemd.service.html#GuessMainPID= man systemd.service]).

{{{
#!ini
[Unit]
Description=Trac Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/tracd -d -p 8000 -e /tmp

[Install]
WantedBy=multi-user.target
}}}

{{{
$ sudo systemctl status tracd
● tracd.service - Trac Server
   Loaded: loaded (/lib/systemd/system/tracd.service; enabled)
   Active: inactive (dead) since Mon 2014-11-03 00:11:32 CET; 4s ago
  Process: 1010 ExecStart=/usr/bin/tracd -d -p 8000 -e /tmp (code=exited, status=0/SUCCESS)
 Main PID: 1011 (code=exited, status=0/SUCCESS)
}}}

However, the following configuration works:
{{{
#!diff
--- tracd.service
+++ tracd.service
@@ -6,2 +6,3 @@ [Service]
 Type=forking
-ExecStart=/usr/bin/tracd -d -p 8000 -e /tmp
+ExecStart=/usr/bin/tracd -d -p 8000 --pidfile=/run/tracd.pid -e /tmp
+PIDFile=/run/tracd.pid
}}}

The status output may be a hint:

{{{
$ sudo systemctl status -l tracd
● tracd.service - Trac Server
   Loaded: loaded (/lib/systemd/system/tracd.service; enabled)
   Active: active (running) since Mon 2014-11-03 00:10:07 CET; 11s ago
  Process: 975 ExecStart=/usr/bin/tracd -d -p 8000 --pidfile=/run/tracd.pid -e /tmp (code=exited, status=0/SUCCESS)
 Main PID: 980 (tracd)
   CGroup: /system.slice/tracd.service
           └─980 /usr/bin/python /usr/bin/tracd -d -p 8000 --pidfile=/run/tracd.pid -e /tmp

Nov 03 00:10:07 host systemd[1]: tracd.service: Supervising process 980 which is not our child. We'll most likely not notice when it exits.
}}}

Why does tracd exit when simply not using a pidfile?",ak
next-stable-1.6.x Release,11720,Table with inline diff can misposition the wiki editor textarea,wiki system,1.0-stable,defect,minor,,new,2014-08-16T21:07:09+02:00,2023-09-23T22:33:10+02:00,"I've been unsuccessfully trying to edit the WikiProcessors page to append the content added in [wiki:WikiProcessors@62?action=diff] to the end of the table. I haven't been able to create a table with 3 rows. Along the way, I ran into an issue that can be reproduced with the following markup:
{{{
{{{#!tr
{{{#!td
Some examples:
 {{{
{{{
#!text/html
<h1>text</h1>
}}}
 }}}
}}}
{{{#!td
The result will be syntax highlighted HTML code:
 {{{
#!text/html
<h1>text</h1>
 }}}

The same is valid for all other [TracSyntaxColoring#SyntaxColoringSupport mime types supported].
}}}
}}}
{{{#!tr
{{{#!td
 {{{
{{{
#!diff
--- Version 55
+++ Version 56
@@ -115,8 +115,9 @@
     name='TracHelloWorld', version='1.0',
     packages=find_packages(exclude=['*.tests*']),
-    entry_points = """"""
-        [trac.plugins]
-        helloworld = myplugs.helloworld
-    """""",
+    entry_points = {
+        'trac.plugins': [
+            'helloworld = myplugs.helloworld',
+        ],
+    },
 )
}}}
 }}}
}}}
{{{#!td
'''`#!diff`''' has a particularly nice renderer:
{{{
#!diff
--- Version 55
+++ Version 56
@@ -115,8 +115,9 @@
     name='TracHelloWorld', version='1.0',
     packages=find_packages(exclude=['*.tests*']),
-    entry_points = """"""
-        [trac.plugins]
-        helloworld = myplugs.helloworld
-    """""",
+    entry_points = {
+        'trac.plugins': [
+            'helloworld = myplugs.helloworld',
+        ],
+    },
 )
}}}
}}}
}}}
}}}
Pressing **Preview Page** while in side-by-side edit mode results in the edit window being positioned in the preview area, inside one of the table cells.

[[Image(MispositionedEditor.png,100%)]]",Ryan J Ollos
next-stable-1.6.x Release,11714,Log unknown attributes in ticket workflow,ticket system,,enhancement,normal,,new,2014-08-11T19:27:48+02:00,2023-09-23T22:33:10+02:00,"It would be useful to either log a warning or raise a `ConfigurationError` when an attribute in the `[ticket-workflow]` section is unknown. For example:
{{{#!ini
[ticket-workflow]
resolve.permission = TICKET_MODIFY
}}}
where `permission` is used rather than `permissions`, should result in a warning such as:
{{{
10:20:50 AM Trac[default_workflow] WARNING: Unknown attribute 'permission' in [ticket-workflow] section of trac.ini: resolve.permission = TICKET_MODIFY
}}}

More extensive changes are planned, but a starting point is log:rjollos.git:t11714.",Ryan J Ollos
next-stable-1.6.x Release,11686,Official support for uwsgi,web frontend,,enhancement,normal,,new,2014-07-22T00:26:37+02:00,2023-09-23T22:33:10+02:00,"When using uwsgi + refresh the site fast you get tons of:

{{{
Traceback (most recent call last):
  File ""/home/trac/uwsgi-test/local/lib/python2.7/site-packages/trac/web/main.py"", line 474, in dispatch_request
    return _dispatch_request(req, env, env_error)
  File ""/home/trac/uwsgi-test/local/lib/python2.7/site-packages/trac/web/main.py"", line 513, in _dispatch_request
    send_internal_error(env, req, sys.exc_info())
  File ""/home/trac/uwsgi-test/local/lib/python2.7/site-packages/trac/web/main.py"", line 630, in send_internal_error
    req.send_error(exc_info, status=500, env=env, data=data)
  File ""/home/trac/uwsgi-test/local/lib/python2.7/site-packages/trac/web/api.py"", line 581, in send_error
    self.write(data)
  File ""/home/trac/uwsgi-test/local/lib/python2.7/site-packages/trac/web/api.py"", line 660, in write
    self._write(data)
IOError: write error
}}}

I see that there is a special case for mod_wsgi, maybe you could add one for uwsgi too?
http://trac.edgewall.org/browser/branches/1.0-stable/trac/web/api.py#L666

Saw that atleast jomae uses uwsgi...

Also, is there any recommended conf for uwsgi? threads - on/off? and so on...",anonymous
next-stable-1.6.x Release,11670,Wiki edit page should more clearly show when page doesn't exist,wiki system,,enhancement,normal,,new,2014-07-10T09:35:29+02:00,2023-09-23T22:33:10+02:00,"Like the change that was made in #11663 for the Milestone Edit page, it would be more clear to use the green notification to indicate when the page does not exist.

Before:

[[Image(Before.png)]]

After:

[[Image(After.png)]]


{{{#!diff
diff --git a/trac/wiki/templates/wiki_view.html b/trac/wiki/templates/wiki_view.
index 4797b6a..f4be55a 100644
--- a/trac/wiki/templates/wiki_view.html
+++ b/trac/wiki/templates/wiki_view.html
@@ -74,7 +74,6 @@
           </div>
         </py:when>
         <py:otherwise>
-          <p i18n:msg=""name"">The page ${name_of(page.resource)} does not exist.
           <py:if test=""higher"">
             <p>You could also create the same page higher in the hierarchy:</p>
             <ul>
diff --git a/trac/wiki/web_ui.py b/trac/wiki/web_ui.py
index b524dba..a4d8dcb 100644
--- a/trac/wiki/web_ui.py
+++ b/trac/wiki/web_ui.py
@@ -602,6 +602,8 @@ class WikiModule(Component):
             if 'WIKI_CREATE' not in req.perm(page.resource):
                 raise ResourceNotFound(_('Page %(name)s not found',
                                          name=page.name))
+            add_notice(req, _(""The page %(name)s does not exist. You can""
+                              "" create it here."", name=page.name))
             formatter = OneLinerFormatter(self.env, context)
             if '/' in page.name:
                 parts = page.name.split('/')
}}}
",Ryan J Ollos
next-stable-1.6.x Release,11651,Attachment example on TracFineGrainedPermissions page is incorrect,attachment,,defect,normal,,new,2014-06-17T01:36:35+02:00,2023-09-23T22:33:10+02:00,"There is an example on TracFineGrainedPermissions#UsageNotes which appears to be incorrect:
{{{#!ini
[wiki:WikiStart@*/attachment/*]
[wiki:WikiStart@117/attachment/FOO.JPG]
}}}

It appears that a forward-slash is used rather than a colon:
{{{#!ini
[wiki:WikiStart@*/attachment:*]
[wiki:WikiStart@117/attachment:FOO.JPG]
}}}

However, it also appears to be the case that the trailing `@*` is required for the case that the resource is specified:
{{{#!ini
[wiki:WikiStart@117/attachment:FOO.JPG@*]
}}}

The documentation states that it should be added implicitly, so this might be a defect.

I tested with attachment `RepositoryBrowser.png` on `WikiStart`, and found the following in the logs when viewing the attachment:
{{{
04:18:14 PM Trac[authz_policy] DEBUG: Checking ATTACHMENT_VIEW on wiki:WikiStart@*/attachment:RepositoryBrowser.png@*
}}}

The following policy prevents viewing the attachment:
{{{#!ini
[wiki:WikiStart@*/attachment:RepositoryBrowser.png@*]
* = !ATTACHMENT_VIEW
}}}

However, the policy doesn't work if the trailing `@*` is omitted.",Ryan J Ollos
next-stable-1.6.x Release,11631,Exceptions in get_repository method of IRepositoryConnector should not disable repository browser,version control/browser,,enhancement,normal,,new,2014-05-31T17:27:56+02:00,2023-09-23T22:33:10+02:00,The issue was raised in comment:7:ticket:11610. A `TypeError` raised in `MercurialConnector` disabled the repository browser. A proposed patch can be found in comment:8:ticket:11610.,Ryan J Ollos
next-stable-1.6.x Release,11612,ability to set and retain preferred comment order,ticket system,1.0.1,defect,normal,,new,2014-05-14T04:00:09+02:00,2023-09-23T22:33:10+02:00,"r10989 added the OldestFirst/NewestFirst/Threaded option of viewing comments, which I generally like.

However if I want something other than the default behavior, there does not seem to be a way to save my preference: I need to keep changing it on every ticket.

It would be nice to specify my default-comment-sort-order in ""Preferences"".

Also, the ticket-comment-order CHANGES automatically when I add a comment or reply-to a comment.  If I select ""oldest first"" then reply to a comment, it auto-changes to ""newest first"".  Is this intentional?

I'm on Windows 7.  I typically use Firefox (v29); but verified the same behavior in Chrome (v34) and Internet Explorer (v10)

Trac 1.0.1 using standalone 'tracd' ; Python 2.5.4 on Windows 2008 R2",jeremy.j.dunn@…
next-stable-1.6.x Release,11576,Cut and paste of external links leads to zero-width character in string,general,1.0,defect,normal,,new,2014-04-07T11:08:39+02:00,2023-09-23T22:33:10+02:00,"When copy pasting text which includes an external link a zero width character is introduced in the text. 

For example when copying from page WikiFormatting the lines in the ""Links"" row of the table (more specifically, the first sub-line) the Unicode character `\u200b` is introduced between the text in the first column and the text in the second.

This caused problems in Firefox 26.0 (Firefox 25.0 was working), when the link was: `git clone ssh://user@host/project` and my guess is that it can cause unnecessary frustration (not that I am aware of the problem, I can escape the links, but I did not know that previously and, even worse, it used to work).

Personally, if the only reason for the zero-width character is the icon, I would be perfectly fine without the icon. 

This bug is related (but not identical with): #10668, #10865 and might have been a cause of #9529 (maybe a pasted link reached timeline)

For anybody wishing to patch their trac code is at source:tags/trac-1.0/trac/wiki/formatter.py#L710",vladmihaisima@…
next-stable-1.6.x Release,11574,Inconsistencies between datetime and datetimepicker close and focus behavior,general,,defect,normal,,new,2014-04-06T01:22:18+02:00,2023-09-23T22:33:10+02:00,"Previously discussed starting in comment:3:ticket:11435 and comment:63:ticket:10245. The following behaviors are seen on the trunk:
 * Datepicker (observed on //View changes from// input on Timeline page)
  * Pressing //Today// closes the datepicker and focus remains on the input element. However, the datepicker does not re-appear if the input element is clicked. Focus must first be given to another element.
 * Datetimepicker (observed on //Due// and //Completed// inputs on Milestone Edit page)
  * Pressing //Now// does **not** close the datetimepicker, and focus remains on the input element ([https://github.com/trentrichardson/jQuery-Timepicker-Addon/issues/224 issue 224]).

Pressing //Done// on both datepicker and datetimepicker destroys the picker, but focus is not given to the input element. It would be nice to be able to tab to the next element after //Done// is pressed.

I propose the following behaviors:
 1. Pressing //Today// or //Now// should close the picker and put focus on the input element. Clicking on the input element again should cause the picker to re-appear.
 1. Pressing //Done// should close the picker and put the focus back on the input element.

Jun's patch from comment:4:ticket:11435 fixes issues (1) for the datepicker.",Ryan J Ollos
next-stable-1.6.x Release,11567,TracIni wiki page is incomplete,general,,enhancement,normal,,new,2014-04-01T14:23:08+02:00,2023-09-23T22:33:10+02:00,"The TracIni page does not include some configuration options which are mentioned elsewhere.

Specific configurations that are missing:
 * {{{tracopt.ticket.deleter}}}  referenced for example in #10656, #9823, etc.  This is a very useful feature.  How do we learn that it exists, and how to use it?
 * {{{trac.web.auth.loginmodule}}}  The instructions to configure the [http://trac-hacks.org/wiki/AccountManagerPlugin] say to disable the default Trac authentication.  Again there is no reference to this configuration on the TracIni page.

Those are just two examples; but I suspect there may be many more undocumented configurations.    Is there another wiki page that has a comprehensive list of ALL trac configuration options?  Or some other way to discover them, short of reading the source code (I am not a python programmer) ?",jeremy.j.dunn@…
next-stable-1.6.x Release,11547,Inconsistent results from get_resource_summary,general,1.0-stable,defect,normal,,new,2014-03-17T00:16:08+01:00,2023-09-23T22:33:10+02:00,"`trac.resource.get_resource_summary` is inconsistent when `resource.id` is `None`:
{{{#!pycon
>>> from trac.resource import Resource, get_resource_summary
>>> from trac.env import Environment
>>> env = Environment('/home/user/Workspace/tracdev/tracdev')
>>> r1 = Resource('wiki', 'WikiStart')
>>> print get_resource_summary(env, r1)
WikiStart
>>> r2 = Resource('wiki')
>>> print get_resource_summary(env, r2)
None
>>> r3 = Resource('ticket', 1)
>>> print get_resource_summary(env, r3)
u'defect: Ticket One (new)'
>>> r4 = Resource('ticket')
>>> print get_resource_summary(env, r4)
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
  File ""trac/resource.py"", line 347, in get_resource_summary
    return get_resource_description(env, resource, 'summary')
  File ""trac/resource.py"", line 333, in get_resource_description
    return manager.get_resource_description(resource, format, **kwargs)
  File ""trac/ticket/api.py"", line 548, in get_resource_description
    return self.format_summary(*args)
  File ""trac/ticket/api.py"", line 554, in format_summary
    summary = type + ': ' + summary
TypeError: coercing to Unicode: need string or buffer, NoneType found
>>> r5 = Resource('milestone', 'milestone1')
>>> print get_resource_summary(env, r5)
Milestone milestone1
>>> r6 = Resource('milestone')
>>> print get_resource_summary(env, r6)
Milestone None
>>> r7 = Resource('changeset', 1)
>>> print get_resource_summary(env, r7)
Changeset 1
>>> r8 = Resource('changeset')
>>> print get_resource_summary(env, r8)
Changeset None
>>> r9 = Resource('attachment', 'SearchResults.png', parent=Resource('ticket', 1))
>>> print get_resource_summary(env, r9)

>>> r10 = Resource('attachment', parent=Resource('ticket', 1))
>>> print get_resource_summary(env, r10)
None
}}}

We should fix the case of `Resource('ticket')` so that it returns `None` rather than raising an exception.",Ryan J Ollos
next-stable-1.6.x Release,11536,Wrong label on wiki diff view between initial version and version 1,wiki system,0.12-stable,defect,normal,,new,2014-03-12T16:18:54+01:00,2023-09-23T22:33:10+02:00," 1. Viewing wiki:WikiStart?action=diff&version=1&style=sidebyside, label in diff header is ""Version currently edited"".
[[Image(sidebyside-diff-en.png,width=300)]]

 2. Viewing wiki:WikiStart?action=diff&version=1&style=sidebyside with non-english locale, label in diff header is ""Version""
[[Image(sidebyside-diff-ja.png,width=300)]]

 3. Viewing wiki:WikiStart?action=diff&version=1&style=inline, both labels in diff header are ""v1"".
[[Image(inline-diff-en.png,width=300)]]
",Jun Omae
next-stable-1.6.x Release,11530,Ticket default_description cannot include new lines,ticket system,,enhancement,normal,,new,2014-03-10T15:14:04+01:00,2023-09-23T22:33:10+02:00,"Two issues were discussed on the [https://groups.google.com/d/msg/trac-users/lWB2c3U3TtM/IpK3ziT3zPcJ mailing list]:
 1. It should be documented that lines 2:end need to be indented with whitespace to have a multi-line ticket description. For example,
{{{#!ini
[ticket]
default_description = line1 
 line2
 line3
 line4
}}}
 This would be applicable to any `textarea`. Description is currently the only one in `[ticket]` section (TracIni#ticket-section), but we may also need to consider the `value` parameter of `textarea` custom fields (TracTicketsCustomFields#AvailableFieldTypesandOptions).

 2. Empty lines can't be included in the `[ticket] default_description` because `ConfigParser` in Python 2.x does not appear to support empty lines. The empty lines are stripped out. We'll need a workaround such as specifying empty lines with a single `\` character, and then stripping out the character before rendering an empty line in the ticket description.",Ryan J Ollos
next-stable-1.6.x Release,11527,Some unexpected behaviors on the history page,general,,defect,normal,,new,2014-03-09T11:31:18+01:00,2023-09-23T22:33:10+02:00,"While testing changes for #11517, I noticed the following undesirable behaviors.

 1. Wiki history: diff of version 1 with version 1 results in ''Changes between Initial Version and Version 1 of WikiStart'', however //Initial Version// links to /wiki/WikiStart?version=0, which shows a //Create this page// button.

 [[Image(WikiHistoryDiff11.png)]]

 [[Image(WikiChangesDiff11.png)]]

 [[Image(WikiInitialVersion.png)]]

 For the case of wiki pages, version 0 is the non-existent page, so the behavior is not surprising. It would be better though to not have //Initial Version// be a link.

 2. Wiki history: diff of version X and X results in display of a diff between version X and X - 1 (this behavior is probably okay).

 3. Wiki history: Diff of version 2 and 1 results in display of a page indicating a diff of version 1 and 1, with a //Delete version 1// button displayed.

 [[Image(WikiHistory21.png)]]

 [[Image(WikiChangesDiff21.png)]]

 4. Ticket history: Diff of version 1 and 1 for ticket history or ticket comment history results in a `TracError`.

 [[Image(TicketHistory11.png)]]

 [[Image(TicketCommentHistory11.png)]]

The other ticket history behaviors are more sensible in that a diff of version 1 and 2 is the same as a diff of version 2 and 1. A diff of version 2 and 2 displays a diff of versions 1 and 2.

I think we could fix issue (4) with the ticket history, and then make the wiki history behave more like the ticket history. JavaScript code that conditionally disabled buttons could be added to guide sensible selections, after the major issues have been fixed in the server-side code.
",Ryan J Ollos
next-stable-1.6.x Release,11526,New style italics markup doesn't render correctly with CamelCase words,wiki system,,defect,normal,,new,2014-03-09T11:15:56+01:00,2023-09-23T22:33:10+02:00,"The new-style italics markup `//` seem to have an issue:

{{{
 //WikiStart and CamelCase// [[BR]]
 ''WikiStart and CamelCase''
}}}
 //WikiStart and CamelCase// [[BR]]
 ''WikiStart and CamelCase''",Ryan J Ollos
next-stable-1.6.x Release,11522,Unexpected block-quoted text,wiki system,1.0.1,defect,normal,,new,2014-03-07T00:10:53+01:00,2023-09-23T22:33:10+02:00,"th:comment:30:ticket:11553 demonstrates an issue with unexpected block-quoted text.

Apologies if this is a duplicate. I'm not very proficient in deciphering issues with the wiki markup.",Ryan J Ollos
next-stable-1.6.x Release,11463,Strip markup from log messages,general,,enhancement,normal,,new,2014-01-28T03:43:26+01:00,2023-09-23T22:33:10+02:00,"It was previously mentioned in comment:27:ticket:11189 and comment:3:ticket:11369 that it might be better to strip the markup from log messages to make them more readable. It occurred to me while reviewing the patch in #11462 that this might be as easy as wrapping the message in a call to `plaintext`. 

For example, currently we get a log message for the case of a `ConfigurationError` (newlines have been added to make this more readable):
{{{
Trac[chrome] ERROR: Error during check of EMAIL_VIEW:
ConfigurationError: Cannot find implementation(s) of the <tt>IPermissionPolicy</tt> interface named <tt>ReadonlyWikiPolicy</tt>.
Please check that the Component is enabled or update the option <tt>[trac] permission_policies</tt> in trac.ini.
}}}

If the exception message is passed to `plaintext` before being passed to the logger, we get:
{{{
Trac[chrome] ERROR: Error during check of EMAIL_VIEW:
ConfigurationError: Cannot find implementation(s) of the IPermissionPolicy interface named ReadonlyWikiPolicy.
Please check that the Component is enabled or update the option [trac] permission_policies in trac.ini.
}}}

{{{#!diff
diff --git a/trac/web/chrome.py b/trac/web/chrome.py
index f627ae5..864d569 100644
--- a/trac/web/chrome.py
+++ b/trac/web/chrome.py
@@ -866,7 +866,7 @@ class Chrome(Component):
             # simply log the exception here, as we might already be rendering
             # the error page
             self.log.error(""Error during check of EMAIL_VIEW: %s"",
-                           exception_to_unicode(e))
+                           plaintext(exception_to_unicode(e)))
             show_email_addresses = False
 
         def pretty_dateinfo(date, format=None, dateonly=False):
}}}

To be investigated is whether the best approach is to wrap the exception message that is passed to the logger everywhere that the exceptions are trapped, or if there is a better approach.",Ryan J Ollos
next-stable-1.6.x Release,11445,Empty lines are invisible when hiding line column on browser view,version control/browser,1.0-stable,defect,normal,,new,2014-01-14T17:33:00+01:00,2023-09-23T22:33:10+02:00,"When hiding line column on browser view, empty lines would be invisible. Also, empty lines cannot be copied to clipboard if line column is hide. The text without empty lines would be copied.

[[Image(visible-line-column.png)]] [[Image(hidden-line-column.png)]]",Jun Omae
next-stable-1.6.x Release,11439,"Git changeset ""Branches"" property should link to branch logs",version control/changeset view,1.0,enhancement,normal,,new,2014-01-09T22:51:42+01:00,2023-09-23T22:33:10+02:00,"When viewing a Git changeset like [d19b3083d40b9237e8dbffa91dfa9f2f3b65e2ad/rjollos.git], the ""Branches"" property (showing the list of branches which contain this changeset) generates a link for each branch.  Currently, the generated link is a ""changeset"" view of the branch's tip, so (e.g.) clicking on ""trunk"" in that list will show you the most recent changeset on the ""trunk"" branch.

This seems confusing.  When I click on a branch in that list, seeing a changeset view makes me feel like I've lost my place in navigating around the repository.  (This is exacerbated by the fact that the URL in the address bar and the `<h1>` on the page both reference the SHA of the branch tip, and there's no visual indicator that I'm viewing a particular branch tip.)  

When I click on a branch in that list, I expect to go somewhere that contextualizes the branch somehow.  I think the ""log"" view for that branch is the most sensible place to land.",ethan.jucovy@…
next-stable-1.6.x Release,11374,Image macro doesn't display image containing a colon,wiki system,,defect,normal,,new,2013-11-20T04:39:01+01:00,2023-09-23T22:33:10+02:00,"For example, see the attachment:

{{{
[[Image(2013-11-19_19:34:53.png​)]]
}}}

[[Image(2013-11-19_19:34:53.png​)]]",Ryan J Ollos
next-stable-1.6.x Release,11372,sort for owner shall be case-insensitive,query system,1.0.1,enhancement,normal,,new,2013-11-19T14:06:41+01:00,2023-09-23T22:33:10+02:00,"for an existing installation of TRAC the mail gateway for owner & similar entries works seemingly fine by auto-adding the mail domain to the provided credentials regardless of upper & lowercase variants as e-mail adresses are case in-sensitive.
but when doing a web interface query like for active tasks and then clicking ""Owner"" for sorting the results by name its the case that John.Doe is differently sorted in that listing than john.doe and thus it needs always at least two checks of the list contents to get the entries for both of these name variants. (more variations are thinkable, even camel case...)",alexander.stohr@…
next-stable-1.6.x Release,11334,Timeline TracLinks with timezone offsets and without seconds resolution don't link to highlighted entries,timeline,,defect,normal,,new,2013-10-16T20:42:21+02:00,2023-09-23T22:33:10+02:00,"Examples:
 * These entries are highlighted in the timeline:
  * timeline:2013-10-16T18:28
  * timeline:2013-10-16T18:28Z
  * timeline:2013-10-16T18:28+00
  * timeline:2013-10-16T18:28:36+00
  * timeline:2013-10-16T18:28:36+00:00
  * timeline:2013-10-16T19:28:36+01:00
  * timeline:2013-10-16T17:28:36-01:00
 * These entries are not highlighted in the timeline:
  * timeline:2013-10-16T18:28+00
  * timeline:2013-10-16T18:28+00:00
  * timeline:2013-10-16T19:28+01:00
  * timeline:2013-10-16T17:28-01:00

The [TracLinks#timeline:links examples] don't show resolution of seconds in the timestamp. I suppose that there is a greater possibility of ambiguity when seconds are omitted. Multiple entries would need to be highlighted in the case that they have the same timestamp in resolution of minutes. The behavior needs to be corrected in some way or another in order to be consistent.
",Ryan J Ollos
next-stable-1.6.x Release,11305,`#!table` with `|| cell ||` is rendered as a broken table,wiki system,0.12-stable,defect,minor,,new,2013-09-17T16:09:11+02:00,2023-09-23T22:33:10+02:00,"Trac renders the following wiki to a broken table. See demo-0.12:wiki:SandBox/NestedTable.

=== case 1
{{{
{{{#!table
{{{#!td
cell 1,1
}}}
{{{#!td
cell 1,2
}}}
|----
{{{#!td
|| nested || table || //cell 2,2// is lost ||
}}}
{{{#!td
cell 2,2
}}}
}}}
}}}

=== case 2
{{{
|| cell 1,1 ||\
{{{#!td
cell 1,2
  {{{#!table
  {{{#!td
  nested
  }}}
  {{{#!td
  table
  }}}
  }}}
}}}
|-------
{{{#!td
|| nested || table || **`</td>` is one too many here** ||
}}}
{{{#!td
cell 2,2
}}}
}}}",Jun Omae
next-stable-1.6.x Release,11280,"""ValueError: incomplete format key"" occurs repeatedly",general,1.0,defect,normal,,new,2013-08-22T11:19:58+02:00,2023-09-23T22:33:10+02:00,"""Value Error"" occurs when I set ""%("" in configuration value of Administration. (e.g. Administration - General - Basic Settings - Description)
And Once ""Value Error"" occured, same error occurs on most of pages until I restart Trac process.

System Information

|| Trac || 1.0 ||
|| Python || 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] 
|| Babel || 0.9.6 ||
|| Docutils || 0.7 ||
|| Genshi || 0.6 ||
|| mod_wsgi || 3.4 ||
|| Pygments || 1.4 ||
|| pysqlite || 2.6.0 ||
|| setuptools || 0.6c11 ||
|| SQLite || 3.6.21 ||
|| Subversion || 1.7.7 ||
|| jQuery || 1.7.2 ||

OS: Windows Server 2003 x86 SP2

Python Traceback
{{{
Traceback (most recent call last):
  File ""C:\python\lib\site-packages\trac-1.0-py2.7.egg\trac\web\api.py"", line 504, in send_error
    data, 'text/html')
  File ""C:\python\lib\site-packages\trac-1.0-py2.7.egg\trac\web\chrome.py"", line 961, in render_template
    data = self.populate_data(req, data)
  File ""C:\python\lib\site-packages\trac-1.0-py2.7.egg\trac\web\chrome.py"", line 817, in populate_data
    'descr': self.env.project_description,
  File ""C:\python\lib\site-packages\trac-1.0-py2.7.egg\trac\config.py"", line 661, in __get__
    value = self.accessor(section, self.name, self.default)
  File ""C:\python\lib\site-packages\trac-1.0-py2.7.egg\trac\config.py"", line 400, in get
    value = self.config.parser.get(name_str,key_str)
  File ""C:\python\lib\ConfigParser.py"", line 623, in get
    return self._interpolate(section, option, value, d)
  File ""C:\python\lib\ConfigParser.py"", line 666, in _interpolate
    value = value % vars
ValueError: incomplete format key
}}}",anonymous
next-stable-1.6.x Release,11271,Batch modify notification emails could present a better description of the property change,notification,1.0-stable,defect,normal,,new,2013-08-06T17:56:48+02:00,2023-09-23T22:33:10+02:00,"On a batch modification to remove the keyword ""abc"", I noticed the body of the email was:
{{{
Batch modification to #613, #620, #565, #566, #575, #579, #584, #585, #586, #591, #598, #599, #611, #618, #610, #590 by rjollos:
keywords to abc
}}}

This could be more descriptive, and reflect what we see in the ticket comment: **keywords** //abc// removed.",Ryan J Ollos
next-stable-1.6.x Release,11240,ParsingError: File contains parsing errors: /home/svn/dbtg/mkhayati/conf/authz	[line 18]: '[]\n',general,0.11.7,defect,normal,,new,2013-07-11T08:32:15+02:00,2023-09-23T22:33:10+02:00,"
==== How to Reproduce ====

While doing a GET operation on `/login`, Trac issued an internal error.

''(please provide additional details here)''



User Agent was: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36`

==== 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` ||
|| '''psycopg2''' || `2.2.1` ||
|| '''Genshi''' || `0.6` ||
|| '''mod_wsgi''' || `3.3 (WSGIProcessGroup  WSGIApplicationGroup %{GLOBAL})` ||
|| '''Pygments''' || `1.3.1` ||
|| '''Subversion''' || `1.6.12 (r955767)` ||
|| '''jQuery:''' || `1.4.2` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/usr/lib/python2.6/dist-packages/trac/web/main.py"", line 450, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/lib/python2.6/dist-packages/trac/web/main.py"", line 176, in dispatch
    chosen_handler)
  File ""/usr/lib/python2.6/dist-packages/trac/web/main.py"", line 296, in _pre_process_request
    chosen_handler = filter_.pre_process_request(req, chosen_handler)
  File ""/usr/lib/python2.6/dist-packages/trac/versioncontrol/api.py"", line 86, in pre_process_request
    self.get_repository(req.authname).sync()
  File ""/usr/lib/python2.6/dist-packages/trac/versioncontrol/api.py"", line 157, in get_repository
    repos = self._connector.get_repository(rtype, rdir, authname)
  File ""/usr/lib/python2.6/dist-packages/trac/versioncontrol/svn_fs.py"", line 296, in get_repository
    authname)
  File ""/usr/lib/python2.6/dist-packages/trac/versioncontrol/svn_authz.py"", line 47, in SubversionAuthorizer
    return RealSubversionAuthorizer(repos, authname, module_name, authz_file)
  File ""/usr/lib/python2.6/dist-packages/trac/versioncontrol/svn_authz.py"", line 88, in __init__
    self.conf_authz.read(cfg_file)
  File ""/usr/lib/python2.6/ConfigParser.py"", line 286, in read
    self._read(fp, filename)
  File ""/usr/lib/python2.6/ConfigParser.py"", line 510, in _read
    raise e
ParsingError: File contains parsing errors: /home/svn/dbtg/mkhayati/conf/authz
	[line 18]: '[]\n'

}}}
    ",mkhayati
next-stable-1.6.x Release,11205,"""repository sync"" fails for Subversion repository with unicode path",version control,1.0-stable,defect,minor,,new,2013-06-15T16:03:47+02:00,2023-09-23T22:33:10+02:00,"In Linux, ""repository sync"" command fails for Subversion repository with unicode path.

{{{
$ svnadmin create /tmp/svn-tété
$ ~/venv/trac/1.0.1/bin/trac-admin /tmp/trac-1.0 initenv title sqlite:db/trac.db >/dev/null
$ ~/venv/trac/1.0.1/bin/trac-admin /tmp/trac-1.0 config set components 'tracopt.versioncontrol.*' enabled
$ ~/venv/trac/1.0.1/bin/trac-admin /tmp/trac-1.0
Welcome to trac-admin 1.0.1
Interactive Trac administration console.
Copyright (C) 2003-2013 Edgewall Software

Type:  '?' or 'help' for help on commands.

Trac [/tmp/trac-1.0]> repository add blah /tmp/svn-tété svn
Trac [/tmp/trac-1.0]> repository list

Name  Type  Alias  Directory
--------------------------------
blah  svn          /tmp/svn-tété

Trac [/tmp/trac-1.0]> repository sync blah
TracError: /tmp/svn-tété does not appear to be a Subversion repository.
}}}

The apr library on Linux, it needs to initialize with `setlocale()` for the encoding of file system. If no `setlocale()`, uses `C` locale and 8-bits bytes for the paths.

{{{#!diff
diff --git a/trac/admin/console.py b/trac/admin/console.py
index 74c2388..3091255 100755
--- a/trac/admin/console.py
+++ b/trac/admin/console.py
@@ -596,4 +596,5 @@ def run(args=None):

 if __name__ == '__main__':
     pkg_resources.require('Trac==%s' % VERSION)
+    locale.setlocale(locale.LC_ALL, '')
     sys.exit(run())
}}}

After the patch, the command correctly works.
{{{
$ PYTHONPATH=$PWD ~/venv/py25/bin/python trac/admin/console.py /tmp/trac-1.0
Welcome to trac-admin 1.0.2dev
Interactive Trac administration console.
Copyright (C) 2003-2013 Edgewall Software

Type:  '?' or 'help' for help on commands.

Trac [/tmp/trac-1.0]> repository sync blah
Resyncing repository history for blah...
0 revisions cached.
Done.
}}}",Jun Omae
next-stable-1.6.x Release,11125,Truncate very long text in the ticket properties dialog,ticket system,,enhancement,normal,,new,2013-03-19T23:17:09+01:00,2023-09-23T22:33:10+02:00,"Use a bit of CSS to prevent this from happening. It's a bit of a corner case because the text would have to be quite long, but will be easy to fix.

[[Image(Overspill.png,100%)]]",Ryan J Ollos
next-stable-1.6.x Release,11091,Patch files with svn property changes are not rendered correctly,rendering,1.1.1dev,defect,normal,,new,2013-02-28T16:47:04+01:00,2023-09-23T22:33:10+02:00,"attachment:t11089-r11701-1.patch:ticket:11089 demonstrates the issue. The property changes were made on the root directory (i.e. `.`), but are shown as being associated with the `.hgignore` file.",Ryan J Ollos
next-stable-1.6.x Release,11046,Reloading a page in the source browser redirects to another file,version control/browser,1.0,defect,normal,,new,2013-02-03T16:18:37+01:00,2023-09-23T22:33:10+02:00,"It's hard to explain this one, so I'll jump directly to the steps to reproduce:
 1. Go to http://trac.edgewall.org/browser/trunk/trac
 2. Click a non-link area on the page
 3. Hover the ""admin"" directory
 4. Reload the page using the web browser's keyboard shortcut (ctrl-r or cmd-r)
 5. Browser navigates to http://trac.edgewall.org/browser/trunk/trac#admin

Keep hovering and reloading, it will navigate to files and folders.

Since this behavior is not documented (or is it?), and I find it annoying, I assume it's a bug.

My site is running v1.0, hence the report below. For some reason I can't find the version number of YOUR site.",noamtm@…
next-stable-1.6.x Release,10949,Priority sorting breaks when grouping is enabled,report system,1.0,defect,normal,,new,2012-11-12T16:52:44+01:00,2023-09-23T22:33:10+02:00,"I have a report that lists tickets grouped by milestone, but when I try to sort by priority, in some cases the priority list is not ordered properly. If I remove the milestone grouping, the sorting works fine.

I have 12 different priorities:

BOMB
1 Critical
2 High
3 High
4 Med+ 		
5 Med+ 		
6 Med- 		
7 Med- 		
8 Low 		
9 Low 		
0 Low 		
-

Each with values from 1 to 12 from top to bottom.

When grouped by milestone, for example, the priorities for one report show up like this, sorted ascending:

''' Milestone 1 '''
* 3 High
* 6 Med-

''' Milestone 2 '''
* 3 High
* 4 Med+
* 5 Med+
* 6 Med-
* 0 Low
* 4 Med+
* 5 Med+
* 6 Med-
* 9 Low

Using sqlite 3.7.3, Trac 1.0, Python 2.6.6",d.sullivan@…
next-stable-1.6.x Release,10916,The date/time fields in Custom Query has problem with babel date format.,i18n,1.0,defect,normal,,new,2012-10-19T23:00:37+02:00,2023-09-23T22:33:10+02:00,"Hi~

The date/time fields in '''Custom Query''' has problem with babel date format.

The babel date format can contains dot `.`, and can end with dot `.`.
|| '''`2012. 1. 1.`'''|| babel date format on Korean locale ||

The date/time fields `created` and `modified` in Custom Query
can specifying a value containing two dates separated by two dots `..`.

|| '''`created=2011-01-01..2012-01-01`''' || query tickets created in 2011 with ISO 8601 format ||

If we query tickets created in 2011 on Korean locale,

the result of query are fail because three dots `...`.

|| '''`created=2011. 1. 1...2012. 1. 1.`''' || query tickets created in 2011 with babel date format on Korean ||",Genie
next-stable-1.6.x Release,10884,trac-admin repository resync fails with TypeError : int argument required,version control,0.12.4,defect,normal,,new,2012-10-04T13:56:27+02:00,2023-09-23T22:33:10+02:00,"If for any reason a post-commit hook fails to signal a changeset (rev) has been added in the repository, then the following trac-admin command should re-synchronize it:

trac-admin /path/to/projenv repository resync """" rev

but it fails with the following error:

TypeError: int argument required 

'''How To Reproduce''': make the hook not operational, eg comment out the line in the hook script calling trac-admin. Then create a new changeset in the repository, TRAC should not trace this new revision in the timeline (normal). Then try to resynchronize it with the trac-admin resync command.

'''System Information''':

CentOS Linux 5.8
Trac 	0.12.4
CustomFieldAdmin 	0.2.2
FullBlog 	0.1.1
Genshi 	0.6 (without speedups)
mod_python 	3.2.8
Pygments 	0.9
pysqlite 	2.6.0
Python 	2.4.3 (#1, Jun 18 2012, 08:55:31) [GCC 4.1.2 20080704 (Red Hat 4.1.2-52)]
setuptools 	0.6c11
SQLite 	3.3.6
Subversion 	1.7.6 (r1370777)
jQuery:	1.4.4

By applying the given patch, the resync command is working again.",michel.guillot@…
next-stable-1.6.x Release,10870,"Download in other formats: Plain Text Link in 1.0 RC Used to view in browser, now downloads file",web frontend,1.0-stable,enhancement,normal,,new,2012-09-26T19:20:40+02:00,2023-09-23T22:33:10+02:00,"I made [https://groups.google.com/forum/?fromgroups=#!topic/trac-users/cN6nGKDVzJw a post to the mailing list] after I updated Trac and the behavior of the “Plain Text” link under “Download in other formats” changed.

The link used to display the wiki markup in the browser, but now it causes my browser to download a text file.

The new behavior logically make more sense as it does say **download**, however there are others, such as myself, that prefer the old behavior. Should we wish to download it's still possible.

On the mailing list I was instructed to open a ticket regarding this.

Thanks.",miked@…
next-stable-1.6.x Release,10852,Hooks for custom Javascript after expanding/collapsing an element,general,,enhancement,normal,,new,2012-09-15T17:30:39+02:00,2023-09-23T22:33:10+02:00,"I need to hook in some Javascript to be executed right after Trac's `folding.js` causes a section to be expanded or collapsed.  

(Specifically, when a section with a textarea is expanded after being initially collapsed, I need to redraw any WYSIWYG editors that might be applied to those textareas.)

Right now it's hard to hook in that Javascript: since `enableFolding` binds a click event to a trigger element that it may or may not create dynamically, it's not easy to apply another `click` event to the right element; and also, your click handler then has to inspect the class of the right div to see if it's currently collapsed or expanded.  This means you end up with code that's very dependent on the ordering of DOM elements, and on the order in which click events are bound, in ways that seem somewhat brittle and poorly self-documenting, e.g.:

{{{
#!javascript
  $("".foldable"").enableFolding(false, true);

  // make sure to bind this click event AFTER enableFolding, or else a:first might not exist, and even if it does the click events will be fired in the wrong order
  $("".foldable a:first"").click(function() {  // is it always the first anchor?
    var collapsed = $(this.parentNode.parentNode).hasClass(""collapsed"");  // is it always going to be the grandparent node?
    if( collapsed ) {
       [...]
    }
  });
}}}

Some of these problems would be lessened by applying some more helper classes in the `enableFolding` function, so that (e.g.) the trigger could always be identified by `.foldable a.foldable-trigger` and the collapsible div could always be identified by `$("".foldable"").closest("".collapsible"")`.  Beyond that, though, it would also be useful to trigger a custom jQuery event on the foldable element itself, so that custom Javascript could just hook in to be fired right after the folding event has taken place, and without having to worry about the order of event bindings or whether the triggers have been created in the DOM when the binding is set up.",Ethan Jucovy <ethan.jucovy@…>
next-stable-1.6.x Release,10847,contrib/trac-svn-hook to support TRAC_PARENT_ENV,version control,1.0-stable,enhancement,normal,,new,2012-09-11T07:57:40+02:00,2023-09-23T22:33:10+02:00,this patch adds `TRAC_PARENT_ENV` support to browser:trunk/contrib/trac-svn-hook,Elan Ruusamäe <glen@…>
next-stable-1.6.x Release,10813,diff view (tabular) whitespace off-by-one mistake,version control/changeset view,1.0dev,defect,normal,,new,2012-08-15T19:52:31+02:00,2023-09-23T22:33:10+02:00,"I have made a commit that looks like the following:
{{{
#!diff
--- a
+++ b
@@ -12,3 +12,3 @@
 	return ( stricmp(cpname, ""utf-8""   ) == 0 ) ? CP_UTF8
 	     : ( stricmp(cpname, ""euc-kr""  ) == 0 ) ? CP_EUCKR
-		:
+	     :
}}}
It was to fix a whitespace typo where my editor put in two tabs instead of a tab and five spaces. Now, when I view the revision in the changeset view using 'tabular' mode, the + part of the diff is missing one space and the : is no longer aligned with the line above.

I did some tests with the generated html code, and the cause is the following snippet:
{{{ <span><ins>&nbsp; &nbsp; </ins> :</span> }}}
compare that to the html generated in this ticket view:
{{{ <span><ins>&nbsp; &nbsp; &nbsp;</ins>:</span> }}}

In the changeset view, trac generates the missing blank space outside of the <ins> segment, but that area is not pre-formatted and so the space is discarded by the browser. And even if it wasn't, it would still be colored wrong. What's also weird is the alternating chain of &nbsp; and spaces, instead of just &nbsp; packed together (is this filesize optimization?).

Note that the 'unified' mode does not suffer from this issue as it seems to be taking this off-by-one issue into account and compensating for it. PS: I believe this issue has existed for years.",theultramage <umage@…>
next-stable-1.6.x Release,10763,fix changeset search results,version control,1.0dev,defect,minor,,new,2012-07-12T15:09:25+02:00,2023-09-23T22:33:10+02:00,"I just noticed the following glitch: 
 - the changeset results displayed show something like `[134]: blah`, without any hint about the repository; this should rather be `[134/reponame]` or `[134] in repo1, repo2`, the same kind of consolidation that we (should) get in the timeline 

(should, as that's also broken)",Christian Boos
next-stable-1.6.x Release,10730,Provide Git hooks to call trac-admin,plugin/git,,enhancement,normal,,new,2012-06-19T07:07:03+02:00,2023-09-23T22:33:10+02:00,"As mentioned on TracGit#hooks and as discussed in #10594, we should provide a post-receive hook script for Git to  call trac-admin.

=== References
* ​th:GitPlugin#post-receivehookscripts lists several such shell scripts.
* We provide such hooks for Subversion as shell scripts in `contrib` ([browser:trunk/contrib/trac-svn-hook trac-svn-hook] / [browser:trunk/contrib/trac-svn-post-commit-hook.cmd trac-svn-post-commit-hook.cmd]).
* We provide such hooks for Mercurial as Python scripts in the plugin's directory (#10225 / [browser:plugins/0.13/mercurial-plugin/tracext/hg/hooks.py hooks.py]).",Peter Suter
next-stable-1.6.x Release,10704,Plugin should ignore commits/revisions not in heads or tags,plugin/git,0.12.3,enhancement,normal,,new,2012-05-27T17:43:35+02:00,2023-09-23T22:33:10+02:00,"It seems plugin still (at least its 0.12 version) processes and adds to timeline all commits/revisions, even if they are not in heads or tags refs. From what I have read and by my experience this is wrong.

The difference is same as between:

{{{
git rev-list --all
}}}

and:

{{{
git rev-list --branches --tags
}}}

The point is that various git extensions are storing custom objects in other refs. For example, GitHub stores all pull requests (not even pulled in) in other refs. So if I have a mirrored GitHub repository and Trac access it I get all commits from all pending pull requests visible in timeline.",Mitar
next-stable-1.6.x Release,10539,intertrac links not working properly with diff,wiki system,0.11-stable,defect,normal,,new,2012-01-23T21:23:54+01:00,2023-09-23T22:33:10+02:00,"According to the InterTrac page you can use any flavour of TracLinks. However, not all forms of diff work. For example (using the examples from the TracLinks page):

Work fine:
 * trac:diff:@1:3
 * trac:diff:plugins/0.12/mercurial-plugin@9128:9953
Fail:
 * trac:diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default
 * trac:diff:trunk/trac@3538//sandbox/vc-refactoring@3539",Dave Matthews
next-stable-1.6.x Release,10465,Counting of Ticket-Comments defect,ticket system,0.12.1,defect,normal,,new,2011-11-15T16:50:37+01:00,2023-09-23T22:33:10+02:00,"Hello,

in our trac installation I see the error that the ticket comment after comment 79 gets again the number 3. All comments after that comment are increased from 3.

OS is CentOS 6.

Regards,

Erwin Schliske",schliske@…
next-stable-1.6.x Release,10433,bootstrap script for Trac development,general,,enhancement,normal,,new,2011-10-25T18:33:55+02:00,2023-09-23T22:33:10+02:00,"After some experience with AppEngine launcher, I can not stand to re-construct the environment required for Trac each time I do a new clone anymore, so I've compiled a simple script to do the bootstrapping for development

Hope you'll find it useful - tested on 0.12.2

https://bitbucket.org/techtonik/trac-bootstrap-script/src",anatoly techtonik <techtonik@…>
next-stable-1.6.x Release,10339,"Created, Modified and Ticket columns are not translated in SQL reports",general,0.12dev,defect,normal,,new,2011-09-05T22:44:23+02:00,2023-09-23T22:33:10+02:00,In custom queries these columns are translated.,arkinform
next-stable-1.6.x Release,10232,Validating Ticket accounts for new or removed fields?,ticket system,0.11.5,defect,normal,,new,2011-06-23T16:33:44+02:00,2023-09-23T22:33:10+02:00,"On IRC today there appeared an issue that brought back memories of #4447 and #9663.

A user has permission to reopen a ticket, and when doing so the preview looks like this:

{{{
#!div style=""background:#EEE""
 * '''status''' changed from ''closed'' to ''reopened''
 * '''resolution''' ''answered'' deleted
}}}

Just like it should. And `trac.ticket.web_ui.TicketModule._validate_ticket()` accounts for the fact that workflow may change these two fields. Problem is that the user sees an error:

{{{
#!div style=""background:#FFFFBB""
'''Warning:''' No permission to change ticket fields.
}}}

The user claims that this happens all the time, and the real question is why `changes` isn't empty after this in initial validation method:
{{{
#!python
changed = set(ticket._old) - set(['status', 'resolution'])
}}}

I suspect this is due to fields being added or removed in the system in the time since the ticket was previously edited. They are changes that will need to be recorded, but when they don't arise from user input it seems wrong to let it be a user problem.

The problem is real, but my hypothesis is not completely researched yet... But, it feels like it makes sense... :-)
",osimons
next-stable-1.6.x Release,10112,notifications strip slashes from email addresses,notification,0.11.7,defect,normal,,new,2011-04-02T06:04:01+02:00,2023-09-23T22:33:10+02:00,"We setup aliases in sendmail like `group/mytestgroup@domain.com` populated with the members of mytestgroup for easy/simplistic list aliases.  The left hand side of these appears to be getting stripped when sending email through trac's smtp_notification features so that the logs show it only sending messages to `mytestgroup@domain.com` which typically isn't a valid alias.

I'm running trac from Debian Squeeze - 0.11.7.

Let me know if you need anything else.

Thanks,
Brian",bpkroth@…
next-stable-1.6.x Release,9971,"cannot unsubscribe from bug, no way, no how",notification,0.12,defect,normal,,new,2011-01-12T03:27:07+01:00,2023-09-23T22:33:10+02:00,"As you can see in
http://trac.transmissionbt.com/ticket/532#comment:75
not me, a mere user, nor him, an administrator, can unsubscribe me from that bug, no way, no how.
",jidanni@…
next-stable-1.6.x Release,9871,error occurs when upload an attachment with size of about 800M in a ticket,general,,defect,normal,,new,2010-11-25T02:02:55+01:00,2023-09-23T22:33:10+02:00,"{{{
Traceback (most recent call last):
  File ""/usr/lib/python2.4/site-packages/trac/web/api.py"", line 436, in send_error
    data, 'text/html')
  File ""/usr/lib/python2.4/site-packages/trac/web/chrome.py"", line 864, in render_template
    stream.render(method, doctype=doctype, out=buffer)
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/core.py"", line 183, in render
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/output.py"", line 58, in encode
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/output.py"", line 339, in __call__
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/output.py"", line 826, in __call__
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/output.py"", line 670, in __call__
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/output.py"", line 771, in __call__
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/output.py"", line 586, in __call__
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/core.py"", line 288, in _ensure
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/core.py"", line 288, in _ensure
  File ""/usr/lib/python2.4/site-packages/trac/web/chrome.py"", line 957, in _generate
    for kind, data, pos in stream:
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/base.py"", line 605, in _include
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/markup.py"", line 378, in _match
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/markup.py"", line 378, in _match
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/markup.py"", line 327, in _match
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/base.py"", line 545, in _flatten
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/core.py"", line 288, in _ensure
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/path.py"", line 588, in _generate
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/base.py"", line 605, in _include
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/markup.py"", line 316, in _strip
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/base.py"", line 545, in _flatten
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/core.py"", line 288, in _ensure
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/path.py"", line 588, in _generate
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/base.py"", line 605, in _include
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/markup.py"", line 316, in _strip
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/base.py"", line 565, in _flatten
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/base.py"", line 277, in _eval_expr
  File ""/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg/genshi/template/eval.py"", line 178, in evaluate
  File ""/usr/lib/python2.4/site-packages/trac/templates/error.html"", line 73, in <Expression u'pprint(req.args)'>
    ${pprint(req.args)}
  File ""/usr/lib64/python2.4/pprint.py"", line 59, in pformat
    return PrettyPrinter(indent=indent, width=width, depth=depth).pformat(object)
  File ""/usr/lib64/python2.4/pprint.py"", line 110, in pformat
    self._format(object, sio, 0, 0, {}, 0)
  File ""/usr/lib64/python2.4/pprint.py"", line 128, in _format
    rep = self._repr(object, context, level - 1)
  File ""/usr/lib64/python2.4/pprint.py"", line 194, in _repr
    self._depth, level)
  File ""/usr/lib64/python2.4/pprint.py"", line 206, in format
    return _safe_repr(object, context, maxlevels, level)
  File ""/usr/lib64/python2.4/pprint.py"", line 250, in _safe_repr
    vrepr, vreadable, vrecur = saferepr(v, context, maxlevels, level)
  File ""/usr/lib64/python2.4/pprint.py"", line 291, in _safe_repr
    rep = repr(object)
  File ""/usr/lib64/python2.4/cgi.py"", line 532, in __repr__
    return ""FieldStorage(%r, %r, %r)"" % (
SystemError: Negative size passed to PyString_FromStringAndSize
}}}",382919930@…
next-stable-1.6.x Release,9771,Undocumented/unintended?  Max preview size limited by wiki max page size,attachment,0.12-stable,defect,normal,,new,2010-11-04T20:21:06+01:00,2023-09-23T22:33:10+02:00,"I'd bumped the attachment size limit on our local Trac instance up from the default 256K to 1M, but another developer noted that when he uploaded a PNG image that was >256K, the attachment link still stated ""HTML preview not available, since the file size exceeds 262144 bytes"".

Raising the apparently-unrelated [wiki] max_size configuration item to 1M solves the problem.  So it looks to me like the max previewable size is actually the lower of (mimeviewer.max_preview_size, wiki.max_size).  Whether that's what was intended is another issue...
",charlesc-web-feedback-trac@…
next-stable-1.6.x Release,9677,Expanding an alias repository sets the hash to the aliased repository,version control/browser,0.12-stable,defect,normal,,new,2010-10-08T13:54:22+02:00,2023-09-23T22:33:10+02:00,"When expanding a named repository alias in the repository index, the URL hash is set to the aliased repository instead of the alias. Therefore, when reloading a page with an expanded alias, the aliased repository is expanded instead.

This is due to [source:trunk/trac/htdocs/js/expand_dir.js@10012:78-80#L59 toggleDir()] using the anchor `href` to determine the path. For aliases, the `href` points to the aliased repository. We could instead reconstruct the path by using the anchor `text()` and walking up the table to find the containing directories.",Remy Blank
next-stable-1.6.x Release,9528,Failed to highlight active mainnav item if `RepositoryManager` is enabled,web frontend,0.12,defect,minor,,new,2010-07-28T16:10:15+02:00,2023-09-23T22:33:10+02:00,"
I am experiencing an odd behavior using Trac and [http://trac-hacks.org/wiki/ThemeEnginePlugin ThemeEnginePlugin] . The problem is that `active` CSS class is not added to active mainnav item. Everything works ok if I disable `RepositoryManager` . I've tried to find the exact location where the problem happens , but without success . The only things I can say so far are :

  - `handler` var is set to `None` when calling `Chrome.prepare_data` ...
  - ... therefore `active` var is also set to `None` , and item is not
    highlighted in mainnav ...
  - ... the strange fact is that at that time , the partial object has
    already been installed for `chosen_handler` inside
    `RequestDispatcher.dispach` since `req.callbacks['chrome'].keywords.items()`
    contains the correct binding for `handler` key.
  - the signature of `RepositoryManager.post_process_request` is
    `post_process_request(self, req, template, content_type)` ,
    is it suitable to be used with Genshi templates ?

PS: Posted here 'cause I think there's a problem with Trac rather than the plugin .
",olemis+trac@…
next-stable-1.6.x Release,9298,"IntegrityError: duplicate key value violates unique constraint ""session_attribute_pk""",general,0.12b1,defect,minor,,new,2010-05-05T18:28:34+02:00,2023-09-23T22:33:10+02:00,"Happened when loading a bunch of reports as //anonymous//.


==== Information système ====

|| '''`Trac`''' || `0.12b1` ||
|| '''`Babel`''' || `0.9.5` ||
|| '''`Docutils`''' || `0.6` ||
|| '''`Genshi`''' || `0.6` ||
|| '''`psycopg2`''' || `2.0.8` ||
|| '''`Pygments`''' || `1.2.2dev-20100224` ||
|| '''`Python`''' || `2.5.2 (r252:60911, Oct  5 2008, 19:29:17) ` [[br]] `[GCC 4.3.2]` ||
|| '''`pytz`''' || `2010g` ||
|| '''`setuptools`''' || `0.6c9` ||
|| '''`Subversion`''' || `1.5.1 (r32289)` ||


==== Pile d'appel Python ====
{{{
Traceback (most recent call last):
  File ""build/bdist.linux-x86_64/egg/trac/web/main.py"", line 512, in _dispatch_request
    dispatcher.dispatch(req)
  File ""build/bdist.linux-x86_64/egg/trac/web/main.py"", line 257, in dispatch
    req.session.save()
  File ""build/bdist.linux-x86_64/egg/trac/web/session.py"", line 88, in save
    @self.env.with_transaction()
  File ""build/bdist.linux-x86_64/egg/trac/db/util.py"", line 60, in transaction_wrapper
    fn(ldb)
  File ""build/bdist.linux-x86_64/egg/trac/web/session.py"", line 117, in delete_session_cookie
    """""", attrs)
  File ""build/bdist.linux-x86_64/egg/trac/db/util.py"", line 142, in executemany
    return self.cursor.executemany(sql_escape_percent(sql), args)
IntegrityError: duplicate key value violates unique constraint ""session_attribute_pk""
}}}",Christian Boos
next-stable-1.6.x Release,9140,patch renderer should handle added binary files in GIT binary diffs,rendering,0.12dev,defect,minor,,new,2010-03-15T22:33:03+01:00,2023-09-23T22:33:10+02:00,"{{{
2010-03-15 22:05:19,147 Trac[api] WARNING: HTML preview using <trac.mimeview.patch.PatchRenderer object at 0x2693850> failed (
Traceback (most recent call last):
  File ""build/bdist.linux-x86_64/egg/trac/mimeview/api.py"", line 759, in render
    rendered_content, filename, url)
  File ""build/bdist.linux-x86_64/egg/trac/mimeview/patch.py"", line 51, in render
    Mimeview(self.env).tab_width)
  File ""build/bdist.linux-x86_64/egg/trac/mimeview/patch.py"", line 118, in _diff_to_hdf
    oldrev, newrev = index_line.split()[-1].split('..')
ValueError: need more than 1 value to unpack)
}}}

for attachment:8216-textarea-resize-r8859.patch:ticket:8721.

This is an issue with GIT binary diffs: for a new binary there's a `new file mode 100644` line, which is not currently expected by the code.

{{{
94	diff --git a/trac/htdocs/grip.png b/trac/htdocs/grip.png
95	new file mode 100644
96	index 0000000000000000000000000000000000000000..6524d4167d2d6e3939cfcf3111ce520acd66bc21
97	GIT binary patch
98	literal 162
99	zc%17D@N?(olHy`uVBq!ia0vp^(m>40!3-puuch|@DVB6cUq=Rp^(V|(yIunMk|nMY
100	zCBgY=CFO}lsSJ)O`AMk?p1FzXsX?iUDV2pMQ*D5X*aCb)TzBu@{r~^}iVZzqfg(&L
101	zL4Lvi8J=!8@B;EgJY5_^DsCku9AK6xWM-3k!OUU6z#qV1KKathOF(%BPgg&ebxsLQ
102	E0Ke)mAOHXW
103	
}}}",Christian Boos
next-stable-1.6.x Release,9137,Improper display of negative time difference,timeline,0.12dev,defect,minor,,new,2010-03-13T16:35:29+01:00,2023-09-23T22:33:10+02:00,"I accidentally had my SVN server clock set to one day in the future, so commits had a future timestamp.

My Trac sandbox runs on a different server, and is configured with SVN repository that is a readonly mirror of the one mentioned above (using svnsync).

As a result, new commits to the original SVN server are svnsync'ed to the mirror with the future timestamp, which I would expect to see in Trac source browser with negative age. What actually happens is that the age is ""24 hours"", which is the absolute value of the actual difference.

I set Severity to minor, since the scenario is *quite* uncommon, but thought it's worth reporting either way.. :-)",Itamar O <itamarost@…>
next-stable-1.6.x Release,9124,Request-URI Too Large,general,,defect,normal,,new,2010-03-09T17:47:59+01:00,2023-09-23T22:33:10+02:00,"When i clicked 'create' on the database is locked error I get this apache error.

The requested URL's length exceeds the capacity limit for this server.

Apache/2.0.55 (Ubuntu) DAV/2 SVN/1.3.1 mod_python/3.1.4 Python/2.4.3 mod_ssl/2.0.55 OpenSSL/0.9.8a Server 

I have apache configured not to accept URLs longer than 8190 bytes

I would be nice if there was a way to set an optional length limit on tickets created this way.  That way, if the description exceeds that limit (say 8kb) it can trim part of the description so that it's still at least possible to create the ticket. ",darkskuld
next-stable-1.6.x Release,9006,"Tickets remain in query list until clicking ""Update""",report system,0.11.2.1,defect,minor,,new,2010-01-28T17:26:38+01:00,2023-09-23T22:33:10+02:00,"Changed tickets don't get removed from query listings unless ""Update"" is explicitly clicked. This seems unexpected, since you can go all the way from View tickets -> [saved query] and the listing is out-of-date if you've viewed it before. This even happens if I restart my browser between viewing the query. I'm using Firefox 3.5.7 on Windows XP.

A simple way to reproduce:
1. Create a custom query with only one filter status=closed.
2. Reopen one of the listed closed tickets.
3. View the query again, and see the reopened ticket still listed.

I can't really tell whether this is a bug or an undocumented feature (in which case it should just be documented). To me, the behavior seems to be caused by [source:/trunk/trac/ticket/query.py@9062#L1031 QueryModule's display_html] not running certain SQL queries again if they were run during the last hour.",hannu.hartikainen@…
next-stable-1.6.x Release,8708,Operational Error: database is locked,database backend,0.11-stable,defect,major,,new,2009-10-01T10:54:11+02:00,2023-09-23T22:33:10+02:00,"Today we hit the database locked error again. After reading on IRC earlier this week that this particular error was fixed, we upgraded to the trac 0.11.x stable branch, hoping it would be fixed, but unfortunately it seems it isn't..

So as described in #3446, I'm opening a new ticket and attaching as much info as I can find.

{{{
#!html
        <div id=""systeminfo"">
          <h2>System Information</h2>
          <table class=""listing"">
            <tr>
              <th>Trac:</th>
              <td>0.11.6stable-r8631</td>
            </tr><tr>

              <th>Python:</th>
              <td>2.5.4 (r254:67916, Dec 25 2008, 15:04:44)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)]</td>
            </tr><tr>
              <th>setuptools:</th>
              <td>0.6c9</td>
            </tr><tr>
              <th>SQLite:</th>

              <td>3.6.13</td>
            </tr><tr>
              <th>pysqlite:</th>
              <td>2.5.5</td>
            </tr><tr>
              <th>Genshi:</th>
              <td>0.6dev-r1064</td>

            </tr><tr>
              <th>mod_wsgi:</th>
              <td>2.4</td>
            </tr><tr>
              <th>Pygments:</th>
              <td>1.0</td>
            </tr><tr>

              <th>Subversion:</th>
              <td>1.5.7 (r36142)</td>
            </tr><tr>
              <th>RPC:</th>
              <td>1.0.6</td>
            </tr>
          </table>

        </div>
}}}

This is the error I grabbed from the Apache log, not sure if it's related:

{{{
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4] mod_wsgi (pid=11176): Exception occurred processing W                                          SGI script '/var/www/wsgi/trac.wsgi'.
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4] Traceback (most recent call last):
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]   File ""/usr/local/src/trac-0.11stable/trac/web/main.                                          py"", line 415, in dispatch_request
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]     return _dispatch_request(req, env, env_error)
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]   File ""/usr/local/src/trac-0.11stable/trac/web/main.                                          py"", line 523, in _dispatch_request
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]     req.send_error(exc_info, status=500, env=env, dat                                          a=data)
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]   File ""/usr/local/src/trac-0.11stable/trac/web/api.p                                          y"", line 396, in send_error
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]     exc_info)
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]   File ""/usr/local/src/trac-0.11stable/trac/web/main.                                          py"", line 445, in _dispatch_request
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]     dispatcher.dispatch(req)
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]   File ""/usr/local/src/trac-0.11stable/trac/web/main.                                          py"", line 230, in dispatch
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]     req.send(output, content_type or 'text/html')
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]   File ""/usr/local/src/trac-0.11stable/trac/web/api.p                                          y"", line 359, in send
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]     self.write(content)
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]   File ""/usr/local/src/trac-0.11stable/trac/web/api.p                                          y"", line 463, in write
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4]     self._write(data)
[Thu Oct 01 10:43:26 2009] [error] [client 77.247.9.4] IOError: failed to write data
}}}

And I attached a screenshot of the error.",Thijs Triemstra <lists@…>
next-stable-1.6.x Release,8707,ValueError: invalid literal for int() with base 10: '25.09.2009',report system,0.11.5,defect,normal,,new,2009-10-01T07:18:06+02:00,2023-09-23T22:33:10+02:00,"
==== How to Reproduce ====

While doing a GET operation on `/report/26`, Trac issued an internal error.

''(please provide additional details here)''


Request parameters:
{{{
{'id': u'26'}
}}}


User Agent was: `Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.6) Gecko/2009020409 Iceweasel/3.0.6 (Debian-3.0.6-1)`

==== System Information ====

|| '''Trac''' || `0.11.5` ||
|| '''Python''' || `2.5.2 (r252:60911, Jan  4 2009, 17:40:26) ` [[br]] `[GCC 4.3.2]` ||
|| '''setuptools''' || `0.6c8` ||
|| '''psycopg2''' || `2.0.7` ||
|| '''Genshi''' || `0.5.1` ||
|| '''Pygments''' || `0.10` ||
|| '''jQuery:''' || `1.2.6` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/main.py"", line 444, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/main.py"", line 226, in dispatch
    data, content_type)
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/chrome.py"", line 765, in render_template
    stream.render(method, doctype=doctype, out=buffer)
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 179, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 61, in encode
    for chunk in iterator:
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 311, in __call__
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 753, in __call__
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 592, in __call__
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 698, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File ""build/bdist.linux-i686/egg/genshi/output.py"", line 532, in __call__
    for ev in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/chrome.py"", line 830, in _strip_accesskeys
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/web/chrome.py"", line 819, in _generate
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 569, in _include
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 298, in _match
    ctxt, start=idx + 1, **vars):
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 298, in _match
    ctxt, start=idx + 1, **vars):
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 245, in _match
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 543, in _exec
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 533, in _eval
    for event in substream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 496, in _eval
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 551, in _flatten
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/path.py"", line 141, in _generate
    subevent = stream.next()
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 569, in _include
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 234, in _strip
    event = stream.next()
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 543, in _exec
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 533, in _eval
    for event in substream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 496, in _eval
    for kind, data, pos in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 551, in _flatten
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/core.py"", line 283, in _ensure
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/path.py"", line 141, in _generate
    subevent = stream.next()
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 569, in _include
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/markup.py"", line 234, in _strip
    event = stream.next()
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 543, in _exec
    for event in stream:
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 520, in _eval
    result = _eval_expr(data, ctxt, **vars)
  File ""build/bdist.linux-i686/egg/genshi/template/base.py"", line 286, in _eval_expr
    retval = expr.evaluate(ctxt)
  File ""build/bdist.linux-i686/egg/genshi/template/eval.py"", line 180, in evaluate
    return eval(self.code, _globals, {'__data__': data})
  File ""/usr/lib/python2.5/site-packages/Trac-0.11.5-py2.5.egg/trac/ticket/templates/report_view.html"", line 120, in <Expression u""cell.value != '' and format_date(int(cell.value)) or '--'"">
    <td class=""date"" py:attrs=""td_attrs"">${cell.value != '' and format_date(int(cell.value)) or '--'}
ValueError: invalid literal for int() with base 10: '25.09.2009'

}}}
    ",krivolapov@…
next-stable-1.6.x Release,8700,patch for trac-svn-post-commit-hook.cmd,version control,devel,defect,normal,,new,2009-09-29T14:53:32+02:00,2023-09-23T22:33:10+02:00,"With last Multirepos branch, you need to specify just the repository's name instead full repository path; otherwise trac-admin will not resync.

The patch in attach correct this problem and clarifies the usage of batch files.

The batch file is tested on Win Xp.

Thanks you.
Federico [at] Briata [dot] Org",federico.briata@…
next-stable-1.6.x Release,8639,"""View latest revision"" links to non-existent (404) page",version control/browser,0.11.4,defect,minor,,new,2009-09-06T10:45:08+02:00,2023-09-23T22:33:10+02:00,"""View latest revision"" links to non-existent (404) page in repository browser for files which do not exist anymore in current/latest revision. This makes a lot of 404 errors when robots are crawling Trac and is otherwise not nice to have links to non-existent pages.

I would propose replacing this link with a static message ""Non-existent in latest revision"".",Mitar
next-stable-1.6.x Release,8436,search results won't show matches from ticket comments,search system,0.11-stable,defect,minor,,new,2009-07-02T12:54:18+02:00,2023-09-23T22:33:10+02:00,"Noticed while testing the case sensitivity of search: tickets can be correctly retrieved when looking for words written in ticket comments, but the excerpt shown in the search results will never show the actual matches.",Christian Boos
next-stable-1.6.x Release,8130,Report execution failed using Dynamic variables,report system,0.11.2.1,defect,normal,,new,2009-03-13T16:22:38+01:00,2023-09-23T22:33:10+02:00,"I have tried to do a custom query, which works propertly if I do not use dynamic variables.
Like this:
{{{
select sum(cuenta.Reabiertos) as ""Casos Re-Abiertos Totales"",sum (cuenta.Total) as ""Casos Totales"",to_char(sum(cuenta.Reabiertos)*100/sum(cuenta.Total),'99.9') as ""%""
from
(select count (distinct (tt.id)) as Total,0 as Reabiertos
from ticket tt
where
tt.reporter='soporteoperaciones'and 
to_date('01/02/2009', 'DD/MM/YYYY')<=to_timestamp(tt.time) and 
to_date('01/03/2009', 'DD/MM/YYYY')>= to_timestamp(tt.time) 
union all
select 0 as Total,count (distinct (tc.ticket)) as Reabiertos
from ticket_change tc
where
tc.ticket in (select  t.id as ID
from ticket_change tc2,ticket t
where
t.id=tc2.ticket and
t.reporter='soporteoperaciones'and 
to_date('01/02/2009', 'DD/MM/YYYY')<=to_timestamp(t.time) and 
to_date('01/03/2009', 'DD/MM/YYYY')>= to_timestamp(t.time) and
tc2.field='status'and 
tc2.oldvalue='closed'and 
tc2.newvalue='reopened') and 
tc.field='resolution' and
tc.newvalue='fixed' ) cuenta


}}}

But when I use  '''Dynamic Variables''' in dates:[[BR]]
'''''$FECHAINI'''''[[BR]]

'''''$FECHAFIN'''''[[BR]]

for a report like:
''http://172.30.2.2/trac/report/62?FECHAINI=09/01/2009&FECHAFIN=13/02/2009''

{{{
select sum(cuenta.Reabiertos) as ""Casos Re-Abiertos Totales"",sum (cuenta.Total) as ""Casos Totales"",to_char(sum(cuenta.Reabiertos)*100/sum(cuenta.Total),'99.9') as ""%""
from
(select count (distinct (tt.id)) as Total,0 as Reabiertos
from ticket tt
where
tt.reporter='soporteoperaciones'and 
to_date('$FECHAINI', 'DD/MM/YYYY')<=to_timestamp(tt.time) and 
to_date('$FECHAFIN', 'DD/MM/YYYY')>= to_timestamp(tt.time) 
union all
select 0 as Total,count (distinct (tc.ticket)) as Reabiertos
from ticket_change tc
where
tc.ticket in (select  t.id as ID
from ticket_change tc2,ticket t
where
t.id=tc2.ticket and
t.reporter='soporteoperaciones'and 
to_date('$FECHAINI', 'DD/MM/YYYY')<=to_timestamp(t.time) and 
to_date('$FECHAFIN', 'DD/MM/YYYY')>= to_timestamp(t.time) and
tc2.field='status'and 
tc2.oldvalue='closed'and 
tc2.newvalue='reopened') and 
tc.field='resolution' and
tc.newvalue='fixed' ) cuenta


}}}

I've got an '''error'''


{{{
''Report execution failed: list index out of range''
}}}

",fermaf@…
next-stable-1.6.x Release,8006,Non-Writable Python Egg Cache Directory causes mod_fastcgi to send an error 500 with Apache 2,general,0.11.2.1,defect,normal,,new,2009-01-27T23:47:36+01:00,2023-09-23T22:33:10+02:00,"'''First my config:'''

{{{
$ uname -a
Darwin bioweb.umtri.umich.edu 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386

$ httpd -v
Server version: Apache/2.2.9 (Unix)
Server built:   Sep 19 2008 10:58:54

$ python -V
Python 2.5.1

$ trac-admin -v
trac-admin 0.11.2.1
}}}

This was an upgrade, from a trac 0.11 beta. this error drove me nuts because {{{tracd}}} worked properly as did {{{$ ./trac.fcgi}}}

'''The problem:'''

after the upgrade all I was able to get via my server was an error 500 (internal server error), no *useful* debugging information was available anywhere.

After futzing with anything/everything I could think of for over an hour, I finally decided to try trac.cgi instead of trac.fcgi. trac.cgi gave me an error that stated 
{{{
The Python egg cache directory is currently set to:

  /Library/WebServer/.python-eggs

Perhaps your account does not have write access to this directory?  You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.
}}}

To fix this problem I added 
{{{os.environ['PYTHON_EGG_CACHE'] = ""/some/writable/path/to/.python-eggs""}}} to my trac.cgi file, and all of a sudden trac started working. I then added that line to my trac.fcgi file and then fcgi started working again.

'''So there is potentially three bugs...'''
 1. Maybe most importantly, if the PYTHON_EGG_CACHE location isn't writable fcgi does not display an error message with any relevant information
 1. the default PYTHON_EGG_CACHE is not being set properly on OS X 10.5.6
 1. the documentation of {{{wiki/TracFastCgi}}} is missing critical information

This problem is ""slightly"" documented at http://trac.edgewall.org/wiki/TracOnLeopardServer",nmadura@…
next-stable-1.6.x Release,7975,Viewing changesets is very slow,version control/changeset view,0.11.2.1,defect,major,,new,2009-01-16T17:24:53+01:00,2023-09-23T22:33:10+02:00,Running trac 0.11.2.1 with Postgres 8.1.11 backend.  We have approximatley 20k changesets.  It takes several minutes to render a changeset.  The systems appears to be doing heavy I/O against the database during the rendering.  Have tried adjusting max_diff_bytes and max_diff_files to various settings with no effect.,it@…
next-stable-1.6.x Release,7786,Removing existing ticket priorities makes tickets unrenderable in queries,admin/web,0.11-stable,defect,major,,new,2008-11-05T11:08:51+01:00,2023-09-23T22:33:10+02:00,"If you remove all priorities that exist in tickets and add new ones (with different name) you can't query existing tickets anymore since many pieces of code relies on existing ""priority"" values in enum table.

There should be warning that operation causes bad side-effects, preferably there should be option to automatically upgrade tickets to new values.",jtiai
next-stable-1.6.x Release,7486,wrong space in diff output,version control/changeset view,0.11-stable,defect,normal,,new,2008-07-30T14:50:39+02:00,2023-09-23T22:33:10+02:00,"i'm not sure if this applies to other mimetype syntax highligher

See URL: http://linuxfire.com.cn/BadGirl/changeset/290

the new ""num0_254"" is EXPECTED to be align to num1_254 but it is ACTUALLY 1 char off and align to ""(""

actual code output:
{{{
                        <th>114</th><th> </th><td class=""l""><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <del>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </del> num0_254,</span> </td>
}}}
expected code output
{{{
                        <th>114</th><th> </th><td class=""l""><span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <del>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </del>&nbsp;num0_254,</span> </td>
}}}

please note the difference is, ""</del> "" is changed to ""</del>&nbsp;""

tech reason: although space following &nbsp; is recognized as space, e.g.: ""&nbsp; "" is same as ""&nbsp;&nbsp;"", but space following the ""<tag>"" is not. ""</del> "" should be escape as ""</del>&nbsp;""",moo
next-stable-1.6.x Release,7463,theme.html not included when trac is at / URL.,general,0.11-stable,defect,normal,,new,2008-07-24T13:33:01+02:00,2023-09-23T22:33:10+02:00,"It took me 4 hours to trace all things and make out this bug.
I have simple setup nothing special. 
When I visit http://trac.host:8000/project/ all is ok (using tracd)
But when I use apache + mod_wsgi to visit http://trac.host (without project) I do not see header, banner, menu, just content. 
When I looked into sources I noticed that trac did not generate divs. So I started to trace it. 
It finished with the solution:
{{{
snowflake templates # diff  layout.html layout.html-orig 
54c54
<   <xi:include href=""$chrome.theme""></xi:include>
---
>   <xi:include href=""$chrome.theme""><xi:fallback /></xi:include>
snowflake templates # 
}}}
I suppose that when fallback is ON Genshi does not search another template directories to include theme.html.",anonymous
next-stable-1.6.x Release,7454,Query timeouts with PG result in traceback,search system,0.10.5,defect,minor,,new,2008-07-22T04:19:37+02:00,2023-09-23T22:33:10+02:00,"In trac.adiumx.com search select :tickets, wikis, and changesets; search for ""tor"" (without the quotes).
This is the effect:


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/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 237, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/usr/lib/python2.4/site-packages/trac/Search.py"", line 181, in process_request
    results += list(source.get_search_results(req, terms, filters))
  File ""/usr/lib/python2.4/site-packages/trac/ticket/api.py"", line 269, in get_search_results
    args + args2)
  File ""/usr/lib/python2.4/site-packages/trac/db/util.py"", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
  File ""/usr/lib/python2.4/site-packages/trac/db/util.py"", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
ProgrammingError: canceling statement due to statement timeout
}}}",anonymous
next-stable-1.6.x Release,7378,Don't mess up formatting when saving trac.ini,general,,defect,normal,,new,2008-06-25T11:10:43+02:00,2023-09-23T22:33:10+02:00,"It would be nice to specify a ticket workflow in another file (perhaps under the {{{conf/}}} directory) and have a setting in {{{trac.ini}}} which instructs Trac to parse that file for the workflow.

I mention this idea because the '''Trac Admin Module/Console''', which allows settings to be edited through the Trac web interface, re-arranges the workflow and strips out any existing comments and line spacing.

For complex workflows, this can be a possible maintenance problem for those who are tasked in the future with introducing additional workflows into the existing workflow.

On the whole, I love the workflow concept - great work in introducing it into 0.11 guys! :)",cl_111@…
next-stable-1.6.x Release,7276,"wiki page versions start with 1, but Initial Version links to 0",general,0.11-stable,defect,normal,,new,2008-05-28T05:14:39+02:00,2023-09-23T22:33:10+02:00,"In the heading of
http://trac.edgewall.org/wiki/EliCarter?action=diff&version=1
, the words ""Initial Version"" link to
http://trac.edgewall.org/wiki/EliCarter?version=0 which gives a Trac error
saying `No version ""0"" for Wiki page ""EliCarter""`.

This also occurs for newly created pages.
",Eli Carter
next-stable-1.6.x Release,6943,diff renderer has problems processing file names,rendering,,defect,minor,,new,2008-03-05T21:58:27+01:00,2023-09-23T22:33:10+02:00,"I discovered a glitch in how trac renders unified diffs. Specifically, depending on the old and new filename, the results will vary a lot.

Following are several examples:

----

same name
{{{
#!diff
--- x.txt       Wed Oct 17 08:44:43 2007
+++ x.txt       Wed Oct 17 08:44:58 2007
@@ -1,3 +1,3 @@
 this is example text
 and one more line
-no more lines
+no more lines
}}}

----

different name, no dot in name
(in /trunk, this displays as ""(a) xxx vs. (b) yyy"")
{{{
#!diff
--- xxx       Wed Oct 17 08:44:43 2007
+++ yyy      Wed Oct 17 08:44:58 2007
@@ -1,3 +1,3 @@
 this is example text
 and one more line
-no more lines
+no more lines
}}}

----

different name, dot in name
{{{
#!diff
--- xxx.txt       Wed Oct 17 08:44:43 2007
+++ yyy.txt       Wed Oct 17 08:44:58 2007
@@ -1,3 +1,3 @@
 this is example text
 and one more line
-no more lines
+no more lines
}}}

for reference, this is an image of how the third case looked like at the time of writing: [[Image(trac-diff-glitch.png)]]

as you can see, the 'xxx' and 'yyy' replaced the 'old'/'new' columns, and the title is completely wrong.",theultramage@…
next-stable-1.6.x Release,6739,Trac svn-python mismatch with Apache 2.2 under Windows,web frontend/mod_python,0.11b1,defect,normal,,new,2008-01-30T18:35:26+01:00,2023-09-23T22:33:10+02:00,"If you use xampp apache 2.2 and trac 11b1, you have to use the svn-python binding from
this page (binding for apache 2.0)
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=74
Subversion recommended this binding
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=8100
But in this case I have an unsynchronized repository.
error-stack:
{{{
2008-01-30 12:21:21,890 Trac[svn_fs] INFO: Failed to load Subversion bindings
Traceback (most recent call last):
  File ""C:\Python25\Lib\site-packages\trac\versioncontrol\svn_fs.py"", line 251, in __init__
    _import_svn()
  File ""C:\Python25\Lib\site-packages\trac\versioncontrol\svn_fs.py"", line 69, in _import_svn
    from svn import fs, repos, core, delta
  File ""C:\Python25\Lib\site-packages\svn\fs.py"", line 19, in <module>
    from libsvn.fs import *
  File ""C:\Python25\Lib\site-packages\libsvn\fs.py"", line 29, in <module>
    import core
  File ""C:\Python25\Lib\site-packages\libsvn\core.py"", line 5, in <module>
    import _core
ImportError: DLL load failed: Die angegebene Prozedur wurde nicht gefunden.
}}}
So I go back to use the binding for apache 2.0.
If you follow the install-guide from Trac, you won't realize this mistake, because the link brings you to subversion/apache 2.0.
Please resolve this mismatch!

",jschmidt@…
next-stable-1.6.x Release,6724,"Redirecting mainnav buttons to wiki page breaks ""active"" highlight",general,0.11b1,defect,normal,,new,2008-01-28T15:55:38+01:00,2023-09-23T22:33:10+02:00,"I've modified some of my Mainnav buttons as per the TracInterfaceCustomization page. Both my Timeline and Roadmap button now link to a wikipage. When I use these buttons the Wiki button is highlighted instead of the Timeline or Roadmap button.[[BR]]

I use IE 7.0 and can't test other browsers as this is a work pc.[[BR]]
Following is the trac.ini change I made for the mainnav:
{{{
#added for custom menu
[mainnav]
wiki.label = Home
timeline.label = Documentation
timeline.href = /wiki/Documentation
roadmap.label = Community
roadmap.href = /wiki/Community
}}}
",rsm@…
next-stable-1.6.x Release,6682,"""binary files ... differ"" in diff/patch files",rendering,0.10.3,defect,minor,,new,2008-01-21T10:09:06+01:00,2023-09-23T22:33:10+02:00,"hi, please do not skip content of patchfiles when it states that two binary files differ:

e.g.

{{{
--- a/main.inc.php	2007-11-29 09:45:26.065072250 +0100
+++ b/main.inc.php	2008-01-14 22:48:30.340162500 +0100
@@ -85,7 +85,7 @@ $rcmail_config['smtp_log'] = TRUE;
 $rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size');
 
 // relative path to the skin folder
-$rcmail_config['skin_path'] = 'skins/default/';
+$rcmail_config['skin_path'] = 'skins/ipax/';
 
 // use this folder to store temp files (must be writebale for apache user)
 $rcmail_config['temp_dir'] = 'temp/';
Binary files a/blank.gif and b/blank.gif differ
}}}

is it possible to render such information at the top, when displaying the content of patch files?

cheers,",r.bhatia@…
next-stable-1.6.x Release,6644,Authz_policy plugin doesn't work with [*],general,0.11b1,defect,normal,,new,2008-01-13T15:15:21+01:00,2023-09-23T22:33:10+02:00,"normalise_resource returns None for ""blank"" resources, and authz_permissions doesn't understand None  as [*]

",anonymous
next-stable-1.6.x Release,6367,[PATCH] Etag responses need Vary header,web frontend,devel,defect,normal,,new,2007-11-17T22:21:55+01:00,2023-09-23T22:33:10+02:00,"The Request.check_modified() function which adds the Etag and checks If-None-Match should be adding a ""Vary *"" header along with the initial response and the 304 response.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44

This creates a problem of the browser always caching attachments when mod_deflate is used.  mod_deflate adds a ""Vary Accept-Encoding"" header which makes the browser believe that ''only'' Accept-Encoding is used to determine cacheability.  ""Vary *"" is needed to let the browser know that other information is used to make caching decisions.

Also note that Request.send_file() function does not send a Cache-Control header.  That should be OK if Vary * is sent.",Dave Gynn <dgynn@…>
next-stable-1.6.x Release,6211,IPermissionPolicy unable to grant WIKI_VIEW access,general,devel,defect,normal,,new,2007-10-19T02:28:11+02:00,2023-09-23T22:33:10+02:00,"I'm working on a simple plugin which provides an IPermissionPolicy interface.  The goal is for it to grant WIKI_VIEW privileges for certain objects, but not for the wiki as a whole.  The current code (0.11dev, as of r6060) doesn't seem to allow this functionality except for the start page -- and then only when accessed as the root, not as `/wiki/WikiStart`.

Attempts to access `/wiki/whatever` (when the IPermissionPolicy object grants permission, but the user does not have generic WIKI_VIEW) fail with the error message:
{{{
No handler matched request to /wiki/whatever
}}}

The following patch seems correct to me, and seems to make things to work the way i expected them to (i.e. the IPermissionPolicy is now capable of granting WIKI_VIEW on specific resources and those resources are actually viewable, while others are not):

{{{
Index: trac/wiki/web_ui.py
===================================================================
--- trac/wiki/web_ui.py (revision 6060)
+++ trac/wiki/web_ui.py (working copy)
@@ -94,7 +94,7 @@

     def match_request(self, req):
         match = re.match(r'^/wiki(?:/(.*)|$)', req.path_info)
-        if 'WIKI_VIEW' in req.perm('wiki') and match:
+        if match:
             if match.group(1):
                 req.args['page'] = match.group(1)
             return 1
}}}

I believe this just removes a shortcut that's no longer relevant under the new permissions model.  It does not appear to grant additional, unwarranted access privileges in the cases i've tested, though i'd welcome any corrections.

Thanks for trac!",dkg-debian.org@…
next-stable-1.6.x Release,6002,[PATCH] Adds an options to customize the default history mode,version control/log view,devel,enhancement,normal,,new,2007-09-10T19:21:09+02:00,2023-09-23T22:33:10+02:00,"I often uses ""Follow copies"" mode in revision log view.
But trac requires 2 clicks to change mode.

I always want to use my trac in follow_copy mode.

The attached patch (against r6000) adds ""default_copy_mode"" and ""default_verbose""
options to trac.ini.",miyamuko@…
next-stable-1.6.x Release,5720,Trac ticket query should be case insensitive.,report system,,defect,major,,new,2007-07-17T09:24:34+02:00,2023-09-23T22:33:10+02:00,"The current implementation of the Trac ticket query system is case sensitive, which is very frustrating.

Searching for [query:owner=Jonas Owner=Jonas] does not yield the same results as searching for [query:owner=jonas Owner=jonas]
(whereas [query:owner=~Jonas Owner=~Jonas] and [query:owner=~jonas Owner=~jonas] do).

This makes it very hard to find your own tickets if your user name is not lowercase, and puts up a lot  of problems finding whether there is already an entered ticket on a specific subject.

The fixes in [4435] and #4363 do not fix this issue.",Lachezar Dobrev
next-stable-1.6.x Release,5549,"Improve diff message ""no files""",version control/changeset view,devel,defect,normal,,new,2007-06-19T15:10:30+02:00,2023-09-23T22:33:10+02:00,"When a changeset contains only minor modifications (blank line, whitespace changes ...) and the matching ""ignore"" checkboxes are selected, Trac outputs a confusing message:

'''(No files)'''

whereas the actual message should be something like ""''(No visible changes)''"", as the changeset does contain files, but the selected diff options lead to an empty diff.

This is confusing especially as Trac conveniently keeps track of the user diff preferences from one diff to another - which implies that a user can get a ""''(No files)''"" message as soon as he wants a diff.


",Emmanuel Blot
next-stable-1.6.x Release,5515,Empty changeset causes exception,version control/changeset view,devel,defect,normal,,new,2007-06-13T23:57:32+02:00,2023-09-23T22:33:10+02:00,"= Context = 

 * Reorganizing project
   * Exported 2 svn repositories, server and client
   * Created new svn repository
   * Created 2 svn folders in new repository, server and client
   * Did import into server and client folders
 * Changed trac.ini to point to new repository, then did resync
 * Browsed to project Timeline to look at changesets
 * When I tried browse to changeset [1], got an internal error
 * Browsing to other changesets worked fine
   * Changeset [2] picked up the new server folder
   * Changeset [3] picked up the new client folder
   * Changeset [4] does not exist ??
   * Changeset [5] picked up import into server folder
   * Changeset [6] picked up import into client folder
 * I searched tickets for ""changeset NoneType split"" with no hits
 * Search for ""changeset NoneType"" hit an unrelated ticket

= Diagnostic Data =
Trac detected an internal error:
{{{
AttributeError: 'NoneType' object has no attribute 'split'


Python Traceback
Most recent call last:

    * File ""c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\web\main.py"", line 432, in dispatch_request
      Code fragment:
       427. if not env and env_error:
       428. raise HTTPInternalError(env_error)
       429. try:
       430. try:
       431. dispatcher = RequestDispatcher(env)
       432. dispatcher.dispatch(req)
       433. except RequestDone:
       434. pass
       435. return req._response or []
       436. finally:
       437. if not run_once:
      Local variables:
      Name	Value
      after 	[' except RequestDone:', ' pass', ' ...
      before 	[' if not env and env_error:', ' raise ...
      dispatcher 	<trac.web.main.RequestDispatcher object at 0x055836F0>
      e 	AttributeError(""'NoneType' object has no attribute 'split'"",)
      egg_cache 	None
      env 	<trac.env.Environment object at 0x0556AEF0>
      env_error 	None
      env_name 	'sqdb'
      env_parent_dir 	'D:/projects'
      env_path 	'D:/projects\\sqdb'
      env_paths 	None
      environ 	{'HTTP_AUTHORIZATION': 'Basic cGhpbnRvbjplcjFjYTE=', 'wsgi.multiprocess': ...
      exc_info 	(<type 'exceptions.AttributeError'>, AttributeError(""'NoneType' object has ...
      filename 	'c:\\python25\\lib\\site-packages\\Trac-0.11dev_r5661-py2.5.egg\\trac\\web\ ...
      frames 	[{'function': 'dispatch_request', 'lines_before': [' if not env and ...
      has_admin 	True
      line 	' dispatcher.dispatch(req)'
      lineno 	431
      message 	u""AttributeError: 'NoneType' object has no attribute 'split'""
      options 	{'TracUriRoot': '/projects', 'TracEnvParentDir': 'D:/projects'}
      path_info 	['changeset', '1']
      req 	<Request ""GET u'/changeset/1'"">
      request_uri 	'/projects/sqdb/changeset/1'
      root_uri 	'/projects'
      run_once 	False
      script_url 	None
      start_response 	<bound method ModPythonGateway._start_response of ...
      tb 	<traceback object at 0x06E36198>
      tb_hide 	None
      traceback 	'Traceback (most recent call last):\n File ...
    * File ""c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\web\main.py"", line 217, in dispatch
      Code fragment:
       212. 'Do you have cookies enabled?')
       213.  
       214. # Process the request and render the template
       215. try:
       216. try:
       217. resp = chosen_handler.process_request(req)
       218. if resp:
       219. if len(resp) == 2: # Clearsilver
       220. chrome.populate_hdf(req)
       221. template, content_type = \
       222. self._post_process_request(req, *resp)
      Local variables:
      Name	Value
      chosen_handler 	<trac.versioncontrol.web_ui.changeset.ChangesetModule object at ...
      chrome 	<trac.web.chrome.Chrome object at 0x055838B0>
      err 	(<type 'exceptions.AttributeError'>, AttributeError(""'NoneType' object has ...
      handler 	<trac.versioncontrol.web_ui.changeset.ChangesetModule object at ...
      req 	<Request ""GET u'/changeset/1'"">
      self 	<trac.web.main.RequestDispatcher object at 0x055836F0>
    * File ""c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\versioncontrol\web_ui\changeset.py"", line 319, in process_request
      Code fragment:
       314. self._render_diff(req, filename, repos, data)
       315. elif format == 'zip':
       316. self._render_zip(req, filename, repos, data)
       317.  
       318. # -- HTML format
       319. self._render_html(req, repos, chgset, restricted, xhr, data)
       320.
       321. if chgset:
       322. diff_params = 'new=%s' % new
       323. else:
       324. diff_params = unicode_urlencode({'new_path': new_path,
      Local variables:
      Name	Value
      chgset 	<trac.versioncontrol.cache.CachedChangeset object at 0x07019F90>
      data 	{'changeset': <trac.versioncontrol.cache.CachedChangeset object at ...
      diff_data 	{'style': 'inline', 'options': {'ignorecase': 0, 'ignoreblanklines': 0, ...
      format 	None
      new 	1
      new_path 	'/'
      old 	None
      old_path 	None
      options 	['-U2']
      prev 	None
      prev_path 	'/'
      prev_rev 	None
      repos 	<trac.versioncontrol.cache.CachedRepository object at 0x07014D50>
      req 	<Request ""GET u'/changeset/1'"">
      restricted 	False
      self 	<trac.versioncontrol.web_ui.changeset.ChangesetModule object at ...
      style 	'inline'
      xhr 	False
    * File ""c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\versioncontrol\web_ui\changeset.py"", line 595, in _render_html
      Code fragment:
       590. info = None
       591. changes.append(info) # the sequence should be immutable
       592.  
       593. data.update({'has_diffs': has_diffs, 'changes': changes, 'xhr': xhr,
       594. 'filestats': filestats,
       595. 'files': files, 'location': self._get_location(files),
       596. 'longcol': 'Revision', 'shortcol': 'r'})
       597.  
       598. if xhr: # render and return the content only
       599. stream = Chrome(self.env).render_template(req, 'changeset.html',
       600. data, fragment=True)
      Local variables:
      Name	Value
      _changeset_title 	<function _changeset_title at 0x06F8D470>
      _content_changes 	<function _content_changes at 0x06F17030>
      _estimate_changes 	<function _estimate_changes at 0x06F174F0>
      _prop_changes 	<function _prop_changes at 0x06F17B30>
      annotated 	False
      browser 	<trac.versioncontrol.web_ui.browser.BrowserModule object at 0x05583F70>
      change 	'add'
      changes 	[{'new': {'path': u'', 'href': '/projects/sqdb/browser/?rev=1', 'rev': 1, ...
      chgset 	<trac.versioncontrol.cache.CachedChangeset object at 0x07019F90>
      context 	<Context u'[root], changeset:1' <Request ""GET u'/changeset/1'"">>
      data 	{'changeset': <trac.versioncontrol.cache.CachedChangeset object at ...
      diff_bytes 	0
      diff_files 	0
      diffs 	[]
      files 	[None]
      filestats 	{'edit': 0, 'delete': 0, 'add': 1, 'copy': 0, 'move': 0}
      get_changes 	<function get_changes at 0x06F8D370>
      has_diffs 	False
      info 	{'new': {'path': u'', 'href': '/projects/sqdb/browser/?rev=1', 'rev': 1, ...
      kind 	'dir'
      new_node 	<trac.versioncontrol.svn_fs.SubversionNode object at 0x06FEBE70>
      next_href 	'/projects/sqdb/changeset/2'
      next_rev 	2
      node_info 	<function node_info at 0x06F174B0>
      old_node 	None
      oldest_rev 	1
      options 	{'ignorecase': 0, 'ignoreblanklines': 0, 'contextlines': 2, ...
      path 	'/'
      props 	[]
      repos 	<trac.versioncontrol.cache.CachedRepository object at 0x07014D50>
      req 	<Request ""GET u'/changeset/1'"">
      restricted 	False
      rev 	1
      revprops 	{}
      self 	<trac.versioncontrol.web_ui.changeset.ChangesetModule object at ...
      show_diff 	True
      show_diffs 	True
      show_entry 	True
      title 	'Changeset 1'
      xhr 	False
      youngest_rev 	6
    * File ""c:\python25\lib\site-packages\Trac-0.11dev_r5661-py2.5.egg\trac\versioncontrol\web_ui\changeset.py"", line 732, in _get_location
}}}
System Information:

||User Agent:|| Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3||
||Trac:|| 	0.11dev-r5661||
||Python:|| 	2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)]||
||setuptools:|| 	0.6c6||
||MySQL:|| 	server: ""5.0.41-community-nt"", client: ""5.0.27"", thread-safe: 1|
||MySQLdb:|| 	1.2.2||
||Genshi:|| 	0.4.1||
||Subversion:|| 	1.4.3 (r23084)||
||jQuery:||	1.1.2||
",hinton_phil@…
next-stable-1.6.x Release,5499,performance issues when viewing larger files,version control/browser,devel,defect,normal,,new,2007-06-12T16:19:53+02:00,2023-09-23T22:33:10+02:00,"There are numerous source code files in our project that are above the default limit (250kB).[[BR]]
When viewing these files, it takes a moment before they're generated and rendered by the browser. When using the 'annotate' option, this problem increases significantly. Here is a sample (server is a P733, using apache):

Original size: 200kB[[BR]]
Browser view: 800kB, generating time: 1 minute[[BR]]
Annotated view: 1500kB, generating time: 5 minutes[[BR]]

It gets far worse on files that are 400+kB (actually I don't even try that anymore).[[BR]]
Additionally, when viewing such an annotated page in Opera, the browser does 100% cpu load that doesn't stop until you close the page. Sometimes it also destabilizes the browser (needs restart).

Can anything be done in this regard?",theultramage@…
next-stable-1.6.x Release,4474,diffing two large trees results in a massive list with a lot of empty links,version control/changeset view,devel,defect,normal,,new,2006-12-29T19:16:59+01:00,2023-09-23T22:33:10+02:00,"If I run a manual diff of two large directories in different branches (600 files, 15MB), instead of directly showing all the diffs, it displays a list of links to the diffs of individual files.

That wouldn't be too bad (it's probably intended to reduce browser load but I'd like to be able to customize the behavior somehow - help!), but in the above case, many of the links lead to empty diffs, which is obviously wrong. Please fix it so it only links to non-empty diffs.",theultramage@…
next-stable-1.6.x Release,13346,Styling issue on search.css,search system,,enhancement,minor,,new,2021-01-30T19:56:11+01:00,2023-09-23T22:33:10+02:00,"In [https://trac.edgewall.org/browser/trunk/htdocs/css/search.css?rev=3469], the quickjump styling appears for the first time. The whole line is in italic, but what is probably meant is to make just the page-link in italic. See attachments for an example.

Contents of patch:
{{{
--- search.css	2020-06-17 00:55:32.000000000 +0200
+++ search_.css	2021-01-30 19:09:21.542681620 +0100
@@ -11,4 +11,4 @@
 #content.search #results dd { font-size: 80%; margin: 0; padding: 0 }
 #content.search #results .trac-author, #results .date { color: #090; }
 
-#content.search #quickjump { font-style: italic; font-weight: bold; }
+#content.search #quickjump { font-weight: bold; }
}}}
",figaro
next-stable-1.6.x Release,12459,"Milestone edit page says 'retargeted to milestone ""None""' (None milestone is missing)",general,,defect,minor,,new,2016-04-19T12:09:52+02:00,2023-09-23T22:33:10+02:00,"How to reproduce:

 1. Visit `/milestone/milestone2` page
 2. Click `Edit milestone` button
 3. Check `Completed:` checkbox
 4. Select `None` for `Retarget associated open tickets to milestone:` dropdown
 5. Submit

[[Image(20160419T185200.png,width=100%)]]

Proposed ad hoc patch:
{{{#!diff
diff --git a/trac/ticket/roadmap.py b/trac/ticket/roadmap.py
index 7690f0495..6c523c5db 100644
--- a/trac/ticket/roadmap.py
+++ b/trac/ticket/roadmap.py
@@ -718,7 +718,7 @@ class MilestoneModule(Component):
             add_notice(req, _('The tickets associated with milestone '
                               '""%(name)s"" have been retargeted to milestone '
                               '""%(retarget)s"".', name=milestone.name,
-                              retarget=retarget_to))
+                              retarget=retarget_to or ''))
             new_values = {'milestone': retarget_to}
             comment = _(""Tickets retargeted after milestone deleted"")
             tn = BatchTicketNotifyEmail(self.env)
@@ -805,7 +805,8 @@ class MilestoneModule(Component):
                 add_notice(req, _('The open tickets associated with '
                                   'milestone ""%(name)s"" have been retargeted '
                                   'to milestone ""%(retarget)s"".',
-                                  name=milestone.name, retarget=retarget_to))
+                                  name=milestone.name,
+                                  retarget=retarget_to or ''))
                 new_values = {'milestone': retarget_to}
                 comment = comment or \
                           _(""Open tickets retargeted after milestone closed"")
}}}

Also, //None// phrase in retargeted milestone dropdown is a general word. It is difficult to translate. I think we should change to something better, e.g. //no targeted milestone//, etc...",Jun Omae
next-stable-1.6.x Release,12380,No scrolling on repository browser with j/k keys,version control/browser,,defect,normal,,new,2016-03-03T04:23:10+01:00,2023-09-23T22:33:10+02:00,"In repository browser, j/k keys can be used to select next/previous entry. However, no scrolling even if selected entry is out of viewport. I think we should scroll window for that case.",Jun Omae
next-stable-1.6.x Release,12367,Error message with untranslated text when removing no selected items,ticket system,,defect,minor,,new,2016-02-26T11:46:59+01:00,2023-09-23T22:33:10+02:00,"In /admin/ticket/priority page, `Remove selected items` with no selection shows the following message in French.
{{{
Aucun priority sélectionné
}}}
`priority` text is untranslated....

{{{
2016-02-26 19:27:04,572 Trac[main] WARNING: [192.168.11.11] HTTPInternalError: 500 Erreur Trac (Aucun priority sélectionné)
}}}

It would be good to add localized message for each enum of ticket.
{{{#!diff
diff --git a/trac/ticket/admin.py b/trac/ticket/admin.py
index acd9d4ec5..ef410cbb7 100644
--- a/trac/ticket/admin.py
+++ b/trac/ticket/admin.py
@@ -599,6 +599,7 @@ class AbstractEnumAdminPanel(TicketAdminPanel):

     _type = 'unknown'
     _enum_cls = None
+    _no_item_selected = None

     # TicketAdminPanel methods

@@ -651,7 +652,7 @@ class AbstractEnumAdminPanel(TicketAdminPanel):
                 elif req.args.get('remove'):
                     sel = req.args.get('sel')
                     if not sel:
-                        raise TracError(_(""No %s selected"") % self._type)
+                        raise TracError(gettext(self._no_item_selected))
                     if not isinstance(sel, list):
                         sel = [sel]
                     with self.env.db_transaction:
@@ -789,24 +790,28 @@ class PriorityAdminPanel(AbstractEnumAdminPanel):
     _type = 'priority'
     _enum_cls = model.Priority
     _label = (N_('Priority'), N_('Priorities'))
+    _no_item_selected = N_(""No priority selected"")


 class ResolutionAdminPanel(AbstractEnumAdminPanel):
     _type = 'resolution'
     _enum_cls = model.Resolution
     _label = (N_('Resolution'), N_('Resolutions'))
+    _no_item_selected = N_(""No resolution selected"")


 class SeverityAdminPanel(AbstractEnumAdminPanel):
     _type = 'severity'
     _enum_cls = model.Severity
     _label = (N_('Severity'), N_('Severities'))
+    _no_item_selected = N_(""No severity selected"")


 class TicketTypeAdminPanel(AbstractEnumAdminPanel):
     _type = 'type'
     _enum_cls = model.Type
     _label = (N_('Ticket Type'), N_('Ticket Types'))
+    _no_item_selected = N_(""No ticket type selected"")

     _command_type = 'ticket_type'
     _command_help = {
}}}",Jun Omae
next-stable-1.6.x Release,12238,InterWiki prefix with http works with more symbols then links defined without http,rendering,1.0.7,defect,normal,,new,2015-11-02T16:28:02+01:00,2023-09-23T22:33:10+02:00,"The following definition in the wiki:InterMapTxt will not work with all symbols:

{{{
kwquery      /query?group=status&keywords=~  # Custom query for tickets matching keyword $1
}}}


in comparison to any prefix using http, e.g. 

{{{
PEP     http://www.python.org/peps/pep-$1.html    # Python Enhancement Proposal
}}}

== Example 

Works

kwquery:foo

**Not working using an extra :**

kwquery:foo:bar

Works

PEP:foo:bar",martin.stolle@…
next-stable-1.6.x Release,11759,TypeError raises when non existent comment of ticket is modified,ticket system,0.12-stable,defect,normal,,new,2014-09-16T05:26:17+02:00,2023-09-23T22:33:10+02:00,"=== How to reproduce
 1. Create new ticket and add comment to the ticket
 2. Show ""Edit"" form for the comment
 3. Remove the comment from another browser
 4. Submit new comment

The issue occurs with both 0.12-stable and 1.0-stable.

{{{
2014-09-16 12:15:40,582 Trac[main] ERROR: Internal Server Error:
Traceback (most recent call last):
  File ""/src/tracdev/git/trac/web/main.py"", line 529, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/src/tracdev/git/trac/web/main.py"", line 243, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/src/tracdev/git/trac/ticket/web_ui.py"", line 174, in process_request
    return self._process_ticket_request(req)
  File ""/src/tracdev/git/trac/ticket/web_ui.py"", line 499, in _process_ticket_request
    ticket.modify_comment(change['date'], req.authname, comment)
TypeError: unsubscriptable object
}}}",Jun Omae
next-stable-1.6.x Release,11304,Cannot link a attachment with the name started with a hash character,attachment,0.12-stable,defect,normal,,new,2013-09-17T15:43:57+02:00,2023-09-23T22:33:10+02:00,"I've attached `#42.txt` file. I want to link the file, but cannot do.

 * attachment:#42.txt
 * attachment:""#42.txt""
 * attachment:%2342.txt",Jun Omae
next-stable-1.6.x Release,10966,"IntegrityError: columns sid, authenticated, name are not unique",general,0.12.2,defect,normal,,new,2012-11-27T04:24:34+01:00,2023-09-23T22:33:10+02:00,"==== How to Reproduce ====

While doing a GET operation on `/report/7`, Trac issued an internal error.

''(please provide additional details here)''

Request parameters:
{{{
{'id': u'7'}
}}}

User agent: `#USER_AGENT#`

==== System Information ====
|| '''`Trac`''' || `0.12.2` ||
|| '''`Agilo`''' || `1.3.4-PRO` ||
|| '''`Babel`''' || `0.9.5` ||
|| '''`Genshi`''' || `0.6` ||
|| '''`mod_python`''' || `3.3.1` ||
|| '''`Pygments`''' || `1.4` ||
|| '''`pysqlite`''' || `2.4.1` ||
|| '''`Python`''' || `2.6.5 (r265:79063, Apr 16 2010, 14:15:55) ` [[br]] `[GCC 4.4.3]` ||
|| '''`pytz`''' || `2010o` ||
|| '''`setuptools`''' || `0.6` ||
|| '''`SQLite`''' || `3.6.22` ||
|| '''`jQuery`''' || `#JQUERY#` ||

==== Enabled Plugins ====
|| '''`binary-agilo`''' || `1.3.4-PRO` ||
|| '''`TracForms`''' || `0.4.1-r10490` ||
|| '''`TracIncludeMacro`''' || `2.2dev-r11266` ||

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-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.2-py2.6.egg/trac/web/main.py"", line 260, in dispatch
    req.session.save()
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/trac/web/session.py"", line 105, in save
    @self.env.with_transaction()
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/trac/db/api.py"", line 77, in transaction_wrapper
    fn(ldb)
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/trac/web/session.py"", line 146, in save_session
    """""", [(self.sid, authenticated, k, v) for k, v in items])
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/trac/db/util.py"", line 85, in executemany
    return self.cursor.executemany(sql_escape_percent(sql), args)
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/trac/db/sqlite_backend.py"", line 62, in executemany
    args)
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg/trac/db/sqlite_backend.py"", line 48, in _rollback_on_error
    return function(self, *args, **kwargs)
IntegrityError: columns sid, authenticated, name are not unique
}}}",taco_chang
next-stable-1.6.x Release,10812,CSS conflict for .cp class in changeset view,version control/changeset view,1.0b1,defect,minor,,new,2012-08-14T16:02:19+02:00,2023-09-23T22:33:10+02:00,"If one has a #!cpp block in a changeset comment, then the Pygments highlighting can get disrupted by the CSS from diff.css, due to the reuse of the `.cp` class:
{{{#!css
.chglist .copy, #overview .cp, .diff .legend .cp { background: #88f }
}}}
(in diff.css, line 24)

{{{#!css
div.code pre .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
}}}
(in pygments/trac.css)

The result, a gray `#include ...` on a light blue background is barely readable...

The #overview .cp should at least be renamed .copy or even .trac-copy.",Christian Boos
next-stable-1.6.x Release,10801,Can't download attached file when filename contain 'space'.,attachment,0.12.3,defect,normal,,new,2012-08-09T12:00:02+02:00,2023-09-23T22:33:10+02:00,"First I attache a file ""processor reference.pdf"" to wiki.
Then I found the filename save to disk is ""processor%20reference.pdf"".

And url from wiki is ""http://127.0.0.1:8008/trac/knowledge/attachment/wiki/instruction_of_picoblaze/processor%20reference.pdf""

but I can not download it, browser show '404 not found' when I click it.

When I rename the filename from ""processor%20reference.pdf"" to ""processor reference.pdf"".

Then I clkick url, the url is valid, I can download it.

So, maybe it is a bug?

I use version 0.12.3 of trac and browser is opera.",buaa.byl@…
next-stable-1.6.x Release,10620,'trac-admin changeset added' adds changeset as invalid user,contrib,0.12.2,defect,normal,,new,2012-03-11T14:20:55+01:00,2023-09-23T22:33:10+02:00,"I'm trying to explicitly notify trac about new changeset in mirrored repository (which is updated by svnsync).
Instead of getting username of author from SVN (from specified REV), it uses current UID as author name.

Behaviour without explicit notification of trac is normal (uses author from SVN, not apache's one).",cv.mail@…
next-stable-1.6.x Release,10547,glitch with mergeinfo (recreation of merge source shown as eligible),version control/browser,0.12dev,defect,minor,,new,2012-01-27T22:05:54+01:00,2023-09-23T22:33:10+02:00,"It seems that we show the revision corresponding to the re-creation of a deleted merge source as eligible while svn does not:

{{{
$ svn merge ^/sandbox/mercurial-plugin-0.11 --record-only
--- Recording mergeinfo for merge of r8941 through r10935 into '.':
 U   .

$ svn merge ^/plugins/0.11/mercurial-plugin --record-only
--- Recording mergeinfo for merge of r4247 through r8935 into '.':
 G   .
--- Recording mergeinfo for merge of r8936 through r10935 into '.':
 G   .

$ svn diff
Index: .
===================================================================
--- .   (revision 10935)
+++ .   (working copy)

Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /sandbox/mercurial-plugin-0.11:r8941-10935
   Merged /plugins/0.11/mercurial-plugin:r9953-10935

$ svn ci -m ""TracMercurial for 0.12: cleanup mergeinfo (everything was up-to-date)""
Sending        .

Committed revision 10936.

$ svn mergeinfo ^/sandbox/mercurial-plugin-0.11 --show-revs=eligible

$ 
}}}

In particular, note the initial command, we merge all pending changes from `^/sandbox/mercurial-plugin-0.11` and svn says ""r8941 through r10935"" and the corresponding commit, r10936, shows that this corresponds to the recording of the merge of r8943.

The last command shows that according to Subversion there's no more eligible revisions from that branch, but we will nevertheless show r8940 as eligible, in source:plugins/0.12/mercurial-plugin.

For the context, see: 
 - log:/plugins/0.12/mercurial-plugin@10936?mode=follow_copy
 - log:sandbox/mercurial-plugin-0.11&mode=path_history (another glitch there btw, no color code)

We see that [source:sandbox/mercurial-plugin-0.11@8827] was moved to [source:plugins/multirepos/mercurial-plugin-0.12@8937] in r8937, and that after this move, the path `sandbox/mercurial-plugin-0.11` was recreated in r8940, and got a modification in r8943. Subversion considers that r8943 was eligible for merge, but not r8940 (quite logically). We should do the same.",Christian Boos
next-stable-1.6.x Release,10480,forward slash in repository name causes errors,version control/browser,0.12dev,defect,minor,,new,2011-11-22T20:26:49+01:00,2023-09-23T22:33:10+02:00,"When adding a repository to my new Trac 0.12 installation, I made the mistake of using the URL as the repository name.  It turns out that Trac does not like forward slashes in the repository name.

Here's the command I used:
{{{
[root@svn-server:/var/lib/trac/projects/trac-env]# trac-admin $PWD repository add ""svn://svn-server"" /path/to/svn/repos/ svn
}}}

Here's the error that is displayed when I try to browse the source:
[[Image(trac_browse_source_error.png)]]

Here's the warning out of the log.  Note that it only diplays one out of the two forward slashes.

{{{
2011-11-22 12:17:13,017 Trac[env] INFO: -------------------------------- environment startup [Trac 0.12.2] --------------------------------
2011-11-22 12:17:13,160 Trac[env] WARNING: base_url option not set in configuration, generated links may be incorrect
2011-11-22 12:17:13,188 Trac[api] INFO: Synchronized '' repository in 0.02 seconds
2011-11-22 12:17:13,191 Trac[main] WARNING: HTTPNotFound: 404 Trac Error (No node svn:/svn-server)
}}}

When I use the ""(default)"" name for the same repository instead of the name with forward slashes, everything works fine.",Andrew C Martin <andrew.c.martin@…>
next-stable-1.6.x Release,8829,[Patch] Make Trac work on all platforms with environment paths containing non-ASCII characters,admin/console,0.12dev,defect,major,,new,2009-11-15T02:49:51+01:00,2023-09-23T22:33:10+02:00,"''(This is my very first ticket here, I have scanned for duplicates, to the best of my knowledge, but found none.)''

My account name is ""Administrat__ö__r"" in WinXP, and the following happens when using trac-admin to upgrade wiki in my environment:

{{{
trac-admin abc wiki upgrade
  CamelCase already up to date.
  InterMapTxt already exists.
  InterTrac already up to date.
  InterWiki already up to date.
  PageTemplates already up to date.
  RecentChanges already up to date.
UnicodeDecodeError: ('ascii', 'C:\\Documents and Settings\\Administrat\xf6r\\App
lication Data\\Python-Eggs\\trac-0.12dev_r8812-py2.6.egg-tmp\\trac\\wiki\\defaul
t-pages\\SandBox', 37, 38, 'ordinal not in range(128)')
}}}

trac-admin seems to be choking on the `ö` letter.",mikael@…
next-stable-1.6.x Release,7617,Various ticket fields don't like leading or trailing /,ticket system,0.11.1,defect,minor,,new,2008-09-10T23:53:29+02:00,2023-09-23T22:33:10+02:00,"As an example, create a milestone where the name either starts or ends with a `/`. It will be visible in the roadmap, but clicking on the link will lead to an error, saying that the milestone cannot be found. The same problem applies to other enumerated fields like components, priorities or versions, when edited in the admin module.

The problem is due to the roadmap module creating links to milestones using `req.href.milestone(milestone_name)`, and `href` stripping leading and trailing slashes at [source:branches/0.11-stable/trac/web/href.py@7493:147#L147 this location]. The same analysis applies to the admin module.

I'm not sure if the solution is to build the milestone and admin links differently, or to remove the automatic stripping in `Href`. Opinions welcome.",Remy Blank
next-stable-1.6.x Release,5820,[PATCH] standalone trac does not support IPv6,web frontend/tracd,0.11,defect,normal,,new,2007-08-04T17:03:45+02:00,2023-09-23T22:33:10+02:00,"(error is: socket.gaierror: (-9, ""Address family for hostname not supported"")

The way sockets are initialized is wrong. trac (or the underlying wsgi code for python 2.4) is assuming socket.AF_INET before even knowing the server address.

Standard code for initializing a ipv6 aware socket, that will work in ipv4-only machines (see U. Drepper tutorial) is:

{{{
#!python
>>> import socket
>>> gais = socket.getaddrinfo(""::"",8000, socket.AF_UNSPEC, socket.SOCK_STREAM) # host, port, af, tcp, ... 
>>> for gai in gais:
...   try:
...     sock = socket.socket(*gai[:2])
...     sock.bind(gai[4])
...     break
...   except:
...     continue
... else:
...   sock = None
...   raise ""Error, couldn't bind""
}}}

or something similar. This code should work on any python having
getaddrinfo, which means anything modern enough. In fact this code
will try to bind in any different possibilities given.

None means localhost in the most general way (127.0.0.1 or ::1);
""::"" or ""0.0.0.0"" means any ipv6/ipv4 or any ipv4 address. For concrete
addresses, getaddrinfo will parse and take care of the socket parameters.

",sgala@…
next-stable-1.6.x Release,4033,exceptions.RuntimeError: Application didn't call startResponse before writing data!,web frontend,devel,defect,major,,new,2006-10-27T23:25:23+02:00,2023-09-23T22:33:10+02:00,"Got this traceback in my log file:

{{{
        Traceback (most recent call last):
          File ""/usr/lib/python2.4/threading.py"", line 422, in run
            self.__target(*self.__args, **self.__kwargs)
          File ""/home/trac/Projects/Twisted/trunk/twisted/python/threadpool.py"", line 148, in _worker
            context.call(ctx, function, *args, **kwargs)
          File ""/home/trac/Projects/Twisted/trunk/twisted/python/context.py"", line 59, in callWithContext
            return self.currentContext().callWithContext(ctx, func, *args, **kw)
          File ""/home/trac/Projects/Twisted/trunk/twisted/python/context.py"", line 37, in callWithContext
            return func(*args,**kw)
        --- <exception caught here> ---
          File ""/home/trac/Projects/Twisted/trunk/twisted/web2/wsgi.py"", line 199, in run
            self.handleResult(result)
          File ""/home/trac/Projects/Twisted/trunk/twisted/web2/wsgi.py"", line 289, in handleResult
            self.writeAll(result)
          File ""/home/trac/Projects/Twisted/trunk/twisted/web2/wsgi.py"", line 247, in writeAll
            raise RuntimeError(
        exceptions.RuntimeError: Application didn't call startResponse before writing data!
}}}

(No trac frames in there, sorry.)

The three requests made of the system with a nearby timestamp were logged as:

{{{
198.49.126.190 - - [27/Oct/2006:00:36:24 -0500] ""GET /trac/ HTTP/1.0"" 200 14837 ""-"" ""-""
198.49.126.190 - - [27/Oct/2006:00:36:29 -0500] ""POST /trac/ HTTP/1.0"" 500 201 ""-"" ""-""
198.49.126.190 - - [27/Oct/2006:00:36:47 -0500] ""GET /trac/ticket/1757?format=rss HTTP/1.0"" 200 6533 ""-"" ""Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)""
}}}

The POST which received a 500 response seems notable, but I have no idea what the post contents were.

As the traceback suggests, the server is running as a WSGI application in a Twisted container.  The version of trac being run is trunk@4045.
",exarkun@…
not applicable Release,2611,"Problem with SVN bindings (SVN 1.3.0, Trac r2771)",version control,0.10.4,defect,major,Christian Boos,new,2006-01-16T10:08:05+01:00,2023-01-18T11:07:10+01:00,"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 Release,11772,tracd js script resource loading intermittently crashes python,database backend,1.1.1dev,defect,normal,,new,2014-10-02T21:34:16+02:00,2014-10-03T19:23:49+02:00,"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 Release,11146,No Trac environment found at /var/www [Errno 2] No such file or directory: '/var/www/VERSION',web frontend,,task,normal,,new,2013-04-10T16:46:20+02:00,2019-05-21T07:16:35+02:00,"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 Release,10896,Request-URI Too Large when submitting a Bug report,general,,defect,normal,Christian Boos,new,2012-10-12T13:17:04+02:00,2012-10-12T14:46:46+02:00,"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 Release,10447,install blockdiag family on t.e.o.,project,,enhancement,normal,,new,2011-11-03T19:28:43+01:00,2015-03-02T20:54:00+01:00,"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 Release,10421,RuntimeError: instance.__dict__ not accessible in restricted mode,general,0.11.7,defect,major,,new,2011-10-18T10:40:05+02:00,2012-01-19T19:31:45+01:00,"
==== 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 Release,6953,trac has locale problem,general,0.10.4,defect,normal,,new,2008-03-07T01:14:28+01:00,2020-05-20T08:40:49+02:00,"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@…
plugin - mercurial Release,8417,CachedRepository support in TracMercurial,plugin/mercurial,0.11.1,enhancement,major,Christian Boos,new,2009-06-25T16:09:38+02:00,2022-06-09T23:59:56+02:00,"I used trac with svn, and switched to mercurial. the revision table in postgres is no more updated with new changesets. So when I do a search in changesets, new changesets are not listed. Did I forgot to configure something?",asterix@…
plugin - mercurial Release,13318,Changeset with new file links to a different revision,plugin/mercurial,,defect,normal,,new,2020-07-10T14:35:58+02:00,2023-03-13T19:41:52+01:00,"We noticed a changeset that links to the wrong revisions of files in the changeset. It all works correctly for other changesets. I don't know what's special about this changeset.

Trac 	1.5.1.dev0
Jinja2 	2.11.1
Mercurial 	5.3+3-847e582f3cc9
tracmercurial 	1.0.0.10.dev0

Any ideas?",anonymous
plugin - mercurial Release,13092,Unified diff of changeset sometimes include wrong changes?,plugin/mercurial,,defect,normal,,new,2018-10-17T11:01:57+02:00,2022-07-18T12:31:54+02:00,"For example the changesets before the merge log:mercurial-plugin@17:
* changeset:16/mercurial-plugin: The [/changeset/16/mercurial-plugin/?format=diff&new=2706330d90cb30818cf9d377606afc7f41702ba7 Unified Diff] there looks correct.
* changeset:15/mercurial-plugin: The [/changeset/15/mercurial-plugin/?format=diff&new=fe49850212ceb0907303cef73f0703150e790d22 Unified Diff] there looks correct.
* changeset:14/mercurial-plugin: The [/changeset/14/mercurial-plugin/?format=diff&new=89d0599cbded8e1376e9ff8bcc670ce5c3385f23 Unified Diff] includes a lot more changes than it should!

Another example is before the merge log:mercurial-plugin@46:
* changeset:45/mercurial-plugin: The [/changeset/45/mercurial-plugin?format=diff&new=7c49d0e317476d951b80c9195a537620624e9169 Unified Diff] again includes a lot more changes than it should.
",anonymous
plugin - mercurial Release,13050,Quickjump dropdown overflows due to Mercurial tags,plugin/mercurial,,defect,normal,,new,2018-06-25T22:37:14+02:00,2018-06-25T22:37:14+02:00,"* [source:trunk/tracopt/versioncontrol/svn/svn_fs.py@16609#L479 SVN get_quickjump_entries] just lists each tag path.
* [source:trunk/tracopt/versioncontrol/git/git_fs.py@16411#L585 Git  get_quickjump_entries] just lists each tag name.
* [source:mercurial-plugin/tracext/hg/backend.py@59:639-703,724-730#L682 Mercurial get_quickjump_entries] collects all tags of a revision and joins them together.

When one Mercurial revision has many tags this leads to a huge, overflowing quickjump menu. Can we just drop this?

{{{#!patch
diff -r a821499e945c tracext/hg/backend.py
--- a/tracext/hg/backend.py	Mon Jun 25 19:38:48 2018 +0200
+++ b/tracext/hg/backend.py	Mon Jun 25 22:29:56 2018 +0200
@@ -689,22 +689,11 @@
                 closed_branches[ctx] = b
             else:
                 branches[ctx] = b
-        # map node to tag names
-        tags = {}
-        tagslist = self.repo.tagslist()
-        for tag, n in tagslist:
-            tags.setdefault(n, []).append(self.to_u(tag))
-        def taginfo(ctx):
-            t = tags.get(ctx.node())
-            if t:
-                return ' (%s)' % ', '.join(t)
-            else:
-                return ''
         def quickjump_entries(ctx_name_pairs):
             for ctx, name in sorted(ctx_name_pairs, reverse=True,
                                     key=lambda (ctx, name): ctx.rev()):
                 nodestr = self._display(ctx)
-                yield ((name or nodestr) + taginfo(ctx), '/', nodestr)
+                yield ((name or nodestr), '/', nodestr)
         # bookmarks
         bookmarks = [(self.changectx(b), b)
                      for b in get_repo_bookmarks(self.repo)]
@@ -721,9 +710,9 @@
         for e in quickjump_entries(interesting_heads):
             yield _(""Extra heads""), e[0], e[1], e[2]
         # tags
-        for t, n in reversed(tagslist):
+        for t, n in reversed(self.repo.tagslist()):
             try:
-                yield (_(""Tags""), ', '.join(tags[n]), '/',
+                yield (_(""Tags""), self.to_u(t), '/',
                        self._display(self.repo[n]))
             except (KeyError, RepoLookupError):
                 pass
}}}

Is it important to see which branch has the `(tip)` tag?",Peter Suter
plugin - mercurial Release,10950,[hg] encoding setting is not used for files in hg,plugin/mercurial,1.0dev,defect,normal,,new,2012-11-13T05:41:16+01:00,2016-03-14T14:29:34+01:00,"We have some files in UTF-8 and some files in cp1251 in our mercurial repository.
{{{
[hg] encoding = utf-8, cp1251
}}}

With this setting committer, commit message, etc are displayed correct in trac's source browser. Files in UTF-8 are also displayed correct, but not files in cp1251. 

Attached patch adds encoding conversion for file content according to [hg] encoding setting.",soloman@…
plugin - mercurial Release,10719,"Abort: cannot follow file not in parent revision: ""tracext/hg/backend.py""",plugin/mercurial,0.13dev,defect,major,,new,2012-06-10T23:00:53+02:00,2016-03-14T14:29:23+01:00,"Looks like we have a problem with `walkchangerevs` once again...

It doesn't happen for me with with Mercurial 2.0.2, but happens here with 2.2.1.

==== How to Reproduce ====

While doing a GET operation on `/log/mercurial-plugin/tracext/hg/backend.py`, Trac issued an internal error.

Request parameters:
{{{
{'path': u'/mercurial-plugin/tracext/hg/backend.py', 'rev': u'3'}
}}}

User agent: `Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.21 Safari/536.11`

==== System Information ====
|| '''`Trac`''' || `0.13dev-r11050` ||
...
|| '''`Mercurial`''' || `2.2.1` ||
|| '''`mod_wsgi`''' || `3.3 (WSGIProcessGroup trac WSGIApplicationGroup %{GLOBAL})` ||
|| '''`Python`''' || `2.6.6 (r266:84292, Dec 26 2010, 22:48:11) ` [[br]] `[GCC 4.4.5]` ||

==== Enabled Plugins ====
|| '''`TracMercurial`''' || `0.13.0.5dev` ||
...

==== Python Traceback ====
{{{
Traceback (most recent call last):
  File ""/usr/local/virtualenv/0.13-stable/lib/python2.6/site-packages/Trac-0.13dev_r11050-py2.6.egg/trac/web/main.py"", line 480, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/usr/local/virtualenv/0.13-stable/lib/python2.6/site-packages/Trac-0.13dev_r11050-py2.6.egg/trac/web/main.py"", line 198, in dispatch
    resp = chosen_handler.process_request(req)
  File ""/usr/local/virtualenv/0.13-stable/lib/python2.6/site-packages/Trac-0.13dev_r11050-py2.6.egg/trac/versioncontrol/web_ui/log.py"", line 172, in process_request
    for old_path, old_rev, old_chg in history():
  File ""/usr/local/virtualenv/0.13-stable/lib/python2.6/site-packages/Trac-0.13dev_r11050-py2.6.egg/trac/versioncontrol/web_ui/log.py"", line 163, in history
    for h in node.get_history():
  File ""/usr/local/virtualenv/0.13-stable/lib/python2.6/site-packages/TracMercurial-0.13.0.5dev-py2.6.egg/tracext/hg/backend.py"", line 1092, in _get_history_1_4
    for ctx in cmdutil.walkchangerevs(repo, matcher, opts, prep):
  File ""/usr/lib/python2.6/dist-packages/mercurial/cmdutil.py"", line 1058, in walkchangerevs
    for file_, node in iterfiles():
  File ""/usr/lib/python2.6/dist-packages/mercurial/cmdutil.py"", line 1052, in iterfiles
    'revision: ""%s""') % filename)
Abort: cannot follow file not in parent revision: ""tracext/hg/backend.py""
}}}",Christian Boos
plugin - mercurial Release,10411,Enhancing TracMercurial plugin to use new server-command protocol,plugin/mercurial,0.12dev,enhancement,normal,,new,2011-10-14T20:13:44+02:00,2020-05-20T08:38:28+02:00,"I suggest to use Mercurial's new command server protocol for the TracMercurial plugin.

After recent releases of Mercurial such as 1.8 and 1.9, TracMercurial plugin did not work properly until several patches were delivered, mainly due to Mercurial's internal API changes.

Now Mercurial 1.9 provides [http://mercurial-scm.org/wiki/CommandServer a stable command-server protocol].
It is a fairly simple protocol using pipes to send length + data streams, and features the same command set to that of the console command line.

TracMercurial is for showing the timeline (prev/next and file list) and browsing the repository. It could be implemented using a few commands such as `log`, `tip`, `heads`, `tags`, `diff`, `status --change`, etc.

If we combine this enhancement with a !CachedRepository implementation (ref #8417), the performance problem will be minized.

I think this approach will significantly reduce the efforts for adapting to a new version of Mercurial, and make Trac users to escape from hassle of upgrading.

",Joongi Kim <me@…>
plugin - mercurial Release,9852,Mercurial plugin support for pulling repository description from hgrc,plugin/mercurial,,enhancement,normal,,new,2010-11-19T19:58:37+01:00,2021-04-29T04:06:02+02:00,"The description field of a Mercurial repository could be read from the repository's `.hg/hgrc` file. It's usually specified in the `[web]` section. The information could be used as the description if the field is left blank, or overridden otherwise. This would save admins from having to write the description in two places.",kamil@…
plugin - mercurial Release,9704,Support for subrepositories mercurial extension,plugin/mercurial,0.13dev,enhancement,normal,,new,2010-10-20T18:39:52+02:00,2021-04-29T04:05:52+02:00,"Allow trac to manage the subrepositories in mercurial. Right now are not shown. 

http://mercurial.selenic.com/wiki/Subrepositories",Ismael de Esteban <ismael@…>
plugin - mercurial Release,8068,Mercurial bundle attachments should be viewable in readable representation.,plugin/mercurial,none,enhancement,normal,Christian Boos,new,2009-02-18T15:49:39+01:00,2021-04-29T04:05:47+02:00,"When a mercurial bundle is attached to a ticket, viewing that attachment should show a readable representation of the changesets it contains (as if a regular patch had been attached).

Extra points if it also shows metadata about the revisions in the bundle, like author and commit message :).

(All of the above assumes the project has a mercurial repository and the parent revision of the bundle is in that repository)",fvbommel
plugin - mercurial Release,11044,Include Mercurial support in Trac distribution,plugin/mercurial,1.0-stable,enhancement,normal,,new,2013-02-03T16:07:45+01:00,2018-06-23T21:51:44+02:00,"If git support is included, why not Mercurial as well?",Dirkjan Ochtman <dirkjan@…>
plugin - spam-filter Release,13480,Incorrect cache invalidation for  BadIP and BadContent,plugin/spamfilter,,defect,normal,Ryan J Ollos,assigned,2022-04-19T01:46:02+02:00,2023-02-05T04:48:10+01:00,"In a multiprocess environment the cache is not refreshed for other processes. Jun has suggested:

> We should use `patterns` method with `@cache` decorator and call `del self.patterns` when changing the wiki page.

The changes need to be implemented in:
* `IPRegexFilterStrategy`: `tracspamfilter/filters/ip_regex.py`
* `RegexFilterStrategy`: `tracspamfilter/filters/regex.py`",Ryan J Ollos
plugin - spam-filter Release,13321,SpamFilter plugin still using ITemplateStreamFilter,plugin/spamfilter,,defect,normal,Dirk Stöcker,new,2020-07-30T14:46:23+02:00,2023-02-08T13:24:35+01:00,"The !SpamFilter plugin is still using the deprecated `ITemplateStreamFilter` API and so won't work with trac 1.5.x:

{{{
running build_ext
Traceback (most recent call last):
  File ""setup.py"", line 95, in <module>
    **extra
  File ""/usr/lib/python2.7/site-packages/setuptools/__init__.py"", line 145, in setup
    return distutils.core.setup(**attrs)
  File ""/usr/lib64/python2.7/distutils/core.py"", line 151, in setup
    dist.run_commands()
  File ""/usr/lib64/python2.7/distutils/dist.py"", line 953, in run_commands
    self.run_command(cmd)
  File ""/usr/lib64/python2.7/distutils/dist.py"", line 972, in run_command
    cmd_obj.run()
  File ""/usr/lib/python2.7/site-packages/setuptools/command/test.py"", line 229, in run
    self.run_tests()
  File ""/usr/lib/python2.7/site-packages/setuptools/command/test.py"", line 251, in run_tests
    exit=False,
  File ""/usr/lib64/python2.7/unittest/main.py"", line 94, in __init__
    self.parseArgs(argv)
  File ""/usr/lib64/python2.7/unittest/main.py"", line 149, in parseArgs
    self.createTests()
  File ""/usr/lib64/python2.7/unittest/main.py"", line 158, in createTests
    self.module)
  File ""/usr/lib64/python2.7/unittest/loader.py"", line 130, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File ""/usr/lib64/python2.7/unittest/loader.py"", line 91, in loadTestsFromName
    module = __import__('.'.join(parts_copy))
  File ""/builddir/build/BUILD/TracSpamFilter-1.5.0dev-r17344/tracspamfilter/__init__.py"", line 17, in <module>
    from tracspamfilter.filtersystem import *
  File ""/builddir/build/BUILD/TracSpamFilter-1.5.0dev-r17344/tracspamfilter/filtersystem.py"", line 37, in <module>
    from tracspamfilter.filters.trapfield import TrapFieldFilterStrategy
  File ""/builddir/build/BUILD/TracSpamFilter-1.5.0dev-r17344/tracspamfilter/filters/trapfield.py"", line 19, in <module>
    from trac.web.api import ITemplateStreamFilter
ImportError: cannot import name ITemplateStreamFilter
}}}

Fedora Linux 33 (due for release in October) will have trac 1.5.1 or later so the !SpamFilter plugin won't be able to work there as things stand.",paul@…
plugin - spam-filter Release,13289,Improve spam filtering monitoring page,plugin/spamfilter,,enhancement,normal,Dirk Stöcker,new,2020-05-07T22:26:43+02:00,2020-05-15T19:18:04+02:00,"* Move filters to top of page to avoid scrolling
* Don't display meaningless filters when //No log obvious spam// enabled",Ryan J Ollos
plugin - spam-filter Release,13286,Add select all checkbox to Spam Filtering multiselect users page,plugin/spamfilter,,enhancement,normal,Ryan J Ollos,assigned,2020-05-06T01:37:52+02:00,2020-05-06T01:37:52+02:00,[[Image(Screen Shot 2020-05-05 at 10.49.06.jpg)]],Ryan J Ollos
plugin - spam-filter Release,13276,Submit IP address to BadIP page,plugin/spamfilter,,enhancement,normal,Ryan J Ollos,assigned,2020-04-29T19:51:10+02:00,2020-04-29T19:51:10+02:00,Spam entries could have a submit that adds the offending IP address to the [wiki:BadIP] page.,Ryan J Ollos
plugin - spam-filter Release,13031,Text captcha does not obey order of operations,plugin/spamfilter,,defect,normal,Dirk Stöcker,new,2018-05-22T04:27:44+02:00,2018-11-09T17:27:12+01:00,"This was reported by a tor user over irc.oftc.net #tor:
> The text captcha asks a simple math question. For example:
> > six plus two multiplied by four
> The correct answer is 6 + 2 × 4 = 6 + 8 = 15, due to order of operations, but the captcha system does not accept that and instead expects you to do (6 + 2) × 4 = 8 × 4 = 32. This is confusing to many users who do multiplication first, as they should. Please explicitly specify that order of operations is ignored, or do not ignore the order of operations. Or accept both answers to the ambiguous question (e.g. both 15 and 32).

They reported that they were not able to add a ticket here, so I'm proxying the ticket creation.",dmr
plugin - spam-filter Release,12930,Spambayes dependency conflicts with dnspython,plugin/spamfilter,,defect,normal,Ryan J Ollos,assigned,2017-10-14T04:33:30+02:00,2019-12-26T09:56:32+01:00,"{{{#!sh
$ pip install dnspython
Collecting dnspython
  Using cached dnspython-1.15.0-py2.py3-none-any.whl
Installing collected packages: dnspython
Successfully installed dnspython-1.15.0
$ python -c ""import dns""
$ pip install spambayes
Collecting spambayes
Collecting lockfile>=0.2 (from spambayes)
  Using cached lockfile-0.12.2-py2.py3-none-any.whl
Collecting pydns>=2.0 (from spambayes)
Installing collected packages: lockfile, pydns, spambayes
Successfully installed lockfile-0.12.2 pydns-2.3.6 spambayes-1.1b2
$ python -c ""import dns""
Traceback (most recent call last):
  File ""<string>"", line 1, in <module>
  File ""/Users/rjollos/Documents/Workspace/trac-dev/pve-spamfilter/lib/python2.7/site-packages/dns/__init__.py"", line 14, in <module>
    import Type,Opcode,Status,Class
ImportError: No module named Opcode
}}}

I edited SpamFilter@129 before determining that `pydns` is required by `spambayes`, so the suggestion of uninstall `pydns` is not the right solution.

Oddly, I have these same package versions installed in a virtualenv hosting trac-hacks.org and don't see the conflict for that case.",Ryan J Ollos
plugin - spam-filter Release,12664,Index defined on spamfilter_bayes table not added during database upgrades,plugin/spamfilter,,defect,normal,Dirk Stöcker,new,2017-01-18T04:54:17+01:00,2017-01-18T04:54:17+01:00,"I noticed while working on r15307 that the [browser:plugins/1.2/spam-filter/tracspamfilter/model.py@15307:336,340#L334 spamfilter_bayes table] defines an index on the `word` column, however there is no [browser:plugins/1.2/spam-filter/tracspamfilter/upgrades upgrade step] to add the index, therefore it will only apply to new installations. If the index is important we should create an upgrade step to add it.",Ryan J Ollos
plugin - spam-filter Release,10035,Possibility to apply rejected changes from log,plugin/spamfilter,,enhancement,normal,Dirk Stöcker,new,2011-02-18T11:16:04+01:00,2014-08-06T10:11:58+02:00,Currently changes in log are only for training purposes. There should be a possibility to reapply rejected changes later.,Dirk Stöcker
topic-multiproject Release,1,Add a new project summary module.,general,0.6.1,enhancement,critical,,new,2003-08-24T22:33:02+02:00,2023-03-22T06:13:07+01:00,"This module should useful information like:

 * Number of open tickets
 * Tickets targeted for each milestone
 * Tickets assigned to the current user (but see rather #4588 for that)
 * And more...


... like a project description, attachments, etc.",
topic-multiproject Release,11025,Multi-project support,general,,enhancement,normal,,new,2013-01-23T12:05:02+01:00,2018-05-06T18:18:57+02:00,"This is a fresh start for #130, which grew too big... While long delayed, implementing multi-project support in Trac is still seen as a valuable goal.

To quote the original ticket:
 Support multiple projects with different sets of components, version numbers, and milestones in the ticketing system, and different repositories in the browser.

 This is different from TracMultipleProjects because to provide e.g. a merged Timeline and Roadmap, the different projects would need to be in the same database

Related proposals:
 - MultiProject

Alternative solutions, as Trac plugins:
 - ​TH:wiki:SimpleMultiProjectPlugin…
 - https://projects.developer.nokia.com/multiproject

Alternative solutions (... or source of inspiration!):
 - RedMine, ChiliProject, ...
 - GitHub, BitBucket, ...
",Christian Boos
topic-multiproject Release,9624,Project-specific ticket prefixes and numbering,ticket system,0.12,enhancement,normal,,new,2010-09-16T21:12:36+02:00,2020-02-10T13:36:30+01:00,"With the addition of multiple projects in one Trac instance, it could be helpful to assign ticket identifiers with project-specific prefixes and independent numbering.  The prefix would be configured wherever the project is configured. (trac.ini?)  This would help differentiate tickets when referring to them by identifier.  This is how JIRA assigns ticket identifiers.

For example, in a Trac with two project named Database (DATA) and Web Service (WS), the ticket references would look like:

* DATA-102
* WS-93

With the next Database ticket being assigned DATA-103 and the next Web Service ticket being assigned WS-94.  Since changing the way tickets are identified would probably be a huge change, maybe assigned ticket aliases would be a simpler workaround to provide the same functionality?  I'm not sure what the best way to use these identifiers as wiki links would be, but the idea is that something like the following could be used to create wiki links:

* WS-93
* !ticket:WS-93
* #WS-93
* WS:93   (this might be easiest since you can treat each project prefix as a TracLinks namespace?)

Of course, if the identifier is implemented as an alias then it could get confusing with the underlying numeric identifiers.  WS:93 and !#342 could point to the same ticket.  This also raises the question of what happens if a ticket is moved between projects.  I don't have an understanding of the amount of work involved for this type of change, so this is just a suggestion for consideration.  I do think it would be very useful for scenarios with 10+ projects sharing a ticket database.
",nslowes@…
topic-multiproject Release,1505,Search all projects at once,search system,0.8.1,enhancement,major,,new,2005-05-03T13:22:01+02:00,2015-05-26T20:59:54+02:00,"In case of mulitple projects, it would be very interesting to have a global search (across all projects and their tickets). Is suppose this would be quite easy to accomplish, if this would call the search of each separate project and display the results in a single page ...",anonymous
topic-wikiengine Release,4431,wiki_to_wikidom,wiki system,0.10.3,enhancement,critical,,new,2006-12-20T10:09:23+01:00,2023-04-19T04:23:33+02:00,"It would be good for plugins if parsing of wiki text will be broken to two stages. first take the text and convert to some data object tree (ala DOM, but with wiki orientation, so nodes are 'text', 'macro', 'link' etc.), then different formatters can go over the tree and format it, and plugins can search it.",ittayd@…
topic-wikiengine Release,8140,nested lists with multiple paragraphs should work properly,wiki system,0.12dev,enhancement,normal,,new,2009-03-18T18:56:50+01:00,2020-05-10T11:32:37+02:00,"When you need to nest list with multiple paragraphs, the markup rendered is not what is expected.  With the source input

{{{
 * lists can be used to denote all sorts of things
   
   '''Examples:'''
    - listing tickets
    - listing other things that need doing
    - laundry lists

 * this is another list item

 * and so is this
}}}

the markup rendered is

{{{
<ul><li>lists can be used to denote all sorts of things
</li></ul><p>
   
</p>
<blockquote>
<blockquote>

<p>
<strong>Examples:</strong>
</p>
</blockquote>
</blockquote>
<ul><li>listing tickets
</li><li>listing other things that need doing
</li><li>laundry lists
</li></ul><ul><li>this is another list item
</li></ul><ul><li>and so is this
</li></ul>
}}}

The markup desired is more like:
{{{
<ul><li>lists can be used to denote all sorts of things

<p>
<strong>Examples:</strong>
</p>

<ul><li>listing tickets
</li><li>listing other things that need doing
</li><li>laundry lists
</li></ul></ul>
<ul><li>this is another list item
</li></ul><ul><li>and so is this
</li></ul>
}}}

This can be worked around with the `[[BR]]` tag:

{{{
* lists can be used to denote all sorts of things[[BR]]'''Examples:'''
    - listing tickets
    - listing other things that need doing
    - laundry lists

 * this is another list item

 * and so is this
}}}

But this is non-semantic",jhammel@…
topic-wikiengine Release,4790,a blockquote after a list gets nested into two <blockquote> tags,wiki system,,defect,normal,,new,2007-02-19T22:19:48+01:00,2021-09-02T20:09:32+02:00,"This text:
{{{
a list:
 * item 1
 * item 2

  a blockquote after a list
}}}

turns into:
{{{
#!xml
<p>
a list:
</p>
<ul><li>item 1
</li><li>item 2
</li></ul><blockquote>
<blockquote>
<p>
a blockquote after a list
</p>
</blockquote>
</blockquote>
}}}

Same thing happens for a blockquote following a blockquote following a list:
{{{
a list:
 * item 1
 * item 2

  a blockquote after a list

  a blockquote after a blockquote after a list
}}}

turns into:
{{{
#!xml
<p>

a list:
</p>
<ul><li>item 1
</li><li>item 2
</li></ul><blockquote>
<blockquote>
<p>
a blockquote after a list
</p>
</blockquote>
</blockquote>
<blockquote>
<blockquote>
<p>
a blockquote after a blockquote after a list
</p>
</blockquote>
</blockquote>
}}}",Gary Wilson <gary.wilson@…>
topic-wikiengine Release,13187,Text after diff block is not rendered,wiki system,1.0-stable,defect,normal,,new,2019-08-02T05:33:21+02:00,2019-08-26T10:21:38+02:00,"I enter the following text in ticket comment, but diff block only is rendered. ""//This text disappears//"" is not rendered. Removing `{{{` after `==== Python Traceback ====` line, the issue goes away.

{{{
{{{#!diff
diff --git a/trac/web/main.py b/trac/web/main.py
index c75199f79..4479ac5a0 100644
--- a/trac/web/main.py
+++ b/trac/web/main.py
@@ -761,12 +760,13 @@ def send_internal_error(env, req, exc_info):
             %(interface_customization)s
             ==== Python Traceback ====
             {{{
-            %(traceback)s}}}""""""),
-            method=req.method, path_info=req.path_info,
-            req_args=pformat(req.args), sys_info=sys_info,
-            enabled_plugins=enabled_plugins,
-            interface_customization=interface_files,
-            traceback=to_unicode(traceback))
+            %(traceback)s}}}"""""")
+        return gettext(msgid,
+                       method=req.method, path_info=req.path_info,
+                       req_args=pformat(req.args), sys_info=sys_info,
+                       enabled_plugins=enabled_plugins,
+                       interface_customization=interface_files,
+                       traceback=to_unicode(traceback))

     # Generate the description once in English, once in the current locale
     description_en = get_description(lambda s, **kw: safefmt(s, kw))
}}}
This text disappears....
}}}
",Jun Omae
topic-wikiengine Release,10734,``` as a {{{ alternative,wiki system,,enhancement,normal,,new,2012-06-23T10:32:57+02:00,2014-02-18T00:51:23+01:00,"It is not that [http://github.github.com/github-flavored-markdown/ GitHub] uses them, it is that {{{```}}} are easier to type than {{{{{{}}} and `}}}`",anatoly techtonik <techtonik@…>
topic-wikiengine Release,10523,TitleIndex: add option 'show_title' to display first level heading,wiki system,0.12dev,enhancement,normal,,new,2012-01-12T21:36:10+01:00,2015-09-03T12:29:23+02:00,"Besides some bug fixes, #8925 proposed a nice enhancement idea for the `[[TitleIndex]]` macro:
 //Like the TOCMacro does, the TitleIndex macro could display the first level heading in addition to the page name when a `show_title` parameter is given.//

However I think it would be prudent performance-wise to **not** search for the title ""dynamically"" in all pages. Rather I think this should depend on some planned features for the Wiki (#4431 + explicit storage of the title in a //title// property, see ticket:8925#comment:9).
",Christian Boos
topic-wikiengine Release,10312,Multiple sub tables are not correctly processed by the WikiProcessor,wiki system,0.12.2,enhancement,normal,,new,2011-08-11T13:08:10+02:00,2011-08-11T13:33:47+02:00,"The following table definition isn't processed correctly:
{{{

{{{
#!table style=""margin: auto""
	{{{#!tr
		{{{#!th style=""background: lightgray""
			Head Column1
		}}}
		{{{#!th style=""background: lightgray""
			Head Column2
		}}}
	}}}
	{{{#!tr
		{{{#!td
			{{{#!table
				{{{#!tr
					{{{#!th style=""background: lightgray""
						Sub head column1
					}}}
					{{{#!th style=""background: lightgray""
						Sub head column2
					}}}
				}}}
                                {{{#!tr
					{{{#!td
						Sub column1
					}}}
					{{{#!td
						Sub column2
					}}}
				}}}
			}}}
		}}}
		{{{#!td
			{{{#!table
				{{{#!tr
					{{{#!th style=""background: lightgray""
						Sub head column1
					}}}
					{{{#!th style=""background: lightgray""
						Sub head column2
					}}}
				}}}
                                {{{#!tr
					{{{#!td
						Sub column1
					}}}
					{{{#!td
						Sub column2
					}}}
				}}}
			}}}
		}}}
	}}}
}}}
}}}

I get allways the following error message:
''' !#tr must contain at most one table'''

If you remove the table definition in the last column, the code will processed correctly.",f.rochlitzer@…
topic-wikiengine Release,9688,Preformatted text in definition list rendered wrongly,wiki system,0.13dev,defect,normal,,new,2010-10-13T09:59:51+02:00,2015-05-26T20:59:21+02:00,"Suppose the following C++ code snippet:
{{{
class C {
  void f();
  ...
};
}}}
Then C++ programmers sometimes want to write a list like this:
{{{
 `C::f` :: compiles, but not tested at all
 ... :: ...
}}}
Here `C::f` is meant to be a method `f` defined in a class `C`.

But this markup yields a poor result:
 `C::f` :: compiles, but not tested at all
 ... :: ...

I think ""preformatted text"" should be rendered as written whatever enclosing construct may be.","NODA, Kai <nodakai@…>"
topic-wikiengine Release,9251,Unable to escape number list,wiki system,,defect,normal,,new,2010-04-21T15:56:19+02:00,2015-05-26T20:59:21+02:00,"Unable to properly escape number list while trying to make a definition list which have terms starting with a number and a dot.

So this:

{{{
 42. foobar:: test
}}}

Makes a number list.

{{{
 !42. foobar:: test
}}}

Makes a definition list, but ! is visible. It should be hidden - to escape number list.

For the sake of completeness it would be also useful to specify ! before :: to disable possible definition list.",Mitar
topic-wikiengine Release,8686,Export wiki documents in HTML format,wiki system,none,enhancement,normal,,new,2009-09-23T08:28:27+02:00,2022-05-25T14:19:26+02:00,"Now there are some plugins like wikiprint/pages2docbook can export the file to docbook/pdf/html...,But it is not enough

Every project will has a userguid,we can use word or docbook.Why not trac wiki? create a wiki page as Index,when export,just search all the relative wiki pages to form a pdf/html book.

This is very useful,can trac team realize it?",wideweide@…
topic-wikiengine Release,7728,Realm URL resolve function needed Trac Plugins,general,,enhancement,minor,,new,2008-10-17T21:33:11+02:00,2021-08-03T10:42:24+02:00,"In the current Trac code there seems to be no separate function/method to resolve a given [TracLinks TracLink] to an full valid URL which can be used in XHTML code returned by macros.

I'm talking about macro similar to the [WikiFormatting#Images Image] macro which takes a trac realm like '`source:`' or '`attachment:`'. The Image macro has this resolving hardcoded while this should be an own method provided to all macros.

At the moment several macros on TracHacks ([th:FlashViewPlugin], [th:FreemindMacro], ...) implement there own (sometimes incomplete and buggy) implementation of this.

An easy solution would be just to take the relevant code out of the Image macro and put it in an separate method. __This must be already implemented somewhere else too because the same conversation is done by '`wiki_to_html`' etc.__ 

If there is already such an method I couldn't find it.
I searched the trac source code, check several macro and the Nabble trac forum.",martin@…
topic-wikiengine Release,7721,Allow cascaded definition lists,wiki system,,enhancement,minor,,new,2008-10-15T14:14:18+02:00,2015-05-26T20:59:21+02:00,"The definition list TracWiki syntax ""` name::`"" doesn't work eh n cascaded:
{{{
 name::
   sub-name1:: some text
   sub-name2:: some text
}}}
produces:
{{{
<dl>
 <dt>name</dt>
 <dd></dd>
 <dt>sub-name1</dt>
 <dd>some text</dd>
 <dt>sub-name2</dt>
 <dd>some text</dd>
<dl>
}}}

but should actually produce:
{{{
<dl>
 <dt>name</dt>
 <dd>
  <dl>
   <dt>sub-name1</dt>
   <dd>some text</dd>
   <dt>sub-name2</dt>
   <dd>some text</dd>
  </dl>
 </dd>
<dl>
}}}

This should be valid XHTML because the `<dd>` tag may include other block tags.

The same doesn't work in other lists, e.g.:
{{{
 * list
    definition::
}}}
is handled like:
{{{
 * list
 definition::
}}}
",martin@…
topic-wikiengine Release,6630,single || in a line mistaken for table formatting,wiki system,,defect,normal,,new,2008-01-10T16:04:53+01:00,2015-05-26T20:59:21+02:00,"if you write sth like
  
{{{
DQL still uses the CONCAT() and not the || syntax
}}}

in a svn comment, the changeset view looks like

{{{
  DQL still uses the CONCAT() and not the syntax
}}}

so trac adds <td> </td> for ||. thats not correct in this case because the user wants to tell sth about the || operator.

see http://trac.phpdoctrine.org/changeset/3497",Markus.Staab
topic-wikiengine Release,5059,PageOutline macro is hardcoded to truncate long names,wiki system,,defect,minor,,new,2007-03-29T18:37:41+02:00,2015-05-26T20:59:21+02:00,"when using `PageOutline` as of 0.10, long heading names are truncated, with an ellipsis ""..."" at the end.  This behavior should be removed, or at least an option added to `PageOutline` so that its configurable.

matt good refers to [changeset:3408] as the location of the change, where the call to `_parse_heading()` should get `False` as its last argument.
",mike_mp@…
topic-wikiengine Release,4848,Unable to return to previous indentation within wiki,wiki system,0.10.3,defect,major,,new,2007-02-26T19:10:17+01:00,2015-05-26T20:59:21+02:00,"{{{
 0. Item 1[[BR]]
   Some text regarding Item 1
    * Item 1.a
    * Item 1.b
   Further text regarding Item 1
 0. Item 2
}}}

is rendered as:

 0. Item 1[[BR]]
   Some text regarding Item 1
    * Item 1.a
    * Item 1.b
   Further text regarding Item 1
 0. Item 2

i.e. with Trac 0.11.4stable-r7988
{{{
#!xml
<ol class=""arabiczero""><li>Item 1<br /> 
Some text regarding Item 1
<ul><li>Item 1.a
</li><li>Item 1.b
</li></ul></li><li>Further text regarding Item 1
</li></ol><ol class=""arabiczero""><li>Item 2
</li></ol>
}}}

""Further text regarding Item 1"" should be rendered at the same indent level as ""Some text regarding item 1"", and without becoming a new list item itself (or causing Item 2 to be rendered as the first item in a new list).",charles@…
topic-wikiengine Release,4140,Merge OutlineFormatter into Formatter,wiki system,0.10.1,defect,normal,,new,2006-11-12T19:49:14+01:00,2015-05-26T20:59:21+02:00,"Hi,

Macros like the !PageOutline make use of the !OutlineFormatter to build a table of contents. But it seems awfully inefficient that you'll have to run through the page twice in order to do just that. How about having the standard Formatter build the outline[] array just like the !OutlineFormatter does, so that one could refer to it at anytime during a macro? It'd be a really simple change too, merging both behaviours into one class. Then you'd just call the macros at the end of the wiki pages wherever you wanted an outline to be generated.

I'd be glad to submit this, if you require an extra hand,
- Jorge Pereira",jpereira@…
topic-wikiengine Release,3970,Wiki parsing error when using exclamation at the end of phrase,wiki system,0.10,defect,minor,,new,2006-10-19T16:35:53+02:00,2015-11-23T10:56:59+01:00,"When using this bold text:
{{{
'''testing!'''
}}}
I see this:

 '''testing!'''

It also happens with italics:

 ''testing!''
",sid@…
topic-wikiengine Release,3895,Provide Trac API for returning all outbound links in a page,wiki system,0.10,enhancement,major,,new,2006-10-09T22:15:28+02:00,2015-05-26T20:59:21+02:00,"I have a suggestion that could kill a lot of birds with one stone.

I see a lot of people asking for functionality in Trac that relates to connections between pages (Backlink, Orphaned Pages, and MissingLinks among them).  I see some attempts by the community to provide that functionality.  I also see that those attempts are:

1) Very poor, and 
2) getting poorer by the day.

The reason they are getting poorer is that Trac already matches on a large array of patterns.  The bar is set fairly high, and the current plugins do not meet it.  Also, the Trac development team routinely introduces new additions/changes that increase the number of ways to connect two pages.  There is really no way for the plugin community to catch up.

Instead of asking us to do so, I ask you to help us help you:  Please provide (and document) an API function that takes some sort of reference to a Trac document (name perhaps) and returns a set of all outbound links from that page.  This functionality should identically match (or perhaps replace?) the functionality Trac uses to generate and HTML page.  As new patterns are added to the system, plugins would then automatically detect the new links.  With this function as a basis, a host of other functions could be provided, correctly, by the community.

If and when Trac tracks links between pages, the API could be modified to use the stored information, rather than calculating it on the fly.  


",anonymous
topic-wikiengine Release,3794,Invalid table(with indentation) layout in wiki.,wiki system,devel,defect,minor,,new,2006-09-27T07:17:14+02:00,2015-05-26T20:59:21+02:00,"The following wiki markup:
{{{
 * this is a table example.
   || This row has a '''wrong''' indentation. ||
   || This row has a correct indentation. ||
   || This row has a correct indentation. ||

 * this is a correct block example.
   {{{
#!c
int i = 0;
printf(""%d"", i);
   }}}
}}}

Renders as:
 * this is a table example.
   || This row has a '''wrong''' indentation. ||
   || This row has a correct indentation. ||
   || This row has a correct indentation. ||

 * this is a correct block example.
   {{{
#!c
int i = 0;
printf(""%d"", i);
   }}}",tdkim@…
topic-wikiengine Release,3307,Wiki pragma directives,wiki system,devel,enhancement,normal,,new,2006-06-23T15:37:15+02:00,2015-05-26T20:59:21+02:00,"We could add pragma directives for the Wiki engine.

This could be used to modify the way the engine behaves, as the pragmas are seen.

=== Use Cases ===

 * Section Numbering (similar to the reST's `.. sectnum::` directive) [[br]]

 * Respect line breaks (we currently do that programmatically) [[br]]

=== Implementation ===

There could either be a specific syntax for this
(e.g. like MoinMoin [MoinMoin:HelpOnProcessingInstructions#head-960b14e3643a3ae86600578a317ef2c67273a973 pragmas]), or a ![[Pragma]]` macro.

The macro could be a special macro, like ![[BR]] is, or a regular macro 
once the formatter object will be given to macros.

The macro will simply set a formatter ""user property"",
e.g. 
{{{
  formatter[pragma_name] = pragma_value
}}}

In other parts of the engine, such properties could be explicitely retrieved
e.g. in the `_heading_formatter`:
{{{
   do_numbering = formatter['sectnum']
}}}

",Christian Boos
topic-wikiengine Release,2064,Timeline WikiFormatting mis-parses WikiLinks with aliases.,wiki system,devel,defect,major,,new,2005-09-14T18:38:11+02:00,2020-05-08T04:21:26+02:00,"In the timeline, the snippet of text that supports WikiFormatting will mis-parse a [wiki:TracLinks link] of the format: {{{[wiki:foobar foo]}}}.

If the literal text ""{{{[wiki:foobar foo]}}}"" is longer than the line permits, it will produce:

||Blah blah blah [wiki:foobar ...||

when it could easily fit

||Blah blah blah [wiki:foobar foo]||

into the line.",chandlerc@…
topic-wikiengine Release,1936,indented ordered and unordered lists have additional bullets and numbers,wiki system,devel,defect,normal,,new,2005-08-17T18:49:23+02:00,2017-10-03T00:00:45+02:00,"if ordered and unordered lists start indented with more than two spaces, additional bullets and numbers are generated.

''examples:''
{{{
   * foo
   * bar

   1. foo
   2. bar

      * foo
      * bar

      1. foo
      2. bar

}}}
''output:''
   * foo
   * bar

   1. foo
   2. bar

      * foo
      * bar

      1. foo
      2. bar

if a list entry is indented more than three spaces as the previous list entry, additional bullets and numbers are generated too.

''examples:''
{{{
 * foo
     * bar

 1. foo
     1. bar
}}}
''output:''
 * foo
     * bar

 1. foo
     1. bar


tested using trunk r2068 and 0.8.4, python 2.3
",vittorio@…
topic-wikiengine Release,1240,Persistent   [[Timestamp]],wiki system,0.8,enhancement,minor,,new,2005-03-03T01:14:15+01:00,2020-01-05T17:12:24+01:00,"If a wiki page is used to document a progress/process it may occur that multiple timestamps are used during successive edits. 

Doing so results in renewal of older timestamp. 

This ticket may be seen in context with ticket #955",chrisb .not at. ewetel .dot. net
topic-wikiengine Release,1024,Each section should have a edit button,wiki system,0.8,enhancement,normal,,new,2004-12-08T13:14:04+01:00,2016-04-08T20:20:15+02:00,"ie
http://www.splitbrain.org/dokuwiki/wiki:dokuwiki",anonymous
topic-wikiengine Release,10075,non-terminated Wiki Markups also markup the rest of the page.,general,0.12,defect,minor,,new,2011-03-08T23:37:37+01:00,2015-05-26T20:59:21+02:00,"Steps:
1. Create a ticket with a **bold markup**
1. Don't end a trailing !** for the markup
1. Add a comment to the new ticket with no markup
1. View the ticket after comment
**The comment will also now be in bold because it wasn't ended.**

I'm marking this as an enhancement since it's kind of working as designed, but at the expense of the rest of the page. Would be nice if markups would terminate themselves or at least not carry over into the rest of the page.",dez@…
topic-wikiengine Release,4439,PageOutline macro produces empty <li> elements,wiki system,0.10.3,defect,minor,,new,2006-12-20T17:13:23+01:00,2015-05-26T20:59:21+02:00,"When a level 3 section is immediately followed by a level 1 section, the macro generates an empty <li> element. It happens for every n+2 level section that is immediately followed by a n level section.

It doesn't shows up in normal circumstances because empty `<li>` elements are not displayed.
But having customized the CSS to show section numbers in the TOC, those additional elements are displayed (at least with firefox or opera, but not IE).

How to reproduce the bug:

Modify the file ''templates/site_css.cs'':
{{{
/* Auto-numbering TOC's elements */
.wiki-toc ol {counter-reset: toc;}
.wiki-toc ol li:before {
        list-style-type: decimal;
        list-style-position: inside;
        content: counters(toc, ""."") "" "";
        counter-increment: toc;
}
}}}

And the create a wiki page like this:
{{{
[[PageOutline()]]

= First section =

=== First subsection ===

== Second subsection ==

=== Sub-subsection ===

= Second Section =

}}}",Florent Angebault <fangebault@…>
topic-wikiengine Release,2717,Create window title on wiki pages from = The title =,wiki system,none,enhancement,minor,,new,2006-02-03T12:05:56+01:00,2015-11-30T22:31:52+01:00,"This is what [http://wikkawiki.org Wikka] does: They take the text from the h1 headline which would be the first {{{= This is a headline =}}} wiki code on the page and display it as page title instead of the camel case page name.

See for example: http://wikkawiki.org/UpgradingFromWakkaWiki

Wiki-Name of the Page: {{{UpgradingFromWakkaWiki}}}[[BR]]
Displayed title: {{{Wikka: Migrating from WakkaWiki to Wikka Wiki}}}[[BR]]
which the get from this code 
{{{
===== Migrating from WakkaWiki to Wikka Wiki =====
}}}
which means h1 in Wikka syntax.

The purpose of this proposal is the create more readable window titles.",Markus Tacker <m@…>
translations Release,11114,Translation of Trac to Arabic/عربى [ar_EG],i18n,,task,normal,,new,2013-03-14T10:43:20+01:00,2013-04-04T13:34:42+02:00, This ticket should be used to coordinate the translation to Arabic.,tarek.alsabagh@…
translations Release,9259,Translations to Esperanto [eo],i18n,0.12dev,enhancement,normal,,new,2010-04-22T10:01:56+02:00,2020-05-20T08:40:13+02:00,"This ticket is for coordination of esperanto translations for Trac. The message.po file will soon be attached - I'm still testing the translations. But there are two small issues with localizing the workflow part:
  * How to get an initial state other then ""new""
  * The small words ""as"" and ""to"" in the Actions should be translatable
(see attached screenshots)",diestel@…
translations Release,9045,Add support for RTL languages,i18n,0.12dev,enhancement,major,,new,2010-02-09T23:55:05+01:00,2010-09-30T23:55:36+02:00,"This will be useful for e.g. Hebrew (#9040).

We need to add the possibility to reverse some parts of the layout. Changing the base direction (<html dir=""rtl"">) is a first step, but seems to be far from enough.

Maybe one approach could be to add some CSS classes the containers that need to have their content reversed and have a Genshi filter to do the job? 

left/right should also be exchanged in the CSS, where relevant. Some techniques for achieving this are described in http://whatsup.org.il/meir/talks/django-i18n/django-i18n.html.

Some more background info in http://www.w3.org/International/tutorials/bidi-xhtml.",Christian Boos
translations Release,9040,Translation of Trac to Hebrew [he_HE],i18n,,task,normal,Itamar Ostricher,new,2010-02-07T01:59:29+01:00,2010-04-19T21:42:38+02:00,This ticket should be used to coordinate the translation to Hebrew.,Itamar O <itamarost@…>
translations Release,8991,Translation of Trac to Armenian [hy_AM],i18n,0.12dev,task,normal,narine_martirosyan,new,2010-01-22T08:20:25+01:00,2010-05-12T00:24:32+02:00,"This ticket should be used to coordinate the translation to Armenian.

See also wiki:TracTermsAM.",training@…
translations Release,8008,Translation of Trac to Romanian/Română [ro_RO],i18n,,task,normal,,new,2009-01-28T06:42:02+01:00,2010-02-14T18:22:32+01:00,This ticket should be used to coordinate the translation to Romanian.,marius.latu@…
translations Release,7918,Translation of Trac to Galician/Galego [gl_ES],i18n,none,task,normal,,new,2008-12-29T15:23:16+01:00,2010-01-29T11:41:45+01:00,This ticket should be used to coordinate the translation to Galician. ,chavescesures@…
translations Release,7578,Translation of Trac to Estonian/eesti [et_EE],i18n,,task,normal,,new,2008-09-01T13:30:09+02:00,2020-05-20T08:40:13+02:00,"käärime käised üles. time to roll up the sleeves.

See source:trunk/trac/locale/et_EE/LC_MESSAGES/messages.po",leho@…
translations Release,7487,Translation of Trac to Slovene/Slovensko [sl_SI],i18n,,task,normal,vezjakv,new,2008-07-30T18:55:07+02:00,2010-06-11T13:44:21+02:00,This ticket should be used to coordinate the translation into Slovene.,vezjakv <vezjakv@…>
translations Release,7417,Translation of Trac to English [en_GB],i18n,,task,normal,,new,2008-07-08T22:45:49+02:00,2020-05-20T08:40:13+02:00,This ticket should be used to coordinate the translation to English (en_GB). See also source:trunk/trac/locale/en_GB/LC_MESSAGES/messages.po,dave@…
translations Release,7353,Translation of Trac to Catalan/Català [ca],i18n,0.12dev,task,normal,,new,2008-06-18T17:22:18+02:00,2021-08-02T11:03:09+02:00,This ticket should be used to coordinate the translation to Catalan/Català. See also source:trunk/trac/locale/ca_ES/LC_MESSAGES/messages.po,tom.niemi@…
translations Release,7186,Translation of Trac to Argentinian Spanish/español de Argentina [es_AR],i18n,,task,normal,cramm0@…,new,2008-05-01T20:30:34+02:00,2012-09-27T22:55:27+02:00,This ticket should be used to coordinate the translation to Argentian Spanish/español de Argentina.,Jeroen Ruigrok van der Werven
translations Release,7178,Translation of Trac to Finnish/suomi [fi_FI],i18n,devel,task,normal,,new,2008-04-30T13:30:00+02:00,2010-11-05T11:50:59+01:00,"This ticket should be used to coordinate the translation to Finnish/suomi.

See source:trunk/trac/locale/fi_FI/LC_MESSAGES/messages.po",Jeroen Ruigrok van der Werven
translations Release,7177,Translation of Trac to Norwegian/bokmål [nb_NO],i18n,devel,task,normal,osimons,new,2008-04-30T13:26:24+02:00,2010-06-12T19:10:37+02:00,"This ticket should be used to coordinate the translation to Norwegian/bokmål.

See source:trunk/trac/locale/nb_NO/LC_MESSAGES/messages.po",Jeroen Ruigrok van der Werven
translations Release,6629,Translation of Trac to Vietnamese/Tiếng Việt [vi_VN],i18n,,task,normal,,new,2008-01-10T15:14:27+01:00,2010-02-04T10:35:02+01:00,"This ticket should be used to coordinate the translation to Vietnamese/Tiếng Việt.

See source:sandbox/i18n/trac/locale/vi_VN/LC_MESSAGES/messages.po",Jeroen Ruigrok van der Werven
translations Release,6382,Translation of Trac to Farsi/پارسی [fa_IR],i18n,devel,task,normal,,new,2007-11-20T17:04:21+01:00,2010-02-04T10:34:09+01:00,"This ticket should be used to coordinate the translation to Farsi.

See also TracTermsFa.",Jeroen Ruigrok van der Werven
translations Release,5592,Translation of Trac to Czech/Česky [cs_CZ],i18n,,task,normal,,new,2007-06-24T11:00:22+02:00,2011-03-07T11:12:11+01:00,This ticket should be used to coordinate the translation to Czech.,Jeroen Ruigrok van der Werven
translations Release,5489,Translation of Trac to Italian/Italiano [it_IT],i18n,,task,normal,Lele Gaifax <lele@…>,new,2007-06-11T19:30:45+02:00,2013-01-27T18:46:18+01:00,This ticket should be used to coordinate the translation to Italian. See also TracTermsIt.,asmodai@…
translations Release,5488,Translation of Trac to Turkish/Türkçe [tr_TR],i18n,0.12dev,task,normal,aranel@…,new,2007-06-11T19:29:01+02:00,2010-09-22T21:48:02+02:00,This ticket should be used to coordinate the translation to Turkish/Türkçe. See also TracTermTr and source:trunk/trac/locale/tr_TR/LC_MESSAGES/messages.po,asmodai@…
translations Release,5487,Translation of Trac to Swedish/Svenska [sv],i18n,,task,normal,,new,2007-06-11T19:11:04+02:00,2021-05-13T20:21:47+02:00,"This ticket should be used to coordinate the translation to !Swedish/Svenska. See also:
 * TracTermsSv
 * source:trunk/trac/locale/sv/LC_MESSAGES/messages.po
 * source:trunk/trac/locale/sv/LC_MESSAGES/messages-js.po
 * source:trunk/trac/locale/sv/LC_MESSAGES/tracini.po
",asmodai@…
translations Release,5486,Translation of Trac to Hungarian/Magyar [hu_HU],i18n,,task,normal,nzoltan,new,2007-06-11T19:08:16+02:00,2010-11-20T23:05:53+01:00,This ticket should be used to coordinate the translation to Hungarian/Magyar. See also TracTermsHu.,asmodai@…
translations Release,5482,Translation of Trac to Traditional Chinese/正體中文  [zh_TW],i18n,,task,normal,,new,2007-06-11T16:57:31+02:00,2020-05-20T08:40:13+02:00,This ticket should be used to coordinate the translation to Traditional Chinese/正體中文. See also TracTermsZhTw and source:trunk/trac/locale/zh_TW/LC_MESSAGES/messages.po,asmodai@…
translations Release,5481,Translation of Trac to Greek/Ελληνικά [el_GR],i18n,,task,normal,,new,2007-06-11T16:53:49+02:00,2010-02-04T10:16:10+01:00,This ticket should be used to coordinate the translation to Greek/Ελληνικά. See also TracTermsEl and source:trunk/trac/locale/el_GR/LC_MESSAGES/messages.po. ,asmodai@…
translations Release,5480,Translation of Trac to Polish/Polski [pl_PL],i18n,,task,normal,,new,2007-06-11T16:51:45+02:00,2012-01-11T10:58:06+01:00,This ticket should be used to coordinate the translation to Polish. See also TracTermsPl and source:trunk/trac/locale/pl_PL/LC_MESSAGES/messages.po,asmodai@…
translations Release,5478,Translation of Trac to Russian/Русский [ru_RU],i18n,devel,task,normal,,new,2007-06-11T16:46:57+02:00,2020-02-19T03:40:39+01:00,This ticket should be used to coordinate the translation to Russian/Русский. See also TracTermsRu.,asmodai@…
translations Release,5477,Translation of Trac to Korean/한국어 [ko_KR],i18n,,task,normal,,new,2007-06-11T16:45:15+02:00,2013-02-11T13:25:06+01:00,This ticket should be used to coordinate the translation to Korean/한국어. See also TracTermsKo.,asmodai@…
translations Release,5476,Translation of Trac to Portuguese/Português [pt_BR],i18n,,task,normal,lwatter,new,2007-06-11T16:42:57+02:00,2016-10-11T03:01:00+02:00,"This ticket should be used to coordinate the translation to Portuguese.
See also TracTermsPtBr.",asmodai@…
translations Release,5475,Translation of Trac to German/Deutsch [de_DE],i18n,,task,normal,Felix Schwarz <felix.schwarz@…>,new,2007-06-11T14:31:15+02:00,2017-06-26T18:09:42+02:00,This ticket should be used to coordinate the translation to German.,asmodai@…
translations Release,5474,Translation of Trac to French/Français [fr_FR],i18n,devel,task,normal,Christian Boos,new,2007-06-11T14:30:01+02:00,2020-07-16T20:17:04+02:00,This ticket should be used to coordinate the translation to French.,asmodai@…
translations Release,5473,Translation of Trac to Dutch/Nederlands [nl_NL],i18n,,task,normal,,new,2007-06-11T13:54:26+02:00,2012-03-06T19:54:18+01:00,This ticket should be used to coordinate the translation to Dutch. See source:trunk/trac/locale/nl/LC_MESSAGES/messages.po,asmodai@…
translations Release,5472,Translation of Trac to Chinese/中文 [zh_CN],i18n,devel,task,normal,,new,2007-06-11T13:51:51+02:00,2019-01-24T20:29:43+01:00,This ticket should be used to coordinate the translation to Chinese.,asmodai@…
translations Release,5471,Translation of Trac to Japanese/日本語 [ja_JP],i18n,,task,normal,Jun Omae,new,2007-06-11T13:49:06+02:00,2013-01-28T04:20:08+01:00,This ticket should be used to coordinate the translation to Japanese/日本語.,asmodai@…
translations Release,5470,Translation of Trac to Portuguese/Português [pt_PT],i18n,,task,normal,,new,2007-06-11T13:32:17+02:00,2010-01-26T22:55:40+01:00,This ticket should be used to coordinate the translation to Portuguese.,asmodai@…
translations Release,5469,Translation of Trac to Spanish/Español [es_ES],i18n,,task,normal,raragon,new,2007-06-11T13:13:25+02:00,2012-10-27T09:36:15+02:00,This ticket should be used to coordinate the translation to Spanish.,asmodai@…
translations Release,1726,"Links are displayed badly in Win/IE when page direction is changed to ""right-to-left""",i18n,none,defect,normal,Jonas Borgström,new,2005-06-27T19:52:35+02:00,2020-11-06T14:38:02+01:00,"We're trying to display text in a right-to-left language (Hebrew) in the trac wiki as a default setting for all pages. So we've hacked wiki.cs as follows
{{{
<div id=""content"" class=""wiki"" dir=""rtl"">
}}}
when viewed with Win/IE 6, all the links go completely nuts.
This is clearly connected with IE, since Firefox has no problem at all",Dima <dima.batenkov@…>
translations Release,8933,unfavourable German translations,i18n,0.12dev,defect,normal,,new,2010-01-05T08:24:55+01:00,2017-06-22T09:37:32+02:00,"IMHO Timeline should rather be translated with ""Historie"" or ""Zeitstrahl"" or ""zeitlicher Verlauf"" or simply ""Verlauf"" than the current translation ""Journal"". ""Journal"" is an unusual foreign word here.

Second, ""Quellen durchsehen"" as translation of ""Browse Source"" should IMHO rather be ""Quellcode"" because this is shorter.

Third, ""Tickets anzeigen"" as translation of ""View Tickets"" should IMHO rather be simply ""Tickets"" because of the shortness of the menu item. Alternatively, maybe ""Ticketübersicht"".",anonymous
undecided Release,13499,Trac Email Notifcations Poorly formatted due to line wrap of quoted text,notification,,enhancement,normal,,new,2022-09-19T22:19:41+02:00,2022-09-22T16:31:09+02:00,"Trac email notifications are getting a hard break at 75 characters.
https://trac.edgewall.org/browser/trunk/trac/ticket/notification.py#L101

This line break doesn't respect quoted text using a > quote marker, so when one received the email, the first 75 chars are on a indented color coded line, and the remainder of the text is not indented/marked up and looks like the reply.

This makes it very hard to follow what is actually a reply between quoted text and what is just broken formatting.

I'm not sure why in 2022 we need hard breaks like this at all.  At least downstream users should be able to optionally disable this.  Best however I think is just eliminating it and letting email clients wrap text as they see fit.

",Jon Brown <jbronw510@…>
undecided Release,13083,Unified diff with contextall,version control/changeset view,,enhancement,normal,,new,2018-09-21T12:56:38+02:00,2018-09-26T15:04:45+02:00,"The changeset view (example 3: changeset:16824) allows to ""Show the changes in full context"" via `?contextall=1` (example 2: changeset:16824?contextall=1).

It also has a link to ""Download in other formats: Unified Diff"" (example 3: changeset:16824?format=diff&new=16824).

But combining these two features is not currently possible. On the ''example 2'' page the `contextall=1` parameter is not included in the Unified Diff link. 
And even if it is manually added it does not seem to have any effect (example 4: changeset:16824?format=diff&new=16824&contextall=1).

Would it be possible to make this work? This is very useful for people that prefer using an offline diff viewer tool.",anonymous
undecided Release,11989,Improve handling of option specified in multiple global (shared) configuration files,general,,defect,normal,,new,2015-03-18T23:08:26+01:00,2015-03-18T23:08:26+01:00,"If an option is specified in multiple configuration files, the value from the leftmost file in the `[inherit]` `file` list will be used: [browser:/trunk/trac/config.py@13892:212-213,215#L202].

This could lead to confusion if the user expects another value to be picked-up, not realizing the value in another file is taking precedence. Should we log at DEBUG or INFO level if the value is discovered in more than a single file? Or should the behavior just be documented in TracIni#GlobalConfiguration?",Ryan J Ollos
undecided Release,11957,Update relative date and time,general,,enhancement,normal,,new,2015-02-11T19:55:31+01:00,2018-04-09T12:26:07+02:00,"Update relative date/time without a page refresh, like [th:TracTimeDeltaUpdatorPlugin] does.",Ryan J Ollos
undecided Release,11953,Responsive design for user interface,general,,enhancement,normal,,new,2015-02-08T01:02:27+01:00,2019-06-02T13:15:56+02:00,"Trac currently has an interface that provides a good experience when viewed through a desktop browser. However, the experience is not so good on mobile and tablets. Trac would benefit from a responsive design that improved its presentation on all devices.

The issue has been raised in a few tickets: #11940, #11466. Several users have attempted to improve on the user interface by developing themes, and Apache Bloodhound used Bootstrap to implement a new interface.

A good first step could be survey and discuss frameworks we could adopt to ease the implementation of a responsive interface, and more dynamic functionality in general. That would best be done on the MailingList.",Ryan J Ollos
undecided Release,11641,"html5 support for ""export"" links in trac wiki",wiki system,1.0.1,defect,normal,,new,2014-06-08T10:10:56+02:00,2014-08-02T08:08:47+02:00,"I am attempting to link from my wiki to web documentation within the source (git) repository.
This works as expected if the documents are xhtml, but not if the file is html5.

For example, adding the following code to the wiki `[export:path/to/index.html]` creates a link to that file within the git repository which is displayed as expected when the html file has the following header:


{{{
<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">
<html xmlns=""http://www.w3.org/1999/xhtml"">
<head>

}}}

However, an error occurs when the html document has a html5 header:


{{{
<!DOCTYPE html>
<html lang=""en"">
  <head>

}}}

The error message (within the browser) is browser dependant, however, the error message printed in firefox: 


{{{
""XML Parsing Error: mismatched tag. Expected: </link>....""
}}}
 

suggests that trac may be attempting the parse the html5 document as xml?

Note that it is necessary to set `[browser] render_unsafe_content = yes` in order to enable rendering of html documents in this way.
",dan.halligan@…
undecided Release,11588,Backport Apache Bloodhound resource neighborhood implementation,general,1.1.1dev,enhancement,normal,,new,2014-04-16T01:59:12+02:00,2014-08-02T04:12:10+02:00,"Resource neighbourhoods are aimed to connect Trac instances to external resource managers (issue trackers , build systems , ...) . This ticket is aimed at :

  - Proposing back ports for this feature into the Trac core 
  - Providing a basic implementation of neighbourhoods for sibling Trac environments .

",Olemis Lang <olemis+trac@…>
undecided Release,11585,Backport Apache Bloodhound web bootstrap handlers,web frontend,1.1.1dev,enhancement,normal,,new,2014-04-15T23:40:01+02:00,2014-12-13T19:58:20+01:00,"The immediate goal of this ticket is to propose web bootstrap handlers to be committed into Trac , also as a preamble of a probable candidate to the solution proposed in #8509 .  Both tickets fit into a much broader vision consisting in incorporating a more flexible and efficient request dispatching solution at the core of Trac . Currently there are two steps : environment dispatching , request dispatching .

<ot>
In order to mention one use case this could be the starting point to unify environment and request dispatching . Afterwards this it'd be possible to cache routing information in memory and still implement lazy loaders for request handlers (similar to [http://webapp-improved.appspot.com/guide/routing.html#lazy-handlers webapp2 lazy handlers] ) . Another use is to integrate it with other frameworks (e.g. [http://routes.readthedocs.org/en/latest/ Routes] , [https://developers.google.com/appengine/docs/python/tools/webapp2 webapp2] , [https://docs.djangoproject.com/en/dev/topics/http/urls/ Django dispatching] , ...)
</ot>",Olemis Lang <olemis+trac@…>
undecided Release,11577,Status is omitted in plain text emails,notification,1.0.1,defect,normal,,new,2014-04-07T16:37:25+02:00,2018-06-10T16:40:21+02:00,"We use the following three types of status' for our tickets; Defect, Task and Enhancement.  When using plaintext emails with MS outlook formatting, type=Enhancement does not show up in email notifications.  Any idea why this may be happening?  System details are included below.


== MS Outlook Formatting - ticket_notify_email.txt ==

{{{
--------------------------------------------------------------------------
{% with
   pv = [(a[0].strip(), a[1].strip()) for a in [b.split(':') for b in
         [c.strip() for c in
          ticket_props.replace('|', '\n').splitlines()[1:-1]] if ':' in b]];
   sel = ['Reporter', 'Owner', 'Type', 'Status', 'Department',
          'Severity', 'Resolution', 'Keywords', 'duedate'] %}\
${'\n'.join('%s\t%s' % (format(p[0]+':', ' <12'), p[1]) for p in pv if p[0] in sel)}
{% end %}\
--------------------------------------------------------------------------
}}}


== Example Email with type = Enhancement ==


{{{
--------------------------------------------------------------------------
Reporter:   	reporter
Owner:      	owner
Type:       	
Status:     	accepted
Resolution: 	none
Keywords:   	none
Department: 	Informatics
--------------------------------------------------------------------------
}}}



== System Information ==


{{{

Package	Version
Trac	1.0
Trac	1.0
Babel	0.9.5
Genshi	0.6 (without speedups)
mod_wsgi	3.2 (WSGIProcessGroup trac WSGIApplicationGroup trac.agraquest.int|)
pysqlite	2.4.1
Python	2.6.6 (r266:84292, Sep 4 2013, 07:46:00) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]
Python	2.6.6 (r266:84292, Sep 4 2013, 07:46:00) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]
pytz	2010h
pytz	2010h
setuptools	0.6c11
setuptools	0.6c11
SQLite	3.6.20
Subversion	1.6.15 (r1038135)
jQuery	1.7.2
}}}


",Jared Bownds <jared.bownds@…>
undecided Release,11466,in-place modifying of ticket fields like in Apache Bloodhound Trac,ticket system,,enhancement,normal,,new,2014-01-29T13:27:49+01:00,2017-06-09T09:10:48+02:00,"If one creates a [https://bh-demo2.apache.org/newticket new Bloodhound demo site ticket], it can modified afterwards by editing the ticket fields in-place!

This is what's missing. The recent Trac version just has a 'modify ticket' section at the bottom of the ticket, and it's quite confusing to have it shown at the top also.

Please backport the in-place editor of Bloodhound for modifying ticket fields in the top area of a Trac ticket.",s-fr@…
undecided Release,11428,Limit search realm when using quick search bar,search system,1.0.1,enhancement,normal,,new,2014-01-03T01:29:19+01:00,2014-08-02T04:37:23+02:00,"==== Problem ====
I frequently find myself using the quick search bar at the top of the page to search for things in a particular realm (wiki, milestones, etc).  My typical workflow looks like this:

 1. Type search terms in quick search bar, press enter
 2. Once the results page loads, untick the boxes for changesets, tickets, and milestones
 3. Click 'Search'
 4. Desired search page finally loads

Doing a realm-limited search actually requires two searches, which can take a long time on systems that have a lot of content or are behind a slow connection.  It would be helpful if there was a way to limit a search to a specific realm from the quick search bar.  This would reduce the above process to one step and reduce the number of page loads needed.  It would also reduce the number of times the user has to switch between using the mouse and the keyboard, which is something that slows many users down (especially those of us stuck on laptops with trackpads).


==== Current Workarounds ====
You can do a realm-limited search like this by clicking the ""Search"" button on the top toolbar and using that search form instead of the quick search bar.  This approach is sub-optimal because it still requires an unnecessary page load.  It also doesn't handle some handy use cases like dragging and dropping text from a page into the quick search bar.

You can also do this by entering a complete Trac search string in the quick search bar (like `search:?q=search+terms&wiki=on`).  The syntax required for this method is too arcane for most users to use on a regular basis.


==== Proposed Solution ====
The quick search bar can be enhanced to recognize a specially-formatted realm name as the first argument, and then limit the results of the search to that realm.  For example, something like this could be used to perform a quick search that only covers the wiki:
{{{
[wiki] search terms
realm:wiki search terms
wiki: search terms
}}}
I'm not sure what the best syntax for this sort of thing would be, but you get the idea.  You could even extend this to support multiple or inverted selections, like:
{{{
# Limit search to wiki and commit messages
realm:wiki,changesets search terms
# Search everything *except* the wiki
realm:-wiki search terms
}}}

Based on my limited understanding of the Trac code, it looks like this would require the `process_request` method of `class SearchModule` to update the local variable `filters` when one of these realm-limiting tags is present and then delete that portion of the search string from `query`.
",Ben Allen <ben.allen@…>
undecided Release,11425,Include edits to ticket comments as events in the timeline,timeline,,enhancement,normal,,new,2014-01-01T23:00:28+01:00,2017-08-31T16:56:56+02:00,"I'd find it useful to have edits to ticket comments displayed as events in the timeline. This would result in the events also being displayed in the timeline RSS feed, and we'd be able to see when a significant change is made to a ticket comment.

Email notifications on changes to ticket comments may also be desirable, but that can be addressed in another ticket. It has already been requested in #10909.

TODO: Revise TracTickets#ChangingandCommentingTickets.",Ryan J Ollos
undecided Release,11359,unintentional Camelcase links with slashes e.g. Bla/Blo,wiki system,1.0-stable,defect,minor,,new,2013-11-10T20:12:33+01:00,2014-08-14T23:39:07+02:00,"Two ore more Uppercase words separated by a slash e.g. `Bla/Blo` are treated as CamelCase and therefore generate a wikipage link. This is not welcome. It should better not be hyper-linked.

== Examples ==
""Bla/Blo"", ""Tom/Thomas"" and ""Berlin/Germany"" produce unwanted wiki-links to non-existing wiki pages.

== Argumentation ==

In routine work it happens quite often that unintended (dead) hyperlinks are created when writing texts fragments e.g. `in Berlin/Germany` or `Tom/Lisa said`. [[BR]]
In my opinion it should be like this:
 - `Germany/Berlin` -> shall be not be linked,
 - `LocationGermany/Berlin` -> shall be linked
because the first one can occur in natural writing and '''natural writing shall not be wiki-interpreted'''. In my opinion `Germany/Berlin` shall not be interpreted as CamelCase.

According to CamelCase and WikiPageNames slashes are allows to make ""hierarchy"" links. Rule 5 of WikiPageNames says: 
> 5. ''The use of slash ( / ) is permitted in page names (possibly representing a hierarchy).'' 
In my opinion this rule should be changed as follows:
> 5. ''The use of slash ( / ) is permitted in page names (possibly representing a hierarchy). In this case the above rules apply to each of the name fragments.' 

== Severity and Workaround

I do not really have a big problem here, since:
 - one can simple insert spaces `Germany / Berlin` or
 - escape the link with an exclamation mark e.g. `!Camel/Case` or
 - use one of the configuration options e.g. `ignore_missing_pages = true`.

However I think that the wiki processor shall not negatively interfere with natural writing. 

== Relation and History ==
There is also an old discussion in #733 (especially comment:3). It seemed to be solved for TRAC 0.9 in 2004 but until then somehow there was an regression and the unwanted effect reappeared..

The effect of unwanted linking is reported for TRAC versions 0.12, 1.0 and 1.1(dev). Other version I cannot test other versions now, but from my memories I believe that TRAC 0.10 and/or 0.11 did not suffer from the effect.",anonymous
undecided Release,11338,[Patch] Switch language based on URL prefix,i18n,1.0.1,enhancement,trivial,,new,2013-10-18T00:07:37+02:00,2015-10-20T10:53:05+02:00,"Hello,

I would like to propose my first patch to Trac.
The target is to switch language according to this principle:
https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-language-preference

I worked with Trac version 1.0.1 on a Debian Testing.

I modified the file trac/web/main.py and class {{{RequestDispatcher}}} method
_get_locale:

{{{
def _get_locale(self, req):
  if has_babel:
    language_prefix_regexp = re.compile('^/([A-Za-z\-]+)/')
    match = language_prefix_regexp.match(req.base_path) if req.base_path else None
    language_prefix = match.groups()[0] if match else None
    preferred = req.session.get('language')
    default = self.env.config.get('trac', 'default_language','')
    negotiated = get_negotiated_locale([language_prefix, preferred, default] + req.languages)
    self.log.debug(""Negotiated locale: %s -> %s"", preferred, negotiated)
    return negotiated
}}}


Basically it changes the language if there is a language prefix.
Of course it may be a problem for site which doesn't use language prefix but which have an URL similar to a language prefix. So we may need to make that an option (but I don't know yet how to do that)",saintger@…
undecided Release,11287,Configurable regex (option) for TracStandalone server auth,web frontend/tracd,1.0dev,defect,minor,,new,2013-08-31T07:19:25+02:00,2014-02-17T02:41:54+01:00,"We have been discussing in !dev@bloodhound.apache.org that it'd be useful to add an option in TracStandalone server in order to supply a regex meant to match URL path ''tracd'' auth authentication middlewares should act upon. We'd like to rely upon such new feature in spite of been able to write functional test cases combining both RPC requests as well as browser interaction.

At present if `--auth` option is activated then trachacks:AccountManagerPlugin login form will not be accessible since at that path (digest) auth will be enforced to require valid user. OTOH if the aforementioned option is not set then RPC requests will not be autenticated.

The original discussion is archived here http://goo.gl/PQgKOL
",Olemis Lang <olemis+trac@…>
undecided Release,11197,Batch Modification of Custom Text Area,ticket system,1.0,enhancement,normal,,new,2013-06-03T19:04:28+02:00,2021-02-24T07:54:32+01:00,"Text areas are excluded from batch modification (TracBatchModify#Excludedfields).

There may be utility in allowing batch modification of custom text areas in a case like the following:

There is a custom final resolution text area in a ticket. A group of tickets are resolved by updating registry settings. A `.reg` file updates all the required reg settings. The final resolution is running the reg file on systems to resolve the group of tickets.

Batch modifying the text area would make this more streamlined instead of having to go to each individual ticket to enter the info into the text area.",beardedbrawler@…
undecided Release,10873,authzpolicy.conf can not include a common permission setup,admin/console,,enhancement,normal,,new,2012-09-27T20:56:10+02:00,2015-03-18T23:03:15+01:00,"I have a multiprojects trac setup,
say I have a authzpolicy.conf as follow for each of them
most of the config are same except the groups setup.

{{{
[groups]
superdevs = me
devel= user1,user2,
custom= @devel,user3,user4


[wiki:WikiStart]
anonymous = WIKI_VIEW
[wiki:*]
anonymous =
@devel=
@custom=
[*]
@superdevs = TRAC_ADMIN
anonymous = MILESTONE_VIEW, ROADMAP_VIEW, TIMELINE_VIEW
}}}

I would love to have the authzpolicy.conf take a include or inherit from somewhere else",anonymous
undecided Release,10869,Recently changed items displayed in italic in reports,report system,,enhancement,normal,,new,2012-09-26T19:00:11+02:00,2014-02-22T01:44:12+01:00,"When I have the report showing only opened tickets, and I close come of them, the closed items are still displayed in report in italic for some time, cluttering the report itself. It should be possible to disable this feature somehow.",l0co@…
undecided Release,10681,commit_updater.py create wrong comment number,ticket system,0.12.2,defect,normal,,new,2012-04-27T12:47:43+02:00,2023-05-30T09:31:09+02:00,"

 How to reproduce[[BR]]
 1. create new ticket A,B
 2. add a comment in ticket B
 3. commit message like below TWICE in hg
{{{
refs #B
refs #A

test commit updater
}}}

 Expect result[[BR]]
 Ticket A will have comment 1,2[[BR]]
 Ticket B will have comment 1,2,3

 In fact we get[[BR]]
 Ticket A has comment 1,2[[BR]]
 Ticket B has comment number 1,2,2


",haterw@…
undecided Release,10640,Mercurial user aliases,plugin/mercurial,0.12-stable,enhancement,normal,,new,2012-03-24T16:38:26+01:00,2015-03-02T21:04:15+01:00,"With Mercurial you usually use ""Full Name <email@address>"" as author for your changesets while with Trac you use just ""somename"" so it would be nice to have the ability to map changesets to the right Trac user.

I've made a patch that implements this but I guess someone should take a look at it as this is the first time I'm working on a Trac plugin.",Julian Brost <julian@…>
undecided Release,10556,"Show completed, uncompleted, or all Milestones in a query",query system,,enhancement,normal,,new,2012-02-03T21:18:05+01:00,2015-08-06T22:26:55+02:00,"In Trac 0.11, the Roadmap allows a user to check a box to show the completed milestones in addition to the open or upcoming milestones. However, when performing a TracQuery, that option is not available. It would be very useful to be able to query on milestone and control whether the results include completed, uncompleted, or all milestones.

I was not able to find if this feature is already planned for a future revision. Also, I was not able to find any existing tickets or plugins, either here or on Trac Hacks, that documented a similar enhancement.",TODD.W.OBERHELMAN@…
undecided Release,10554,Cleanup when wsgi.run_once is set in trac.web.main.py,web frontend,0.12-stable,defect,normal,,new,2012-02-03T14:15:59+01:00,2013-03-11T10:03:11+01:00,"In trac.web.main.py line 482 says:

{{{
if env and not run_once:
    env.shutdown(threading._get_ident())
    ...
}}}

If I get this right, it performs cleanup / shutdown although the environment is to be cached.

In our test environment I used inverted the condition and trac works much faster (approx. -1 sec. ticket loading time) and had no negative side effects (mixed up sessions, increased thread count, increased memory usage etc.) till now.

This is what I did:

{{{
if env and run_once:
    env.shutdown(threading._get_ident())
    ...
}}}",kevin.loehmann@…
undecided Release,10543,Make mainnav entries customizable through user preference page,general,,enhancement,normal,,new,2012-01-25T14:45:54+01:00,2015-03-02T20:55:54+01:00,"It would improve user experience, if mainnav-entries would be customizable in user preference panel. This could be done for these mainnav entries:
 - wiki
 - browser
 - report

I implemented changing personal wiki page already in [http://trac-hacks.org/wiki/NavigationDisplayPlugin NavigationDisplayPlugin].",framay <franz.mayer@…>
undecided Release,10450,Do not linewrap long URLs in text emails,notification,,defect,normal,,new,2011-11-05T08:36:23+01:00,2018-09-12T19:27:40+02:00,"When there is a long URL with dashes (or other linewrappable characters) sent in an email, it will get line-wrapped on the dash for the text version of the email, breaking the link. This is bad.

Here is an example:

http://lists.freedesktop.org/archives/systemd-devel/2011-March/001404.html",ezyang
undecided Release,10203,[PATCH] AuthzPolicy to allow multiple user/group permissions,general,,enhancement,normal,,new,2011-05-31T22:19:07+02:00,2013-03-11T10:03:11+01:00,"The current implementation of [trac:browser/tags/trac-0.12.2/tracopt/perm/authz_policy.py AuthzPolicy] does not support a user being a member of multiple groups that simultaneously define permissions either in the same section/path definition or via inheritance.  This is because permission checks are only evaluated for the first matching rule with a matching user or group for which a user is a member.  The authzpolicy.conf below currently evaluates to just WIKI_MODIFY for !wiki:TestStuff* paths, which effectively denies WIKI_VIEW and WIKI_CREATE.  

==== authzpolicy.conf ====
{{{
[groups]
wikiviewer = testuser1, testuser2
wikimodifier = testuser2
wikicreator = testuser2

[wiki:TestStuff*]
@wikimodifier = WIKI_MODIFY
@wikicreator = WIKI_CREATE

[wiki:*]
@wikiviewer = WIKI_VIEW
}}}

I am illustrating how the proposed enhancement will allow both users to view all wiki pages, yet testuser2 will be able to both create and modify wiki pages that match the path !wiki:TestStuff*.  Notice how WIKI_VIEW access is preserved/inherited via the wiki:* path while @wikimodifier and @wikicreator are effectively the union of both permission groups.  

I am attaching a proposed patch that would effectively do what I am proposing.  The gist is as follows:
 1. Pass ''action'' to authz_permissions call so it can be action-aware.
 1. Added anonymous to authenticated valid_users so authenticated users can inherit permissions from anonymous.
 1. Only return permissions on match if it is explicitly granted or denied.

The only caveat is that you only should deny access to anonymous or authenticated and not use other groups as a way to negate permissions.  For example, if anonymous has WIKI_VIEW on wiki:* then doesn't have a group @limiteduser remove WIKI_VIEW.  Instead restrict access to anonymous and use a group @specialuser grant additional access.",Brian Wasserman <brian-trac@…>
undecided Release,10079,improper rendering of svn:externals when not configured,version control/browser,,defect,normal,,new,2011-03-11T17:12:59+01:00,2015-06-04T11:56:20+02:00,"Some people do not (or can not) configure all of their svn:external properties to really point to some http:// url. So when trac.ini has no svn:externals section the entry
{{{
foo svn://svnserver/path/to/whatever
}}}
will be just rendered as 
* foo
and nothing else. This is pretty annoying, and I have modified my trac to display in that case the complete line from the externals entry, so if you are intrested, here is my `_render_externals` function (modified against 0.12.2)

{{{#!diff
diff --git a/trac/versioncontrol/svn_prop.py b/trac/versioncontrol/svn_prop.py
index 8c77d0c..2b3e906 100644
--- a/trac/versioncontrol/svn_prop.py
+++ b/trac/versioncontrol/svn_prop.py
@@ -71,7 +71,7 @@ class SubversionPropertyRenderer(Component):
                 continue
             localpath, rev, url = elements[0], '', elements[-1]
             if localpath.startswith('#'):
-                externals.append((external, None, None, None, None))
+                externals.append((external, None, None, None, None, None))
                 continue
             if len(elements) == 3:
                 rev = elements[1]
@@ -94,11 +94,13 @@ class SubversionPropertyRenderer(Component):
                 if prefix:
                     remotepath = posixpath.join(*reversed(prefix))
                 externals.append((localpath, revstr, base_url, remotepath,
-                                  href % {'path': remotepath, 'rev': rev}))
+                                  href % {'path': remotepath, 'rev': rev},
+                                  external))
             else:
-                externals.append((localpath, revstr, url, None, None))
+                externals.append((localpath, revstr, url, None, None,
+                                  external))
         externals_data = []
-        for localpath, rev, url, remotepath, href in externals:
+        for localpath, rev, url, remotepath, href, external in externals:
             label = localpath
             if url is None:
                 title = ''
@@ -108,6 +110,7 @@ class SubversionPropertyRenderer(Component):
                 label += rev + url
                 title = ''.join((remotepath, rev, url))
             else:
+                label = external
                 title = _('No svn:externals configured in trac.ini')
             externals_data.append((label, href, title))
         return tag.ul([tag.li(tag.a(label, href=href, title=title))

}}}",anonymous
undecided Release,13414,Support PyPy,general,,enhancement,normal,,new,2021-08-02T00:57:46+02:00,2021-08-16T04:54:20+02:00,"I was able to get trac running under PyPy in https://foss.heptapod.net/pypy/pypy/-/issues/3528

Originally it was crashing on ticket queries, but switching psycopg2 to psycopg2cffi via this patch below resolved the crashing:

{{{#!diff
diff --git a/trac/db/postgres_backend.py b/trac/db/postgres_backend.py
index f9f910630..8670f83ac 100644
--- a/trac/db/postgres_backend.py
+++ b/trac/db/postgres_backend.py
@@ -31,6 +31,14 @@ from trac.util.html import Markup
 from trac.util.text import empty, exception_to_unicode, to_unicode
 from trac.util.translation import _
 
+# Attempt to use psycopg2cffi in compatibility mode if available
+# this enables usage of psycopg2cffi under pypy
+try:
+    from psycopg2cffi import compat
+    compat.register()
+except ImportError:
+    pass
+
 try:
     import psycopg2 as psycopg
     import psycopg2.extensions
}}}",kallisti5
undecided Release,10175,Add author in reports and add permission REPORT_MODIFY_OWN,report system,0.12.2,enhancement,minor,,new,2011-05-12T13:28:36+02:00,2013-03-11T10:03:11+01:00,"It would be nice if there would be a permission for only editing own reports (for example REPORT_MODIFY_OWN). That means that user with permission REPORT_MODIFY_OWN can modify only report they created, but not other reports.

Hint: in table report, column 'author' isn't filled ever. Before adding this permission owner of report has to be maintained by Trac (when creating report)",anonymous
unscheduled Release,9879,wiki_to_text(),wiki system,0.12-stable,enhancement,major,,new,2010-11-26T15:59:24+01:00,2021-09-01T01:37:05+02:00,"Currently it's not possible to render wiki content to plain text without some hacks like normalizing the html output.

Related tickets: #1502, #8165",Thijs Triemstra
unscheduled Release,8499,Cannot obtain link to paragraph/section when reST used,wiki system,0.11-stable,enhancement,minor,,new,2009-07-22T09:51:35+02:00,2015-05-26T20:55:39+02:00,"{{{
#!rst

Hello. When writing wiki content with reST i noticed strange differences between HTML output which prevents from linking to specific paragraph. For heading ""Jakis tytul"" I get:

With reST:
 <h1><a id=""jakis-tytul"" name=""jakis-tytul"">Jakis tytul</a></h1>

With Wiki markup:
 <h1 id=""Jakistytul"">Jakis tytul</h1>

I don't know exactly how your JS works to find headings and add a icon next to them when mouse hovered to allow obtaing a link to paragraph, but it definitely fails here.
I attach two pictures, on with ""O.o"" heading from reST hovered, one with ""Jakis tytul"" written with Wiki markup. Notice status bar address.


My setup:
 * Trac:	0.11
 * Python:	2.6.2 (r262, Jun 15 2009, 00:07:25) [GCC 4.1.1 (Gentoo 4.1.1-r3)]
 * setuptools:	0.6c9
 * psycopg2:	2.0.11
 * Genshi:	0.5.1
 * Pygments:	1.0
 * GIT:	        1.6.0.6
 * jQuery:	1.2.3
}}}",vic@…
unscheduled Release,6217,New notification/cc scheme - notification preferences per ticket,notification,,enhancement,normal,,new,2007-10-20T14:10:58+02:00,2020-02-19T03:21:07+01:00,"This is an alternative/refinement of #4056.

Instead of the cc field, a logged in user will see a set of checkboxes, e.g.:
 * Notify on all changes
 * Addition of comments
 * Ticket properties
 * Owner changes
 * Status changes

By selecting one or more of these, he will receive notifications when that particular change takes place.

In his user preferences, he can set which default values should be used for when he is component owner, ticket owner, reporter or not involoved (the last can be useful if somebody wants to be notified of _all_ ticket creations for instance). But he will be able to go and change what type of notifications he want to receive on a ticket to ticket basis, also for those tickets where he is e.g. owner. This will give maximum flexibility and enable a user to fine-tune the notifications he wants to receive with a minimal effort.

For an anonymous user, todays cc field should suffice. But, if one wants to go overboard, one can create one cc field for each of the types of changes (addition of comments, owner changes etc). ",anonymous
unscheduled Release,3370,"Custom query RSS feed differes from CSV, Tab files",ticket system,0.9.4,enhancement,normal,,new,2006-07-10T03:41:48+02:00,2021-02-28T19:55:05+01:00,"The RSS feed for a custom ticket query does not contain same fields as what the CSV and Tab Separated files do. The following important fields appear to be missing from the RSS feed: owner, type, priority, mileston and resolution.

",tomek.piatek@…
unscheduled Release,38,Wiki edit event collapsing,timeline,devel,enhancement,normal,,new,2004-02-04T16:23:01+01:00,2020-04-24T00:21:53+02:00,"If the same user edits a page more than once within a short period of time (an hour or a day even maybe?), the timeline could show only a single event and the counted number of changes made.

Example: http://moinmoin.wikiwikiweb.de/RecentChanges",daniel
unscheduled Release,12261,Named reports,report system,,enhancement,normal,,new,2015-12-02T22:33:15+01:00,2017-10-01T21:07:20+02:00,"Was it ever considered to allow naming reports?

Instead of just assigning each report an automatic number like report:1, report:2, report:3 etc. wouldn't it make more sense to allow things like report:AllActiveTickets or report:Untriaged or even hierarchically grouped reports like report:ActiveTickets/TicketModule and report:ActiveTickets/WikiModule that could be listed in a nicely categorized tree on the reports pages?",anonymous
unscheduled Release,12243,Consider adding an EditorConfig file,general,,enhancement,normal,,new,2015-11-09T12:50:32+01:00,2015-11-09T23:51:01+01:00,"See http://editorconfig.org/

If an `.editorconfig` file is added in the project, various editors would automatically use the appropriate configuration for file necoding, line endings, indentation etc.

For example in `trunk/.editorconfig`:
{{{
# See http://EditorConfig.org

root = true

[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8

[*.py]
indent_style = space
indent_size = 4

[*.{js,html,yml}]
indent_style = space
indent_size = 2

[*.css]
indent_style = space
indent_size = 1

[Makefile]
indent_style = tab
}}}
",anonymous
unscheduled Release,12143,mysql + InnoDB + auth_cookie == Bad.,database backend,1.0.8,defect,major,,new,2015-07-27T17:52:41+02:00,2021-12-16T19:25:05+01:00,"It appears that Trac using MySQL, InnoDB and the [th:AccountManagerPlugin] login page has a race condition with the auth_cookie table.  This problem manifested itself when we migrated from sqlite to MySQL. While this uses the [th:AccountManagerPlugin], the calls being used are w/in Trac proper:

- trac/web/auth.py
- trac/db/util.py
- trac/db/mysql_backend.py

== Configuration == 
- database: MySQL and InnoDB tables
- authentication using LDAP via [th:AccountManagerPlugin]
- Configured to route user to '/trac/login' if there is not authentication

== Test Case ==
1. user logs in 
1. commit starts for auth_cookie update
1. second thread looks for the cookie, doesn't find and expires the cookie
1. user returned to login screen

I inserted quite a bit of logging to find this.. 
{{{
2015-07-27 16:49:29,097 Trac[util] DEBUG: SQL:
  INSERT INTO auth_cookie (cookie, name, ipnr, time) 
   VALUES (%s, %s, %s, %s)
2015-07-27 16:49:29,097 Trac[util] DEBUG: SQL args: ('cb4a763b891fa64c0ea38817226d39d6', u'branson', '172.16.20.34', 1438008569)
2015-07-27 16:49:29,098 Trac[util] DEBUG: SQL: completed, 1
2015-07-27 16:49:29,098 Trac[util] DEBUG: SQL: 
   DELETE FROM auth_cookie WHERE time < %s 
2015-07-27 16:49:29,099 Trac[util] DEBUG: SQL args: (1437144569,)
2015-07-27 16:49:29,099 Trac[util] DEBUG: SQL: completed, 0
2015-07-27 16:49:31,267 Trac[main] DEBUG: Dispatching <RequestWithSession ""GET ''"">
2015-07-27 16:49:31,275 Trac[util] DEBUG: SQL: 
   SELECT name FROM auth_cookie WHERE cookie=%s 
2015-07-27 16:49:31,275 Trac[util] DEBUG: SQL args: ('cb4a763b891fa64c0ea38817226d39d6',)
2015-07-27 16:49:31,276 Trac[util] DEBUG: SQL: completed, 0
2015-07-27 16:49:31,276 Trac[auth] DEBUG: no user found for cookie cb4a763b891fa64c0ea38817226d39d6 expiring it.
}}}

My read .. is the write is not completing before the read happens on a different thread and the read is returning 0 results.. so auth.py expires the cookie.  This is because InnoDB does row level locking and we're doing a transaction, the update to the table does NOT lockout the read .. the read returns with 'old_Data' as designed in the case of a transaction, and therefore doesn't find the cookie.

I couldn't find a way to tell InnoDB to lock the table or row for read during update.. however to cheat.. I changed that one table to MyISAM which enforces table level locks for read on transaction and that resolved the problem ( I also had to comment out the error in db/mysql_backend.py for now ) 

According to https://dev.mysql.com/doc/refman/5.0/en/set-transaction.html#isolevel_read-committed  this is standard behavior.  There may be a way to cause serialized SELECT's against a locked table by setting autocommit=0 (bottom of that page)... however I want to see if this is a recommended way to resolve this issue.

Else I am not sure how/what can be used consistently if you can't block a table for read on a commit in this particular case.",branson@…
unscheduled Release,11731,TracLinks notations for showing a wiki diff,wiki system,,enhancement,normal,,new,2014-08-24T03:39:29+02:00,2014-11-23T15:38:54+01:00,"I often find myself adding links such as wiki:TracInstall@374?action=diff in order to reference a wiki change from a ticket comment. TracInstall@374 could be used, which renders the page with a `#info` containing a link to the diff, but that's less obvious when I really want to just shown the diff and also requires two clicks to get to the information I want to emphasize.

wiki:TracInstall@374?action=diff is not too awful, and it could be wrapped in brackets, but that results in [wiki:TracInstall@374?action=diff], and it's not obvious to the reader that the link directs to a diff.

So, I'm unsure what, if any, the ideal addition to the TracLinks syntax would be, but I'm thinking of something like `diff:TracLinks@374`, with the complementary explicit version `wiki:diff:TracLinks@374`. The `diff` part is an action, so I'm not sure whether placing it after the realm would fit with the general patterns adopted by TracLinks.

Maybe TracInstall@374 is good enough, or maybe we just need to make that link to a diff (or the entire `#info`) a little more prominent.",Ryan J Ollos
unscheduled Release,11669,Change priority of tickets by dragging and dropping at the roadmap level,roadmap,,enhancement,normal,,new,2014-07-09T22:21:09+02:00,2014-07-11T18:31:40+02:00,"As a product manager when I create a release in the roadmap with tickets assigned to them then I want the release view to show tickets in the order of priority that I choose. This will help my engineering to focus on the highest priority item.

NOTE: I know there is a priority field in tickets but most of the times there are multiple tickets with the same priority level and my engineering team ends up picking them in a random order. For e.g, There can be 25 tickets with a major priority, I want to be able to prioritize all the major tickets. 

1. If I have to reprioritize then I should be able to drag and drop the ticket at the right place.",ssethi
unscheduled Release,11644,Add an email domain blacklist/whitelist to prevent proprietary info leaks in notifications,ticket system,0.12.2,enhancement,major,,new,2014-06-12T15:01:55+02:00,2018-11-20T10:41:14+01:00,"For organizations potentially dealing with proprietary information within their tickets, it is necessary to be able to block notification emails outside designated domains.  Otherwise a user could inadvertently (or not) include a Cc to an email address that would leak proprietary information to non-need-to-know persons.

I tried using the `admit_domains` attribute in the trac.ini `[notifications]` section to no avail.  rjollos responded to me in gdiscussion:trac-users:7NJDOpvmTCE that this doesn't appear to be the intent of the `admit_domains` attribute and suggested submitting this for possible consideration as a future enhancement.",jeffrey.yoder@…
unscheduled Release,11477,Extend ITicketManipulator (or similar) - Filter Comments,ticket system,1.0.1,enhancement,normal,,new,2014-02-06T21:50:03+01:00,2014-03-09T16:23:41+01:00,"Example:

Version 1.0.1 code in ticket/web_ui.py

{{{#!python
def _get_comment_history(self, req, ticket, cnum):
    history = []
    for version, date, author, comment in ticket.get_comment_history(cnum):
        history.append({
            'version': version, 'date': date, 'author': author,
            'comment': _(""''Initial version''"") if version == 0 else '',
            'value': comment,
            'url': self._make_comment_url(req, ticket, cnum, version)
        })
    return history
}}}

If ITicketManipulator in ticket/api.py contained a method like:

{{{#!python
def comment_filter(self, req, version, date, author, comment):
   """"""Validate if a comment can be displayed
    Must return a 4-tuple corresponding to version, date, author, comment
    The 4 may be empty or None to ""nullify display of the comment
    """"""
}}}

The code from above in web-ui.py could be rewritten as:

{{{#!python
def _get_comment_history(self, req, ticket, cnum):
    history = []
    for version, date, author, comment in ticket.get_comment_history(cnum):
        for manipulator in self.ticket_manipulators:
            version, date, author, comment = manipulator.comment_filter(req, version, date, author, comment)
        if version or date or author or comment:
            # Only if the comment has not been fully ""nullified"" add it to the list to display
            history.append({
                'version': version, 'date': date, 'author': author,
                'comment': _(""''Initial version''"") if version == 0 else '',
                'value': comment,
                'url': self._make_comment_url(req, ticket, cnum, version)
                })
    return history
}}}

This allows filtering of comments by Plugins which can create set of rules (user, group, permission based, ...)

The existing th:PrivateCommentPlugin is broken beyond 0.12 because it filters the Template Stream and needs to adapt to changes in the stream.

The proposed modification allows filtering ""objects"" rather than content and therefore eases up the creation of a Comment Filtering Plugin.",anonymous
unscheduled Release,11424,Remove `req` from ITicketActionController method signatures,ticket system,,enhancement,normal,,new,2014-01-01T19:43:22+01:00,2021-06-01T00:35:16+02:00,"Currently all methods of the `ITicketActionController` interface require a `req` request parameter.  This couples the `ITicketActionController` system tightly with web requests, and makes it very difficult to use workflow components at all in contexts other than a web request where the requesting user is directly viewing or acting on a ticket.  This is because a `Request` object is difficult to instantiate directly (needs an environ and start_response); has an indeterminate interface (environ keys, request callbacks, etc); and must be capable of handling exceptional situations like `req.send` and `req.redirect`.

If this coupling were looser, it would become much easier to use workflow in situations like:

 * workflow-aware actions triggered by commit messages (#10755)
 * workflow-aware actions in `ITicketChangeListener` components that subscribe to ticket_change events, where a `req` is not available
 * directly through any Python code that has a Trac environment, a ticket, and a (real or simulated) initiator for a workflow action

I looked through the code of the following `ITicketActionController` implementations:

 * `trac.ticket.default_workflow`
 * th:AdvancedTicketWorkflowPlugin
 * th:WorkflowNotificationPlugin
 * th:MultipleWorkflowPlugin
 * th:TypedTicketWorkflowPlugin
 * th:TestManagerForTracPlugin / th:TracGenericWorkflowPlugin

As far as I can see, the only request properties that are ever accessed in any of these implementations are `req.perm`, `req.args` and `req.authname`.  There are only two exceptions, neither of which seems critical.  (One is discussed below; the other is a hack in my own th:WorkflowNotificationPlugin which I'd prefer to clean up anyway.)

So, I'm proposing to replacing the `req` argument in `ITicketActionController` method signatures with individual arguments `perm` (a Permission object), `args` (a dict), and `author` (a string).  An illustration is provided in the attached patch.

Unlike a Request object, these three parameters are trivial to construct from any calling context and to instantiate directly.

Aside from backwards compatibility concerns, the only potential problem I see, based on the documented interfaces and their implementations in the wild, is that it's recommended to use `trac.web.chrome.add_warning(req, ...)` within a component's `get_ticket_changes` method if `args['preview']` is set and if the component will have any side effects in `apply_action_side_effects`.  In practice, I can only find one use of this recommendation, in th:AdvancedTicketWorkflowPlugin's `TicketWorkflowOpXRef` component.  This could be solved by extending the `get_ticket_changes` method with an optional `add_warning` callback/accumulator (which could be set to `lambda *x: chrome.add_warning(req, *x)` in web contexts, or e.g. a logging.warn call in other contexts) or by extending the interface with a `get_ticket_change_warnings` method.",ethan.jucovy@…
unscheduled Release,11331,Optimize timeline for testing department,timeline,,enhancement,normal,,new,2013-10-16T16:25:02+02:00,2014-02-18T01:22:36+01:00,"Hello,
Our company has Trac workflow with testing. It is very similar to the one from [TracWorkflow]. Typical ticket states workflow are: new -> testing -> closed(fixed).

In this case, there is no possibility to show the change from and to testing state on the timeline. There is possiblity to switch on the show details on the timeline, but this is so detailed, that it would generate thousand of rows.

I suppose that it is very usefull to see, that some ticket was submitted to testing and that some ticket was returned to developer.
I can imagine, that it could be configurable in the trac.ini which tickets states changes are shown on the timeline.
{{{
show_states_timeline = new,testing,close,needs_work,reopen
}}}",kubes@…
unscheduled Release,11321,browser doesn't highlite the last opened ticket,ticket system,,defect,normal,,new,2013-10-07T14:52:09+02:00,2013-10-07T20:07:05+02:00,"go to an ticket overview list,
open a ticket,
now go back (with the BROWSER back) to that overview,

expected:
=> it is clear to see which ticket was last opened

actual:
=> no idea which ticket was opened",anonymous
unscheduled Release,11252,Adding Comments Description,general,,enhancement,normal,,new,2013-07-23T13:11:59+02:00,2021-12-18T03:31:22+01:00,"Adding Comments heading to comments on tickets page.

For example:
 comments1:Description-1 [[BR]]
 comments2:Description-2 [[BR]]
 etc ...

There should be  single `[[PageOutline]]` macro  that could list  Description-1, Description-2 ... all description on right/left hand-side of page. 

It becomes difficult to search if there are number of comments. 
Like Table of Contents, it may be Table of comments on tickets page.


",anonymous
unscheduled Release,11086,Filter options for roadmap,roadmap,1.0,enhancement,normal,,new,2013-02-27T18:23:15+01:00,2018-12-16T15:45:01+01:00,"Hello together,

I plan to use trac as primary change management tool for our application suite at work. Even in our test environment we currently have about 40 milestones. For our business people, which are not so familiar with trac, it is hard to work with the roadmap view.

When a milestone is closed, they have to select ""show completed milestones"", which results in a very long list of milestones.

It whould be great if there was a filter mechanism like in the timeline. 

""Show me all completed milestones starting from <date> and the last <n> days before""

Another cool filter would be:
""Show me all (completed) milestones containing tickets for component <c>""

Do you agree with this feature request or would say it's not necessary and I should try another way?
",anonymous
unscheduled Release,11043,Add option to hide a commiter's email address,plugin/git,,enhancement,minor,,new,2013-02-03T15:04:34+01:00,2013-02-28T00:29:45+01:00,"Hi,

when viewing changesets in timeline or comments in ticket changes besides the name of the author an email address will be displayed. If setting ""show_email_address"" is false, the email address will be truncated / obfuscated.

Example:
Author name <author@...>

I'd like to have a setting to remove email address completely.

Example:
Author name

Instead of ""Author name <author@...>"" or ""Author name <author@name.com>""

I patched it by changing this line http://trac.edgewall.org/browser/trunk/tracopt/versioncontrol/git/git_fs.py#L101

from ""user, time, tz_str = s.rsplit(None, 2)"" to ""user, email, time, tz_str = s.rsplit(None, 3)"" and just ignored the email variable.

Guess this is not the best solution since some users want to match the email address with Trac users. Would be great to have a setting for this.

Thanks!",anonymous
unscheduled Release,11022,milestone names containing space break layout,web frontend/tracd,1.0,defect,normal,,new,2013-01-22T01:30:15+01:00,2016-11-25T12:23:57+01:00,"similar to #9755.
I was able to partially fix the issue using tracd -q parameter, but all requests for chrome are in the form:
/admin/ticket/milestones/MILE%20STONE/chrome/common/css/jquery-ui/jquery-ui.css
and failing.

I should mention that I'm running tracd with apache via scgi.",jan
unscheduled Release,10933,Custom Query: Column with last status change,query system,1.0,enhancement,normal,,new,2012-10-31T10:24:54+01:00,2022-11-16T06:31:22+01:00,"I couldn't find a possibility to show in custom query another column which show the last status change of a ticket. 
Is there a way to add such a column that i haven't seen or could this be added to custom query?",anonymous
unscheduled Release,10872,Add New Page and Link to current page,wiki system,1.0dev,task,normal,,new,2012-09-27T13:45:33+02:00,2019-10-05T20:25:09+02:00,"Trac is a wonderful product with many great plugins. tags, menus, wanted page, git, announcer...  And I wish it could be easier to add new pages.

Can I just click a button or link to add a new page, and enter the page name, then keying the content? Also if a checkbox option exists for link the new page to the previous, it would be perfect.

If the function already exist by any plugins or macros, please let me know.
Plus, I would like to add the function/plugin to trac and release it.

But I don't know how to implement the plugin, anyone could help?
",david.ullua@…
unscheduled Release,10544,Support better readable date/time format instead of/in addition to strict ISO 8601,general,0.13dev,enhancement,normal,,new,2012-01-25T18:13:46+01:00,2012-01-26T00:51:30+01:00,"I like the new ISO 8601 date/time format in Trac 0.13, e.g. in the revision log:
{{{
@7207  2008-06-13T10:49:32+02:00  cboos 0.10.5dev: merged [7205:7206] from 0.11-stable (escaping issue #7332)
}}}
IMHO, this is difficult to read. It would be nice to support a less strict format, e.g.:
{{{
@7207  2008-06-13 10:49:32  cboos 0.10.5dev: merged [7205:7206] from 0.11-stable (escaping issue #7332)
}}}
I.e. replace the `T` with a space and maybe leave out the time zone. This format is widely used, I think.",debacle@…
unscheduled Release,10531,Annotate in changeset diff view,version control/changeset view,,enhancement,normal,,new,2012-01-18T15:55:07+01:00,2023-04-20T08:02:38+02:00,"http://trac.edgewall.org/changeset?reponame=&new=10909%40trunk&old=10902%40trunk

I wonder if it is possible at all - show commit message in this view when mouse is over a green or a red piece of contents?",anatoly techtonik <techtonik@…>
unscheduled Release,10517,several tracd.exe on the same port on windows,web frontend/tracd,0.12.2,defect,normal,,new,2012-01-06T14:59:41+01:00,2015-10-26T15:48:45+01:00,"hi
When was trying to setup standalone server I have found I can run several tracd.exe simultaneously on the same port without any error or warning. I was confused a bit because of always thought that server application should exit if port binding was failed, shouldn't it?

(windows 7, Python 2.7.2, trac 0.12.2)",anonymous
unscheduled Release,10464,Option to specify status list which will be retargeted when closing milestone,roadmap,0.13dev,enhancement,normal,,new,2011-11-15T14:01:11+01:00,2011-11-16T21:52:24+01:00,"By default, only status ""closed"" retargeted.",arkinform <arkinform@…>
unscheduled Release,10426,Refactor pre-commit-hook to handle post-commit-hook features,version control,0.12-stable,task,normal,,new,2011-10-21T16:07:38+02:00,2012-01-19T19:56:01+01:00,"The current version of [source:/trunk/contrib/trac-pre-commit-hook@7440 contrib/trac-pre-commit-hook] doesn't use the same Trac component / code than [source:/trunk/tracopt/ticket/commit_updater.py@10617 tracopt/ticket/commit_updater.py] which is used for post-commit hooks.

It would be great to refactor the trac-pre-commit-hook in order to handle all the features of post-commit-hook (envelope, commands.close, commands.refs, etc...) defined on a Trac environment.

I've written a pre-commit-hook.py which copies the code of both python files in order to refactor it later.",Anthony O.
unscheduled Release,10383,When looking at a list of tickets I should be able to move the mouse pointer over the summary (mouse-over) and see the ticket's description,general,0.12,enhancement,normal,,new,2011-09-30T09:53:01+02:00,2015-08-04T11:33:29+02:00,"When looking at a list of tickets I should be able to move the mouse pointer over the summary (mouse-over) and see the ticket's description.

Attached is file for the reference.",viveikcpuglia@…
unscheduled Release,10334,Privilege for viewing Wiki page history,wiki system,,enhancement,normal,,new,2011-08-30T16:22:04+02:00,2017-04-16T23:22:36+02:00,"Wiki page histories sometimes provide a security concern when revisions may have contained unprotected sensitive data. TracProtected is a very handy macro, but non authenticated users can easily browse the Wiki page's history for revision with unprotected data.

While removing or pruning Wiki page histories goes against the revision concept, a privilege specific to viewing old Wiki page revisions should alleviate this concern. 

In practice is could be defaulted to allow all, but easily be a privilege given only to authenticated users when revision history security becomes a concern.",soco@…
unscheduled Release,10268,"Search needs option for required words, logical operations, ignore words, etc",search system,,enhancement,normal,,new,2011-07-15T18:40:11+02:00,2012-01-17T14:25:00+01:00,"The searching functionality is extremely limited (IMHO).  I would like to see options added for:
  1.  Required words (e.g, like !eBay where ""+XXX"" means must find word ""XXX"" on the page.
  1.  Words to Ignore.
  1.  Logical operations such as AND OR (although having required words might make logical operations less needed; e.g., two required words is the same as ANDing those two words).


Note:
Ticket #5933 asks to ""Add search options for ""match case"" and ""match whole word""
",dan_gawarecki@…
unscheduled Release,10250,tracQuery does not support count,general,,enhancement,normal,,new,2011-07-05T14:52:47+02:00,2011-11-07T07:52:06+01:00,"tracQuery can be used in either Wiki or the Report interface. The last can also be used by XMLRPC.

From the manual:
>> If the key is the name of a field, the value must use the
>> syntax of a filter specifier as defined in
>> tracQuery#QueryLanguage. '''Note that this is not the same as 
>> the simplified URL syntax used for query''': links starting 
>> with a ? character. Commas (,) can be included in field 
>> values by escaping them with a backslash (\).
>> ...
>> In addition to filters, several other named parameters can 
>> be used to control how the results are presented. All of 
>> them are optional. 

Within the Wiki I can perform
{{{
#!div style=""font-size: 80%""
Code highlighting:
  {{{
  [[TicketQuery(status=new,count)]]
  }}}
}}}
And it will return a number.

The report though, as noted, behaves differently. 
{{{
#!div style=""font-size: 80%""
Code highlighting:
  {{{
  query:?status=new,count
  }}}
}}}
Will result in an empty table. I find this strange for a report; especially ''count'' and ''sum'' are important reporting statistics. 

'''Proposal''':
If ''count'' and/or ''sum'' are somewhere in the query behind selection criteria, only sum and/or count marked results will be returned in a single row for those marked fields.

{{{
#!div style=""font-size: 80%""
Code highlighting:
  {{{
  query:?status=new,count&status=closed,count
  }}}
}}}
Could result in:
{{{
| New #  | Closed # |
| 10     | 300      |
}}}
Sum might be handy for custom fields, eg. Estimate Time to Complete sum for activities with a certain state.

Please make this feature also XMLRPC proof.",hamsteg@…
unscheduled Release,10217,Portal Trac,general,,enhancement,normal,,new,2011-06-10T23:28:33+02:00,2013-11-13T15:30:02+01:00,"
This is a stub for the new proposal TracDev/Proposals/PortalTrac.

Please add your suggestions to this ticket instead of directly editing the wiki page.
",Carsten Klein <carsten.klein@…>
unscheduled Release,10159,Allow admin to prevent display of traceback on error page,general,,defect,normal,,new,2011-04-29T20:21:06+02:00,2011-05-04T09:30:25+02:00,"version parameter crashes with ""ValueError: invalid literal for int() with base 10""

There is a bug right about here:
http://trac.edgewall.org/wiki/PluginList?version=A
the version parameter is casted into int without first checking if it's isdigit().

As a bonus, causing this bug will spit out a stack trace with the software versions.",desnacked@…
unscheduled Release,10118,(almost patch) make browser quickjump dropdown context sensitive,version control/browser,0.12.2,enhancement,normal,,new,2011-04-05T15:56:08+02:00,2015-12-19T16:51:14+01:00,"Hi, I made my quickjump context menu context sensitive because I have many many projects within the same erpository, and adding them all by hand to the trac.ini would not only be tedious, it would also confuse people since they probably only want to see available tags/branches to whatever server/program/library they are currently looking at.

I made a little patch to my trac 0.12.2 that does exactly what I want, but I guess to make it a full feature it should be configurable in some way (at lest switch it on/off, restrict it to some directory or all that match a pattern, or have some special keyword that gets substituted by the current path, or all at once).

Here are the changes:

{{{#!diff
diff -r -U5 /root/src/Trac-0.12.2/trac/versioncontrol/web_ui/browser.py ./versioncontrol/web_ui/browser.py
--- /root/src/Trac-0.12.2/trac/versioncontrol/web_ui/browser.py 2011-01-31 23:05:46.000000000 +0100       
+++ ./versioncontrol/web_ui/browser.py  2011-04-05 15:34:29.000000000 +0200                               
@@ -396,11 +397,11 @@                                                                                     
                                                                                                          
         quickjump_data = properties_data = None                                                          
         if node and not xhr:                                                                             
             properties_data = self.render_properties(                                                    
                     'browser', context, node.get_properties())                                           
-            quickjump_data = list(repos.get_quickjump_entries(rev))
+            quickjump_data = list(repos.get_quickjump_entries(rev,path))

         data = {
             'context': context, 'reponame': reponame, 'repos': repos,
             'repoinfo': all_repositories.get(reponame or ''),
             'path': path, 'rev': node and node.rev, 'stickyrev': rev,



diff -r -U5 /root/src/Trac-0.12.2/trac/versioncontrol/svn_fs.py ./versioncontrol/svn_fs.py 
--- /root/src/Trac-0.12.2/trac/versioncontrol/svn_fs.py 2011-01-31 23:05:46.000000000 +0100
+++ ./versioncontrol/svn_fs.py  2011-04-05 15:42:51.000000000 +0200                        
@@ -399,13 +399,20 @@                                                                      
         self.repos = self.fs_ptr = self.pool = None                                       
                                                                                           
     def get_base(self):                                                                   
         return self.base                                                                  
                                                                                           
-    def _get_tags_or_branches(self, paths):                                               
+    def _get_tags_or_branches(self, paths, showpath = None):                              
         """"""Retrieve known branches or tags.""""""                                            
-        for path in self.params.get(paths, []):                                           
+       mypaths=self.params.get(paths,[])                                                  
+       if( showpath and showpath.startswith(""trunk"") ):                                   
+           npath=showpath.replace(""trunk"",paths)                                          
+           if( not npath.endswith(""/"") ):                                                 
+               npath += ""/""                                                               
+           npath += ""*""                                                                   
+           mypaths.append(npath)                                                          
+       for path in mypaths:                                                               
             if path.endswith('*'):                                                        
                 folder = posixpath.dirname(path)                                          
                 try:                                                                      
                     entries = [n for n in self.get_node(folder).get_entries()]            
                     for node in sorted(entries, key=lambda n:                             
@@ -418,18 +425,18 @@                                                                      
                 try:                                                                      
                     yield self.get_node(path)                                             
                 except: # no right                                                        
                     pass                                                                  
                                                                                           
-    def get_quickjump_entries(self, rev):                                                 
+    def get_quickjump_entries(self, rev, showpath = None):                                
         """"""Retrieve known branches, as (name, id) pairs.                                  
                                                                                           
         Purposedly ignores `rev` and always takes the last revision.                      
         """"""                                                                               
-        for n in self._get_tags_or_branches('branches'):                                  
+        for n in self._get_tags_or_branches('branches',showpath):                         
             yield 'branches', n.path, n.path, None                                        
-        for n in self._get_tags_or_branches('tags'):                                      
+        for n in self._get_tags_or_branches('tags',showpath):                             
             yield 'tags', n.path, n.created_path, n.created_rev                           
                                                                                           
     def get_path_url(self, path, rev):                                                    
         url = self.params.get('url', '').rstrip('/')                                      
         if url:                    


}}}

This should give you an idea of what the feature looks like that I wanted to have.",anonymous
unscheduled Release,10058,Highlight locked files in repository browser,version control/browser,,enhancement,normal,,new,2011-03-02T17:06:42+01:00,2015-11-18T07:35:15+01:00,"Re: http://groups.google.com/group/trac-users/browse_thread/thread/dbc3db1051a31c06#

I shall be implementing this feature and attaching a patch to this ticket once done. Patch target will be 0.12.x. Features
 - Display Lock Owner, Lock Created time and Lock Comment on the information page for a file
 - On the directory view highlight locked files, possibly showing 'Lock Owner' rather than 'Author' and 'Lock Comment' rather than 'Last Change'.",alex@…
unscheduled Release,10023,Trac notification + Exchange 2010,notification,0.11.7,enhancement,major,,new,2011-02-11T09:34:16+01:00,2017-03-12T12:14:25+01:00,"Exchange 2010 with AUTH NTLM, not support anonymous authentication.

Trac says:
{{{SMTPException: No suitable authentication method found.}}}

Trac.ini:
{{{#!ini
[notification]
admit_domains = 
always_notify_owner = true
always_notify_reporter = true
always_notify_updater = true
ignore_domains = 
mime_encoding = base64
smtp_always_bcc = 
smtp_always_cc = 
smtp_default_domain = 
smtp_enabled = true
smtp_from = trac@domain
smtp_from_name = 
smtp_password = @pass
smtp_port = 25
smtp_replyto = @mymailaddress@domain
smtp_server = @server
smtp_user = username@domain
ticket_subject_template = $prefix #$ticket.id: $summary
use_public_cc = false
use_short_addr = false
use_tls = false
}}}",evgeniy.demur@…
unscheduled Release,9960,Sometimes exception after killing tracd,general,0.12.1,defect,normal,,new,2011-01-06T12:20:22+01:00,2011-01-13T03:45:15+01:00,"Sometimes when I kill ""tracd"" (using Ctrl+C) I get the following exception (after the new prompt):

{{{
172.16.91.1 - - [06/Jan/2011 12:13:55] ""GET /chrome/common/topbar_gradient.png HTTP/1.1"" 304 -
172.16.91.1 - - [06/Jan/2011 12:13:55] ""GET /chrome/common/topbar_gradient2.png HTTP/1.1"" 304 -
172.16.91.1 - - [06/Jan/2011 12:13:55] ""GET /chrome/common/collapsed.png HTTP/1.1"" 304 -
172.16.91.1 - - [06/Jan/2011 12:13:55] ""GET /chrome/common/expanded.png HTTP/1.1"" 304 -
172.16.91.1 - - [06/Jan/2011 12:13:55] ""GET /chrome/site/your_project_logo.png HTTP/1.1"" 404 -
^C

[www-data@ubuntu1004|12:14:51] ~/tracsandbox
> Unhandled exception in thread started by <function serve at 0xa3bf0d4>
Traceback (most recent call last):
  File ""/usr/local/lib/python2.6/dist-packages/Trac-0.12.1-py2.6.egg/trac/web/standalone.py"", line 257, in serve
    httpd.serve_forever()
  File ""/usr/lib/python2.6/SocketServer.py"", line 224, in serve_forever
    r, w, e = select.select([self], [], [], poll_interval)
AttributeError: 'NoneType' object has no attribute 'select'
./

}}}

This is not a serious bug but I thought I report it here.",Sebastian Krysmanski <sebastian@…>
unscheduled Release,9930,Allow configuration of ticket query cache time,ticket system,0.12.1,enhancement,normal,,new,2010-12-15T11:36:16+01:00,2021-12-25T01:55:18+01:00,"The [/query] page stores the query results for one hour in the user session. When the same query is run in this time period the differences are highlighted with italic font. I would like to be able to alter this behavior, either by disabling the cache or by reducing the cache time, which is hard coded as one hour.",Jorrit Schippers <jorrit@…>
unscheduled Release,9874,using a custom query to harvest email addresses,general,0.12dev,defect,normal,,new,2010-11-25T15:23:40+01:00,2010-11-26T11:21:02+01:00,"From ticket:153#comment:93
> Again, if you discover any leak of e-mails information remaining for unauthorized users, please create a new ticket.

A malicious user with a little motivation could easily harvest 100's of email addresses from Trac.   This can be achieved through custom queries on user-fields, using popular domain names as search criteria.

Example:
[http://trac.edgewall.org/query?reporter=~%40hotmail.com&col=id&col=reporter&order=priority hotmail.com]

By replacing ""..."" with the domain name in question, full email addresses can be collected from the query results by unauthorized users.",Andrew C Martin <andrew.c.martin@…>
unscheduled Release,9854,Jump to first change in wiki preview,general,,enhancement,normal,,new,2010-11-21T14:04:30+01:00,2010-12-29T00:04:59+01:00,"It would be nice - when editing longer wiki pages - that when one hits the ""Preview"" button the preview jumps to the changes the user just made (instead of staying at the top of preview). This way, when adding new content at the end of a wiki page, one would directly go to the end.",Sebastian Krysmanski <sebastian@…>
unscheduled Release,9756,TicketQuery should count groups if grouping is used,general,0.12,enhancement,minor,,new,2010-11-03T19:42:20+01:00,2010-12-29T00:26:28+01:00,"If I have a TicketQuery that uses grouping and formats as count, then I would rather like to know how many groups there are instead of how many tickets. That way I can do e.g. queries on the number of tickets affecting a number of components if I filter the tickets and group by components. I can still get the number of tickets by omitting the group.

Currently (0.12) I get the number of tickets in both cases.",donandre@…
unscheduled Release,9755,milestone name containing spaces breaks milestone editing within roadmap view and admin module,general,0.12.1,defect,normal,,new,2010-11-03T16:28:28+01:00,2011-03-18T10:57:52+01:00,"Steps to reproduce:

 1. From Trac instance homepage, click ""Roadmap"".
 1. Click ""Add new milestone"".
 1. Set field ""Name of !milestone:"" to ""More Coffee"".
 1. Click ""Add milestone"". Notice that we're still on the ""New Milestone"" page, and the ""Name of !milestone:"" field now reads ""More%20Coffee"" (URL encoding).
 1. Click ""Roadmap"". Notice that milestone ""More Coffee"" is present.
 1. Click link for milestone ""More Coffee"". Notice that we're back at the ""New Milestone"" page, instead of editing the ""More Coffee"" milestone.

Expected behavior:

Milestones with phrasal names act the same as milestones whose names do not contain spaces. Otherwise, perhaps some intelligent conversion of phrasal names to camel case should occur.",hazen@…
unscheduled Release,9736,Add an AND operator to ticket query syntax,query system,0.12dev,enhancement,normal,,new,2010-10-31T04:39:14+01:00,2019-01-10T09:32:36+01:00,"Add an add operator to ticket query syntax (used for example in macro). Currently it is only possible to do or operator queries. So it is impossible to query for example tickets, which have keywords A and keyword B at the same time.",Mitar
unscheduled Release,9730,Allow adding comments to source in browser,version control/browser,,enhancement,normal,,new,2010-10-29T23:49:21+02:00,2023-01-21T10:20:39+01:00,"This is something I have had in my mind for a while.  Given that many people are likely to use the trac browser to study the source of a piece of software they are not fully familiar with, it would make sense if they were allowed to add comments corresponding to that source as they understood how it works.  I could imagine something on the lines of a matching ticket being created for comments added by users which developers could handle and close (making the user comments disappear again) once they had transferred the comments to the actual code (or decided not to add a given comment).  I realise that this is not a trivial enhancement request, although there may be smarter and simpler ways to achieve the same thing.",michaeljt
unscheduled Release,9706,New ticket_change class: commit,ticket system,0.12-stable,enhancement,normal,,new,2010-10-23T00:58:34+02:00,2010-12-28T23:54:39+01:00,"We have had an issue on our instance of TRAC where a developer typed a commit message awkwardly, and (because he had an edit button), attempted to fix the wording.

The problem he had was that upon clicking submit, the page would refresh but the changes would not be applied, yet if he would click edit again, his changes would be present there.

While I do consider this a bug, I respect the fact that as it stands, it would be way too hard and unnecessary to change, because you would cause an instance where a commit message says one thing, and the TRAC comment says another.

I am proposing a new type of value for use in the ticket_change table, ""field"" column, named ""commit"".

This would be functionally identical to the comment 'field' type, except it will show the reply button (maybe), but remove the edit button from view. It should only be set when using the commit ticket updater plugin, and similar methods.",jsalaz@…
unscheduled Release,9702,Add trac.ini web editor,admin/web,,enhancement,normal,,new,2010-10-20T17:26:19+02:00,2011-02-25T10:07:41+01:00,"I've created a `trac.ini` web editor that allows the Trac admin to edit the `trac.ini` file from the WebAdmin panel. You can find it here (together with some more information and screenshots):

https://svn.mayastudios.de/mtpp/wiki/Plugins/TracIniAdminPanel

As far as I can think of, it's feature-complete (except for allowing the user to add some user defined documentation to each option; see [https://svn.mayastudios.de/mtpp/ticket/37 ticket #37]).

I'd be happy to see it become integrated into Trac directly (rather than staying a separated plugin) since it provides a very basic function. But it's up to you guys to decide whether it's ""worthy"" of being integrated or not.
",Sebastian Krysmanski <sebastian@…>
unscheduled Release,9618,WIKI_VIEW_SOURCE privilege,wiki system,0.13dev,enhancement,normal,,new,2010-09-15T03:26:21+02:00,2010-09-15T13:55:21+02:00,"I would suggest to add `WIKI_VIEW_SOURCE` privilege. Currently, if the user does not have `WIKI_EDIT` privilege it cannot see source code of wiki page. It can only download it to computer and then open it, which is cumbersome just to, for example, copy-paste something out. On the other hand everybody can see source (download it) if they have `WIKI_VIEW` privilege what is again something which is maybe not always preferred.

Similar can be also said about history.",Mitar
unscheduled Release,9584,Binary files fail to download over SSL using Internet Explorer (IE),general,0.12-stable,defect,normal,,new,2010-08-24T17:45:21+02:00,2010-09-23T15:22:27+02:00,"When trying to download a binary file from my svn repo through trac I get the following error in Internet Explorer 8: 

{{{
Unable to download <filename> from <host>.

Unable to open this Internet site. The requested site is either unavailable or cannot be found.
Please try again later.
}}}

The file downloads fine in Firefox and worked fine when I was using trac 0.11.

I am using Apache 2.2.3 over SSL with trac 0.12.

The response headers being sent by the server are:


{{{
Cache-Control: no-cache
Date: Tue, 24 Aug 2010 15:20:16 GMT
Expires: Fri, 01 Jan 1999 00:00:00 GMT
Pragma: no-cache
Content-Length: 3017999
Content-Type: application/zip; charset=iso-8859-15
Last-Modified: Tue, 17 Aug 2010 16:18:16 GMT
Content-Disposition: attachment
Server: Apache/2.2.3 (CentOS)
Connection: close
}}}

",anonymous
unscheduled Release,9579,sudo-like behavior for users,general,,enhancement,normal,,new,2010-08-20T23:14:03+02:00,2015-05-26T20:55:39+02:00,"provide admins a way to specify and allow normal users to escalate privileges to perform some set of tasks normally not allowed to them without having to change users.  our use case calls for users to be able to perform a majority of tasks, and we would like to prevent them from accidentally blowing everything away.  currently they have to switch accounts to do this, and its somewhat awkward.

this behavior would imitate the behavior of sudo to some degree.

management through groups (similar to wheel) would be great.",brad.alldredge@…
unscheduled Release,9505,Missing feature from ticket query module: color tickets based on contents of field,ticket system,,enhancement,normal,,new,2010-07-16T18:08:16+02:00,2015-06-11T20:58:31+02:00,"'''Note: The report module is being phased out in its current form because it seriously limits the ability of the Trac team to make adjustments to the underlying database schema. We believe that the query module is a good replacement that provides more flexibility and better usability. While there are certain reports that cannot yet be handled by the query module, we intend to further enhance it so that at some point the reports module can be completely removed. This also means that there will be no major enhancements to the report module anymore.'''

I think that a missing feature is the ability to color tickets based on values. For example, you can color tickets red that have the priority of ""blocker"".

If this already exists, could you please provide some documentation on how to accomplish this query?",aaronaddleman@…
unscheduled Release,9495,CommitTicketUpdater - git and replayed commits,ticket system,0.12dev,enhancement,normal,,new,2010-07-11T20:33:36+02:00,2014-10-13T23:46:13+02:00,"I do all my development over two branches, a stable one and an experimental one, which I merge periodically. So, each time I merge `stable` into `experimental`, commits from `stable` are again passed on to the ticket updater. So, sometimes this ends up producing duplicate comments and the ticket being closed twice...

My opinion is that could be an option that would somehow trigger the detection of duplicate commits and ignore them. I'm not very sure how to do this, if I should check if there's already a comment with the given commit sha1 associated with the ticket (kind of hacky), or checking the past repository history (ignoring the last changeset) for the commit (not sure how fast it will be).

I would be willing to produce a patch for that, if you believe this is something worth investing time on. Otherwise, I can just try changing a bit my commit hook.
However, I believe that this will be a problem with most distributed VCs, so...",pferreir
unscheduled Release,9463,Unable to edit components with slash or backslash,admin/web,0.12,defect,minor,,new,2010-06-25T14:29:14+02:00,2012-04-17T13:54:29+02:00,"Components that are created with slashes or backslashes in the name are not editable via the admin web interface.

When trying to edit a component with backslash I get ""(404) Not Found"" error for the URL ''.../admin/ticket/components/Test \ Component''

When trying to edit a component with slash I get a ""Trac Error"" with ""Component Test/ Component does not exist."" for the URL ''.../admin/ticket/components/Test / Component'' (note that a whitespace is missing between ""Test"" and ""/"" in the error report), and all styles are stripped from the result page.

Trying to modify the URL to ''.../admin/ticket/components/Test %2F Component'' results a 404 error, as in the backslash case.

I have set the severity to minor because I can still use the admin console.",Itamar Ostricher
unscheduled Release,9448,Copy link to wiki page or attachment in TracLinks format,general,,enhancement,normal,,new,2010-06-18T13:54:30+02:00,2012-12-09T15:33:08+01:00,"Ability to copy link to wiki page or attachment (from this page or attachment) For example, I am on http://trac.edgewall.org/wiki/CookBook/PluginL10N and I want to copy formatted link: ''!wiki:""CookBook/PluginL10N""'' (may be service button ""Copy link"" on navbar). Or from attachment edit page copy formatted link: ''!attachment:""file.zip:wiki:CookBook/PluginL10N""''.
It will be usefull for long hierarchical names of wiki pages.",arkinform
unscheduled Release,9399,Specify tablespace when connecting to postgresql,general,,defect,normal,,new,2010-06-04T00:23:09+02:00,2015-03-25T14:42:59+01:00,"In our postgres setup we have multiple tablespaces. Trac should be using its own, but the default is incorrect. There should be a way to specify the default tablespace in the connection settings, like we can specify schema. This is a nasty problem when plugins attempt to create tables, or when the DB needs to be upgraded. ",chmullig@…
unscheduled Release,9385,line-referencing wiki links,wiki system,,enhancement,normal,,new,2010-05-28T17:37:02+02:00,2010-05-30T12:23:42+02:00,"Would be nice to have an ability to build a link like this:

{{{
wiki:MyWikiPage@123:10-20,100,103#L99
}}}

The same behavior as with source code. Trac should highlight the lines in wiki pages.",team@…
unscheduled Release,9383,Integrate LXR into source code view,rendering,,enhancement,normal,,new,2010-05-28T14:29:36+02:00,2011-11-13T04:03:35+01:00,"This is not the same cross reference enhancement request as those related to the wiki and issues.  The idea is to present users with their code in a way they can navigate it without going through the source tree.

Please see (http://sourceforge.net/projects/lxr/) or a branch thereof (http://lxr.linux.no/+trees) for what I am talking about.

Thanks!",vladimir dot giszpenc _AT_ gmail period com
unscheduled Release,9379,Links to timeline are used even if the user does not have permission to view timeline,timeline,,defect,normal,,new,2010-05-27T09:42:50+02:00,2010-05-27T10:37:41+02:00,"Dates formatted with `dateinfo()`, such as the wiki history view, link to the timeline even if the user does not have the permission TIMELINE_VIEW. I suggest to add a test for this permission in either `get_timeline_link()` or `post_process_request()` in `timeline/web_ui.py`.",hakon.enger@…
unscheduled Release,9355,"authzpolicy FineGrainedPermissions: configuration file order matters, but more/less specific patterns don't",web frontend,0.11.6,defect,normal,,new,2010-05-19T22:28:42+02:00,2014-07-31T15:41:56+02:00,"When using FineGrainedPermissions and authzpolicy, we had the following configuration:
{{{
@group = user

[wiki:Page*] # the page and all subpages
@group = WIKI_VIEW

[wiki:Page/SpecificSubpage] # a specific subpage
@group = WIKI_VIEW, WIKI_MODIFY
}}}

The intention was that the given user group should be allowed to edit the specific subpage, but only view the `Page` and its other subpages.

However, the user was not able to edit `Page/SpecificSubpage`.

Reversing the order of both entries helps.

Although the Subversion authz documentation says that ""the most specific path always matches first"", Trac's implementation of authz apparently takes the first pattern that matches.",ch.lange@…
unscheduled Release,9289,Permissions for custom ticket fields,ticket system,0.11.4,enhancement,normal,,new,2010-05-04T12:17:24+02:00,2017-02-05T08:55:12+01:00,"I would like to request a feature to be able to specify permissions for custom ticket fields. So that for a defined custom field you would be able to define users which can edit it on ticket opening, edit it later and also see it (or not) altogether.

This is very hard to do properly with a plugin as it requires finding out in `post_process_request` phase where all field has been displayed and removing that (ticket view, RSS, alternative views, ticket notifications, ticket queries, searching tickets...). It would be much easier if Trac would simply remove it from a list of fields in the first place if user would not have access to it (in a given ticket state).",Mitar
unscheduled Release,9255,Links from reports do not support dynamic variables,report system,0.11.7,defect,normal,,new,2010-04-21T17:38:51+02:00,2010-09-30T17:47:32+02:00,"Using the following SQL report, the links generated are not correct.  I realize that this specific report may serve no purpose once I upgrade to 0.12; it is given as a simple example to demonstrate the issue.
{{{
#!sql
SELECT DISTINCT
    value AS customer,
    '15?CUSTOMER=' || value AS report,
    'report' AS _realm,
    '15?CUSTOMER=' || value AS id
FROM ticket_custom
WHERE
    name = 'customer'
ORDER BY
    customer
}}}
This report tries to use both the 'report' as a column name (a feature that does not appear to be documented) and the 'report' realm feature of the SQL report system.  Both give the same results.

Example:  If the resulting report link was for `{15?CUSTOMER=Acme}` the resulting link points to `http://trac-host-base/report/15`'''`%3F`'''`CUSTOMER`'''`%3D`'''`Acme` instead of `http://trac-host-base/report/15`'''`?`'''`CUSTOMER`'''`=`'''`Acme`

",mpotter@…
unscheduled Release,9208,Support for SVN repository on a UNC path on Windows,version control,0.11,defect,normal,,new,2010-04-08T17:29:55+02:00,2021-07-06T11:07:32+02:00,"While setting up a Trac installation a year ago, I ran into a problem where my SVN repository was stored on a UNC accessible path on a Windows-based Apache system. In other words, I was running Trac on Apache for Windows, with the python module for Apache. Our SVN repository was stored on a separate network drive and only accessible via a UNC path.

At the time I was using Trac 0.11.x (not sure of the revision, and I no longer operate that system).

The problem is due to SubversionRepository `__init__` not handling the UNC slashes properly. When the path is fixed by converting the '\'\' to '\' the UNC slashes were being transformed to just '\' instead of staying '\'\'. I corrected this by adding splitunc() call before the replace and only performing the replace on the non-UNC portion of the path.

I've attached a diff patch making the similar change to the latest version from the 0.12 trunk, as well as the original modified version from my 0.11 installation.",morphiend@…
unscheduled Release,9164,Second categorie for grouping tickets,report system,0.12dev,enhancement,normal,,new,2010-03-23T17:00:40+01:00,2010-09-10T14:47:51+02:00,"New Version Trac 0.12 has a Improved ticket query system. It would be good to have a second catetogorie for grouping tickets also.

For example: Grouping for

 - Milestone
  - status",didley@…
unscheduled Release,9082,Error sending email when smtp_default_domain and/or smtp_from contain unicode,notification,0.12dev,defect,normal,,new,2010-02-24T17:18:59+01:00,2015-03-16T16:53:47+01:00,"From [comment:3:ticket:9074 #9047 comment 3]:

I noticed I still had smtp_default_domain and smtp_from set to the ""xn--..."" transcriptions of the domain name. Using Unicode chars in there reveals another error message, ""Warnung: The change has been saved, but an error occurred while sending notifications: execv() arg 2 must contain only strings"".

Raphael,  can you post the full traceback for this message?  Additionally, can you give details about your notification setup?  Are you using an SMTP server, or sendmail?",John Hampton
unscheduled Release,9039,Search within changeset contents(diffs),search system,0.12dev,enhancement,normal,,new,2010-02-07T01:49:19+01:00,2014-07-29T17:02:28+02:00,"I find the labeling of the checkbox '''Changesets''' on the search page is a bit misleading. One might expect the search to include the content of the changesets (text and/or property modifications of files from the version control system), whereas only the '''Revision Properties''' are searched (''Author'', ''Revision'', and ''Message'', as can be seen [source:/trunk/trac/versioncontrol/web_ui/changeset.py@9157:1104#L1093 here]).

Initially I thought it might be best to change the label from '''Changesets''' -> '''Revision logs''' for consistency with terminology used in Trac, namely: TracRevisionLog, however:
 * The term '''Revision logs''' might imply results would contain a link to the [/log RevisionLog] page, whereas a link to a changeset is returned in the search results.
 * `CHANGESET_VIEW` permission is required to obtain search results for this checkbox, as can be seen [source:trunk/trac/versioncontrol/web_ui/changeset.py@9157:1094,1113#L1093 here]
so this suggestions could be similarly confusing.

The best alternative I could come up with is to rename the checkbox to  '''Revision properties''', which is a term consistently used to refer to Subversion revision properties (i.e. revision meta-data). However, a [/search?q=""revision+properties""&noquickjump=1&wiki=on search] shows that this term is not used anywhere in the Trac documentation to refer to Changelog properties, so it might be inconsistent with terminology used in Trac.  It also appears that Trac is leaning towards supporting Mercurial and other vc backends, and I'm not sure what terminology is typically used with those VC systems.

Another alternative would be to label the checkbox '''Changeset properties'''. The downside I see with both '''Revision properties''' and '''Changeset properties''' is that the terms are a bit long and might disrupt the nice layout of the [/search Search page].

I hope I am not making too big of a deal about a small thing, but little things like this that need clarification seem to eat up a lot of my time answering questions from developers, and reduce user efficiency using the system.

Ultimately, this comes down to either a [source:trunk/trac/versioncontrol/web_ui/changeset.py?rev=9157&marks=1095#L1093 one-line change] or closing this as ''won't fix'', so I set it for milestone:0.12.",Ryan J Ollos
unscheduled Release,9018,View permission description in popup,admin/web,,enhancement,normal,,new,2010-02-01T15:29:34+01:00,2014-07-31T15:41:42+02:00,Permissions lack descriptions in Admin panel. The could be added as tooltip when mouse is hovered over permission token.,anatoly techtonik <techtonik@…>
unscheduled Release,8851,RSS of Trac projects for Live Bookmark,web frontend,none,enhancement,normal,,new,2009-11-25T00:30:49+01:00,2017-04-16T17:20:17+02:00,"We are using static RSS ""feeds"" to provide a centrally-managed bookmark lists, which can then be used in Firefox as a Live Bookmark. 

One of the bookmark lists I am maintaining is my list of Trac sites. 

It would be nice if this list could be automatically generated. I could just generate it myself with a few lines of shell script, but the idea seemed like one that would be generally useful.

Since the ""Available Projects"" page is already generating an HTML list, it seems like it would be fairly easy to also generate an RSS XML list (perhaps even with the appropriate header in the HTML so browsers will know to look for it).

Thanks!",Wil Cooley <wcooley@…>
unscheduled Release,8736,Boundary of background does not encompass intended fields.,ticket system,none,defect,minor,,new,2009-10-13T13:57:16+02:00,2010-09-10T14:47:51+02:00,Fields like the summary or component field are not encompassed by the white background.  See attached image.,Miruba
unscheduled Release,8702,Different workflows when viewing own tickets/others tickets,ticket system,0.11.5,enhancement,normal,,new,2009-09-29T22:49:10+02:00,2010-07-04T00:04:49+02:00,"I want to have an ""accept and resolve"" workflow for accepting someone else's ticket and closing it in one step, but it's extraneous when you're viewing your own tickets. It would be nice if I could create a workflow that would only show up when you're viewing your own ticket, or only show up if you're viewing someone else's ticket. Maybe something like `workflow_name.owner = ( self | others | any )` (of course `any` being the default, the current behavior).",adrian.price@…
unscheduled Release,8653,[PATCH] Don't allow anonymous users to modify some fields,ticket system,0.11.5,enhancement,normal,,new,2009-09-09T19:15:47+02:00,2022-11-08T12:06:28+01:00,"This patch lets you set a comma separated list of fields that won't be visible at /newticket time to users without TICKET_MODIFY status. 

Included is a bonus exception check we received when there were non-numeric ticket numbers. 

To use:  in trac.ini, we have this line:
{{{
[ticket]
not_anon_fields=load,priority,keywords,revw,owner,cc,xref,weeks,milestone
}}}

These are fields we do NOT want 'anonymous' users to modify when creating a ticket.  (For example, revw is used to mark a ticket with the name of a reviewer.)

Note that there is a default list of fields hidden as well with this patch. The default could be made empty.
",Steven R. Loomis <srl@…>
unscheduled Release,8611,More flexible configuration of browser quickjump facility,version control/browser,0.11.5,enhancement,normal,,new,2009-08-28T00:35:49+02:00,2014-07-29T17:02:12+02:00,"This ticket summarizes the discussion starting in comment:3:ticket:4223.

The proposed enhancement is to create a `[browser-quickjump]` section in ''trac.ini'', which will be used to configure the quickjump facility in TracBrowser.  A screen capture of the current quickjump facility on a Trac instance with a Subversion repository is shown below.

[[Image(ticket:4223:QuickjumpFacility.png)]]

In the case of a Subversion backend, the browser quickjump facility is currently configured in TracIni#svn-section.  I'm told that no configuration is required for a Mercurial back-end, and I'm not sure how other repositories might be configured.

The current limitations are:
 * It is not possible to define your own group headings.  For an svn back-end the group headings are `branches` and `tags`.
 * It is not possible to have a list of entries with no group heading.

The proposal is to define a new section:

{{{
[browser-quickjump]
Common = /Common/*
Utilities = /Utilities/*
Test and Measurement = /Test and Measurement/*

Product =  /Presto/Product/Software/*,
           /Presto/Product/Docs/Released/*

Prototypes = /Presto/Prototype/Verasonics Matlab Simulator/*,
             /Presto/Prototype/PSI Development/*

R&D = /Presto/R&D/Software/*
}}}

The text to the left of the equals sign would define a section heading for the corresponding list of paths.

Comments and other ideas are welcome and appreciated.",Ryan J Ollos
unscheduled Release,8599,possibility to send complete tickets per mail (full history and attachments included),notification,none,enhancement,normal,,new,2009-08-25T16:57:22+02:00,2015-05-26T20:55:39+02:00," 1. sometimes it is usefull to send the complete ticket history instead of the difference to the last version. it would be really helpful if this would be configurable.
 2. a second nice feature would be to send the attachments with the notification mails.
 3. it would be really nice if i could download the ticket as zip, gz or tar file or whatever. this file should include the whole history and all attachments.
 4. i would like to send the zip file (point 3) to a mail address directly with trac.
 5. point 3 and 4 should work with reports or custom query results to send a package of tickets to an external mail address.",achim@…
unscheduled Release,8567,BLOB column can't be used in PRIMARY KEY and maximum ROW size is 8052 on NDB engine,database backend,0.11.5,defect,minor,,new,2009-08-13T14:45:08+02:00,2014-09-08T19:41:42+02:00,"I success to work with MySQL cluster on Windows(x64).
But some issues remain.

 1. With NDB engine, TEXT(BLOB) column cannot be used as PRIMARY KEY. So such columns will be used as VARCHAR.
 1. Maximum ROW size for NDB engine is 8052. So, long wiki, tickets and etc are cut off by limit.


",anonymous
unscheduled Release,8504,Named Custom Queries,query system,0.11.5,enhancement,minor,,new,2009-07-23T08:42:23+02:00,2018-10-16T12:59:07+02:00,"When running a custom query, customizing it further by adding filters, grouping, etc - the query is still a ""Custom Query"".

What I'd like is to have ""named"" or ""saved"" queries. Just saving a query is easy, you just add a link to a wiki page. But the headline still says ""Custom Query"" rather some real, readable, title.

",noamtm@…
unscheduled Release,8494,tracd doesn't reload file on import error,general,0.11.5,defect,normal,,new,2009-07-20T19:28:01+02:00,2010-12-07T19:17:59+01:00,"Tracd doesn't reload a file (from a plugin) that had an import error. (I started tracd with the parameter ""-r"") This was very confusing for me as I overlooked this error message:

{{{
19:19:27 Trac[loader] ERROR: Skipping ""SubscriberListPlugin = subscriberlist.web_ui"": (can't import ""ImportError: cannot import name StreamBuffer2"")
}}}

Anyway, it would be nice if tracd would reload such files.",Sebastian Krysmanski <sebastian@…>
unscheduled Release,8477,Support SVN 1.5 merge tracking in Annotate view,version control/browser,none,enhancement,normal,,new,2009-07-13T23:51:57+02:00,2010-07-01T11:54:48+02:00,"Starting with Subversion 1.5, the ""svn annotate"" command accepts a new option -g [--use-merge-history].
When used, the commands shows, for each line, it's original author, instead of the default behavior of showing the author of the merge operation.

This is possible thanks to the merge tracking capabilities introduced in SVN 1.5, and it is useful in projects which make intensive branching, because otherwise annotate info is progressively lost after successive merges.

Ideally Trac would support this too.

To enable the feature, a new checkbox in the annotate view would be needed, named something like ""Include merged revisions"" (I took that from Subclipse).

Finally, ""svn annotate"" also shows the letter ""G"" prior to each line which has been merged. It would be nice to find some equivalent.

",Javier Sanz <jsceballos@…>
unscheduled Release,8354,Report Query with dates,report system,none,enhancement,major,,new,2009-06-05T19:55:22+02:00,2014-04-28T20:45:49+02:00,"Hello,
Based on the reports wiki page, trac wants to disable the reports in future version? For now the only way to save a query out of the box is via report. Below I will copy paste some reports that would be nice to include in the reports wiki as a custom advenced query examples. It took me over a week to get to this point. If what I supply here you can start doing queries in few minutes.

Some ideas taken from ticket #2288

Most of the problems come with knowing the fields which these examples show, and manipulating the date and date functions for particular database api. Below you will find examples on sqlite and mysql date functions and how to convert from timestamp.

sqlite:

recently closed
{{{
select id, summary, component, milestone, owner, 
  (select max(tc.time) from ticket_change tc
     where t.id = tc.ticket and field = 'status' and newvalue = 'closed')
   as closetime,
  datetime((select max(tc.time) from ticket_change tc
     where t.id = tc.ticket and field = 'status' and newvalue = 'closed'), 
            'unixepoch', 'localtime') as closedate
  from ticket t
where status = 'closed'  and closetime > strftime('%s',datetime(""now"",""-30 days""))+0
 order by closetime
}}}


Mysql:
Open ticket count by milestone. This is somewhat management report to see how many tickets are coming in daily.

{{{
SELECT version as __group__,DATE(FROM_UNIXTIME(time)) as Created, milestone, count(*) AS 'Count of Tickets'
  FROM ticket
  WHERE time > UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)
GROUP BY version,DATE(FROM_UNIXTIME(time)),(milestone IS NULL), milestone
ORDER BY version,DATE(FROM_UNIXTIME(time)) DESC ,(milestone IS NULL), milestone
}}}

sqlite version
{{{
SELECT version __group__ ,date(time,'unixepoch', 'localtime') as Created,milestone, count(*) AS 'Count of Tickets'
  FROM ticket
  WHERE time > strftime('%s',datetime(""now"",""-7 days""))+0
GROUP BY version,date(time,'unixepoch', 'localtime'),(milestone IS NULL), milestone
ORDER BY version,date(time,'unixepoch', 'localtime') DESC ,(milestone IS NULL), milestone
}}}

I'll try to attach the remaining reports that I still need to do. IF you have any popular reports please paste them in here.

What I need:
1. Closed tickets count by day and milestone,
2. Open tickets count by milestone
3. Active ticket count by user
4. Closed ticket count by user who closed it.

If you have any of these done, or something similar please past it in.

Thanks,
Lucas",szybalski@…
unscheduled Release,8332,trac-admin permission masks,admin/console,none,enhancement,normal,,new,2009-05-29T11:36:12+02:00,2016-07-10T21:43:09+02:00,"It would be convenient to use masks in trac-admin permission command.
{{{
permission list [user]
        -- List permission rules

permission add <user> <action> [action] [...]
        -- Add a new permission rule

permission remove <user> <action> [action] [...]
        -- Remove permission rule
}}}

i.e.
{{{
permission list [user] [-m mask]
        -- List permission rules

$ trac-admin list -m *_VIEW
User    Action
----------------------
user1   MILESTONE_VIEW
user1   REPORT_VIEW
user2   ROADMAP_VIEW


Available actions:
  BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW,
...
}}}

{{{
$ trac-admin trac permission add user1 *_VIEW
}}}
",anatoly techtonik <techtonik@…>
unscheduled Release,8294,[PATCH] Add GnuPG encryption to email notifications,notification,0.11.3,enhancement,normal,,new,2009-05-15T18:33:35+02:00,2015-05-26T20:55:39+02:00,"Here's a modification to add [http://www.gnupg.org/ GnuPG] encryption to outgoing notifications in a mod_poython setup. It's my first python hack, so its pretty crude. There's no error checking, and constants appear magically. Here we go:

Add an import:

{{{
from subprocess import *
}}}

In the init section of class !NotifyEmail replace lines 192-196 of the original source with:

{{{
        # ..and the gpg key if the user has one
        self.email_map = {}
        emails = []
        for username, name, email in self.env.get_known_users(self.db):
            if email:
                self.email_map[username] = email
                emails.append(email)
        # ..and the gpg key if the user has one
        self.gpg_map = {}
        output = Popen([""c:\Program Files\GNU\GnuPG\gpg.exe"", ""--homedir"",
                ""C:\data\gpg"", ""--batch"", ""--with-colons"", ""--list-keys""],
                stdout=PIPE).communicate()[0]
        lines = re.split(""\n"", output)
        skip = 0
        gpgkeyid = """"
        for line in lines:
            data = re.split(':', line)
            if data[0] == ""pub"":
                gpgkeyid = data[4]
                skip = 0
            if gpgkeyid and skip == 0 and data[0] == ""uid"":
                temp = data[9].rsplit('<', 1)
                tmail = temp[1].rstrip('>')
                for email in emails:
                    if email == tmail:
                        self.gpg_map[email] = gpgkeyid
                        skip = 1
                        break
}}}

In the send method replace line 397 of the original source with:

{{{
        # lets see if we need to encrypt body to one or multiple recipients
        gpgkeys = [];
        for recipient in recipients:
            if recipient in self.gpg_map:
                temp = '-r ' + self.gpg_map[recipient]
                gpgkeys.append(temp)
        value = body
        if len(gpgkeys):
            args = [""c:\Program Files\GNU\GnuPG\gpg.exe"", ""--homedir"", ""C:\data\gpg"", '-e',
                                 '--batch', '--armor']
            args.extend(gpgkeys)
            proc = Popen(args, stdout=PIPE, stdin=PIPE)
            value = proc.communicate(body)[0]
        # msg = MIMEText(body, 'plain')
        msg = MIMEText(value, 'plain')
}}}

Now setup your public keys using ""--homedir c:\data\gpg --import"", assign ultimate trust to the keys. And that's that.
",richard@…
unscheduled Release,8163,Grouping owners,ticket system,none,enhancement,normal,,new,2009-03-26T12:18:11+01:00,2010-06-10T21:13:54+02:00,"If I set restrict_owner = 'true' in trac.ini, I can select from a list of people who have the proper permission to edit tickets as ""owner"". The drop down list itself is only alphabetically arranged, without any classifications. 
It would be good if there is a something to set the drop down list like the following example.
{{{
Group 1
- User A
- User D
Group 2
- User E
- User F
Group 3
- User B
- User C
- User G
- User H
}}}
",repeat <repeat@…>
unscheduled Release,7911,Optional validation for custom fields,ticket system,none,enhancement,normal,,new,2008-12-24T18:04:39+01:00,2010-07-03T23:09:21+02:00,"JQuery permits a nice environment to build custom/dynamic drop-down lists for custom fields in trac tickets; unfortunately validation for the ticket fails as the dynamic value for a field with an option list cannot be found in the configuration file.

At least two solutions are possible: 
 1. Add an option for turning off validation in comparing the value against the option list, and
 1. Allow for dynamic validation.

I have implemented the solution for #1 (attached).",trac@…
unscheduled Release,7895,Issue: Custom Query Shows All Milestones Closed and Active,general,none,enhancement,normal,,new,2008-12-17T22:16:56+01:00,2010-12-27T23:13:58+01:00,"I realize this maybe intentional but it occured to me that when I do a custom query and search by milestone, EVERY milestone is shown in the dropdown.  I understand it was meant to be exhaustive but the list is growing and growing after each successive release.

Would be great to only show current/active milestones in the dropdown as default but also, if needed, through a checkbox be able to show all milestones.",minhthel@…
unscheduled Release,7855,Support CSS stylesheets in RSS,general,0.10,enhancement,normal,,new,2008-12-03T01:21:17+01:00,2010-11-26T15:34:25+01:00,"When outputting RSS, Trac doesn't produce xml-stylesheet PIs. (See http://www.w3.org/Style/styling-XML for details.)

If it did, the appearance of its RSS feeds would match more closely the appearance of the website, which I think would be an improvement.",ben@…
unscheduled Release,7818,"Removing items from Admin panel (Users, Milestones, etc) is possible without warning",admin/web,0.11.1,enhancement,normal,,new,2008-11-14T09:09:20+01:00,2010-07-03T22:42:31+02:00,"Deleting users and other important data should not be possible without the nagging ""Are you sure?"" - This is some kind of industry standard, and should prevent accidental deletions. Idea would be to either display a list of items to be removed in a html popup or to go to a second page where only those items marked for deletion can be confirmed.
",Florian Leeber <florian.leeber@…>
unscheduled Release,7784,[patch] Configurable accesskeys,general,0.12dev,enhancement,normal,,new,2008-11-05T09:29:20+01:00,2015-12-19T16:29:11+01:00,"I prepared patch to make `accesskey` configurable in trac.ini

{{{
[mainnav]
browser.accesskey = b

[metanav]
help.accesskey = h
}}}",trac-dev@…
unscheduled Release,7739,trac & memcached,general,,enhancement,normal,,new,2008-10-21T11:05:58+02:00,2017-04-11T23:22:05+02:00,"I think it will be useful to add [http://www.danga.com/memcached/ memcached] support to Trac to improve performance on high-load projects.



Note also that Trac 0.12 introduced some facilities to handle per-component caches, with proper invalidation semantic. Check TracDev/CacheManager.
",antonbatenev@…
unscheduled Release,7650,authz_policy.py - Support Trac groups,general,0.12dev,enhancement,normal,,new,2008-09-18T19:52:51+02:00,2017-03-23T00:21:47+01:00,"The plugin doesn't support Trac groups (under Admin/Permissions there is an option ""Add Subject to Group"") and it is a little strange that you need to define groups in a special file.

Therefore I made a ''patch'' against source:/trunk/sample-plugins/permissions/authz_policy.py@7457 that adds this functionality in a little ugly way. It could be done better, therefore this comment. You can obtain it on [http://gw.tnode.com/0149-TracDevelopment/].",gw.trac@…
unscheduled Release,7484,Icons do not display when using High Contrast mode,rendering,,defect,trivial,,new,2008-07-30T11:53:23+02:00,2014-08-02T08:40:43+02:00,"The images for styling (eg bold) do not display when windows is set to high contrast mode.

This is due to internet explorer ignoring background images when set to high contrast mode.
",anonymous
unscheduled Release,7342,Add filter parameters to milestone view,roadmap,0.10.4,enhancement,normal,,new,2008-06-17T12:13:23+02:00,2020-04-30T04:11:39+02:00,"Milestone view support only one milestone per page. Roadmap can display several milestones, but there is almost no control on order and scope of shown stats. The only option is to show completed milestones (show=all) or not.

I propose to extend ""show=all"" to allow queries like ""show=!^0.5"" or ""show=0.5|0.5.1"", but it can create a conflict if somebody defines milestone named ""all"".

It can be convenient to extend milestone view as well to allow URLs like /milestone/6.0|6.2|6.4

Attached is a simple patch to select several milestones in roadmap using piped /roadmap?milestone=6.0|6.2|6.4 syntax. No advanced filtering using ~= or !^=
",techtonik <techtonik@…>
unscheduled Release,7313,Search help output provided by macros,search system,0.11rc1,defect,major,,new,2008-06-07T16:19:20+02:00,2023-07-24T10:18:53+02:00,"Trac documentation is using more and more macros to produce documentation about commands, parameters, etc.

However, the Search engine is unable to evaluate these macros, which ends up in poor search results, as in many case, the most relevant page for a command, parameter search is only generated by macros.

This is a true issue as long as Trac documentation relies on wiki pages.

Maybe the best way to address this issue would be to cache wiki-rendered pages, see #1216.",Emmanuel Blot
unscheduled Release,7300,[PATCH] Support for ticket reassignment in trac-post-commit-hook,ticket system,,enhancement,normal,,new,2008-06-04T00:27:22+02:00,2010-07-19T09:34:30+02:00,"I extended [source:trunk/contrib/trac-post-commit-hook trac-post-commit-hook] to support reassignment in the form of:

reassign #1 to user
assign #1 user
",ian@…
unscheduled Release,7294,Escaped RSS Link,report system,0.11b1,defect,normal,,new,2008-06-02T20:55:22+02:00,2010-11-26T15:45:40+01:00,"In .10, I created a report that would have 1 line every time someone entered a new comment or made a change to the ticket.  In the where clause, I restricted it to ticket that were relevant to you because you were the owner, reporter, or the cc.  I accomplished that with this line:

{{{
id||'#'||oldvalue AS ticket,
}}}

I would then subscribe to the rss feed and be able to get comment updates on tickets relevant to me.  As of .11 the way the the <link> gets created in the rss feed and the report escapes the # so that I get the error:
{{{
No handler matched request to /ticket/1092#2
}}}

If you look in the url it appears as:
{{{
https://trac.usme-qcs.org/sis/ticket/1092%232
}}}

It's obviously escaping the # with %23.  Is there any way that I can either control the way that the links are created in the report and rss feed, or a way to disable escaping the # symbol?",raziel.jatier@…
unscheduled Release,7290,restrict_owner_force Option to populate user list,ticket system,,enhancement,normal,,new,2008-06-01T20:36:53+02:00,2010-07-02T23:18:04+02:00,"The restrict_owner setting changes the field to a dropdown list that has (1) TICKET_MODIFY rights and (2) logged in at least once.

In an environment where you add users - and want them to be assigned tickets - even if they have not logged in before can be useful. Maybe the following option can be added:

Something like Add restrict_owner_force = TRUE in ini file to populate the list with the TICKET_MODIFY rights, without having logged in. This way either the filtered and unfiltered lists can be made available depending on the environment requirements. I have need for both situations.",bill.meyer@…
unscheduled Release,7263,/trunk/contrib/trac-pre-commit-hook not stringent enough in supported_cmds,version control,0.10.4,defect,normal,,new,2008-05-23T02:44:21+02:00,2016-06-23T00:31:56+02:00,"There is a hole in the trac-pre-commit-hook which lets commands through and then they are not processed properly by trac-post-commit-hook.

For example:
""arefs #1234"" or ""ref #1234"" or ""refa #1234"" will all successfully get through the trac-pre-commit-hook.  When the trac-post-commit-hook runs it will now be able to identify these commands and link the svn commit to the trac ticket.",sbranden@…
unscheduled Release,7199,Colour/style individual cells in ticket report,report system,0.10.4,enhancement,normal,,new,2008-05-06T13:39:36+02:00,2014-08-18T08:19:08+02:00,"Trac reports allow you to apply a colour or style to each row of the results, but not to individual cells in the row.  It would be very helpful to allow different cells in the same row to be coloured differently.  Then we could have, eg, one set of background colours for the ""Priority"" field and another for the ""Status"" field.",Matt Young
unscheduled Release,7005,render svn properties as wiki text in new browser column,version control/browser,,enhancement,normal,,new,2008-03-14T10:20:11+01:00,2015-05-26T20:55:39+02:00,"Hi, a little patch we had for our internal trac here inspired me to this enhancement request. The patch currently works as follows:

It takes a configurable property (trac:comment in our case), runs it through the wiki->html engine part and then displays it in the source code browser view between the file/directory name and the actual contents of the browser view.

For the new javascript enhanced browser view, I would also put some kind of marker at all the files that have the said property set, so people can actually click in the view on it (as opposed to opening the treeview).",anonymous
unscheduled Release,6982,x509 with friendly name support,web frontend,,enhancement,normal,,new,2008-03-10T13:24:57+01:00,2014-07-31T15:42:10+02:00,"Below is a small patch for those using x509 support - e.g. an apache config as below to allow access based on x509 certs. The reason for doing this is that otherwise the strings shown become very long and wieldy.

One item of note - in a lot of sites the x509 contains the email address; in a lot of other non x509 (e.g. htpasswd sites) the userid can be combined ith some FQDN to become the user their valid email address. Hence it may be useful to at some point add an extra field, email to the current interface.

Note that this is NOT the same as using 

   SSLUserName SSL_CLIENT_S_DN_CN 

(See http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslusername) in your httpd.conf - as with this feature we try to preserve all captured information (i.e. full DN in svn, so we can do XS controls and do this over many years - where the CN may well be not unique).

See test/example config below.

Dw.",dirkx@…
unscheduled Release,6824,paragraph-links should wait for images to load,wiki system,,enhancement,normal,,new,2008-02-13T17:37:54+01:00,2010-06-24T18:47:12+02:00,"I noticed, if i have a long wikipage containing many paragraphs and several images (through imagemacro), if i then follow a paragraph-link (eg. !http://192.168.0.1/trac/wiki/WikiPage#paragraph) it first jumps to the #paragraph, and then loads the images. Since the images takes longer time to load, the screen will no longer be positioned at the intended paragraph. They are offset by the height of the images after they load. This will of course only occur if the images reside above the paragraph you're following a link to. If you hit back & forward in the browser again, the offset will be smaller since the images are cached, but still a small offset just enough to not see the paragraph.

So my suggestion is to have it jump to the paragraph after the page finished loading, or atleast after the images are loaded.
I have been a trac user for a while, and this ""bug"" has been in all versions i've worked with, and is still in 0.11dev.

Thank's!",simon[at]solida[dot]se
unscheduled Release,6820,change display for duplicate tickets,ticket system,,enhancement,minor,,new,2008-02-12T23:54:26+01:00,2015-05-26T20:55:39+02:00,"When a ticket is marked as a duplicate the ticket link is displayed with a strike-through character in a wiki page or a search. This is confusing, since it indicates to the reader, that the issue is solved, which must not be the case. The ticket is  simply marked as closed, but the request is still open.

Is it possible to use e.g. a double strike through character?

A much better solution would be the build in support for specifying the duplicate ticket, as suggested in #1395. Then the display could change depending on the status of the referenced duplicate ticket. ",trac@…
unscheduled Release,6800,A plugin can not extend HTTP headers of the main trac site if it is a private trac.,wiki system,0.11b1,defect,normal,,new,2008-02-10T19:14:00+01:00,2010-06-24T18:20:56+02:00,"I'm trying to make yahoo.com OpenID provider not complain about ""fraudulent"" sites by implementing OpenID 2.0 XRDS discovery to the th:AuthOpenIdPlugin copy @ http://ideelabor.ee/opensource/log/python-components/authopenidplugin 

Discovery requires the 'base URL' of the trac instance (example.com/trac/project1) to have a X-XRDS-Location header pointing to a XML file. I got over the problem of 'tapping' into wiki module by calling irectly the process_request method of WikiModule after I've added the extra header in the tapping request match: http://ideelabor.ee/opensource/changeset/154/python-components/authopenidplugin

A quick test with a public wiki (anonymous has WIKI_VIEW rights) and yahoo.com had success, but trying another project where anonymous users have zero rights, the wiki system raises a permissions error with req.send_error which clears all outgoing headers set before via this hack.

Question: How can I make a plugin emit an extra header on the main page of the trac instance?

Maybe req.send_error should not clear experimental (X-*) headers?



",martin@…
unscheduled Release,6744,Wiki page and milestone deletes aren't shown in time line,timeline,0.10.2,defect,normal,,new,2008-01-31T17:07:51+01:00,2022-10-19T01:05:11+02:00,"Deleting these does not generate a time-line entry? 

It seems a bit unintuitive.",macke@…
unscheduled Release,6642,InterTracText  (or: Why not provide a web interface for InterTrac configuration),general,0.11b1,enhancement,normal,,new,2008-01-13T12:50:26+01:00,2017-04-16T17:12:46+02:00,"InterWiki is configured in a very wikish way: by editting a dedicated wiki page - InterWikiText. It would be nice to apply that approach to InterTrac configuration as well and have a dedicated InterTracText page for that. (I'd prefer this approach over having another admin page, though the latter would be acceptable as well.)",Zoran Isailovski
unscheduled Release,6615,svn:externals not correctly displayed in browser,version control/browser,0.11b1,defect,minor,,new,2008-01-09T10:33:24+01:00,2015-05-26T20:55:39+02:00,"Using Trac 0.11b1, svn:externals can be followed using the browser.[[BR]]

However, imagine a directory which only contains links to externals modules (this could be a common use case, putting all external stuff in one place). Then when clicking on the left arrow to expand this folder, the ""jquery Loading..."" sends back an ''(empty)'' directory ! This is '''''correct from a subversion point of view''''' but a bit '''''strange from a user point of view''''' (which is not supposed to know svn internals) and we have to click on the directory name to get the svn:external link displayed.[[BR]]

The proposal should be : '''creating a particular directory entry icon which could represent an external link'''. Then, this link would be displayed as a special directory entry and the user would be able to follow this link without being disturbed by an ''empty'' dir content.[[BR]]
[[BR]]

I put here another thougth as it is linked to my previous description : A great improvement of the svn:externals functionality would be to follow the link within the trac browser if the link target is related to the same repos. Indeed, consider this situation :
[[BR]]
 * Repos is stored here http://myserver/svn/repos
 * The source directoy is http://myserver/svn/repos/project1/
 * the target directory is http://myserver/svn/repos/modules/module1
The svn:externals property of http://myserver/svn/repos/project1/ is set to ""module1 http://myserver/svn/repos/modules/module1"" [[BR]]
Then when following the link in the trac browser http://myserver/trac/browser/project1/module1 , we are redirected to http://myserver/svn/repos/modules/module1 which is correct but which leaves trac pages. As the link is ""external"" from a svn point of view but ""internal"" from a trac point of view, the address could be transformed on the fly to http://myserver/trac/browser/modules/module1



",anonymous
unscheduled Release,6599,redirect in trac browser after file got moved in svn,version control,,enhancement,normal,,new,2008-01-07T13:53:52+01:00,2015-05-26T20:55:39+02:00,"it would be nice if trac would make a redirect after a file got moved in svn. in this case the ""source:"" links stay valid and could be adjusted afterwards.

a second possibility would be to have a function which adjusts the source wiki links to the new location.
",ThurnerRupert
unscheduled Release,6548,different types of ticket need different workflows,ticket system,0.11b1,enhancement,normal,,new,2007-12-23T02:02:06+01:00,2017-05-17T00:53:34+02:00,"Actions should be selectable based on the ticket type (different Workflows for different tickets.

This is becoming a frequent request, with clear usecases.  The closest the current implementation will allow is to have a plugin provide a `triage` action that sets the next state based on the ticket type, so a `new` ticket would move to `new_task`, `new_defect`, etc., and the workflow graph would separate at that point.",anonymous
unscheduled Release,6474,svn:externals displayed as folder in listing,version control/browser,,enhancement,minor,,new,2007-12-11T02:42:51+01:00,2015-05-26T20:55:39+02:00,"It would be nice if it was an option to enable svn:externals (& possibly other version control systems with the same feature) to be displayed inline in the folder/file listing.

Currently the svn:externals is listed at the bottom of the listing for the folder it's applied to. This link can be controlled using the TracIni settings to point directly to the correct repository.

The listing of the folder the external is linked to does not show any reference to the external. This is confusing as a checkout will copy the external into the WC, but there is no visual representation of this in Trac. A folder with a link icon (maybe) and information about the external (& link if configured correctly) would be nice.

Cameron",cjunge@…
unscheduled Release,6411,Use mime type switching,rendering,0.10.4,enhancement,normal,,new,2007-11-29T03:38:40+01:00,2015-05-26T20:55:39+02:00,"The Doctype in your code identifies the document as XHTML 1.1 while the mime type is text/html. It is '''""STRONGLY RECOMMENDED""''' by the W3C that XHTML document are served with the application/xhtml+xml mime type. I realize that doing this would break compliance with Internet Explorer, but this can be solved with mime type switching [http://www.workingwith.me.uk/articles/scripting/mimetypes (php example not by me)]. Also if the code is not compliant it will not show on XHTML compliant browsers. If the code is not valid, then you should not use the XHTML doctype anyway. This means that everything that is user input must be checked for valid code. Thanks for your time.",anonymous
unscheduled Release,6302,Retrieve search results in RSS format,search system,0.10-stable,enhancement,normal,,new,2007-11-05T10:16:24+01:00,2015-05-26T20:55:39+02:00,"I didnt found this feature in the current version.[[BR]]
I would be nice to be able to get search result in RSS format.[[BR]]
Could you please implement it?",anonymous
unscheduled Release,6235,[PATCH] Adding support for Ingres as a backend DB,database backend,devel,enhancement,normal,,new,2007-10-23T15:58:24+02:00,2015-12-19T15:51:21+01:00,This enhancement adds Ingres as a supported backend DB for Trac. The patch works against revision 6083. The only known issue is that there is no unicode/utf-8 support which will be addressed in the future.,AlexTrofast <alex.trofast@…>
unscheduled Release,6135,Enhancement for trac-post-commit-hook.py for Enterprise Workflow,general,,enhancement,normal,,new,2007-10-05T13:55:22+02:00,2017-04-04T19:14:21+02:00,Enhancement for trac-post-commit-hook.py for Trac Enterprice Workflow.,vinogradniy@…
unscheduled Release,6062,MediaWiki-style alternative wiki syntax,wiki system,,enhancement,normal,,new,2007-09-19T21:58:00+02:00,2020-12-21T04:03:51+01:00,"There are compelling reasons to support mediawiki format completely in the core trac release.  
 1. jamwiki is cloning mediawiki in Java and keeping the format identical so Java-based projects can easily integrate a full wiki.
 2. drupal_wiki is likewise supporting mediawiki format as its native format
 3. mediawiki is very widely used in intranets already including very large ones like the US inteligence services' ""Intellipedia""
 4. mediawiki is also widely used for documentation and requirements engineering by open source and share-alike (including free software and open content) projects - most of the target market for trac has to support mediawiki anyway, and in some cases has a strong motive to update large public wikis running on mediawiki
 5. of hundreds of millions of page reads from wikis every year, the overwhelming majority of those are from wikis using mediawiki format.  The public interest in supporting, teaching and implementing this format is now immense and unstoppable, even if a markedly ""better"" wiki format existed, it would not overcome this data compatibility problem. 
 6. Most importantly, almost all technical and requirements domain concepts that might need to be referred in specifications already have names in most widely used languages thanks to Wikipedia.  Working out the most neutral and least controversial names for tens of thousands of scientific, technological, business and other concepts has been the greatest contribution of the Wikipedia project.  Since those names are expressed in the characters allowed in mediawiki names, with many conventions growing out of Wikipedia usage, any deviation (any more or less permissive use of characters) would ""break"" the character set and force ""translation"" of names of concepts to determine if the concept existed in the Wikipedia namespace (or ""GFDL corpus namespace"" to be legally more exact as all Wikipedia content is under GFDL and other mediawikis copy the names under this license).

Accordingly, the benefits of keeping trac internal data and user's internal documentation in mediawiki format are profound: 
 7. any concept whatsoever that is named in a document can be quickly checked to see if it exists in Wikipedia or a list of other public wikis, and the option to link it added
 7. statistically improbable phrases can be related to more standard phrases by relatively simple programming/searching methods, e.g. consulting Amazon lists of keywords attached to books, checking for matches with text of Wikipedia articles
 8. any page managed by Trac can be instantly moved to, or can instantly incorporate updates from, or possibly embed or be embedded in, any other page in a large public wiki or mediawiki- or drupal- or jamwiki- based intranet
 9. TracWiki could become the Python equivalent of jamwiki (Java) and possibly be included in other applications as a module as is intended for jamwiki;  This would better distribute the maintenance effort and spread trac
 10. mediawiki extensions would be encouraged to integrate trac so that, for instance, bugs in mediawiki-based services would be able to contain trac links directly in talk pages and edit summaries. 
 11. anonymous trolls are more likely to complain about errors seen in trac, as all anonymous trolls already know mediawiki format so they can troll Wikipedia
 12. such trolls will no longer appear to write long whiny tickets like this.  These advantages will get more significant, not less, over time, as the number of trolls in the world increases (we may be in the Troll Age).

To converge/eliminate the existing tracWiki format would be relatively simple as most of mediawiki's text conventions (regarding italics, boldface and headings) are supported already.  The link format, relying on double square brackets, conflicts with the existing tracWiki macro format, but this is easily resolved by a method similar to methodNotFound in Smalltalk, etc.:  if a local macro by that name does not exist, the behaviour defaults to an open link.  This is then easy to replace with another macro that can default to find (and link) the appropriate article (via the methods listed) in a more public wiki, or a cascade of nested wikis of decreasing specificity.  This is similar to the technique wikinfo.org already uses to embed Wikipedia articles when wikinfo itself has no article on that topic. 

Discouraging WikiWords is of high priority as they encourage bad English and make sentences containing links unreadable and confusing to technical people (exactly why mediawiki abandoned them).
",anonymous
unscheduled Release,6000,Multiple column support in timeline,timeline,0.10-stable,enhancement,normal,,new,2007-09-10T16:51:20+02:00,2015-05-26T20:55:39+02:00,"The single column in the Timeline view is limiting.  I'd like to see the Timeline view get a new preference option for controlling the number of visible columns of events - especially in light of the industry-wide movement to widescreen displays.  I've hacked-up a timeline-based module which does this, but my preference would be for a polished implementation by the Trac team.

 * The preference box moves to top of timeline @ 100% width instead of pseudo-dialog-box in upper right which eclipses usable real estate.
 * preference option for N equal width columns
 * either automatic based on available width or manual preference for format=brief option (think format=rss) which drops unnecessary words like ""Changeset"", ""Ticket"", etc.

I've attached a screenshot of my hacked plugin which offers no gui preference controls.  Maybe if I have time I will get back to trying to understand more Python/CS/Trac development - but this is working for me at the moment.",james.moger@…
unscheduled Release,5634,Request environment fragile and undocumented,general,devel,defect,normal,,new,2007-07-01T04:20:58+02:00,2015-05-26T20:55:39+02:00,"It isn't clear how all those CGI variables are meant to be interpreted, which makes intervening and rearranging them a dicey business. 

trachacks:changeset:2355 shows an example.  You can ignore the fact that I'm using WSGI variables; even after #5586 is fixed the same problem will exist with the CGI variables.

Before that change it was working fine on the development server, but not on my fastcgi production server.  The problem is that trac.web.main goes and reinstates {{{trac.env_path}}} unless you do something to make sure it's seen as present, yet still allows it to test as {{{False}}} in an {{{if}}} statement.  That kind of subtlety is probably an implementation artifact, and even if stable, is unlikely to make it into the documentation unless explicit attention is paid.",Dave Abrahams <dave@…>
unscheduled Release,5589,Full text search in attachments,search system,0.10-stable,enhancement,normal,,new,2007-06-23T20:28:20+02:00,2015-05-26T20:55:39+02:00,"Ability to search in attachments' bodies is needed. At least, search in plain text files (including unicode) and Microsoft Office files (at least: DOC & XLS) is needed.

A better solution is to integrate some full text search engine into the Trac.",anonymous
unscheduled Release,5580,Report Variable Forms,report system,,enhancement,normal,,new,2007-06-22T11:55:33+02:00,2015-05-26T20:55:39+02:00,"This is basically a request for an enhancement to the report variables.

Basically what I was thinking off was something like the following:
Instead of supplying a variable in the query like so: 
{{{
priority='$PRIORITY'
}}}
You can (optionally) make it like so:
{{{
priority='${PRIORITY#Ticket Priority}'
}}}
Then what it would do is in case you specified it as above, and one of those variables are not set it would display a form (populated by those that are set), allowing you to enter values for them.

A few more suggestions regarding this would be default values, example:
{{{
priority='${PRIORITY#Ticket Priority#normal}'
}}}
This would give this one a default value.

Lists:
{{{
priority='${PRIORITY#Ticket Priority[low,lowest,normal,high,highest]#normal}'
}}}
This one would be a select list, with default value normal.

The reason I ask for this is the fact that our managers use the system to file requests and track how they come along. They many times want to see reports for specific periods, or types, etc. Many of them don't really grasp the url editing thing, and have asked countless times for forms.

What we eventually did was create HTML pages which allows displaying of the forms, and these pages link back to the reports.

It would be really nice though to be able to quickly create them by editing report queries.

One could even go as far as allowing a separate input field, and have the query list variables like ''priority='$PRIORITY' '', and have the this other input field define variables. If undefined they act as they do now, if defined they display a form.

Example for variables $PRIORITY, $KEYWORDS: 
{{{
PRIORITY.TYPE=list
PRIORITY.LIST=[low,lowest,normal,high,highest]
PRIORITY.DEFAULT=normal

KEYWORDS.TYPE=text
KEYWORDS.DEFAULT=
}}}
A few suggestions. Hope it was useful and understandable.
",tracsubmission@…
unscheduled Release,5560,Email links on usernames in ui.,general,,enhancement,normal,,new,2007-06-20T16:19:04+02:00,2010-07-01T00:15:00+02:00,"Nice feature would be to generate mailto:xxx links when displaying user names ?  Maybe better to make a plugin that can pop up a selection of callto: msnim: mailto:, etc. links... then again that kind of extended user information needs to be saved somewhere, is it possible to create this kind of extended user information for a plugin today ?",bskinnes@…
unscheduled Release,5378,"ajax bandbox for input of milestone, component, assign to, and cc",ticket system,,enhancement,normal,,new,2007-05-26T14:01:52+02:00,2015-05-26T20:55:39+02:00,"it would be gread to have a ajax bandbox (see [http://zkoss.org/zkdemo/userguide/ zkoss userguide, bandboxes) for the following fields:
 * milestone: select one, search not necessary if they are sorted right, link to add a new one
 * component, search, select one, link to add a new one
 * assign to, search, select one
 * cc, search, multiple select

with jquery i did not see a similar demo, sorry.



",ThurnerRupert
unscheduled Release,5367,New Priority Schema?,general,0.10.4,enhancement,normal,,new,2007-05-24T08:59:49+02:00,2015-05-26T20:55:39+02:00,"What if, instead of using a fixed, 5 option enumerated priority schema, you just use a numeric, non labeled schema, from 1 to n? This could allow to re-prioritize a ticket easier (with the proper UI, of course). 

You just need to inter-change priority values when moving a ticket one position up or down, and when you move it ""jumping"" n tickets, those should only be incremented or decremented by 1 on their priority field and after that, use the ""free"" space for the re-prioritized ticket. 

You can provide an arrow up / arrow down on the lists for every query, for ""one step move"", and a more advanced option on ticket edition, like a ""give immediate upper/lower priority respect to ticket n[user provided]"", for bigger jumps.

I think that the DB impact with this change could be minimal, but you have to re-think some features like the color from red to green on your listings.",gustavovera@…
unscheduled Release,5240,Expose Trac timeline data as JSON(P),timeline,,enhancement,normal,,new,2007-05-01T08:26:57+02:00,2015-05-26T20:55:39+02:00,"I would want the option of exporting Timelines not only in HTML format, but in raw JSON (and JSONP, with a javascript padding callback) data format, too. The same goes for the Search view (but that's another ticket, really).

Given that, people can make their own uncoupled interfaces for the data set, such as [http://exhibit.ecmanaut.googlepages.com/cvsview.html?f=2007-01-21&t=2007-01-31 this cool view], built solely from [http://pike.ida.liu.se/_/cvsview/commits?f=2007-01-21&t=2007-01-31&callback=Exhibit.JSONPImporter._callbacks.cb1 this JSON data set].",oyasumi+trac.edgewall.org@…
unscheduled Release,5219,custom query needs to be able to access ticket change table,query system,,enhancement,normal,,new,2007-04-25T22:12:15+02:00,2017-05-21T04:54:30+02:00,"Hey guys we really need to be able to do something like the following...(ditch the two custom fields time_actual and time_estimate).  Basically it allows us to see all the comments made to a ticket over time and then group the results by ticket id.

{{{
#!sql
SELECT 
id AS __group__,
id AS ticket,  
summary,
version,
milestone,
(CASE WHEN c.value ISNULL THEN '' ELSE c.value END) as time_est,
(CASE WHEN n.value ISNULL THEN '' ELSE n.value END) as time_act,
(CASE WHEN tc.newvalue ISNULL THEN '' ELSE tc.newvalue END) as comments,
t.type AS type,
(CASE status WHEN 'assigned' THEN owner||' *' ELSE owner END) AS owner 

FROM ticket t, enum p 
LEFT OUTER JOIN ticket_custom c ON
       (t.id=c.ticket AND c.name='time_estimate')
LEFT OUTER JOIN ticket_custom n ON
       (t.id=n.ticket AND n.name='time_actual')
LEFT OUTER JOIN ticket_change tc ON
   (t.id=tc.ticket AND field = 'comment' )
WHERE status IN ('new', 'assigned', 'reopened') 
AND p.name = t.priority 
AND p.type = 'priority' 
ORDER BY id, milestone, t.type
}}}
",edunne
unscheduled Release,5121,trac-admin tool stdout flush problem,admin/console,,defect,minor,,new,2007-04-10T14:56:47+02:00,2015-05-26T20:55:39+02:00,"""autoflush"" is disabled, and thus when trying to hotcopy to a bad directory I get the following message (note the bad chronological order of the lines):

{{{
www-data@web:~$ trac-admin /data/trac/dirstat hotcopy /tmp/bla
Command failed: [Errno 17] File exists: '/tmp/bla'
Hotcopying /data/trac/dirstat to /tmp/bla ...
}}}

I'd suggest modifying the shebang line of trac-admin to ""#!/usr/bin/python -u"" in order to solve this. (attached as a micro-patch)",oren@…
unscheduled Release,4923,manage the smtp/mail settings from within the WebAdmin plugin,admin/web,0.10.3.1,enhancement,normal,,new,2007-03-09T18:21:37+01:00,2015-05-26T20:55:39+02:00,"This would be very convenient...perhaps there's a good reason this hasn't already been included?  

Everything has been working nicely for me with this plugin otherwise - thanks for the contribution!",liam@…
unscheduled Release,4877,SVK merge property changes should be hiden from the timeline.,timeline,,defect,normal,,new,2007-03-02T12:47:46+01:00,2015-05-26T20:55:39+02:00,"In [2075] jonas changed the browser and changeset viewer so that SVK merge properties were hidden.

The timeline can still show a summary of changed files if configured with trac.ini and this ""mini"" changeset viewer still shows SVK property changes (for the merge tickets).

This is most noticeable because the root directory is always shown on the timeline as modified even though the changeset viewer does not show this.

I think the timeline changeset preview should ignore SVK property changes for this reason.",nslater@…
unscheduled Release,4834,"Default ""from"" date in Timeline",timeline,devel,enhancement,normal,,new,2007-02-24T14:37:16+01:00,2017-09-10T02:20:17+02:00,"The default ""from"" date in the TimeLine is today.

Could we make it the day of the last event?

thanks.",Sergei Haller <sergei@…>
unscheduled Release,4781,Scheduled report by mail to specific users,report system,,enhancement,normal,,new,2007-02-19T13:24:08+01:00,2015-07-28T10:31:07+02:00,"It would be good to have possibility to schedule a report for example as a job of the Windows or Linux server, which will be sent to specific list of people - for example Project Manager will be informed weekly about numbers of defects.",dmusil@…
unscheduled Release,4746,intertrac links support in trac-post-commit hook,version control,,enhancement,normal,,new,2007-02-15T13:58:43+01:00,2015-05-26T20:55:39+02:00,"Hello,

It would be very nice to support intertrac links within the trac-post-commit hook. If the XMLRPC plugin is installed in the remote trac, tickets should be remotely updateable.",philn
unscheduled Release,4644,Report/Query result re-ordering should support secondary sort field.,report system,0.10.3,enhancement,normal,,new,2007-02-01T20:35:26+01:00,2015-05-26T20:55:39+02:00,"You get a little of this when you select grouping and ordering. It's grouped by the primary ordering, then sorted within the group for the secondary ordering. However, with lots of tickets, it's nice to have two sort levels within a grouping.

My favorite implementation makes the current primary sort field into the secondary sort field when another column is clicked. Here's an example:

The subsequent row is the result of the click action on a given row. 
{{{
#!rst
========== == ========= == ============
Current                     Action
-------------------------- ------------
Primary       Secondary     Click
------------- ------------ ------------
Milestone  v               Owner
Owner      V  Milestone v  Version
Version    v  Owner     v  Milestone
Milestone  v  Version   v  Milestone
Milestone  ^  Version   v  Owner
Owner      v  Milestone ^  Owner
Owner      ^  Milestone ^  ...
========== == ========= == ============
}}}

You get the idea. ",mikejbrady@…
unscheduled Release,4583,Prebuilt milestone description templates,roadmap,0.10.3,enhancement,normal,,new,2007-01-24T01:46:59+01:00,2016-03-20T22:46:19+01:00,"We use our milestone pages as a very nice summary of work going on.

It would be very useful to be able to make a default template to go with every new milestone. Leave it up to the user to create and customize their own; maybe provide a suggested implementation.

We use it for stuff like rss feeds, common ticket queries, etc; and it provides a 'status at a glance' very well.

For example; almost every milestone we do has:
{{{
== Release Plan ==
http://trac.adl.vm/trac.cgi/attachment/wiki/WikiStart/Panels - Mobius.PNG?format=raw

== Success requirements ==
 * one 
 * two
 * three

== Tracking tickets (Open) ==
[[TicketQuery(component=tracking&status=new|assigned|reopened&milestone=Panels - Mobius)]]
== Tracking tickets (Closed) ==
[[TicketQuery(component=tracking&status=closed&milestone=Panels - Mobius)]]
== Review Needed ==
[[TicketQuery(milestone=Panels - Mobius&keywords~=review)]]
== UAT Needed ==
[[TicketQuery(milestone=Panels - Mobius&keywords~=uat)]]
== Patches to go ==
[[TicketQuery(milestone=Panels - Mobius&keywords~=patch)]]
== SIT needed ==
[[TicketQuery(milestone=Panels - Mobius&keywords~=sit)]]
}}}",daniel.oconnor@…
unscheduled Release,4536,render_unsafe_content in [4472]  could be restricted to read-only pages.,wiki system,devel,enhancement,minor,,new,2007-01-13T20:47:03+01:00,2010-06-24T19:09:14+02:00,In my case i don't want to allow the unsafe content to be available on all pages (the scripts are used to allow documentation to have special links for firefox browsers to load pkcs11 modules). So instead of turning this feature on wiki-wide I would be happy and more secure if i could turn it on for read-only pages only (as I'm willing to make that page read-only),martin@…
unscheduled Release,4492,Automatic backlinks for tickets based on document referer,wiki system,0.10.3,enhancement,normal,,new,2007-01-04T07:38:43+01:00,2015-05-26T20:55:39+02:00,"This is distinct from TracCrossReferences (similar to BackLinks (#611)); but solves a similar problem.

 * Every view of a ticket records the referring URL; and increments the count for number of referrals.
 * The ticket page shows the number of referrers as a 'pages and tickets which mention this ticket' widget

A simple list of allowed URL patterns or referrers can prevent spam easily.

The benefit of this approach is to organically strengthen the relationship between tickets, rather than rely on explicit macros. Garbage collection could be optionally included; so that links dissolve over time.",daniel.oconnor@…
unscheduled Release,4423,provide page decorators using wiki syntax,general,0.10.3,enhancement,normal,,new,2006-12-18T21:28:38+01:00,2017-09-01T02:25:49+02:00,"right now, the PageTemplates proposal offers just a way of setting a template for a new page.

i'd like to have templates, for any page, using wiki syntax.

e.g., if i'd like to have each page list its tags at the top, i'll write a decorator like:
{{{
[[ListTags]]
{{1}}
}}}",ittayd@…
unscheduled Release,4226,tracd: access control for list of projects,web frontend/tracd,0.10.2,enhancement,normal,,new,2006-11-21T12:26:57+01:00,2015-05-26T20:55:39+02:00,"I have tracd running with a few projects. When you go to http://host:port/, there is a list of ""Available Projects"". I would like to restrict access to this page, by something like .htaccess/.htpasswd in apache. Is this possible?",anonymous
unscheduled Release,4173,"When ""View Ticket"" is selected, sub-options should always be visible.",ticket system,0.10,enhancement,normal,,new,2006-11-15T14:00:38+01:00,2015-05-26T20:55:39+02:00,"This request is to help lower the learning curve and to make navigation more obvious.

I've used trac for many months now, but still keep forgetting how to navigate to ""Custom Query"". Some people in my team didn't know this feature exists - they just use Search. Why? The link is not always visible. 

When viewing a ticket (where I spend most of my time), the ""View Tickets"" button is selected (but with no sub-options shown). Therefore I never think to click it again. So instead: 
 * I click something else like ""Search"". Nope not there...
 * I click ""View Tickets"", and the text appearing on the left attracts my view. I don't even notice something small has appeared under ""view tickets"", because there was nothing there before. 
 * I scratch my head and hunt around some more.

'''Proposed solution''':

In all screens where the ""View Tickets"" button is rendered selected, the two sub-options ""Available Reports"" and ""Custom Query"" should also be displayed.

",l.usherwood@…
unscheduled Release,3785,Regular Expression Match against custom field values,ticket system,devel,enhancement,normal,,new,2006-09-25T23:42:20+02:00,2015-05-26T20:55:39+02:00,"It would be handy to add an option to the Trac Custom Fields feature that allows a regular expression match string as a sanity check against a custom field.  As some fields require the flexibility of text input, but within certain parameters that a SELECT field doesn't offer, this could be very handy.  The match string would just have to evaluate to true if the field works.

I did a few searches and didn't see anything like this -- please enlighten me if otherwise.  I could attempt to look at a patch if there is interest, though I haven't worked with Python before.

Suggestion for implementation:
{{{
[ticket-custom]
test_date_field = text
test_date_field.label = Test a Date
test_date_field.value = 
test_date_field.match = /\d{4}-\d{2}-\d{2}/
}}}
",nmelnick@…
unscheduled Release,3695,Enable Generic Navigation Item Ordering,general,devel,enhancement,minor,,new,2006-09-10T19:22:42+02:00,2015-05-26T20:55:39+02:00,"See #3692 for background

Custom Navigation Items can be created dynamically.

The ordering mechanism is hard-coded within chrome.py.

The ordering functionally could be refactored in order to avoid the necessity to hardcode the option within chrome.py.

Possible Implementation 1:

A generic options within a new ""navigation"" section.

chrome.py would read-in this section whlist creating dynamically the navigation-sort-information

Possible Implementation 2:

INavigationContributor gets a new method with an addition parameter ""priority"". The Menu items are aligned base on the priority setting.
",ilias@…
unscheduled Release,3694,Code coloring in diff,version control/changeset view,none,enhancement,minor,,new,2006-09-10T12:23:14+02:00,2019-01-14T15:22:21+01:00,It would be great to have code source code highlightrd in Diff view.,anonymous
unscheduled Release,3156,Export Milestone to CSV,roadmap,0.9.4,enhancement,normal,,new,2006-05-16T20:34:42+02:00,2021-02-28T19:30:28+01:00,"== Problem ==
 There is no way to do postrelease ferensics. 

== Solution == 
 The current reporting in trac is limited to ticket status snapshots. This is helpful as a status indicator and for milestone tracking. I didn't see postmotam analysis tools on the roadmap. Features that facilitate milestone analysis would greatly improve Trac's exposure to project managers, product managers and executives. 

 Including an export feature would get you 80% of the way. This would facilitate doing the analysis in excel while the integrated reporting tools are developed.
 
 When exporting the data, ticket properties should be exported as a single line record. A record should be constituted as any change or addition to the ticket. So if the status changes and nothing else the csv record shoudl include all ticket properties including the status change. 

||Ticket|| Priority || description || Severity || Milestone||
||1||P1||TEST Ticket||normal||1.0||
||1||P1||New description|| normal|| 1.0||

that would be exported as:
{{{
1,P1,TEST Ticket,normal,1.0
1,P1,New description,normal, 1.0
}}}
 ",anonymous
unscheduled Release,3102,Suggestion: Some Very Cool Features,general,none,enhancement,normal,,new,2006-05-01T21:07:32+02:00,2015-05-26T20:55:39+02:00,"This is a Suggestion for some AJAX Features that might enhace the trac system:

 1. Autocomplete Search.
 1. A remote web-based code editor with syntax highlighting (supporting various languages).
 1. A chat module for team communication.
 1. A Live Support module ( something like: http://www.craftysyntax.com/ ).
 1. A Interface Improvement ( using some features from script.aculo.us ).
 1. A template engine system, to allow the users a simpler customization.
 1. A nice real-time alert/notification system with AJAX.
 1. On-line user indications.
 1. A built-in file uploader (with AJAX progress indicator).

And them some core features:

 1. Web-based VoIP integration for team communication.
 1. Some kind of open I.M. protocol support ( like jabber ) for Team Communication and Project Notifications.
 1. Better Security Implementation, based on Access Levels, and assign each file a access level and permissions.
 1. A proprietary Open Source CVS System for better usage of new features and backward compatibility with the most used cvs systems on the market.
 1. SMS Gateway support for notifications.",optikey@…
unscheduled Release,3026,Read-only milestone linking to external trac projects,roadmap,devel,enhancement,normal,,new,2006-04-12T06:06:27+02:00,2015-05-26T20:55:39+02:00,"It may be useful for different groups (with different trac projects) that are dependent or need awareness of the progress of other trac projects, to interlink specific trac milestones outside their own particular trac project.

Not sure of the workload required for functionality.",posix # inmail24 | com
unscheduled Release,3003,milestone could be a ticket,ticket system,0.9.4,enhancement,normal,,new,2006-04-09T09:31:51+02:00,2015-05-26T20:55:39+02:00,"can milestones be implemented as tickets too, just by marking a ticket as milestone? a milestone can depend on other milestones, they can be in parallel, they have a responsible, they have an importance, and they depend on the completion of tickets.

currently the milestone concept has a few weaknesses:
 * changes are not tracked
 * no responsible
 * no dependencies (or just implicit by setting dates)
 * consolidated view over multiple trac instances, i.e. have a big milestone consisting of small ones stored in other trac instances.

mark a ticket as a milestone, intertrac, and ticket dependencies would solve 95% of these issues. do you see any disadvantage in doing this?

",ThurnerRupert
unscheduled Release,2908,"No 'register' link (only Login), 'New Ticket' -> 'login' difficult",ticket system,0.12dev,defect,major,,new,2006-03-20T20:12:24+01:00,2022-07-09T12:25:40+02:00,"I'm really irritated that most trac sites (including this one) doesn't offer a registration link (only Login).

This leads to some frustrating situations:

I come along, want to report a bug. Trac tells me, I need ""CREATE_TICKET"" permissions. Why do you show ""New Ticket"" if I can't??

Now, I try to find a way to register. But there isn't.

Next, i try to find some other way to post my bug report but there isn't.

I give up.

I suggest that you disable the links to the ticket system when anonymous posting is disabled plus put a big warning next to the option for the site admin.",digulla@…
unscheduled Release,2880,Ignore svn properties / trees in timeline,timeline,,enhancement,minor,,new,2006-03-16T02:17:33+01:00,2015-05-26T20:55:39+02:00,"It'd be cool to be able to ignore `svn:autoversioned` files in the timeline or to be able to set some subtrees of the repository to not show up on the timeline.

We have a number of WebDAV clients here and the messages are annoying.",jcw9@…
unscheduled Release,2855,"Add aggregation functions (SUM, MAX, AVG) of ticket columns to the custom query options",general,0.9.4,enhancement,normal,,new,2006-03-10T13:42:25+01:00,2022-01-05T05:20:01+01:00,"Use case: I added a custom field ""estimated effort"" to my project tickets that we usually like to see summed up on listings.

It would be great to have, probably below the ""group by"" option, the ability to aggregate columns by using common SQL aggregation functions such as min, max, sum, avg, etc.
",dema@…
unscheduled Release,2810,More complete Roadmap: Gantt and Pert,roadmap,0.9.4,enhancement,normal,,new,2006-02-26T23:17:50+01:00,2015-06-16T23:54:02+02:00,"The idea would be to have a more detailed (thus useful) roadmap page, displaying
the Gantt and Pert diagrams of the project.

It would require having the roadmaps to have dependancies, from which the diagram would
be built.

[http://en.wikipedia.org/wiki/Gantt Gantt chart]
[http://en.wikipedia.org/wiki/PERT Pert chart]

The goal is to be able to track efficiently how well the project is doing, and to know
precisely where the war effort has to be directed.
I am well aware that #364 already proposed to improve everything, but still, gantt diagrams
are built with dependancies on the modules.
As for pert diagrams, the idea is that it produces a real graph of dependancies with costs,
thus really showing what needs to be done and at what rythm.",pwipwi.thecow@…
unscheduled Release,2775,Automatic matching of similar issues,ticket system,0.9.4,enhancement,normal,,new,2006-02-17T11:07:42+01:00,2015-05-26T20:55:39+02:00,"So in order to make things easier when prioritizing, it would be really cool to see something that displays how many issues there are with closely matching content. This would help when duplicate tickets are created, in order to more easily show the user where the dupes are, and also when prioritizing which issues should be worked on first (if the basis is the amount of requests)",chris@…
unscheduled Release,2581,[PATCH] Add Paste Deploy support to the WSGI branch,general,devel,enhancement,normal,,new,2006-01-10T21:02:00+01:00,2015-03-02T22:53:54+01:00,"Attached is a patch (against the sandbox/wsgi branch) that implements a Paste Deploy entry point for trac.  Using the sample deployment file (in the patch in docs/sample_deploy.ini) you can do:

{{{
paster serve docs/sample_deploy.ini
}}}

To get a working server.  The configuration in that file just points to the Trac project directory, it doesn't put any of Trac's configuration in that file.  The server in the sample is WSGIUtils, but any server can be used (e.g., flup's FastCGI or SCGI servers).  The sample file also wraps the app in paste.lint, which checks for WSGI compliance (you wouldn't use this normally, but for testing and development it is useful).

This also changes setup.py to use setuptools, because that is needed for entry points.  Strictly speaking this would not be necessary (you can just put {{{paste.app_factory = trac.web.main:paste_app_factory}}} in the deployment configuration instead of {{{use = egg:Trac}}}).  But, eh.  I'm a little surprised Trac isn't using setuptools already.  Just changing the import from distutils.core to setuptools seems to work well enough for me.

Also two bugs are fixed; one when subdirectories of parent_dir are not loadable, and one for parent_dirs itself.  

I haven't implemented env_paths in this patch -- it would probably mean collecting all the configuration variables and parsing them a bit (but would certainly be doable).  I'm not sure what the threadsafety of Trac is, but if dispatch_request could be entered from multiple threads with different {{{trac.env_path}}} values and work that way, other dispatchers (like {{{Paste#urlmap}}}) could be used in addition to env_paths.  It looks like Trac is probably already ready to be used like this (if it doesn't use globals to communicate configuration).",ianb@…
unscheduled Release,2566,Trac browser should browse SVN symbolic links,version control,0.9.2,defect,minor,,new,2006-01-09T06:32:11+01:00,2010-07-01T12:18:29+02:00,"Here is a patch to add browsing of symbolic links. It has the following behaviour:

  * Links outside the repository are normalised to /, but display the full link path.
  * Links to non-existent objects will display the default file.",Alec Thomas <alec@…>
unscheduled Release,2443,User list in milestone view per owner,roadmap,0.9.1,defect,normal,,new,2005-12-05T13:15:30+01:00,2015-05-26T20:55:39+02:00,"When switching Trac from '''restrict_owner = false''' (default) to '''restrict_owner = true''', we can have quite a lot of tickets owned by users not in the list of known users.

This can be misleading in the milestone view per owner where the sum of tickets doesn't match the total sum of tickets for the milestone.  This view could add an ''unknown'' and/or ''unassigned'' entry list so that the sum be correct.",Antoine
unscheduled Release,2390,search isn't case and accent insensitive,search system,0.9,defect,normal,,new,2005-11-21T19:46:40+01:00,2015-05-26T20:55:39+02:00,"The search engine gives different results when searching for the word ''Ελληνικά'', ''ελληνικά'' or ''ελληνικα''. These are the same words and should all return the same results as they do for latin-1 words.

",anonymous
unscheduled Release,2299,Ability to override SCRIPT_NAME from base_url,general,0.11.6,defect,normal,,new,2005-11-03T00:01:00+01:00,2018-01-09T22:38:46+01:00,"I am using mod_rewrite to hide the fcgi trac script ... this works fine, except that
trac uses absolte urls in its generated content ... so the name of the fcgi script will be exposed all the same ... with this patch I can set the ''TRAC_BASE_URL'' environment variable to tell trac what base URL it should be using.

{{{
#!python
--- temp/trac/trac-0.9/trac/web/cgi_frontend.py 2005-10-31 19:37:51.000000000 +0100
+++ pack/trac-0.9/lib/python2.3/site-packages/trac/web/cgi_frontend.py  2005-11-02 23:30:52.393286000 +0100
@@ -49,6 +49,10 @@
         self.args = self._getFieldStorage()
 
         self.cgi_location = self.__environ.get('SCRIPT_NAME')
+
+        if 'TRAC_BASE_URL' in os.environ:
+            self.cgi_location = os.environ['TRAC_BASE_URL'];
+
         self.idx_location = self.cgi_location
 
         self.path_info = self.__environ.get('PATH_INFO', '')
}}}
",oetiker@…
unscheduled Release,2162,trac-admin needs a -q for quiet automated operation,admin/console,0.9b2,enhancement,normal,,new,2005-10-03T03:24:56+02:00,2015-05-26T20:55:39+02:00,"The trac-admin tool needs a -q option to make it shut up.  When using it for automated operations, such as hotcopying for a backup, it's very ''chatty''.  Honestly, I'm not interested in it's success status, only it's failure so that I can act accordingly.",dbeckham-trac@…
unscheduled Release,1947,Nicer handling of bugtraq properties,version control/browser,devel,enhancement,minor,,new,2005-08-20T19:46:17+02:00,2015-05-26T20:55:39+02:00,"It would appear that Trac partially supports Subversion bugtraq properties, useful for linking changesets back to the issue tracking url. However, when you add these properties, the output looks like this: [[BR]]
[[BR]]
Added Subversion bugtraq properties to repository. bugtraq:message ""#1""[[BR]]
[[BR]]
While the #1 is correctly linked back to the issue, it's because Trac is using the built-in regex to link back. If the full bugtraq properties were read correctly, the Subversion repository would provide this information.[[BR]]
[[BR]]
try setting the following properties on a Subversion repository (be sure to do this recursively):[[BR]]
[[BR]]
bugtraq:label # [[BR]]
bugtraq:url http://localhost/cgi-bin/trac.cgi/ticket/%BUGID% [[BR]]
bugtraq:message ""#%BUGID%"" [[BR]]
bugtraq:number true [[BR]]
bugtraq:warnifnoissue false[[BR]]
[[BR]]
If you connect to a subversion repository with a tool like TortoiseSVN, you'll be able to click on the defect number and link directly back to the issue in Trac.[[BR]]
[[BR]]
Full support of this in Trac would be a nice enhancement.[[BR]]

",borzwazie@…
unscheduled Release,1943,Add support for date calculations in ticket reports/querys,report system,0.8.4,enhancement,normal,,new,2005-08-19T21:55:38+02:00,2012-09-15T22:27:01+02:00,This enables rudimentary project management,anonymous
unscheduled Release,1835,Add a discussion tab for Trac resources,general,none,enhancement,major,,new,2005-07-25T14:44:08+02:00,2022-06-06T12:33:14+02:00,"Was originally: ''Is it possible to integrate a thread-based ""view"" (something like a phpbb) with trac?''

I'm in a development team which consists of many people from different departments of our company. For now, we're using a forum for ""informal"" discussion of feature-proposals (where everyone can contribute), an issuetracking system as a ""formal"" way to categorize and track our development progress (which is managed by a few ""head developers) and a wiki for documentation purposes (which again is open for all users). 
So the ""life cycle"" of a feature looks like this: proposal > discussion between all developers > creating of an ""ticket"" with formal specs (deliverables etc.) in bugtracker which may be commented on by everyone but responsibility for the ticket is held by a ""head developer"" > actual coding > documentation in wiki.

Trac really looks great for combining the ""formal"" project-management with documentation and source-code-management but the wiki-based ""view"" is (IMHO) to complicated for the initial, informal discussion. The ticket-view is better suited for that, but doing informal discussions there would weaken (again IMHO) the formal ""progress-tracking"" approach as there will be many tickets which won't make it to a ""real"" issue.

So to keep all the relevant development information in one place/system it would be great, if one could have some ""forum""-like functionality with a threaded view.


Kind Regards

Karsten",Karsten.Kraus@…
unscheduled Release,1493,attachment revision history,attachment,0.8.1,defect,normal,,new,2005-04-27T19:15:07+02:00,2021-06-01T23:17:19+02:00,"Attachments to wiki pages are shown even in old versions of a page.

For example, TracTickets has an image attached, but it was attached only in [http://projects.edgewall.com/trac/wiki/TracTickets?action=history version 12]. When I open the page version prior to 12, the attachment is either shown - [http://projects.edgewall.com/trac/wiki/TracTickets?version=1 TracTickets v.1].
",shad
unscheduled Release,1381,view files by date as well as revision number,version control,devel,enhancement,minor,,new,2005-03-31T00:20:25+02:00,2015-05-26T20:55:39+02:00,"I had just assumed that because svn supported this, it was on the todo list, but according to those on #trac, it's not.

Anyway, trac has the nice ""view revision #"" field, but nothing for ""view as it was on date X"", which is a much more human-usable feature.",xris@…
unscheduled Release,1380,trac-admin wiki dump doesn't include attachments,attachment,0.8.1,defect,normal,,new,2005-03-30T23:06:56+02:00,2011-03-28T15:49:22+02:00,If you use trac-admin wiki dump then attachments aren't included as part of the dump.  None of the other trac-admin commands let you get the attachments either.  This makes it very difficult to get a true dump of the wiki contents,rogerb@…
unscheduled Release,1268,Search for a revision/ticket/report number should find that changeset/ticket/report,search system,0.8.1,enhancement,minor,,new,2005-03-09T11:44:13+01:00,2015-05-26T20:55:39+02:00,"e.g. when I input 614 in the search field, the changeset 614 should be among the top search results.",Markus Bertheau <twanger@…>
unscheduled Release,1135,Component filter for the Timeline,timeline,0.8,enhancement,normal,,new,2005-01-16T19:36:32+01:00,2016-01-18T23:15:47+01:00,"The two attaches patches (to files Timeline.py and timeline.cs) implement Component filtering for the Timeline. Two new configuration options are defined in the [timeline] group:

 * ''display_components'' shows the component name for tickets and commits just before the ""by XXX"" text; and

 * ''changeset_guess_component'' assign to a checkin a component based on the first path element in the SVN repository (this only works for repositories used to host multiple projects. This configuration option is used only if ''changeset_show_files'' is set, because needs at least one file name to work on.

An example of the resulting Timeline can be seen on the [http://initd.org/tracker/initd/timeline initd.org website] (both options activated.)
",fog@…
unscheduled Release,1120,Delete all changes made from given IP.,wiki system,devel,enhancement,normal,,new,2005-01-11T01:44:05+01:00,2022-01-08T10:39:23+01:00,"Because wicki of my trac installation was lately filled with lots of spam messages i wrote quick and dirty hack which allows me to remove all changes made from given ip.

Maybe this will be helpfull to others too.",prefiks@…
unscheduled Release,925,[PATCH] Allow wiki syntax in labels for custom fields,ticket system,devel,enhancement,normal,,new,2004-11-13T22:11:29+01:00,2017-05-17T01:18:25+02:00,"The proposal is to add a possibility to use Wiki syntax in labels for custom fields.

Example 1: We need to put emphasis on ''Platform'' field
{{{
[ticket-custom]
platform         = select
platform.order   = 1
platform.label   = '''Platform'''
platform.options = |Intel P4|Intel XEON|AMD Athlon 64|Other
}}}

Example 2: We need to define a link to help screen for ''Platform'' field
{{{
[ticket-custom]
platform         = select
platform.order   = 1
platform.label   = [wiki:HelpPlatform Platform]
platform.options = |Intel P4|Intel XEON|AMD Athlon 64|Other
}}}

Attached patch contains an implementation for the proposal.
",pkou <pkou at ua.fm>
unscheduled Release,920,Disable purging of user settings,general,0.7.1,enhancement,normal,,new,2004-11-12T22:39:14+01:00,2015-05-26T20:55:39+02:00,"The Trac install I'm setting up now is non-public, so it would be useful if user settings were not purged in 90 days.

",jburley@…
unscheduled Release,731,"Allow Trac to send commit information email when the "" sync ""with the repository",notification,0.12-stable,enhancement,normal,,new,2004-08-28T00:24:09+02:00,2015-05-17T01:56:39+02:00,"Lot of people send diff by email (or create a commit mailing list) for per review. 

Currently trac have a excellent diff display, html generator, a good notify class and a sync command to trac-admin. 

With all that it's easy to add a option for sending commit information by email (with some IniFile option)

the only thing add will be a ''' trac-admin ... sync ''' in the post-commit hook",utopiste
unscheduled Release,508,'Related checkins' feature,ticket system,0.7,enhancement,normal,,new,2004-06-03T20:52:37+02:00,2010-11-17T09:24:44+01:00,"In CVSTrac, a ticket has a field called ""Related Checkins"" which shows a list of checkins (they would be changsets in trac) and their comments.  

You can add and remove from this list by editing a comma-seperated list of related checkins.

However, the most useful part, is that by putting a ticket number into your checkin message, it automatically adds that checkin to the ""Related Checkins"" of the ticket.

Eg. svn commit -m 'Added the ability to edit existing tickets. This fixes ticket #411'

Then when you view the ticket #411 you can see that checkin there without doing any more work.

This feature made CVSTrac sooo useful, because it was very easy to make this connection from the ticket to the checkins that attempted to fix it.

bonus marks:

The whole idea of two-way linking useful in general -- once you had this feature you might also show wiki pages linking to a ticket, or tickets linking to a wiki page.  Often with information given by people, the incoming links are as relevant as the outgoing ones.  

BUT the automatic pingback from the checkins to the tickets is by far the most useful!
",dobes
unscheduled Release,150,User-centric storage. Last-viewed information and 'intelligent' followup,general,devel,enhancement,major,,new,2004-03-12T23:50:07+01:00,2020-04-25T19:38:14+02:00,"This ties in to a more advanced form of ""user"" centric development, including personalized settings (#63, #17, #1) and such stuff.

=== An idea for storing and using 'user trails' ===

We could generate a random ""id"" key, store it in a cookie, and use it for logging what the user has viewed throughout the system.

Using this information, we could do the following neat things:

 * The timeline could highlight events changed since last viewed.
 * List tickets previously viewed, but changed (aka 'interesting' tickets). All automatically, without need for any ""watch this"" features.

This is how [http://archive.neotonic.com/archive/osaf-design/prefs Archive] stores a users' read list posts, and it's quite clever.
",daniel
unscheduled Release,12413,support for git-lfs and git-annex,plugin/git,,enhancement,normal,,new,2016-03-23T18:25:20+01:00,2018-03-08T06:07:54+01:00,"Hi,

it would be great, if the source-browser of git could support git-lfs and/or git-annex (large file storage) by redirecting to the real file in the lfs-folder resp. annex-folder. 


I want to you trac (especially trac-wiki) in combination with git-lfs for storing educational resources. git would be in charge for distributing the files to all teachers / students; with tracwiki I would organize all the ""meta-data"" like informations on lectures etc. It is one of the key-aspects (for teachers) to work on the files (worksheets etc.) at the local computer, therefore a dvcs (with large file support) is desperately needed.

For the repo-browser one could also use gitblit, since it supports git-lfs (see https://github.com/gitblit/gitblit/issues/1025 and the fix https://github.com/gitblit/gitblit/commit/77c38a1865564a4ea4544bfb1f52bedf4326d481), but it would be more helpfull if trac would support git-lfs.

And apart from that: git-annex has an equivalent approach for storing large-files and is even more flexible as git-lfs. gitlab is supporting both git-lfs and git-annex, but the wiki-system of gitlab is too limited.

I've been searching for a wiki-system with a dvcs-repo-browser with large-file-support during the last months, the only one with a good wiki-system  I could found was trac. It would be great, if you could add support for git-lfs and/or git-annex.

Greetings

Tobias",tracuser@…
unscheduled Release,11268,Obfuscation of email address is not performed on search results,search system,1.0.1,defect,minor,,new,2013-08-04T22:42:02+02:00,2014-02-16T19:38:42+01:00,"This ticket is different from #8473 (which addresses whether a search should include certain hits).

When search results are displayed, there is a short snippet of content from each hit. The email obfuscations is not performed on that snippet.

I have no personal issues with this bug, just reporting it for completeness.

Not quite sure about the version. I noticed it on this (Edgewall) trac instance.",thomas.akesson@…
unscheduled Release,10021,Rendering of URI samples,wiki system,0.12-stable,defect,minor,,new,2011-02-10T20:54:37+01:00,2011-11-01T19:47:51+01:00,"While trying to document a sample SIP URI I found I could not simply italic the variable part of the URI.  On further experimentation I found this seams to affect any scheme:hier-part URIs.  The obvious escaping of the scheme tag did no resolve the issue.

Examples:
{{{
 * sip:N''access-code''@192.168.0.20
 * !sip:N''access-code''@192.168.0.20
 * mailto:Subscribe-''conference''@192.168.0.10
 * !mailto:Subscribe-''conference''@192.168.0.10
 * ftp://ftp.domain.com/''path''/''file''
 * !ftp://ftp.domain.com/''path''/''file''
}}}
Gives:
 * sip:N''access-code''@192.168.0.20
 * !sip:N''access-code''@192.168.0.20
 * mailto:Subscribe-''conference''@192.168.0.10
 * !mailto:Subscribe-''conference''@192.168.0.10
 * ftp://ftp.domain.com/''path''/''file''
 * !ftp://ftp.domain.com/''path''/''file''

Work-around: Use the monospace markup to avoid the processing of the scheme, example:
{{{
 * `sip:N`''access-code''`@192.168.0.20`
 * `mailto:Subscribe-`''conference''`@192.168.0.10`
 * `ftp://ftp.domain.com/`''path''`/`''file''
}}}
Gives:
 * `sip:N`''access-code''`@192.168.0.20`
 * `mailto:Subscribe-`''conference''`@192.168.0.10`
 * `ftp://ftp.domain.com/`''path''`/`''file''",mpotter@…
unscheduled Release,9650,"""Cache-Control: must-revalidate"" means shared cache",web frontend,0.11.7,defect,normal,,new,2010-09-28T11:13:03+02:00,2010-10-19T22:07:34+02:00,"Trac sends a ""Cache-Control: must-revalidate"" header for its content. This is wrong, because it doesn't say that the response in some cases must be different for anonymous (error page) and authenticated (real content) users. Some ISPs here still force Squid 2.5-STABLE10 on the users as a transparent proxy, and it does cache error pages.

Thus, if an anonymous user behind such a proxy receives a ""You are currently not logged in. You may want to do so now."" message and clicks the ""do so"" link, it again receives the cached error message instead of the desired page after logging in. Shift+Reload solves this.

The correct header that indicates that the content is indeed different for different users is ""Cache-Control: private"". It does solve the squid problem. Please use it instead of ""Cache-Control: must-revalidate"".

P.S. Suggestion to do so via web server configuration is invalid, as lighttpd can only add, not replace, headers.",patrakov@…
unscheduled Release,9457,Unsubmitted comments lost after attaching files,ticket system,0.11.6,enhancement,minor,,new,2010-06-23T18:04:02+02:00,2017-05-08T11:14:15+02:00,"While modifying assigned tickets of mine, I've noticed that if I add comments and then go to attach a file, when I selected the ""Back to Ticket#"" button at the top of the page, the attachment is saved but my un-submitted comments are erased.  Trac should save all modifications in memory until the changes are submitted.",andrew.c.martin@…
unscheduled Release,9265,Display HEAD when browsing latest revision,version control/browser,0.12dev,enhancement,trivial,,new,2010-04-24T16:59:07+02:00,2010-07-04T00:24:57+02:00,"Last week I updated to the newest 0.12dev.

I noticed that in the repo-browser view the revision number is now appended to the path shown in the left-above corner, e.g.

 source: /somepath/trunk '''@ 584'''

I think it would be useful when the text {{{HEAD}}} is appended in cases the shown rev-number is the latest revision (head revision) of the repo. Assuming that rev 584 is the head revision, above example would then be displayed as

 source: /somepath/trunk '''@ 584 (HEAD)'''
",Laurens Blanckenborg <laurens@…>
unscheduled Release,8480,[patch] Add relative date info to timeline,timeline,0.11.4,enhancement,normal,,new,2009-07-14T13:12:34+02:00,2015-12-19T17:03:07+01:00,"Currently when viewing the timeline the group headers only display a relative date info for ""today"" or ""yesterday"". The patch I've attached to this ticket also adds a relative date info in all other cases; it uses `dateinfo()` to create this info (see screenshot).

There may be a better solution (I'm not that familiar with Python) but this patch changes as few lines of code as possible.",sebastian@…
unscheduled Release,8005,syntax coloring in existing tickets stopped working,rendering,0.11.2.1,defect,minor,,new,2009-01-27T20:06:28+01:00,2015-07-11T04:47:23+02:00,"in my install of trac, syntax coloring was working properly for me, for example:
{{{
#!sql
select table_name
  from all_tables
 where owner = user
   and table_name like '%T';
}}}

however, i upgraded python from 2.5.2 to 2.5.4 and subversion (and python bindings) from 1.5.4 to 1.5.5.

now the TracSyntaxColoring for the sql blocks in existing tickets doesn't work properly.  the `#!sql` just gets swallowed and the code just displays as the default gray block with black text.

if i hit ""Preview"" on such a ticket, even without making any changes, the sql gets formatted correctly.  thereafter, if i refresh the ticket, it still shows with the proper formatting.

i would assume that this affects all other WikiProcessors as well.

other info:
 * windows
 * apache 2.2.8 with mod_wsgi 2.3
 * trac 0.11.2.1
 * genshi 0.5.1
 * pygments 1.0",jhn@…
unscheduled Release,7529,More extension points for reports,report system,0.11,enhancement,minor,,new,2008-08-13T17:29:40+02:00,2010-07-02T23:51:53+02:00,"We've written a small trac plugin, which extends from the main report module. It's main action is to tweak the sql used to generate the report, and then add some more fields into the report output. (The result is that the query can then run transparently across multiple postgres schemas, to give us an overview of several tracs)

With 0.10, we had to copy and paste a bit of the report module to get it all working, but not to much. With 0.11, we've had to copy loads more, as there are fewer extension points that are suitable.

The extension points that'd be really handy are:
 * return of something like get_info(), so we can easily alter the sql that'll be executed
 * something around the ""Structure the rows and cells"" step, so that we can add extra stuff onto rows. Perhaps split out the column based stuff, so you call a method per column?
 * make the template names not hard coded, so we can override them without needing to touch anything else (we want the normal report templates unchanged for other stuff!)",anonymous
unscheduled Release,7059,Use webcal:// for Outlook 2007 iCalendar compatability,roadmap,0.11b2,enhancement,minor,,new,2008-03-31T21:00:33+02:00,2017-03-12T11:53:16+01:00,"I know when using iCalendar files with Outlook 2007, if they're linked via a normal http:// link, they'll be opened as a static file with no knowledge of its online counterpart.  However, if opened via the webcal:// link, it will be recognized by Outlook as something that it can sync with and keep tabs on.

I'm not sure how widespread webcal:// use is in other iCalendar compatible applications, but I thought I'd toss it out there.",slicertool@…
unscheduled Release,6556,RSS feed is not valid,report system,0.11b1,defect,minor,,new,2007-12-26T15:34:36+01:00,2015-03-02T22:53:54+01:00,"I have an Trac 0.11b1 installation and want to subscribe to RSS feed for tickets i need to monitor.
But RSS feed is not visible within NetNewsWire Lite (v3.1b4). But its visible in Vienna (v.2.2.2.2212)...
So i make a decicion that RSS feed have some ""not-fatal"" error within ('cause NNW is know as strict RSS reader) while Vienna allow and display this feed.
I can't check feed with online validator - i have intraweb Trac so can't say exactly where is error is.
Feed from this site is displayed well in NNW (i try this link http://trac.edgewall.org/report/20?format=rss&USER=anonymous)",nilcolor+trac@…
unscheduled Release,6473,Negative revisions for changeset,version control/changeset view,devel,enhancement,minor,,new,2007-12-10T18:27:33+01:00,2015-05-26T20:55:39+02:00,"We use a continuous integration server that tags successful builds, so the last revision against trunk is generally useless for seeing what actually changed.  A tiny change, and we can now view revisions using a negative counter, e.g., !http://ourserver.com/trac/Project/changeset/-1 now brings up !r1393 if !r1394 was current.

{{{
Index: svn_fs.py
===================================================================
--- svn_fs.py   (revision 6308)
+++ svn_fs.py   (working copy)
@@ -431,6 +431,8 @@
         else:
             try:
                 rev = int(rev)
+                if rev < 0:
+                    return rev + self.youngest_rev
                 if rev <= self.youngest_rev:
                     return rev
             except (ValueError, TypeError):
}}}",tgmayfield@…
unscheduled Release,6078,[PATCH] Enabling multiple email notification for a single user.,notification,,enhancement,minor,,new,2007-09-24T15:42:43+02:00,2016-06-15T12:27:08+02:00,"Here is a simple patch to enable the possibility to provide multiple email addresses for a user. Once this patch is applyed, the user has just to write the multiple coma-separated addresses. He will receive notification on all the addresses. I've used that to provide multiple adresses (and so many people) behind components.

This patch works with the latest svn, as well as with the 0.10.X branches. I also have the equivalent for the 0.9 branch if you are interested.",christophe.sauthier@…
unscheduled Release,5866,"[patch] Workflow tweak: handle ""not-state"" transition specifications",ticket system,devel,enhancement,normal,,new,2007-08-13T15:27:47+02:00,2017-05-17T05:55:59+02:00,"I found myself wanting things like this in my `[ticket-workflow]`: 

{{{#!ini
reassign = * -> * 
reassign.operations = set_owner,leave_status 
reassign.permissions = TICKET_MODIFY 

needinfo = * -> needinfo 
needinfo.name = need info 
needinfo.operations = set_owner 
needinfo.permissions = TICKET_MODIFY
}}}


...but this would create two action options for a ticket in the 
""needinfo"" state: ""reassign and leave as needinfo"", and ""assign to new 
owner and leave as needinfo"" ...which are of course the same thing.  I 
wanted to be able to do this instead: 

{{{#!ini
needinfo = *,!needinfo -> needinfo 
needinfo.name = need info 
needinfo.operations = set_owner 
needinfo.permissions = TICKET_MODIFY
}}}
 
This would indicate that the ""needinfo"" state was a valid next state from every other state ''except'' ""needinfo"".  To make this work, make the following tweak to `/trac/ticket/default_workflow.py` (line 161):

{{{#!python
 if oldstates == ['*'] or status in oldstates:
}}}

...becomes... 

{{{#!python
 if ('*' in oldstates or status in oldstates) and (""!%s""%status not in oldstates):
}}}
 
I haven't tested this extensively, and even though it should be backwards-compatible... use with extra initial scrutiny.",Morris
unscheduled Release,4452,Graphical bar/pie charts for statistics viewing,general,,enhancement,minor,,new,2006-12-22T13:01:56+01:00,2015-08-06T13:05:13+02:00,"Hi, 

Being a S/W development project manager I'd love to see graphical statistics
(bar/pie charts) on various things such as:

- Number of issues at various stages of completion in different file/modules
- Trend graphs on number of new bugs vs fixed ones over the last day, week, month...
- Number of bugs assigned to the various project developers
- Number of subversion commits per file/module (file/module vs other files/modules  or for one particular file/module over its historical time span etc) 
- etc, etc!

There are loads of interesting statistical information that could be visualized graphically very nicely!

/Magnus",anonymous
unscheduled Release,4329,diff does not treat TAB as whitespace,version control/browser,0.10.3,defect,minor,,new,2006-12-04T15:44:59+01:00,2016-02-25T05:54:51+01:00,"Checking the box to ignore whitespace still ends up highlighting changes from TAB to space(s).
",anonymous
unscheduled Release,3062,[PATCH] tracd should log to syslog when daemonized,web frontend/tracd,0.9.5,enhancement,minor,,new,2006-04-19T23:54:22+02:00,2015-12-19T17:00:25+01:00,When running ''tracd -d'' it would be really nice if it logged to syslog so that one could look at what is going on as it runs.,edahlman@…
unscheduled Release,2619,Message-IDs generation should be a little more randomized,notification,0.10.3,defect,minor,,new,2006-01-17T02:19:22+01:00,2015-05-26T20:55:39+02:00,"The way message-ids of notification emails are generated is a little too simple to my mind. Maybe, you could add a little more randomness with the random module ?",jeremie.corbier@…
unscheduled Release,1996,Add a report formatting option to format timestamps,report system,devel,enhancement,normal,,new,2005-08-31T15:29:22+02:00,2010-06-25T15:44:33+02:00,"Based on the code in source:/trunk/trac/ticket/report.py it appears that a subset of 4 fields are automatically formatted as date strings. I am not sure what formatting option you can make available (already use _ and !__ etc) but it would be nice to be able to dictate what columns are formatted. As far as I can tell SQLite does not include date formatting in their SQL functions. Probably an easy fix.

(for reference, I am trying to add the last comment date).",ebrown@…
unscheduled Release,1901,Add contains option to milestone filter in custom query,query system,devel,enhancement,minor,,new,2005-08-09T21:34:28+02:00,2022-03-06T04:28:58+01:00,"I use similar milestone names of alpha, beta, and production releases. For example:
  * 1.0ph1 (alpha)
  * 1.0ph5 (beta)
  * 1.0 (production release)

It would be very useful if I could use the custom query to accumulate all the tickets of a release. Unfortunately, the milestone filter currently only allows is/is not. Adding a contains option would let me do this. ",anonymous
unscheduled Release,991,Timeline Ticket messages should strike out the ID if closed,timeline,0.8,defect,minor,,new,2004-11-24T23:03:46+01:00,2022-02-12T23:05:37+01:00,"It would be very useful if all ""Ticket""-type messages on the timeline would strike out the ID for closed tickets.

For example, in this message:

""Ticket #987 created by mdc @ manbw.dk""

If Ticket #987 has since been resolved, the timeline ""Ticket #987 created"" message should strike out the ""#987"" -- even if it's a ""created"" message.

This would convey more information: That the ticket was created but has since been closed.",Adrian Holovaty <holovaty at gmail>
unscheduled Release,653,Form controls are over-styled,general,0.7.1,defect,minor,,new,2004-07-24T17:03:40+02:00,2016-02-06T13:57:16+01:00,"The default Trac ""theme"" applies a number of CSS styles to form controls, such as text inputs, buttons and fieldsets. The problem with this is that it is '''impossible''' for customized installations to get the default look of form controls back by simply overriding the CSS styles. Instead, the form-related styles would need to be removed or commented out from the Trac stylesheet, thus making updates to newer versions of Trac harder.

I believe we should consider leaving the styling of form controls up to the user agent. Styling of fieldsets is okay IMHO, setting widths and margins on form controls is also okay, but it starts getting problematic when modifying borders and background color, and also when setting the padding of form controls.

Opinions?",Christopher Lenz
unscheduled Release,642,RSS feed with all events for the tickets in a report,ticket system,0.7.1,enhancement,normal,,new,2004-07-22T00:13:54+02:00,2015-05-26T20:55:39+02:00,To be able to track all changes of the tickets in the for example My Tickets report. ,anonymous
unscheduled Release,615,Change default wiki syntax,wiki system,0.7.1,enhancement,normal,,new,2004-07-12T16:21:11+02:00,2015-06-09T14:06:49+02:00,"The wiki supports several different formats like restructured text and html.

It would be nice if it would be possible to change the default syntax that is
used in the wiki. So that you could for example use restructured text without the `{{{ }}}` blocks.

",toni
unscheduled Release,217,XML-RPC/SOAP/etc. interface,general,0.6,enhancement,normal,,new,2004-04-01T00:04:00+02:00,2019-08-11T07:31:50+02:00,It would be kinda nice to have an interface for Trac that would allow people to develop things like allowing tickets to be reported from within an application.,jon@…
unscheduled Release,65,Purge old versions of wiki pages,admin/console,0.5.1,enhancement,normal,,new,2004-02-16T11:41:15+01:00,2018-05-18T05:24:52+02:00,`trac-admin` should have a command to purge all but the last X versions of a wiki page.,Jonas Borgström
unscheduled Release,11232,The favicon could show the status of the page,rendering,,enhancement,trivial,,new,2013-07-06T23:48:47+02:00,2013-08-07T00:29:05+02:00,"The favicon.ico could be used to reflect the current status of the project.

If the project currently does have serious bugs, it could be rendered in red,
while if everything is OK, it could be rendered in green.

I suggest putting a small colored bulb on the icon.

Imho the favicons are usually cached by the browsers,
but are updated as soon as you visit the page again.

So this would not make for an automated notification,
but it would reflect the state when you last visited trac.

I usually place a link to trac on my bookmarks bar,
It would be nice to use that as a reminder of the current state.

In the /report/ section it should reflect the color of the topmost entry displayed.
This could also work with custom reports.

It might also be useful for the /ticket/ section.
when a ticket is closed, a green checkmark might be added to the icon.

How to implement that?
- Deliver the favicon on a url related to the page (aka /report/1/icon.ico)
- add a filter to modify the icon, based on the context available at that page

enjoy!
















",eike@…
unscheduled Release,9602,[PATCH] auto-reload fail by design,general,0.11.7,defect,minor,,new,2010-09-03T08:26:47+02:00,2022-03-04T08:15:41+01:00,"It is rather funny that nobody spotted it before, but.. autoreload option designed for development mode actually stops to work once you have a syntax error in your script and the script fails to load.

[browser:branches/0.11-stable/trac/util/autoreload.py@7889]

How does this happen. The normal flow with --auto-reload is to start new process for Trac and keep current process solely for monitoring how child behaves. If the child exits with the error code 3, it is restarted. Child itself runs two threads - first it creates thread where a main function is executed. This function processes requests and as a side effect imports all required files filling sys.modules list (shared with main thread, because, well, everything is shared between threads). Main thread then goes into infinite loop to periodically check timestamps of files in sys.modules and exit with error code 3 if timestamp mismatches.

Now the problem. '''If there is a syntax error in .py file''' it is not added into sys.modules and will not be checked to restart child process when the error is fixed.

P.S. I've added it to 0.11.7, because I'd like to see any fix in 0.11. It will be handy for exploring plugins behavior when porting them to 0.12
",anatoly techtonik <techtonik@…>
unscheduled Release,7651,Allow wildcards in permission add/remove,admin/web,0.12dev,enhancement,normal,,new,2008-09-19T01:25:08+02:00,2017-01-20T09:42:57+01:00,"This is a nice feature I'll like to have, I will code a patch if there is interest.

Basically every time I set up a new trac I need to go back to TracPermissions and reread everything to build a list of permissions and use trac-admin to get it up, in the form of a long list of permissions.

So I'm suggesting we should add a * support

Example usage. with trac-admin

{{{
$ trac-admin <env> permission add *_VIEW 
$ trac-admin <env> permission add TICKET_* #not that useful was we have TICKET_ADMIN but....
}}}

On the webadmin we'll have a second box, not the dropdown where you will type *_VIEW and it will give the user/group all those permissions, instead of having to make 11 requests.

Another option for the webadmin will be to reuse the ""click grid"" so you could click all the permissions then set the user/group and click a ""add permissions button"" ",jorge.vargas@…
unscheduled Release,6014,"Pre/Post processing of the attachments (compression,virus-check,etc)",attachment,,enhancement,minor,,new,2007-09-12T10:01:45+02:00,2015-05-26T20:55:39+02:00,"I would be so happy if it was possible to specify some pre/post-storing processing, launched when a new attachment is made (to a ticket or a wiki) - and similarly, some pre-reading process, of course.

My goal is to save some disk-space on the server (ok, I know - disk are cheap now, but...) by doing a simple bzip on the attached files (and the reverse operation when the files are read)...[[BR]]
(users of my  trac site have to regularly provide large logs with their tickets, but I can't ask them to do some compression before (specially with such strange things like bzip): they are not computer scientist, and they are quite impatient persons !)

But such feature can also be used for other purpose... like virus detection?",florianseydoux@…
unscheduled Release,4798,permission groups in Grant Action Field,admin/web,0.10.3,enhancement,minor,,new,2007-02-21T10:43:35+01:00,2015-05-26T20:55:39+02:00,"It would be nice when new created permission groups [[BR]]
would be selectable in the Grant Permission Action field


",eric@…
unscheduled Release,3257,Indicate recently updated items,general,none,enhancement,minor,,new,2006-06-13T00:38:21+02:00,2015-05-26T20:55:39+02:00,"Could a color or a font style of a rendered [wiki:TracLinks TracLink] change or some icon appear next to it if the target object has changed in the past say ''5'' days? If objects such as Wiki pages, tickets and source code revisions are cached, it would not be very taxing to reflect ''freshness'' of an item somehow in Trac's views. This would be especially handy for Wiki page links and ticket links. For the latter, TracQuery already keeps track (no pun intended) of last known ticket states, and reflects changes in those states with different font styles.",s.lipnevich@…
unscheduled Release,2644,Link to ticket query page from search page,search system,0.9.3,enhancement,trivial,,new,2006-01-20T00:45:17+01:00,2015-05-26T20:55:39+02:00,Many new Trac users who go to the search page may be better served by the custom query page. It would be nice to have a note on the search page that mentions it.,Bruce Christensen <trac@…>
unscheduled Release,1549,Save/restore/add reports via trac-admin,report system,devel,enhancement,normal,,new,2005-05-13T16:00:55+02:00,2015-12-07T02:24:58+01:00,"Implementing a customized workflow system in Trac affects almost every feature (timeline, roadmap, reports, tickets, queries) because ticket statuses can be different. While all features can be abstracted from ticket statuses, reports cannot.

A solution for this problem is to give administrator a possibility to update reports when a workflow is changed.

It requires the following changes:
 1. {{{trac-admin}}} shall allow admins to save existing reports in a file;
 1. {{{trac-admin}}} shall allow admins to add new reports from a file;
 1. {{{trac-admin}}} shall allow admins to replace workflow-specific reports from a file.

While (1) and (2) is understandable, it is necessary to define how to distinguish between a report that should be replaced during workflow change (e.g. ''system report'') and a report that should be kept during workflow change (e.g. ''user report'').

Possible solutions:
 1. Classify all reports as ''system'' and ''other''. User is not able to change report type. By default, all reports that are created by Trac are marked as ''system''. When user creates a report, it is marked as ''other''. When user edits a ''system'' report, Trac shows a warning that the changes will be lost after workflow change.
   * It requires changes in database (new column ''type'' for table ''report'').
   * When system reports are replaced, Trac deletes existing system reports first, then creates reports from a file trying to keep recommended report ID that is specified in a file.
 1. Reserve first ''N'' reports as ''system'' (e.g. N=30). When user creates a report, it is created in user area and has id>N.
   * It requires an upgrade script that moves all reports created by user behind N. As result, report references in wiki will be lost.

{{trac-admin}}} commands:
 * {{{report save (system|user) <filename>}}} - save system or user reports to a file;
 * {{{report add (system|user) <filename>}}} - add system or user reports from a file;
 * {{{report replace (system|user) <filename>}}} - replace system or user reports from a file.

Thus, when a workflow needs to be changed for a project, admin should take the following steps:
 1. Specify new workflow in configuration;
 1. Replace system reports for a project.

Workaround until the feature is not implemented: Update reports by direct database editing using {{{sqlite}}}.

''(In preparation to #869)''",pkou at ua.fm
unscheduled Release,329,Adding support for Microsoft SQL Server as a backend DB,database backend,none,enhancement,major,,new,2004-05-06T22:19:38+02:00,2018-09-23T15:59:20+02:00,Requesting the inclusion of the Microsoft SQL Server 2000 database.,anonymous
 Release,12188,Suggest / autocomplete keywords in ticket properties,ticket system,,enhancement,normal,,new,2015-08-27T13:58:40+02:00,2023-02-22T22:06:48+01:00,Similar to the requests for users (#7628) and milestones (comment:12:ticket:7628 / #1901) it would be a huge time saver to get suggestions and autocompletion for ''keywords'' that have been used before on other tickets.,anonymous
 Release,12156,Ticket query renderer extension point,query system,,enhancement,normal,,new,2015-08-06T22:01:47+02:00,2022-07-18T12:31:04+02:00,"I propose adding a new extension point `ITicketQueryRenderer`.

{{{#!python
class ITicketQueryRenderer(Interface):
    """"""Extension point interface for components that add HTML renderers of
    ticket query results.""""""

    def get_ticket_query_formats(self):
        """"""Return a list of `(format, format_label)` tuples.""""""

    def render_ticket_query(self, context, query, query_string, tickets, format):
        """"""Render the ticket query in the specified format.""""""
}}}

The query page could then allow selecting one of the available implementations from a dropdown and display the query results in various different ways.

The existing tables view could become the default implementation. The existing progress bars from the roadmap could provide a second implementation. New third-party plugins could provide further alternate views like pie charts, burndown charts, Kanban boards etc.

The roadmap could perhaps also reuse these renderers to display the milestones in the various ways.

The TicketQuery plugin could also use these renderers, selected by the existing `format` parameter (which already allows `format=table` and `format=progress`).

(Third-party visualization plugins already exist of course, but this extension point would allow them to be instantly deeply integrated with both the ticket query system, and the roadmap, make them usable in any wiki content via macro for free.)

----
Further considerations:

Possibly the batch editing could be separated out.

The existing [wiki:TracDev/PluginDevelopment/ExtensionPoints/trac.ticket.roadmap.ITicketGroupStatsProvider ITicketGroupStatsProvider] extension point could perhaps eventually be deprecated and removed. In its current form it seems to enable only very limited possibilities, potentially also provided by this new extension point.
",Peter Suter
 Release,12100,last_visit should update each time the user logs in,general,,enhancement,normal,,new,2015-06-04T00:30:19+02:00,2015-06-04T00:40:39+02:00,"It has been discussed on multiple occasions, most recently in th:comment:5:ticket:12302, that `last_visit` is often not a very useful indicator of when the user has last visited Trac. The value is only updated when the session data is saved. Would it make sense to update the value when the user authenticates?: [browser:/tags/trac-1.1.5/trac/web/auth.py#L130]. That might at least get us one step closer to having a value that indicates how recently the user has been seen.",Ryan J Ollos
,13493,"Make compatible with Python 3, Mercurial 6.2+ and Trac 1.5.3+",plugin/mercurial,,defect,normal,Jun Omae,assigned,2022-08-31T09:08:17+02:00,2022-09-11T00:59:20+02:00,[https://www.mercurial-scm.org/wiki/Release6.2 Mercurial 6.2] has been released on 2022-07-11. The release supports only Python 3.6+ but mercurial plugin doesn't support Python 3 neither Trac 1.5.3+.,Jun Omae
,13389,Wikicreole line breaks not working in cases with colons?,wiki system,1.4.2,defect,normal,,new,2021-04-11T09:46:59+02:00,2021-04-11T12:58:23+02:00,"Having a weird issue with the wikicreole line break syntax.

===== Issue wiki markup
{{{
Mon-Fri 8:30am-7pm\\Sat 11am-8:30pm\\Sun 10am-5:30pm

Mon-Fri 8:30am-7:00pm\\Sat 11:00am-8:30pm\\Sun 10:00am-5:30pm

Mon-Fri 8:30am-7pm\\Sat 11am-830pm\\Sun 10am-5:30pm
}}}

===== Issue rendering

Mon-Fri 8:30am-7pm\\Sat 11am-8:30pm\\Sun 10am-5:30pm

Mon-Fri 8:30am-7:00pm\\Sat 11:00am-8:30pm\\Sun 10:00am-5:30pm

Mon-Fri 8:30am-7pm\\Sat 11am-830pm\\Sun 10am-5:30pm

These don't all render correctly. The first just the first line break renders.

In the second none of the line breaks render.

In the last one I removed the `:` in `8:30pm` and then it renders correctly. On the trac instance where I encountered this I also noticed that if I put spaces around the `\\` it'll render correct. And I can replace the `:` with `&#58;` and make it work (which is a feature of the [https://trac-hacks.org/wiki/WikiExtrasPlugin WikiExtras] plug-in).

I'm guessing I'm looking for some edge case in the wiki parser.",benjamin.a.lau@…
,13222,Add conditions for ticket-custom format date,general,1.2.3,defect,normal,,new,2019-11-12T14:33:48+01:00,2019-11-12T14:37:12+01:00,"As mentioned in comment:6:ticket:13216:

There is no way to create a query for ""not set"" or ""not between"" in Trac. It is only possible to create query for ""duedate between dateA and dateB""…

There could be more filter conditions for the date format like the following. This applies also to core fields like Created and modified. I'm going to create the examples based on the ""Created"" field:

* Created between 2019-10-01 and 2019-10-25 (already available, just for completeness)
* Created not between 2019-10-01 and 2019-10-25
* Created after 2019-10-01
* Created before 2019-10-01
* Created on 2019-10-01

For ticket-custom there could also be some
* custom duedate on """"

More easily, taken from my mail clients (Evolution) filter engine, you could just drop the between rule and implement:

Date <Created> {is,is not,is before,is after} <date>

Thus any between-rule would be a done by a set of 2 rules using before and after.
",massimo.b@…
,13089,"Custom query: filter by ""component starts with...""",query system,,enhancement,normal,,new,2018-10-16T01:01:37+02:00,2021-09-27T00:51:06+02:00,"The JOSM Trac instance defines about a dozen ""Core xxx"" and a hundred ""Plugin xxx"" components.

Currently Trac only allows to filter queries by ""equals"" or ""not equals"" criteria. Could we have two new choices to search for components starting (or not) with a string?",vincent.privat@…
,13051,The initenv process of trac-admin requires more than just 'psycopg2' and 'trac',general,1.2.2,defect,major,,reopened,2018-06-26T06:57:11+02:00,2022-06-15T18:54:48+02:00,"I figured out the initenv process of trac-admin requires more than just 'psycopg2' and 'trac' to use the postgresql driver, the previous week of last week.

Either it is a bug or the wiki page for database backends is missing an important line (DatabaseBackend).

I somehow figured out how to make it work after some digging: I had to also install !TracTags from Python Package Index. otherwise I'd get messages like: `TracError: Unsupported database type ""postgres""`

What I did:
{{{#!sh
useradd -mrd /var/lib/g9-trac g9-trac
mkdir -p /var/log/g9

apt install -y virtualenv
# virtualenv -p /usr/bin/python3 /var/lib/g9-trac/ve-trac
su - g9-trac
virtualenv -p /usr/bin/python2 /var/lib/g9-trac/ve-trac
source /var/lib/g9-trac/ve-trac/bin/activate

pip install trac
#it's weird the psycopg2 driver worked only after I installed TracTags
pip install psycopg2

trac-admin /var/lib/g9-trac/trac-g9 initenv Gxxxxx9 'postgres://g9-trac:passphrase32!@localhost:5432/trac-g9'
}}}

Thank you,
Gunwoo Gim",wind8702@…
,13033,Colored test output,general,,enhancement,normal,,new,2018-05-28T20:33:24+02:00,2018-05-28T20:33:24+02:00,"Unit test failures are nicer to read when the diff is syntax highlighted.

Very primitive hack:
{{{#!diff
diff -r 016eaf50cbd9 trac/test.py
--- a/trac/test.py	Sun May 27 21:13:46 2018 +0000
+++ b/trac/test.py	Mon May 28 20:24:04 2018 +0200
@@ -291,6 +291,39 @@
         self.fixture = fixture
 
 
+try:
+    import pygments
+    import pygments.lexers
+    import pygments.formatters
+    import colorama
+    colorama.init()
+    hascolorhighlighting = True
+    formatter = pygments.formatters.TerminalFormatter(style='trac')
+    lexer = pygments.lexers.DiffLexer()
+except ImportError:
+    pass
+
+
+class ColoredTextTestResult(unittest.TextTestResult):
+    def __init__(self, *args, **kwargs):
+        unittest.TextTestResult.__init__(self, *args, **kwargs)
+
+    def printErrorList(self, flavour, errors):
+        for test, err in errors:
+            self.stream.writeln(self.separator1)
+            self.stream.writeln(""%s: %s"" % (flavour,self.getDescription(test)))
+            self.stream.writeln(self.separator2)
+            if hascolorhighlighting:
+                print(""%s"" % pygments.highlight(err, lexer, formatter))
+            else:
+                self.stream.writeln(""%s"" % err)
+
+
+class ColoredTextTestRunner(unittest.TextTestRunner):
+    def __init__(self, *args, **kwargs):
+        unittest.TextTestRunner.__init__(self, resultclass=ColoredTextTestResult, *args, **kwargs)
+
+
 # -- Database utilities
 
 def get_dburi():
diff -r 016eaf50cbd9 trac/tests/wikisyntax.py
--- a/trac/tests/wikisyntax.py	Sun May 27 21:13:46 2018 +0000
+++ b/trac/tests/wikisyntax.py	Mon May 28 20:24:04 2018 +0200
@@ -19,7 +19,7 @@
 from trac.mimeview.api import RenderingContext
 from trac.resource import Resource
 from trac.search.web_ui import SearchModule
-from trac.test import MockPerm, mkdtemp
+from trac.test import MockPerm, mkdtemp, ColoredTextTestRunner
 from trac.web.href import Href
 from trac.wiki.tests import formatter
 
@@ -201,4 +201,4 @@
     return suite
 
 if __name__ == '__main__':
-    unittest.main(defaultTest='test_suite')
+    unittest.main(defaultTest='test_suite', testRunner=ColoredTextTestRunner)
}}}

All other `unittest.main` also have to be updated.

A new dependency `colorama` is optionally required for this.

Using `print` instead of using `stream` is probably bad.

Always using `DiffLexer` instead of custom lexer depending on error is probably bad.

Always using `TerminalFormatter` instead of limited color formatter is probably bad.

Maybe this is too much effort to really do nicely. But maybe you like colors.",anonymous
,12959,Blame links to trunk version of code,general,,defect,normal,,new,2017-11-29T20:57:04+01:00,2017-11-29T20:57:04+01:00,"Example, navigate to [browser:/tags/trac-1.2/trac/ticket/templates/admin_components.html] and click blame. The link directs to `/browser/trunk/trac/ticket/templates/admin_components.html?annotate=blame`.",Ryan J Ollos
,12907,Avoid duplicate references by commit_updater,ticket system,,enhancement,normal,,new,2017-09-06T11:27:52+02:00,2017-09-10T05:38:20+02:00,"When creating new branches out of a git repository with commits with references to ticket, CommitTicketUpdater will happily add new, duplicate, comments.

Attached patch for 1.0 adds two features along with their toggles :

1. detection of comments that already reference the changeset that is being ''added'', and skips the update in that case. So no new comment nor email notification;
1. and the disabling of email notifications when a changeset references to a closed ticket. The comment in the ticket **is** added however.

Point number 2 is specially helpful for the case where an svn repository is migrated to git: even though it is nice to have the reference to the git commit, it's useless to spam people about ancient commits.
",Raphael Geissert <atomo64+trac@…>
,12692,ExtensionOption raises exception when Component not enabled,general,,defect,normal,,new,2017-02-18T20:11:27+01:00,2017-02-18T20:11:27+01:00,"I haven't confirmed the behavior reported in gmessage:trac-users:Abt3466LX24/ZdSAyDCcDAAJ, but I'm pretty sure I've seen this before. It's been observed that [th:browser:usermanagerplugin/0.11/tracusermanager/api.py@13677:156#L147 UserManager.attribute_provider] raises an exception for `SessionAttributeProvider` not found even though the component is not enabled.",Ryan J Ollos
,12648,ValueError: invalid literal for int() with base 10: '700/',attachment,,defect,normal,,new,2017-01-03T08:05:21+01:00,2018-10-16T12:52:38+02:00,"Found this traceback in the logs:

{{{
2017-01-02 15:34:02,194 Trac[main] ERROR: Internal Server Error: <RequestWithSession ""GET '/timeline?from=2010-05-09T21'"">, referrer None
Traceback (most recent call last):
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/web/main.py"", line 562, in _dispatch_request
    dispatcher.dispatch(req)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/web/main.py"", line 269, in dispatch
    iterable=chrome.use_chunked_encoding)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/web/chrome.py"", line 1115, in render_template
    encoding='utf-8')
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 183, in render
    return encode(generator, method=method, encoding=encoding, out=out)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/output.py"", line 58, in encode
    for chunk in iterator:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/output.py"", line 339, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/output.py"", line 826, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/output.py"", line 670, in __call__
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/output.py"", line 771, in __call__
    for kind, data, pos in chain(stream, [(None, None, None)]):
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/output.py"", line 586, in __call__
    for ev in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/web/chrome.py"", line 1321, in _strip_accesskeys
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/web/chrome.py"", line 1310, in _generate
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 686, in _unmark
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 1145, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 714, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 682, in _mark
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 686, in _unmark
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 1081, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 117, in __iter__
    event = self.stream.next()
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 714, in __call__
    for mark, event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/filters/transform.py"", line 682, in _mark
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/markup.py"", line 378, in _match
    ctxt, start=idx + 1, **vars):
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/markup.py"", line 378, in _match
    ctxt, start=idx + 1, **vars):
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/markup.py"", line 327, in _match
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/base.py"", line 545, in _flatten
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/path.py"", line 588, in _generate
    subevent = next()
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/markup.py"", line 316, in _strip
    event = next()
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/base.py"", line 545, in _flatten
    for kind, data, pos in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/core.py"", line 288, in _ensure
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/path.py"", line 588, in _generate
    subevent = next()
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/base.py"", line 605, in _include
    for event in stream:
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/markup.py"", line 316, in _strip
    event = next()
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/base.py"", line 565, in _flatten
    result = _eval_expr(data, ctxt, vars)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/base.py"", line 277, in _eval_expr
    retval = expr.evaluate(ctxt)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/genshi/template/eval.py"", line 178, in evaluate
    return eval(self.code, _globals, {'__data__': data})
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/timeline/templates/timeline.html"", line 59, in <Expression u""event.render('title', context)"">
    <span class=""time"">${format_time(event.date, 'short')}</span> ${event.render('title', context)}
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/timeline/web_ui.py"", line 367, in <lambda>
    provider.render_timeline_event(context, field, event)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/attachment.py"", line 624, in render_timeline_event
    title = get_resource_summary(self.env, attachment.parent)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/resource.py"", line 347, in get_resource_summary
    return get_resource_description(env, resource, 'summary')
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/resource.py"", line 333, in get_resource_description
    return manager.get_resource_description(resource, format, **kwargs)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/ticket/api.py"", line 567, in get_resource_description
    ticket = Ticket(self.env, resource.id)
  File ""/srv/trac-hacks.org/pve/local/lib/python2.7/site-packages/trac/ticket/model.py"", line 69, in __init__
    tkt_id = int(tkt_id)
ValueError: invalid literal for int() with base 10: '700/'
}}}

The issue can be reproduced on navigating to the URL (https://trac-hacks.org/timeline?from=2010-05-09T21).

There's an entry in the database for attachment `b.php~` on resource ticket `#700/`: https://trac-hacks.org/search?q=b.php%7E

I'm guessing the attachment doesn't exist, but the problem could also be that the parent resource id `700/` doesn't exist and is an invalid resource id.",Ryan J Ollos
,12598,Allow preference panel to be hidden from anonymous users,general,,enhancement,normal,,new,2016-09-22T07:39:45+02:00,2017-05-04T12:49:24+02:00,"I was reminded by looking at the [https://desi.lbl.gov/trac DESI Trac site] of an issue I encountered on a Trac site that I helped maintain before it was retired. You can see on the DESI site that all permissions have been revoked for //anonymous//. However, since the site is publicly accessible, anonymous sessions will be created in the database. The sessions, and the ability to modify  [https://desi.lbl.gov/trac/prefs preferences], serve no purpose since //anonymous// has no permissions. 

On the site I previously managed, I was told the following by the original maintainer:

 Trac has the concept or an authenticated vs anonymous users.  By default an anonymous user can view some pages, while a user must be authenticated to make changes.

 Since our trac is accessible from the Internet, I set up permissions such that you must be authenticated to have any permissions (note: the site uses form-based auth with !AccountManager).

 However, you can still try and access Trac, creating entries in session table. Specifically, a DOS can fill up this table.

It sounds like other changes are needed in addition to preventing access to `/prefs`. Maybe an `allow_anonymous_sessions` option is appropriate?

It's possible to work around the issue by using HTTP authentication and requiring authentication to access `/`, but a change like that described above is probably needed for form-based authentication.",Ryan J Ollos
,12512,Support relative path in ImageMacro when rendering wiki page in repository browser,wiki system,,enhancement,normal,,new,2016-06-09T09:20:40+02:00,2016-06-09T10:37:58+02:00,"We have a number of (trac-)wiki pages that we'd like to manage in our svn repository, but have them rendered in our trac. Unfortunately, the !ImageMacro doesn't seem to support relative paths - this would be extremely useful since we have those documents in several branches, hence an absolute path is a no-go.

I've attached a patch that adds support for that so you can now refer to images like this:
{{{[[Image(../pics/Example1.png, 250px)]]}}}",hoessler@…
,12461,Move svn_authz or rename to authz_policy,version control,,enhancement,normal,,new,2016-04-21T19:42:07+02:00,2016-04-21T19:42:07+02:00,"While `svn_fs` and `svn_prop` were moved to `tracopt.versioncontrol.svn`, `svn_authz` remains in `trac/versioncontrol`. I think the justification was that `svn_authz` can be used for fine-grained access control in the repository browser for any type of repository. Note however that `tracopt.perm.authz_policy` can also be used for this purpose. 

If the module is not svn-specific, we could consider renaming the modules to `authz_policy` and moving the options from the `[svn]` section to the `[repositories]` section. If the module should remain svn-specific, we should consider moving it to `tracopt.versioncontrol.svn`.

See also #12442.

I also plan to look at whether more code can be shared between `tracopt.perm.authz_policy` and `trac.versioncontrol.svn_authz`. I would like to add an `AuthzFile` class that can be used for reading and writing an `AuthzFile`, which I can use in th:TracSvnAuthzPlugin (which is important because it's a dependency of th:TracHacksPlugin, but much of the functionality of !TracSvnAuthzPlugin is currently broken).",Ryan J Ollos
,12457,Some options not written to trac.ini when AccountManagerPlugin is installed,general,,defect,normal,,new,2016-04-18T14:30:12+02:00,2018-07-21T20:57:35+02:00,"This issue reminds me of #11520.

To reproduce, create environments before and after installing !AccountManager:
{{{#!sh
$ virtualenv pve
$ . pve/bin/activate
$ pip install svn+https://svn.edgewall.org/repos/trac/trunk
$ trac-admin trac1 initenv ""project"" sqlite:db/trac.db
$ pip install svn+https://trac-hacks.org/svn/accountmanagerplugin/trunk
$ trac-admin trac2 initenv ""project"" sqlite:db/trac.db
$ diff trac1/conf/trac.ini trac2/conf/trac.ini
}}}

Here is the diff:
{{{#!diff
+[account-manager]
+account_changes_notify_addresses = 
+
 [attachment]
 max_size = 262144
 max_zip_size = 2097152
@@ -195,13 +198,10 @@
 
 [trac]
 auth_cookie_domain = 
-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
@@ -212,7 +212,6 @@
 default_timezone = 
 genshi_cache_size = 128
 htdocs_location = 
-ignore_auth_case = disabled
 jquery_location = 
 jquery_ui_location = 
 jquery_ui_theme_location = 
}}}

The options that are redefined on `acct_mgr.web_ui.LoginModule` are missing from trac.ini:  [th:browser:accountmanagerplugin/trunk/acct_mgr/web_ui.py@15454:315,319,323,332#L305].

Also, an `Option` that is defined on `acct_mgr.notification.AccountChangeNotification` is mysteriously present. The `Option` instance is defined on a class that doesn't inherit from `Component`: [th:browser:accountmanagerplugin/trunk/acct_mgr/notification.py@15454:70#L67].
",Ryan J Ollos
,12453,branch/tag/bookmark name should be decoded as utf-8,plugin/mercurial,,defect,normal,,new,2016-04-12T13:19:32+02:00,2016-04-13T02:27:15+02:00,"For example, when I set `hg.encoding=cp932` (Japanese Shift_JIS),
I see broken Japanese tag/branch/bookmark names in repo browser.

We should use utf-8 (=`HGENCODING`) to decode branch/tag/bookmark string,
not with `hg.encoding` (for file name).

I have two patches for this issue.

- https://bitbucket.org/gotoh/trac-mercurial-plugin-mod/commits/4b0488c954ca8d7174e816c10d39b4c7fc8cfc58
- https://bitbucket.org/gotoh/trac-mercurial-plugin-mod/commits/67197d6a98feb002f9107d59110c11b48cb952c8



",shunichi.goto@…
,12422,Highlight specified changesets in Revision Log,version control/log view,,enhancement,normal,,new,2016-03-29T10:00:33+02:00,2016-03-29T10:00:33+02:00,"[[TracLinks#VersionControlrelatedlinks|TracLinks]] allows to highlight an arbitrary set of lines for `source:` links:
> `source:/some/file@123:10-20,100,103#L99` - highlight lines 10 to 20, and lines 100 and 103, and target line 99 

(This turns into a `?marks=` parameter, so source:trunk/COPYING@:8 can also be written as source:trunk/COPYING?marks=8)

It would be nice if there was a similar feature for `log:` links, where an arbitrary set of changesets would be highlighted (while still displaying them in context of the other unhighlighted changesets).

For example log:rjollos.git@68feb63e?marks=fc1db222 could display the log as it does now, but highlight the line of changeset `fc1db222`. This would be very useful for discussions, code review etc.

(Adding a special abbreviation syntax for `?marks=` like `@:` seems more difficult, but is not needed.)",anonymous
,12345,Conflicting form cookies on simultaneous first requests with same browser,general,,defect,normal,,new,2016-02-03T09:49:42+01:00,2016-02-03T10:47:59+01:00,"Steps to reproduce:
1. Open a new browser session.
  * For example a new private Firefox window or incognito Chrome window.
2. Open two tabs with a Trac form at the same time.
  * For example put http://trac.edgewall.org/demo-1.1/prefs in a bookmark toolbar and quickly open it twice with ''Ctrl+Click'' before the first tab is loaded.
  * More realistic example: Put all your favorite Trac pages that you need every day in a bookmark folder and ''Open All in Tabs''.
3. Submit both forms.

Expected behavior: Both form submissions succeed.

Observed behavior: One of the form submissions will fail with the error message `Missing or invalid form token. Do you have cookies enabled?`.

Maybe this sounds like a duplicate of many other tickets, but I have not seen this exact problem. As far as I understand, this is not a misconfiguration or a browser bug, but an inherent limitation of the cookie / form parameter mechanism:
* When opening a new browser session the secure cookie `trac_form_token` is not yet known.
* Opening multiple Trac tabs simultaneously without this cookie, the server generates new tokens for each request.
* The browser receives these tokens, but only keeps the cookie from one of those responses!
* The tokens embedded in the HTML of the other responses do not match that cookie value.",pano
,12262,CSS rules for wiki controls can conflict with wiki content,wiki system,1.0.9,defect,normal,,new,2015-12-02T23:18:14+01:00,2016-02-06T11:30:51+01:00,"How to reproduce:

1. Edit any wiki page

2. Add two headings to the page, one called 'save', the other 'Save'
{{{
= save
= Save
}}}

3. Preview the page

4. Notice how the 'save' heading is indented, while 'Save' is not.

wiki.css has the rule
    #delete, #rename, #save { margin-left: 3em }
to indent the 'Submit Changes' input element among others, but headings are given the ID of their content, so there's a conflict here with the 'save' heading, and a number of other possible heading titles.

This could be fixed by adding a element selector to the wiki CSS rules
    input#save
or using a new class for wiki controls and divs and adding it to the CSS rules, or renaming the ID of the controls, or any number of other ways.",anonymous
,4560,IE7 Missing or invalid form token. Do you have cookies enabled?,general,0.10.3,defect,major,,new,2007-01-18T19:19:42+01:00,2017-03-26T13:52:12+02:00,"I am getting the following error while trying to submit settings on IE7

{{{
Missing or invalid form token. Do you have cookies enabled?
}}}

Works ok in firefox.",anonymous
,12984,Incorrect placement of line breaks inside HTML <pre> tags,wiki system,,defect,trivial,,new,2018-02-25T15:36:51+01:00,2022-05-09T08:47:47+02:00,"Hello,
We're using Trac 1.2.2.

When entering on a Wiki page:

{{{
#!sh
# Running a jar
java [Java options] -jar josm-tested.jar [Program arguments]

# Launch a Web Start
javaws [run-options] -J[Java option] josm.jnlp
}}}

The resulting HTML code is:
{{{
<div class=""wiki-code""><div class=""code""><pre><span class=""c1""># Running a jar
</span>java <span class=""o"">[</span>Java options<span class=""o"">]</span> -jar josm-tested.jar <span class=""o"">[</span>Program arguments<span class=""o"">]</span>

<span class=""c1""># Launch a Web Start
</span>javaws <span class=""o"">[</span>run-options<span class=""o"">]</span> -J<span class=""o"">[</span>Java option<span class=""o"">]</span> josm.jnlp
</pre></div></div>
}}}

This causes a problem when we try to display this HTML code with Swing (https://josm.openstreetmap.de/ticket/15998) probably because the line break is inside the <span> instead of being right after it.

I think the correct HTML code should be:
{{{
<div class=""wiki-code""><div class=""code""><pre><span class=""c1""># Running a jar</span>
java <span class=""o"">[</span>Java options<span class=""o"">]</span> -jar josm-tested.jar <span class=""o"">[</span>Program arguments<span class=""o"">]</span>

<span class=""c1""># Launch a Web Start</span>
javaws <span class=""o"">[</span>run-options<span class=""o"">]</span> -J<span class=""o"">[</span>Java option<span class=""o"">]</span> josm.jnlp
</pre></div></div>
}}}",vincent.privat@…
