| 1 | = The Trac Configuration File = |
| 2 | [[TracGuideToc]] |
| 3 | |
| 4 | Trac configuration is done by editing the '''`trac.ini`''' config file, located in `<projectenv>/conf/trac.ini`. Changes to the configuration are usually reflected immediately, though changes to the `[components]` or `[logging]` sections will require restarting the web server. You may also need to restart the web server after creating a global configuration file when none was previously present. |
| 5 | |
| 6 | == Global Configuration == |
| 7 | |
| 8 | In versions prior to 0.11, the global configuration was by default located in `$prefix/share/trac/conf/trac.ini` or sometimes /etc/trac/trac.ini depending on the distribution. If you're upgrading, you may want to specify that file to inherit from. |
| 9 | Literally, when you're upgrading to 0.11, you have to add an `inherit`-section to your project's `trac.ini` file. Additionally you have to move your customized templates and common images from `$prefix/share/trac/...` to the new location. |
| 10 | |
| 11 | Global options will be merged with the environment-specific options, where local options override global options. The options file is specified as follows: |
| 12 | {{{ |
| 13 | [inherit] |
| 14 | file = /usr/share/trac/conf/trac.ini |
| 15 | }}} |
| 16 | |
| 17 | Note that you can also specify a global option file when creating a new project, by adding the option |
| 18 | `--inherit=/path/to/global/options` to [TracAdmin trac-admin]'s `initenv` command. |
| 19 | If you would not do this but nevertheless intend to use a global option file with your new environment, |
| 20 | you would have to go through the newly generated conf/trac.ini file and delete the entries that would |
| 21 | otherwise override those set in the global file. |
| 22 | |
| 23 | |
| 24 | == Reference == |
| 25 | |
| 26 | This is a brief reference of available configuration options. |
| 27 | |
| 28 | [[TracIni()]] |
| 29 | |
| 30 | |
| 31 | == [components] == #components-section |
| 32 | This section is used to enable or disable components provided by plugins, as well as by Trac itself. The component to enable/disable is specified via the name of the option. Whether its enabled is determined by the option value; setting the value to `enabled` or `on` will enable the component, any other value (typically `disabled` or `off`) will disable the component. |
| 33 | |
| 34 | The option name is either the fully qualified name of the components or the module/package prefix of the component. The former enables/disables a specific component, while the latter enables/disables any component in the specified package/module. |
| 35 | |
| 36 | Consider the following configuration snippet: |
| 37 | {{{ |
| 38 | [components] |
| 39 | trac.ticket.report.ReportModule = disabled |
| 40 | webadmin.* = enabled |
| 41 | }}} |
| 42 | |
| 43 | The first option tells Trac to disable the [wiki:TracReports report module]. The second option instructs Trac to enable all components in the `webadmin` package. Note that the trailing wildcard is required for module/package matching. |
| 44 | |
| 45 | See the ''Plugins'' page on ''About Trac'' to get the list of active components (requires `CONFIG_VIEW` [wiki:TracPermissions permissions].) |
| 46 | |
| 47 | See also: TracPlugins |
| 48 | |
| 49 | == [ticket-custom] == #ticket-custom-section |
| 50 | |
| 51 | In this section, you can define additional fields for tickets. See TracTicketsCustomFields for more details. |
| 52 | |
| 53 | == [ticket-workflow] == #ticket-workflow-section |
| 54 | ''(since 0.11)'' |
| 55 | |
| 56 | The workflow for tickets is controlled by plugins. |
| 57 | By default, there's only a `ConfigurableTicketWorkflow` component in charge. |
| 58 | That component allows the workflow to be configured via this section in the trac.ini file. |
| 59 | See TracWorkflow for more details. |
| 60 | |
| 61 | == [milestone-groups] == #milestone-groups-section |
| 62 | ''(since 0.11)'' |
| 63 | |
| 64 | As the workflow for tickets is now configurable, there can be many ticket states, |
| 65 | and simply displaying closed tickets vs. all the others is maybe not appropriate |
| 66 | in all cases. This section enables one to easily create ''groups'' of states |
| 67 | that will be shown in different colors in the milestone progress bar. |
| 68 | |
| 69 | Example configuration (the default only has closed and active): |
| 70 | {{{ |
| 71 | closed = closed |
| 72 | closed.order = 0 # sequence number in the progress bar |
| 73 | closed.query_args = group=resolution # optional extra param for the query |
| 74 | closed.overall_completion = true # indicates groups that count for overall completion percentage |
| 75 | |
| 76 | new = new |
| 77 | new.order = 1 |
| 78 | new.css_class = new |
| 79 | new.label = new |
| 80 | |
| 81 | active = * # one catch-all group is allowed |
| 82 | active.order = 1 |
| 83 | active.css_class = open # CSS class for this interval |
| 84 | active.label = in progress # Displayed label for this group |
| 85 | }}} |
| 86 | |
| 87 | The definition consists in a comma-separated list of accepted status. |
| 88 | Also, '*' means any status and could be used to associate all remaining |
| 89 | states to one catch-all group. |
| 90 | |
| 91 | The CSS class can be one of: new (yellow), open (no color) or |
| 92 | closed (green). New styles can easily be added using the following |
| 93 | selector: `table.progress td.<class>` |
| 94 | |
| 95 | == [svn:externals] == #svn:externals-section |
| 96 | ''(since 0.11)'' |
| 97 | |
| 98 | The TracBrowser for Subversion can interpret the `svn:externals` property of folders out of the box. |
| 99 | However, if those externals are ''not'' using the `http:` protocol, or if a link to a different repository browser (such another Trac or [http://www.viewvc.org/ ViewVC]) is desired, then Trac needs to be able to map an external prefix to this other URL. |
| 100 | |
| 101 | This mapping is done in the `[svn:externals]` section of the TracIni |
| 102 | |
| 103 | Example: |
| 104 | {{{ |
| 105 | [svn:externals] |
| 106 | 1 = svn://server/repos1 http://trac/proj1/browser/$path?rev=$rev |
| 107 | 2 = svn://server/repos2 http://trac/proj2/browser/$path?rev=$rev |
| 108 | 3 = http://theirserver.org/svn/eng-soft http://ourserver/viewvc/svn/$path/?pathrev=25914 |
| 109 | 4 = svn://anotherserver.com/tools_repository http://ourserver/trac/support/browser/$path?rev=$rev |
| 110 | }}} |
| 111 | With the above, the `svn://anotherserver.com/tools_repository/tags/1.1/tools` external will be mapped to `http://ourserver/trac/support/browser/tags/1.1/tools?rev=` (and `rev` will be set to the appropriate revision number if the external additionally specifies a revision, see the [http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html SVN Book on externals] for more details). |
| 112 | |
| 113 | Note that the number used as a key in the above section is purely used as a place holder, as the URLs themselves can't be used as a key due to various limitations in the configuration file parser. |
| 114 | |
| 115 | ---- |
| 116 | See also: TracGuide, TracAdmin, TracEnvironment |