** This file contains an SQLite 2.1 database **(uãÚQ1� @&€ $&&index(enum autoindex 1)enum8@ <L€  #Ltableticketticket18CREATE TABLE ticket ( id integer PRIMARY KEY, time integer, -- the time it was created changetime integer, component text, Ë€ "%Ëtablepermissionpermission28CREATE TABLE permission ( username text, -- action text, -- allowable activity UNIQUE(username,action) )¿¬„€ „tableversionversion35CREATE TABLE version ( name text PRIMARY KEY, time integer )*Ò€  Òtablesessionsession44CREATE TABLE session ( sid text, username text, var_name text, var_value text, UNIQUE(sid,var_name) )@pøøøøø(˜cnewcstatus€ @Tcassignedcstatus€@creopenedcstatus€dxcclosedcstatus€xcfixedcresolution€¼cinvalidcresolution€1@,cwontfixcresolution€d2,cduplicatecresolution€3cworksformecresolution€ pcblockercseverity€ sccriticalcseverity€ äcmajorcseverity€ icaLcnormalcseverity€ 3cminorcseverity€alÜctrivialcseverity€5�cenhancementcseverity€´chighestcpriority€eTchighcpriority€Àcnormalcpriority€2Üclowcpriority€rœclowestcpriority€T,€ statusnew1Ÿ@T€ statusassigned2@|€ statusreopened3@ € statusclosed4È€resolutionfixed1@ô€resolutioninvalid2ìÿ¿ €resolutionwontfix3ìÿ¿L€resolutionduplicate4¿x€ resolutionworksforme5 €  severityblocker1mÈ€  severitycritical2ð€  severitymajor32€  severitynormal42@€ severityminor52h€ severitytrivial6”€ severityenhancement7¼€ priorityhighest1tà€ priorityhigh2€ prioritynormal3t,€ prioritylow4€ prioritylowest5t¬äÜÀ  Ãtablerevisionrevision3CREATE TABLE revision ( rev integer PRIMARY KEY, time integer, author text, message text )@´Å€ $&Åtablenode_changenode_change5CREATE TABLE node_change ( rev integer, name text, change char(1), UNIQUE(rev, name, change) ) @ø4€ &244index(node_change autoindex 1)node_change4ìဠ$&átableauth_cookieauth_cookie7CREATE TABLE auth_cookie ( cookie text, name text, ipnr text, time integer, UNIQUE(cookie, name, ipnr) )04€ &244index(auth_cookie autoindex 1)auth_cookie6¢€ ¢tableenumenum9CREATE TABLE enum ( type text, name text, value text, UNIQUE(name,type) )@p¬’€ ’tablesystemsystem14CREATE TABLE system ( name text PRIMARY KEY, value text, UNIQUE(name) )%è+€  !(++index(system autoindex 1)system12¿$+€  !(++index(system autoindex 2)system13¿Ë€  Ëtablelocklock17CREATE TABLE lock ( name text PRIMARY KEY, owner text, ipnr text, time integer, UNIQUE(name) )¿8'€  $''index(lock autoindex 1)lock15@'€  $''index(lock autoindex 2)lock16@�,cdatabase_version€@Ô,cdatabase_version€@Ô0€database_version7@Ðøøø¼¤€(31.0milestone1newError en presentacionError en presentacionD severity text, priority text, owner text, -- who is this ticket assigned to reporter text, cc text, -- email addresses to notify url text, -- url related to this ticket version text, -- milestone text, -- status text, resolution text, summary text, -- one-line summary description text, -- problem description (long) keywords text )øø, newvalue text, UNIQUE(ticket, time, field) )`.€  .1.tableticket_changeticket_change21CREATE TABLE ticket_change ( ticket integer, time integer, author text, field text, oldvalue textP9€ (699index(ticket_change autoindex 1)ticket_change20 (Æ€ (+Ætableticket_customticket_custom25CREATE TABLE ticket_custom ( ticket integer, name text, value text, UNIQUE(ticket,name) )@t9€ (699index(ticket_custom autoindex 1)ticket_custom24ABLÙ€ Ùtablereportreport26CREATE TABLE report ( id integer PRIMARY KEY, author text, title text, sql text, description text )çÿ¿ øø87Ñ€ .�ÑAssigned, Active Tickets by Owner SELECT p.value AS __color__, owner AS __group__, id AS ticket, summary, component, milestone, severity, time AS created, changetime AS _changetime, description AS _description5ų̈|canonymouscLOG_VIEW€ @canonymouscFILE_VIEW€@canonymouscWIKI_VIEW€@¨canonymouscWIKI_CREATE€XcanonymouscWIKI_MODIFY€tcanonymouscSEARCH_VIEW€PcanonymouscREPORT_VIEW€ øcanonymouscREPORT_SQL_VIEW€øcanonymouscTICKET_VIEW€  canonymouscTICKET_CREATE€ EWLcanonymouscTICKET_MODIFY€ W$canonymouscBROWSER_VIEW€ YW€canonymouscTIMELINE_VIEW€ W0canonymouscCHANGESET_VIEW€WÐcanonymouscROADMAP_VIEW€EW canonymouscMILESTONE_VIEW€XÀ0€ anonymousLOG_VIEW@X€ anonymousFILE_VIEW@€€ anonymousWIKI_VIEW@¬€ anonymousWIKI_CREATEìÿ¿Ø€ anonymousWIKI_MODIFYìÿ¿€ anonymousSEARCH_VIEWìÿ¿0€ anonymousREPORT_VIEWìÿ¿`€ anonymousREPORT_SQL_VIEW¼@Œ€  anonymousTICKET_VIEWIEW¸€  anonymousTICKET_CREATEWä€  anonymousTICKET_MODIFYW€  anonymousBROWSER_VIEWW<€  anonymousTIMELINE_VIEWWh€ anonymousCHANGESET_VIEW”€ anonymousROADMAP_VIEWW€ anonymousMILESTONE_VIEW@@$ccomponent1€ccomponent2€ÀX0€component1somebody@€component2somebody@¨`L3€ %033index(permission autoindex 1)permission27@䇀  #‡tablecomponentcomponent30CREATE TABLE component ( name text PRIMARY KEY, owner text )(1€ $.11index(component autoindex 1)component29 @† #âtablemilestonemilestone33CREATE TABLE milestone ( id integer PRIMARY KEY, name text, time integer, descr text, UNIQUE(name) )1€ $.11index(milestone autoindex 1)milestone32 @ Œc€8cmilestone1€Tcmilestone2€pcmilestone3€cmilestone4€t° €0D€milestone10@h€milestone20@Œ€milestone30@€milestone40@PLc€ 4c1.0€@ c2.0€00´X €0@< € 1.00 @ € 2.00 @¨‹(ŠcTracRssb0G1X€Ø mе‚À€  +0:ÀÀÀTracSupport11113211280trac127.0.0.1= Trac Support = Like in most [http://www.opensource.org/ open source projects], "free" Trac support is available primarily through the community itself, mainly through th]ƒ$€*/9$$$TracSearch11113211280trac127.0.0.1= Using Search = Trac has a built-in search engine to allow finding occurrences of keywords and substrings in wiki pages, tickets and changeset descriptions. Using the T“ text, comment text, readonly integer, UNIQUE(name,version) )øø description text, author text, ipnr text, UNIQUE(type,id,filename) )¼H-€ "*--index(version autoindex 1)version34¯@DT€ Ttablewikiwiki37CREATE TABLE wiki ( name text, version integer, time integer, author text, ipnr text, text &|'€ $''index(wiki autoindex 1)wiki36@xg€ (+gtableattachmentattachment40CREATE TABLE attachment ( type text, id text, filename text, size integer, time integer, )3€ %033index(attachment autoindex 1)attachment39@D¤Ø*@ca7f5cf64603351cf1cd14189clast_visit€@(tca7f5cf64603351cf1cd14189cmod_time€$ca7f5cf64603351cf1cd14189cname€%ca7f5cf64603351cf1cd14189cemail€ @(œ<ì5€(-5a7f5cf64603351cf1cd14189anonymousnamecoffmanI<€(1€(3>a7f5cf64603351cf1cd14189anonymouslast_visit1113212281@=€(.=a7f5cf64603351cf1cd14189anonymousemailvic@wickle.comm@Äøø�(ŒcTracRssb0G1X€Ø mФØ*@ca7f5cf64603351cf1cd14189clast_visit€@(tca7f5cf64603351cf1cd14189cmod_time€$ca7f5cf64603351cf1cd14189cname€%ca7f5cf64603351cf1cd14189cemail€ @(H-€! "*--index(session autoindex 1)session43¯@´\€" (+\indexnode_change_idxnode_change45CREATE INDEX node_change_idx ON node_change(rev)4n€# ,/nindexticket_change_idxticket_change46CREATE INDEX ticket_change_idx ON ticket_change(ticket, time)9@˜S€$ Sindexwiki_idxwiki47CREATE INDEX wiki_idx ON wiki(name,version)@\€%  #\indexsession_idxsession48CREATE INDEX session_idx ON session(sid,var_name)üe AS _changetime, description AS _description, reporter AS _reporter FROM ticket t, enum p WHERE status IN ('new', 'assigned', 'reopened') AND p.name = t.priority AND p.type = 'priority' ORDER BY p.value, milestone, severity, time * List all active tickets by priority. * Color each row based on priority. * If a ticket has been accepted, a '*' is appended after the owner's name AS created, changetime AS _changetime, description AS _description, reporter AS _reporter FROM ticket t, enum p WHERE status IN ('new', 'assigned', 'reopened') AND p.name = t.priority AND p.type = 'priority' ORDER BY (version IS NULL),version, p.value, severity, time This report shows how to color results by priority, while grouping results by version. Last modification time, description and reporter are included as hidden fields for useful RSS export. wner, time AS created, changetime AS _changetime, description AS _description, reporter AS _reporter FROM ticket t, enum p WHERE status IN ('new', 'assigned', 'reopened') AND p.name = t.priority AND p.type = 'priority' ORDER BY (milestone IS NULL),milestone, p.value, severity, time This report shows how to color results by priority, while grouping results by milestone. Last modification time, description and reporter are included as hidden fields for useful RSS export. , reporter AS _reporter FROM ticket t,enum p WHERE status = 'assigned' AND p.name=t.priority AND p.type='priority' ORDER BY owner, p.value, severity, time List assigned tickets, group by ticket owner, sorted by priority. ngetime AS _changetime, reporter AS _reporter FROM ticket t, enum p WHERE status = 'assigned' AND p.name = t.priority AND p.type = 'priority' ORDER BY owner, p.value, severity, time List tickets assigned, group by ticket owner. This report demonstrates the use of full-row display. üt€ ÚtActive Tickets SELECT p.value AS __color__, id AS ticket, summary, component, version, milestone, severity, (CASE status WHEN 'assigned' THEN owner||' *' ELSE owner END) AS owner, time AS created, changetim2À &ÃActive Tickets by Version SELECT p.value AS __color__, version AS __group__, id AS ticket, summary, component, version, severity, (CASE status WHEN 'assigned' THEN owner||' *' ELSE owner END) AS owner, time3Ö€ %ÖAll Tickets by Milestone SELECT p.value AS __color__, milestone||' Release' AS __group__, id AS ticket, summary, component, version, severity, (CASE status WHEN 'assigned' THEN owner||' *' ELSE owner END) AS o4ø € A¥ Assigned, Active Tickets by Owner (Full Description) SELECT p.value AS __color__, owner AS __group__, id AS ticket, summary, component, milestone, severity, time AS created, description AS _description_, cha6í€ 9®íAll Tickets By Milestone (Including closed) SELECT p.value AS __color__, t.milestone AS __group__, (CASE status WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;' ELSE (9ü«€ «My Tickets SELECT p.value AS __color__, (CASE status WHEN 'assigned' THEN 'Assigned' ELSE 'Owned' END) AS __group__, id AS ticket, summary, component, version, milestone, severity, priority, time AS created, :Ò€ 'fÒActive Tickets, Mine first SELECT p.value AS __color__, (CASE owner WHEN '$USER' THEN 'My Tickets' ELSE 'Active Tickets' END) AS __group__, id AS ticket, summary, component, version, milestone, se;CASE owner WHEN '$USER' THEN 'font-weight: bold' END) END) AS __style__, id AS ticket, summary, component, status, resolution,version, severity, priority, owner, changetime AS modified, time AS _time,reporter AS _reporter FROM ticket t,enum p WHERE p.name=t.priority AND p.type='priority' ORDER BY (milestone IS NULL), milestone DESC, (status = 'closed'), (CASE status WHEN 'closed' THEN modified ELSE -p.value END) DESC A more complex example to show how to make advanced reports. changetime AS _changetime, description AS _description, reporter AS _reporter FROM ticket t, enum p WHERE t.status IN ('new', 'assigned', 'reopened') AND p.name = t.priority AND p.type = 'priority' AND owner = '$USER' ORDER BY (status = 'assigned') DESC, p.value, milestone, severity, time This report demonstrates the use of the automatically set $USER dynamic variable, replaced with the username of the logged in user when executed. verity, (CASE status WHEN 'assigned' THEN owner||' *' ELSE owner END) AS owner, time AS created, changetime AS _changetime, description AS _description, reporter AS _reporter FROM ticket t, enum p WHERE status IN ('new', 'assigned', 'reopened') AND p.name = t.priority AND p.type = 'priority' ORDER BY (owner = '$USER') DESC, p.value, milestone, severity, time * List all active tickets by priority. * Show all tickets owned by the logged in user in a group first. =tribution. {{{ $ bugzilla2trac.py bugzilla2trac - Imports a bug database from Bugzilla into Trac. Usage: bugzilla2trac.py [options] Available Options: --db - Bugzilla's database --tracenv /path/to/trac/env - full path to Trac db environment -h | --host - Bugzilla's DNS host name -u | --user - effective Bugzilla's database user -p | --passwd - Bugzilla's user password -c | --clean - remove current Trac tickets before importing --help | help - this help info Additional configuration options can be defined directly in the script. }}} Currently, the following data is imported from Bugzilla: * bugs * bug activity (field changes) * bug attachments The script provides a number of features to ease the conversion, such as: * PRODUCT_KEYWORDS: Trac doesn't have the concept of products, so the script provides the ability to attach a ticket keyword instead. * IGNORE_COMMENTS: Don't import Bugzilla comments that match a certain regexp. * STATUS_KEYWORDS: Attach ticket keywords for the Bugzilla statuses not available in Trac. By default, the 'VERIFIED' and 'RELEASED' Bugzilla statuses are translated into Trac keywords. For more details on the available options, see the configuration section at the top of the script. == Sourceforge == Ticket data can be imported from Sourceforge using the sourceforge2trac.py script, available in the contrib/ directory of the Trac distribution. ?tion feature in Trac, you can easily monitor progress of the project, a set of issues or even changes to a single file . Trac supports RSS feeds in: * TracTimeline -- Use the RSS feed to '''subscribe to project events'''.[[br]]Monitor overall project progress in your favorite RSS reader. * TracReports -- Allows syndication of report results.[[br]]Be notified about important and relevant issue tickets. * TracBrowser -- Syndication of file changes.[[br]]Stay up to date with changes to a specific file. == How to access RSS data == Anywhere in Trac where RSS is available, you should find a small orange 'XML' icon, typically placed at the bottom of the page. Clicking the icon will access the RSS feed for that specific resource. '''Note:''' Different modules provide different data in their RSS feeds. Usually, the syndicated information corresponds to the current view. For example, if you click the RSS link on a report page, the feed will be based on that report. It might be explained by thinking of the RSS feeds as an ''alternate view of the data currently displayed''. == Links == * http://blogs.law.harvard.edu/tech/rss -- RSS 2.0 Specification * http://www.mozilla.org/products/firefox/ -- Mozilla Firefox supports [http://www.mozilla.org/products/firefox/live-bookmarks.html live bookmarks] using RSS * http://sage.mozdev.org -- Sage RSS and Atom feed aggregator for Mozilla Firefox * http://www.rssreader.com/ -- Free and powerful RSS Reader for Windows * http://liferea.sourceforge.net/ -- Open source GTK2 RSS Reader for Linux ---- See also: TracGuide, TracTimeline, TracReports, TracBrowserAt out by creating a project directory in your documentroot (/var/www in this example). Projects will be accessed as http://hostname/projects/projectname. Copy (or symlink) trac.cgi to this directory together with a file named index.html. This will be shown when users try to access nonexistent projects. Then create your trac projects with trac-admin. It's important that they are all placed in the same directory. In this example we'll use /var/lib/trac. Add to your Apache configuration: {{{ RewriteEngine on RewriteRule ^/projects/+$ /projects/index.html [L] RewriteCond /var/lib/trac/$1 -d RewriteRule ^/projects/([[:alnum:]]+)(/?.*) /projects/trac.cgi$2 [S=1,E=TRAC_ENV:/var/lib/trac/$1] RewriteRule ^/projects/(.*) /projects/index.html AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .cgi Order allow,deny Allow from all AuthType Basic AuthName "trac" AuthUserFile /path/to/trac.htpasswd Require valid-user }}} Make sure you have the rewrite module loaded or compiled in Apache. {{{LoadModule rewrite_module modules/mod_rewrite.so}}} Now, when you add another project, you don't need to edit any apache config. The only file you may want to edit is index.html to make it list the new project. If you think this is too much work, replace it with a python cgi script that does it for you. [wiki:TracStandalone tracd] and TracModPython can also serve multiple projects. ---- See also: TracGuide, TracInstallps easier - '''hotcopy'''. '''Note:''' Trac uses the ''hotcopy'' nomenclature to match that of [http://subversion.tigris.org/ Subversion], to make it easier to remember when managing both Trac and Subversion servers. == Creating a Backup == To create a backup of a live TracEnvironment, simply run: {{{ $ trac-admin /some/where/mytracenv hotcopy /my/vault/mytracenv-backup }}} '''Note:''' TracAdmin will lock the database while copying. The resulting backup copy is safe to handle using standard file-based backup tools like tar or dump/restore. === Restoring a Backup === Backups are simply a copied snapshot of the entire TracEnvironment directory structure, including the SQLite database. To restore an environment from a backup, simply shut down your Trac service (Web server or tracd), restore the directory structure from backup and restart the service. ---- See also: TracAdmin, TracGuide Dgical order, a brief description of each event and if applicable, the person responsible for the change. The timeline lists these kinds of events: * '''Wiki page events''' -- Creation and changes * '''Ticket events''' -- Creation and resolution/closing * '''Source code changes ''' -- Subversion commits * '''Milestone ''' -- Milestone reached Each event entry provides a hyperlink to the specific event in question, and in the case svn commit log messages, displays the commit message itself. == Subversion Commit Messages == It's important to note that WikiFormatting can be used in commit log messages, including TracLinks. This allows developers hyperlink and refer to issue tickets, wikipages and files directly when committing a patch to the repository. Example: {{{ $ svn commit -m "Updated foo to bar. See FooBar. This fixes bug #42." }}} This is a subtle but quite useful feature. == RSS Support == The Timeline module supports subscribtion using RSS 2.0 syndication. To subscribe to project events, click the '''RSS Feed''' link in the navigation bar, or the orange XML icon at the bottom of the page. See TracRss for more information on RSS support in Trac. ---- See also: TracGuide, TracWiki, WikiFormatting, TracRss, TracNotificationü)€*/9)))TracImport11113211280trac127.0.0.1= Importing ticket data = == Bugzilla == Ticket data can be imported from Bugzilla using the bugzilla2trac.py script, available in the contrib/ directory of the Trac dis<S€',6SSSTracRss11113211280trac127.0.0.1= Using RSS with Trac = [[TracGuideToc]] Several of the Trac modules support content syndication using the RSS (Really Simple Syndication) XML format. Using the RSS subscrip>A€')49CAAATracMultipleProjects11113211280trac127.0.0.1= Configure Apache for multiple projects = By following these instructions, you will set up Apache to automatically serve multiple Trac projects for you. Star@üü€!,1;üüüTracTimeline11113211280trac127.0.0.1= The Trac Timeline = [[TracGuideToc]] The timeline provides a historic view of the project in a single report. It lists all Trac events that have occured in chronoloC€ +0:TracTickets11113211280trac127.0.0.1= The Trac Ticket System = [[TracGuideToc]] The Trac issue database provides simple but effective tracking of issues and bugs within a project. As the central project GÕ€ +0:ÕÕÕTracInstall11113211280trac127.0.0.1= Trac Installation Guide = [[TracGuideToc]] The Trac web-based project management tool is implemented as a CGI- or standalone program. Trac is written in the [http://wwwKHmanagement element of Trac, tickets are used for '''bug reports''', '''feature requests''', '''software support issues''' and '''project tasks'''. As with the TracWiki, this subsystem has been designed with the goal of making user contribution and participation as simple as possible. It should be as easy as possible to report bugs, ask questions and suggest improvements. An issue is assigned to a person who must resolve it or reassign the ticket to someone else. All tickets can be edited, annotated, assigned, prioritized and discussed at any time. '''Note:''' To make full use of the ticket system, use it as an ''in bucket'' for ideas and tasks for your project, rather than just bug/fault reporting. == Ticket Fields == A ticket contains the following information attributes: * '''Reporter''' - The author of the ticket. * '''Component''' - The project module or subsystem this ticket concerns. * '''Version''' - Version of the project that this ticket pertains to. * '''Severity''I' - What are the effects the issue described? Ranges from an ''enhancement'' request to ''blocker'' (must be fixed before next milestone). * '''Priority''' - The importance of is the issue relative to other tasks. * '''Milestone''' - When this issue should be resolved at the latest. * '''Resolution''' - Reason for why a ticket was closed, such as fixed, invalid, duplicate, etc. * '''Keywords''' - Keywords that a ticket is marked with. Useful for searching and report generation. * '''Assigned to''' - Principal person responsible for handling the issue. * '''Cc''' - A list of other associated people. ''Note: this does '''not''' imply responsibility or any other policy. * '''Status''' - What is the current status? * '''Summary''' - A brief description summarizing the problem or issue. * '''Description''' - The body of the ticket. A good description should be '''specific, descriptive and to the point'''. == Changing and Commenting Tickets == Once a ticket has been entered into Trac, Jyou can at any time change the information by '''annotating''' the bug. This means changes and comments to the ticket are logged as a part of the ticket itself. When viewing a ticket, this log of changes will appear below the main ticket area. ''In the Trac project, we use ticket comments to discuss issues and tasks. This makes understanding the motivation behind a design- or implementation choice easier, when returning to it later.'' '''Note:''' An important feature is being able to use TracLinks and WikiFormatting in ticket descriptions and comments. Use TracLinks to refer to other issues, changesets or files to make your ticket more specific and easier to understand. '''Note:''' See TracNotification for how to configure email notifications of ticket changes. === State Diagram === http://projects.edgewall.com/trac/attachment/wiki/TracTickets/Trac%20Ticket%20State%20Chart%2020040607DF.png?format=raw == Advanced: Preset values for New Tickets from URL == To create a link to the new-icket form filled with preset values, you need to call the /newticket? URL with variable=value separated by &. Possible variables are : * '''reporter''' - Name or email of the reporter * '''summary''' - Summary line for the ticket * '''description''' - Long description of the ticket * '''component''' - The component droplist * '''version''' - The version droplist * '''severity''' - The severity droplist * '''keywords''' - The keywords * '''priority''' - The priority droplist * '''milestone''' - The milestone droplist * '''owner''' - The responsable of the ticket * '''cc''' - The list of email for notify the ticket change '''Example:''' ''/trac/newticket?summary=Compile%20Error&version=1.0&component=gui'' See also: TracGuide, TracWiki, TracTicketsCustomFields, TracNotificationL.python.org/ Python] programming language and uses the [http://www.sqlite.org/ SQLite] embedded database for persistant storage. For HTML rendering, Trac uses the [http://www.clearsilver.net/ Clearsilver] template system. == Requirements == To install Trac, the following software packages must be installed: * [http://www.python.org/ Python], version >= 2.1 (>=2.3 recommended). * Please keep in mind, that for RPM-based systems you will also need python-devel and python-xml packages. * [http://subversion.tigris.org/ Subversion], version >= 1.0. (>=1.1 recommended) * [http://svnbook.red-bean.com/svnbook-1.1/ch08s02.html#svn-ch-8-sect-2.3 Subversion Python bindings] (Caveat: Trac uses the [http://www.swig.org/ SWIG] bindings included in the Subversion distribution, '''not''' the [http://pysvn.tigris.org/ PySVN] package!) * [http://www.sqlite.org/ SQLite], version 2.8.x or 3.0.x * [http://pysqlite.sf.net/ PySQLite], version >= 0.5 but < 1.1.0 (for SQLite 2.8.x), version >= 1.1.1 (forM SQLite 3.0.x) * [http://clearsilver.net/ Clearsilver], version >= 0.9.3 * [http://docutils.sourceforge.net/ docutils], version >= 0.3.3 (??) * A CGI-capable web server (tested on [http://httpd.apache.org/ Apache] ) === Optional Packages === * [http://www.modpython.org/ mod_python] (see TracModPython) == Installing Trac == Like most Python programs, install the Trac python modules by running the following command at the top of the source directory: {{{ $ python ./setup.py install }}} This will byte-compile the python source code and install it in the {{{site-packages}}} directory of your python installation. The directories {{{cgi-bin}}}, {{{templates}}}, {{{htdocs}}} and {{{wiki-default}}} are all copied to $prefix/share/trac/ . The script will also install the [wiki:TracAdmin trac-admin] command-line tool, used to create and maintain [wiki:TracEnvironment project environments]. The [wiki:TracAdmin trac-admin] program is the ''control center'' for Trac. '''Note:''' youN'll need root permissions or equivalent for this step. For more information on installing Trac on specific platforms, see the [http://projects.edgewall.com/trac/wiki/TracInstallPlatforms TracInstallPlatforms] page (on the main project web site). === Advanced Users === To install Trac in a custom location, and view other advanced install options, run: {{{ $ python ./setup.py --help }}} == Creating a Project Environment == TracEnvironment is the backend storage format where Trac stores information like wiki pages, tickets, reports, settings, etc. An environment consist of a directory containing an SQLite database, human-readable configuration file, log-files and attachments. A new Trac environment is created using [wiki:TracAdmin trac-admin], like: {{{ $ trac-admin /path/to/projectenv initenv }}} [wiki:TracAdmin trac-admin] will ask you where your subversion repository is located and where it can find the trac templates directory (the default value should work for a typical iOnstall). '''Note:''' The web server user will require file system write permission to the environment directory and all the files inside. '''Remember to set the appropriate permissions.'' The same applies for the subversion repository files (unless using the [http://svn.collab.net/repos/svn/trunk/notes/fsfs FSFS Subversion backend], something we highly recommend. == Configuring Apache == Make "{{{trac/cgi-bin/trac.cgi}}}" accessible to your web server at {{{/cgi-bin/}}}, either by copying/symlinking or use the "{{{trac/cgi-bin/}}}" directory directly. Edit the apache config and add this snippet, filenames edited to match your installation: {{{ Alias /trac/ "/usr/share/trac/htdocs/" #or where you installed the trac htdocs #You have to allow people to read the files in htdocs Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all # Trac need to know where the database is located SetEnv TRAC_ENV "/path/to/projectenv" # You need this to allow users to authenticate # trac.htpasswd can be created with # cmd 'htpasswd -c trac.htpasswd' (UNIX) # do 'man htpasswd' to see all the options AuthType Basic AuthName "trac" AuthUserFile /somewhere/trac.htpasswd Require valid-user }}} '''Note:''' If Apache complains about the Set''''''Env line make sure you have the Load''''''Module for mod_env uncommented (Apache 1.3). '''Note:''' When creating a new environment, {{{trac-admin}}} will print a config snippet customized for your project. '''Note:''' If you are using [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature see [http://projects.edgewall.com/trac/wiki/ApacheSuexec ApacheSuexec] (on the project web site). == Using Trac == '''Congratulations!''' You should now have a running Trac installation at: http:///cgi-bin/trac.cgi You should be able to browse your subversion repository, create tickets, view the timeline and use all the features of Trac. Keep in mind that anonymous users (not logged in) can only access a restricted subset of all Trac features by default. '''Note:''' If you don't want long, and relatively ugly, URLs, you can prettify them by changing your Apache config. See [http://projects.edgewall.com/trac/wiki/TracPrettyUrls TracPrettyUrls] (on the project website). Please continue to TracPermissions to learn how to grant additional privileges to authenticated users. For user documentation, see TracGuide. ''Enjoy!'' [http://projects.edgewall.com/trac/wiki/TracTeam The Trac Team] ---- See also: TracGuide, TracUpgrade, TracPermissions, TracInstallPlatforms, TracModPythonRm the reStucturedText webpage: "''reStructuredText is an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax and parser system. It is useful for in-line program documentation (such as Python docstrings), for quickly creating simple web pages, and for standalone documents. reStructuredText is designed for extensibility for specific application domains. ''" === Requirements === Note that to activate RST support in Trac, the python docutils package must be installed. If not already available on your operating system, you can download it at the [http://docutils.sourceforge.net/rst.html RST Website]. === More information on RST === * reStructuredText Website -- http://docutils.sourceforge.net/rst.html * RST Quick Reference -- http://docutils.sourceforge.net/docs/rst/quickref.html ---- == Using RST in Trac == To specify that a block of text should be parsed using RST, use the ''rst'' processor. === TracLinks in reStructuredText === * Trac provides a custom RST Sreference-directive 'trac' to allow TracLinks from within RST text. Example: {{{ {{{ #!rst This is a reference to |a ticket| .. |a ticket| trac:: #42 }}} }}} For a complete example of all uses of the ''trac''-directive, please see WikiRestructuredTextLinks. * Trac allows an even easier way of creating TracLinks in RST, using the custom '':trac:'' link naming scheme. Example: {{{ {{{ #!rst This is a reference to ticket `#12`:trac: To learn how to use Trac, see `TracGuide`:trac: }}} }}} === Syntax highlighting in reStructuredText === There is a directive for doing TracSyntaxColoring in ReST as well. The directive is called code-block Example {{{ {{{ #!rst .. code-block:: python class Test: def TestFunction(self): pass }}} }}} Will result in the below. {{{ #!rst .. code-block:: python class Test: def TestFunction(self): pass }}} === Example === The example below should be mostlyT self-explanatory: {{{ #!html
{{{
#!rst
FooBar Header
=============
reStructuredText is **nice**. It has its own webpage_.

A table:

=====  =====  ======
   Inputs     Output
------------  ------
  A      B    A or B
=====  =====  ======
False  False  False
True   False  True
False  True   True
True   True   True
=====  =====  ======

RST TracLinks
-------------

See also ticket |#42|.

.. |#42| trac:: #42

.. _webpage: http://docutils.sourceforge.net/rst.html
}}}
}}} Results in: {{{ #!rst FooBar Header ============= reStructuredText is **nice**. It has its own webpage_. A table: ===== ===== ====== Inputs Output ------------ ------ A B A or B ===== ===== ====== False False False True False True False True True True True True ===== ===== ====== RST TracLinks ------------- See also ticket |#42|. .. |#42| trac:: #42 .. _webpage: http://docutils.sourceforge.net/rst.html }}} ---- See also: WikiRestructuredTextLinks, WikiProcessors, WikiFormattinge name. Page names must follow these rules: 1. The name must consist of '''alphabetic characters only'''. No digits, spaces, punctuation, or underscores are allowed. 1. A name must have at least two capital letters. 1. The first character must be capitalized. 1. Every capital letter must be followed by one or more lower-case letters. 1. The use of slash ( / ) is permitted to create a hierarchy inside the wiki. If you want to create a wiki page that doesn't follow CamelCase rules you could use the following syntax: {{{ [wiki:Wiki_page Wiki page] }}} This will be rendered as: [wiki:Wiki_page Wiki page] ---- See also: WikiNewPage, WikiFormatting, TracWikiWhe [wiki:TracBrowser Source Browser]. To do this, Trac uses external libraries with support for a great number of programming languages. Currently Trac supports syntax coloring using one or more of the following packages: * [http://people.ssh.fi/mtr/genscript/ GNU Enscript] * [http://silvercity.sourceforge.net/ SilverCity] To activate syntax coloring, simply install either one (or more) of these packages. No additional configuration is needed. When in use, Trac will automatically prioritize !SilverCity highlighting over Enscript if possible, (see note below). If neither package is available, Trac will display the data as plain text. '''Note:''' Enscript supports a greater number of languages, however !SilverCity is generally faster since it is a library and isn't executed in an external process. === About SilverCity === !SilverCity uses the lexer from [http://www.scintilla.org/ Scintilla]. Scintilla supports more languages than !SilverCity implements. If you want to add a lanXguage to !SilverCity supported by Scintilla, it's not very difficult. See [http://projects.edgewall.com/trac/wiki/SilverCityAddLanguage SilverCityAddLanguage] for some information how. == Syntax Coloring Support == || || !SilverCity || Enscript || || Ada || || X || || Asm || || X || || * ASP || X || X || || * C || X || X || || * C++ || X || X || || * Java || || X || || Awk || || X || || CSS || X || || || Diff || || X || || Eiffel || || X || || Elisp || || X || || Fortran || || X || || Haskell || || X || || HTML || X || X || || IDL || || X || || Javascript || X || X || || m4 || || X || || Makefile || || X || || Matlab || || X || || Objective-C|| || X || || Pascal || || X || || * Perl || X || X || || * PHP || X || X || || PSP || X || || || Pyrex || || X || || * Python || X || X || || * Ruby || X || X || || Scheme || || X || || Shell || || X || || SQL || X || X || || Troff || || X || || TCL || || X || || Tex || || X || || Verilog || || X || || VHDL || || X || || Visual Basic |||| X || || VRML || || X || || XML || X || X || ''(*) Supported as inline code blocks in [wiki:WikiFormatting Wiki text] using WikiProcessors.'' == Extra Software == * GNU Enscript -- http://people.ssh.fi/mtr/genscript/ * !SilverCity -- http://silvercity.sf.net/ ---- See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowserü‰€  "-2<‰‰‰WikiPageNames11113211280trac127.0.0.1= Wiki Page Names = Wiki page names are written using CamelCase. Within a wiki text, any word in CamelCase automatically becomes a hyperlink to the wiki page with that samUí € %'27Aí í í TracSyntaxColoring11113211280trac127.0.0.1= Syntax Coloring of Source Code = Trac supports language-specific colorization (syntax highlighting) of source code in [wiki:WikiFormatting WikiFormatted] text and tVp € "$/4>p p p TracPermissions11113211280trac127.0.0.1== Trac Permissions == [[TracGuideToc]] Trac uses a simple but flexible permission system to control what users can and can't access. Permission privilegies are maZ[naged using the [wiki:TracAdmin trac-admin] tool. Regular visitors, non-authenticated users, accessing the system are assigned the default role (''user'') named {{{anonymous}}}. Assign permissions to the {{{anonymous}}} user to set privilegies for non-authenticated/guest users. In addition to these privileges users can be granted additional individual rights in effect when authenticated and logged into the system. === Available privileges === * {{{TRAC_ADMIN}}} * {{{LOG_VIEW}}} * {{{FILE_VIEW}}} * {{{CHANGESET_VIEW}}} * {{{BROWSER_VIEW}}} * {{{TICKET_VIEW, TICKET_CREATE, TICKET_MODIFY, TICKET_ADMIN}}} * {{{REPORT_VIEW, REPORT_CREATE, REPORT_MODIFY, REPORT_DELETE, REPORT_ADMIN, REPORT_SQL_VIEW}}} * {{{WIKI_VIEW, WIKI_CREATE, WIKI_MODIFY, WIKI_DELETE, WIKI_ADMIN}}} * {{{MILESTONE_VIEW, MILESTONE_CREATE, MILESTONE_MODIFY, MILESTONE_DELETE}}} * {{{ROADMAP_VIEW, ROADMAP_ADMIN}}} * {{{TIMELINE_VIEW}}} * {{{SEARCH_VIEW}}} * {{{CONFIG_VIEW}}} The {{{something_ADMIN}}}\ privileges are just shortcuts that can be used to grant a user all the ''something'' privileges in one go. Having {{{TRAC_ADMIN}}} is like being {{{root}}} on a *NIX system, it will let you do anything you want. === Granting privileges === Currently the only way to grant privileges to users is by using the {{{trac-admin}}} script. The current set of privileges can be listed with the following command: {{{ $ trac-admin /path/to/projenv permission list }}} This command will let the user ''bob'' delete reports: {{{ $ trac-admin /path/to/projenv permission add bob REPORT_DELETE }}} === Permission groups === Permissions can be grouped together to form roles such as ''developer'', ''admin'', etc. {{{ $ trac-admin /path/to/projenv permission add developer WIKI_ADMIN $ trac-admin /path/to/projenv permission add developer REPORT_ADMIN $ trac-admin /path/to/projenv permission add developer TICKET_MODIFY $ trac-admin /path/to/projenv permission add bob developer $ trac-admin /path/to/projenv permission add john developer }}} === Default permissions === Granting privileges to the special user ''anonymous'' can be used to control what an anonymous user can do before they have logged in. In the same way, privileges granted to the special user ''authenticated'' will apply to any authenticated (logged in) user. ---- See also: TracAdmin, TracGuidee [http://projects.edgewall.com/trac/wiki/MailingList mailing list] and the project wiki. There is also an [http://projects.edgewall.com/trac/wiki/IrcChannel IRC channel], where people might be able to help out. Much of the 'live' development discussions also happen there. == Commercial Support == Edgewall also offers commercial support to individuals and organizations who desire it. For more information, visit our [http://www.edgewall.com/products/trac/support.html commercial support page] for Trac. You can of course also [http://www.edgewall.com/contact/ contact us directly] at any time at if you have any questions. ---- See also: [http://projects.edgewall.com/trac/wiki/MailingList MailingList], and does not require installing any additional packages. == How to Use HTML == To inform the wiki engine that a block of text should be treated as HTML, use the ''html'' processor. This example should explain: {{{ #!html
{{{
#!html
<h1 style="text-align: right; color: blue">HTML Test</h1>
}}}
}}} Results in: {{{ #!html

HTML Test

}}} == More Information == * http://www.w3.org/ -- World Wide Web Consortium * http://www.w3.org/MarkUp/ -- HTML Markup Home Page ---- See also: WikiProcessors, WikiFormatting, WikiRestructuredText`ference of available configuration options. == [project] == || name || Project name || || descr || Short project description || || url || URL to the main project website || || icon || URL to icon file to use as shortcut icon (favicon) || || footer || Page footer text (right-aligned) || == [trac] == || repository_dir || Path to local Subversion repository || || htdocs_location || Base URL for static Trac graphics and CSS files || || database || Database to use for this project || || templates_dir || Path of Clearsilver templates || || default_charset || Source files uses this charset || == [logging] == || log_type || Logging facility to use. (none, file, stderr, syslog, winlog) || || log_file || If ''log_type'' is ''file'', this should be a path to the log-file || || log_level || Level of verbosity in log (CRITICAL, ERROR, WARN, INFO, DEBUG) || See also: TracLogging == [ticket] == || default_version || Default version for newly created tickets || || defaualt_severity || Default severity for newly created tickets || || default_priority || Default priority for newly created tickets || || default_milestone || Default milestone for newly created tickets || || default_component || Default component for newly created tickets || See also: TracTicketsCustomFields == [attachment] == || max_size || Maximum allowed file size for ticket and wiki attachments || == [notification] == || smtp_enabled || Enable SMTP (email) notification (true, false) || || smtp_server || SMTP server to use for email notifications || || smtp_from || Sender address to use in notification emails || || smtp_replyto || Reply-To address to use in notification emails || || smtp_always_cc || Email address(es) to always send notifications to || || always_notify_reporter || Always send notifications to any address in the ''reporter'' field || See also: TracNotification == [header_logo] == || src || URL to image to use as header logo || || link || Destination URL to link to from header logo || || alt || ''alt'' text for header logo || || width || Header logo width in pixels || || height || Header logo height in pixels || == [mimeviewer] == || enscript_path || Path to Enscript program || == [timeline] == || changeset_show_files || Number of files to show (-1 for unlimited, 0 to disable) || == [diff] == || tab_width || Displayed tab width in changeset diffs || [[BR]] ---- See also: TracGuide, TracAdmincApache features not possible with tracd/mod_proxy. == Simple configuration == Here's a typical Trac CGI/Apache setup: {{{ ScriptAlias /projects/myproject /path/to/python/share/trac/cgi-bin/trac.cgi SetEnv TRAC_ENV /var/trac/myproject }}} The equivalent mod_python setup is: {{{ SetHandler mod_python PythonHandler trac.ModPythonHandler PythonOption TracUriRoot "/projects/myproject" PythonOption TracEnv /var/trac/myproject }}} Note that the option ''TracUriRoot'' may or may not be necessary in your setup. Try without first, and if the URLs produced by Trac look wrong, add the ''TracUriRoot'' option. == Setting up multiple projects == The Trac mod_python handler handler supports a configuration option similar to Subversion's {{{SvnParentPath}}}, called {{{TracEnvParentDir}}}: {{{ SetHandler mod_python PythonHandler trac.ModPythonHandler PythdonOption TracUriRoot /projects PythonOption TracEnvParentDir "/var/trac" }}} When you request the {{{/projects}}} URL, you will get a (currently very simple) listing of all subdirectories of the directory you set as {{{TracEnvParentDir}}}. Selecting any project in the list will bring you to the corresponding Trac instance. You should make sure that the configured directory only contains Trac environment directories that match the currently installed Trac version, because that is not checked prior the the generation of the project list. === Adding authentication === Adding authentication is straightforward in both cases. For example: {{{ AuthType Basic AuthName "Trac" AuthUserFile /var/www/passwd Require valid-user }}} === Win32 Issues === If you run trac with mod_python on Windows, attachments will not work. There is a (simple) workaround for this which is to apply the patch attached to ticket [http://projects.edgewall.com/trac/ticket/554 #554]. ---- See also TracGuide, TracInstall, TracMultipleProjectsüq€ (-7qqqWikiHtml11113211280trac127.0.0.1= Using HTML in Wiki Text = Trac supports inserting HTML into any wiki context, accomplished using the HTML [wiki:WikiProcessors WikiProcessor]. HTML support is built-in, ^¿ €',6¿ ¿ ¿ TracIni11113211280trac127.0.0.1= trac.ini Reference = [[TracGuideToc]] Trac configuration is done by editing the ''trac.ini'' config file, located in {{{/conf/trac.ini}}}. This is a brief re_a € "-2<a a a TracModPython11113211280trac127.0.0.1= Trac and mod_python = Trac 0.7.1 and later supports [http://www.modpython.org/ mod_python], which speeds up Trac's response times considerably and permits use of many bg and powerful wiki rendering engine. This wiki engine implements an ever growing subset of the commands from other popular Wikis especially [http://moin.sf.net/ MoinWiki]. This page demonstrates the formatting syntax available anywhere WikiFormatting is allowed. == Font styles == The Trac wiki support the following font styles: '''bold''', ''italic'', __underline__ and ~~strike-through~~. {{{ The Trac wiki support the following font styles: '''bold''', ''italic'', __underline__ and ~~strike-through~~. }}} == Heading == You can create heading by starting a line with one up to five ''equal\\ '=' characters followed by a single space and the headline text. The line should end with a space followed by the same number of ''equal'' characters. ''Note: As of writing, headings cannot contain TracLinks.'' === Example: === {{{ = Heading = == Subheading == }}} == Paragraphs == A new text paragraph is created whenever two blocks of text are separated by one or more empthy lines. A forced line break can also be inserted, using: {{{ Line 1[[BR]]Line 2 }}} Display: Line 1[[BR]]Line 2 Text paragraphs can be indented by starting the lines with two or more spaces. == Lists == The wiki supports both ordered/numbered and unordered lists. Example: {{{ * Item 1 * Item 1.1 * Item 2 1. Item 1 1. Item 1.1 1. Item 2 }}} Display: * Item 1 * Item 1.1 * Item 2 1. Item 1 1. Item 1.1 1. Item 2 == Preformatted text == Block quotes, preformatted text, are suitable for source code snippets, notes and examples. Use three ''curly braces'' wrapped around the text to define a block quote: Example: {{{ {{{ def HelloWorld() print "Hello World" }}} }}} Display: {{{ def HelloWorld() print "Hello World" }}} == Tables == Simple tables can be created like this: {{{ ||Cell 1||Cell 2||Cell 3|| ||Cell 4||Cell 5||Cell 6|| }}} Display: ||Cell 1||Cell 2||Cell 3|| ||Cell 4||Cell 5||Cell 6|| == Liniks == !Hyperlinks are automatically created for WikiPageNames and urls. !WikiPageLinks can be disabled by prepending an exclamation mark (!) character, such as {{{!WikiPageLink}}}. Examples: TitleIndex, http://www.edgewall.com/. Links can be given a more descriptive title by writing the link followed by a space and a title and all this inside two square brackets. Like this: {{{ * [http://www.edgewall.com/ Edgewall Software] * [wiki:TitleIndex Title Index] }}} Display: * [http://www.edgewall.com/ Edgewall Software] * [wiki:TitleIndex Title Index] === Trac Links === Wiki pages can link directly to other parts of the Trac system. Pages can refer to tickets, reports, changesets, milestones, source files and other Wiki pages using the following notation: * Tickets: '''!#1''' or '''!ticket:1''' * Reports: '''!{1}''' or '''!report:1''' * Changesets: '''![1]''' or '''!changeset:1''' * Wiki pages: '''CamelCase''' or '''!wiki:CamelCase''' * Milestones: '''!milestone:1.0j''' * Files: '''!source:trunk/COPYING''' * A specific file revision: '''!source:/trunk/COPYING#200''' Display: * Tickets: #1 or ticket:1 * Reports: {1} or report:1 * Changesets: [1] or changeset:1 * Wiki pages: CamelCase or wiki:CamelCase * Milestones: milestone:1.0 * Files: source:trunk/COPYING * A specific file revision: source:/trunk/COPYING#200 See TracLinks for more in-depth information. == Escaping Links and WikiNames == You may avoid making hyperlinks out of TracLinks by preceding an expression with a single '!' (exclamation mark). {{{ !NoHyperLink !#42 is not a link }}} Display: !NoHyperLink !#42 is not a link == Images == Urls ending with .png, .gif or .jpg are automatically interpreted as image links, and converted to IMG tags. Example: {{{ http://www.edgewall.com/gfx/trac_example_image.png }}} Display: http://www.edgewall.com/gfx/trac_example_image.png == Macros == Macros are ''custom functions'' to insert dynamic content in a page. Skee WikiMacros for usage. Example: {{{ [[Timestamp]] }}} Display: [[Timestamp]] == Processors == Trac supports alternative markup formats using WikiProcessors. For example, processors are used to write pages in [wiki:WikiRestructuredText reStructuredText] or [wiki:WikiHtml HTML]. See WikiProcessors for more information. '''Example 1:''' {{{ #!html
{{{
#!html
<h1 style="text-align: right; color: blue">HTML Test</h1>
}}}
}}} Display: {{{ #!html

HTML Test

}}} '''Example 2:''' {{{ #!html
{{{
#!python
class Test:
    def __init__(self):
        print "Hello World"
if __name__ == '__main__':
   Test()
}}}
}}} Display: {{{ #!python class Test: def __init__(self): print "Hello World" if __name__ == '__main__': Test() }}} == Miscellaneous == Four or more dashes will be replaced by a horizontal line (
) {{{ ---- }}} Display: ---- ---- See also: TracLinks, TracGuide, WikiHtml, WikiMacros, WikiProcessors, TracSyntaxColoring. m Directory entries are displayed in a list with sortable columns. The list entries can be sorted by '''name''', '''size''' or '''date''' by clicking on the column headers. The sort order can be reversed by clicking on a given column header again. The browser can be used to navigate through the directory structure by clicking on the directory names. Clicking on filenames on the other hand will display the files change log. It's also possible to browse directories as they were in history, at any given repository revision. The default behavior is to display the latest revision but another revision number can easily be selected using the form at the top of the page. '''Note:''' The browser does not use the Subversion access configuration so if you restrict read access to part of the repository in Subversion that same restriction will not be in place in the Trac browser. (Support for this functionality '''is''' being worked on for future Trac versions) == RSS Support == The browser module supports RSS syndication to monitor changes to a file. To subscribe to an RSS feed of the revision log for a file, open its revision log in the browser and click the orange 'XML' icon at the bottom of the page. For more information on RSS support in Trac, see TracRss. ---- See also: TracGuide, TracChangeseto to tickets. '''Note: In Trac 0.8, this feature is still experimental.''' == Configuriation == Configuring custom ticket fields is done in the TracIni config file. All field definitions should be under a section named [ticket-custom] in the ini-file. The syntax of each field definition is: {{{ FIELD_NAME = TYPE (FIELD_NAME.OPTION = VALUE) ... }}} Looking at the example below should help explain the syntax. === Available Field Types and Options === * '''text''': A simple (one line) text field. * label: Descriptive label. * value: Default value. * order: Sort order placement. (Determines relative placement in forms.) * '''checkbox''': A boolean value check box. * label: Descriptive label. * value: Default value (0 or 1). * order: Sort order placement. * '''select''': Drop-down select box. Uses a list of values. * options: List of values, separated by '''|''' (vertical pipe). * value: Default value (Item #, starting at 0). * order: Sort orderp placement. * '''radio''': Radio buttons. Essentially the same as '''select'''. * label: Descriptive label. * options: List of values, separated by '''|''' (vertical pipe). * value: Default value (Item #, starting at 0). * order: Sort order placement. * '''textarea''': Multi-line text area. * label: Descriptive label. * value: Default text. * width: Width in columns. * height: Height in lines. * order: Sort order placement. === Sample Config === {{{ [ticket-custom] test_one = text test_one.label = Just a text box test_two = text test_two.label = Another text-box test_two.value = Just a default value test_three = checkbox test_three.label = Some checkbox test_three.value = 1 test_four = select test_four.label = My selectbox test_four.options = one|two|third option|four test_four.value = 2 test_five = radio test_five.label = Radio buttons are fun test_five.options = uno|dos|tres|cuatro|cinco test_five.value = 1 test_six = textarea test_six.label = This is a large textarea test_six.value = Default text test_six.width = 60 test_six.height = 30 }}} ---- See also: TracTickets, TracInirsers up-to-date on tickets/issues of interest, and also provides a convenient way to post ticket changes to a dedicated mailing list. '''Note:''' As an example, this is how the [http://lists.edgewall.com/archive/trac-tickets/ Trac-tickets] mailing list works. Disabled by default, notification can be activated and configured in [wiki:TracIni trac.ini]. == Receiving Notification == When reporting a new ticket or adding a comment, enter a validing email address in the ''reporter'', ''editor'' or ''cc'' field. Trac will automatically send you an email when changes are made to the ticket. This is useful to keep up-to-date on an issue or enhancement request that interests you. == Configuring SMTP Notification == === Config Options === These are the available options for the ''[notification]'' section in trac.ini. * '''smtp_enabled''': Enable notification. * '''smtp_server''': SMTP server used for notification messages. * '''smtp_from''': Email address to use for ''Sender''-headers in notisfication emails. * '''smtp_replyto''': Email address to use for ''Reply-To''-headers in notification emails. * '''smtp_always_cc''': List of email addresses to always send notifications to. ''Typically used to post ticket changes to a dedicated mailing list.'' * '''always_notify_reporter''': Always send notifications to any address in the reporter field. Either '''smtp_from''' or '''smtp_replyto''' (or both) ''must'' be set, otherwise Trac refuses to send notification mails. === Example Configuration === {{{ [notification] smtp_enabled = true smtp_server = mail.example.com smtp_from = notifier@example.com smtp_replyto = myproj@projects.example.com smtp_always_cc = ticketmaster@example.com, theboss+myproj@example.com }}} == Sample Email == {{{ #42: testing ---------------------------+------------------------------------------------ Id: 42 | Status: assigned Component: report system | Modified: Fri Apr 9 00:04:31 2004 Severity: major | Milestone: 0.9 Priority: lowest | Version: 0.6 Owner: anonymous | Reporter: jonas@example.com ---------------------------+------------------------------------------------ Changes: * component: changset view => search system * priority: low => highest * owner: jonas => anonymous * cc: daniel@example.com => daniel@example.com, jonas@example.com * status: new => assigned Comment: I'm interested too! -- Ticket URL: My Project }}} ---- See also: TracTickets, TracIni, TracGuideü&€ +0:&&&TracBrowser11113211280trac127.0.0.1= The Trac Browser = [[TracGuideToc]] The Trac browser can be used to browse directories, change logs and specific revisions of files stored in a subversion repository.l} €*,7<F} } } TracTicketsCustomFields11113211280trac127.0.0.1= Custom Ticket Fields = Trac support adding custom, user-defined, fields to the ticket module. Using custom fields, you can add typed, site-specific, propertiesn™ €#%05?™ ™ ™ TracNotification11113211280trac127.0.0.1= Email Notification of Ticket Changes = [[TracGuideToc]] Trac supports basic notification for ticket changes using email. Email notification is useful to keep uq encodings. == Examples == === Swedish === ''Räven raskar över isen med luva pÃ¥.'' === Français === ''Il est possible d'écrire en Français : à, ç, û, ...'' === Icelandic === ''Ævar sagði við ömmu sína: Sjáðu hvað ég er stór!'' === Japanese === ''漢字 ã�²ã‚‰ã�Œã�ª カタカナ ハï¾�カクカナ'' === Chinese === Traditional: ''ç¹�體中文, 許功蓋會育''; Simplified: ''简体中文,许功盖会育'' === Korean === ''ì�´ë²ˆì—�는 한글로 ì�¨ë³´ê² ìŠµë‹ˆë‹¤. 잘 ë³´ì�´ë‚˜ìš”?'' === Russian === Проверка РуÑ�Ñ�кого Ñ�зыка: кажетÑ�Ñ� работает... === Bulgarian === БългарÑ�киÑ�Ñ‚ език работи ли? === Greek === ΜακάÏ�ι να έτÏ�εχε στο και Debian box μου... Bug #495 === Spanish === Esto es un pequeño texto en Español, ahora una con acentó === Hebrew === ×�× ×™ יכול ל×�כול זכוכית וזה ל×� מזיק ליvoice input to navigate links, activate form controls, etc. In Trac, we work to assure users may interact with devices other than a pointing device. Trac supports accessibility keys for the most common operations. == Accessibility Keys == * 1 - WikiStart * 2 - Timeline * 3 - Roadmap * 4 - Search * 5 - TracFaq * 6 - TracGuide / Documentation * 7 - New Ticket * 9 - About Trac * 0 - TracAccessibility ---- See also: TracGuidexn the [http://projects.edgewall.com/trac/wiki/TracProject TracProject] website, since they tend to be edited quite often. * [http://projects.edgewall.com/trac/wiki/TracOnOsx TracOnOsx] * [http://projects.edgewall.com/trac/wiki/TracOnMandrakelinux TracOnMandrakelinux] * [http://projects.edgewall.com/trac/wiki/TracOnGentoo TracOnGentoo] * [http://projects.edgewall.com/trac/wiki/TracOnFreeBsd TracOnFreeBsd] * [http://projects.edgewall.com/trac/wiki/TracOnNetBsd TracOnNetBsd] * [http://projects.edgewall.com/trac/wiki/TracOnDebian TracOnDebian] * [http://projects.edgewall.com/trac/wiki/TracOnWindows TracOnWindows] * [http://projects.edgewall.com/trac/wiki/TracOnWindowsIis TracOnWindowsIis] * [http://projects.edgewall.com/trac/wiki/TracOnWindowsIis6 TracOnWindowsIis6] * [http://projects.edgewall.com/trac/wiki/TracOnRedhat TracOnRedhat] * [http://projects.edgewall.com/trac/wiki/TracOnFedoraCore TracOnFedoraCore] * [http://projects.edgewall.com/trac/wiki/TracOnSuSE TracOnSuSE] * [http://projects.edgewall.com/trac/wiki/TracOnSlackware TracOnSlackware] ---- See also: TracInstall, TracGuide, [http://projects.edgewall.com/trac/wiki/TracFaq TracFaq]z Rather than have its own report definition format, TracReports relies on standard SQL SELECT statements for custom report definition. A report consists of these basic parts: * ID -- Unique (sequential) identifier * Title -- Descriptive title * Description -- A brief description of the report, in WikiFormatting text. * Report Body -- List of results from report query, formatted according to the methods described below. * Footer -- Links to alternative download formats for this report. == Changing Sort Order == Simple reports - ungrouped reports to be specific - can be changed to be sorted by any column simply by clicking the column header. If a column header is a hyperlink (red), click the column you would like to sort by. Clicking the same header again reverses the order. == Alternate Download Formats == Aside from the default HTML view, reports can also be exported in a number of alternate formats. At the bottom of the report page, you will find a list of available da{ta formats. Click the desired link to download the alternate report format. === Comma-delimited - CSV (Comma Separated Values) === Export the report as plain text, each row on its own line, columns separated by a single comma (','). '''Note:''' Column data is stripped from carriage returns, line feeds and commas to preserve structure. === Tab-delimited === Like above, but uses tabs (\t) instead of comma. === RSS - XML Content Syndication === All reports support syndication using XML/RSS 2.0. To subscribe to a , click the the orange 'XML' icon at the bottom of the page. See TracRss for general information on RSS support in Trac. ---- == Creating Custom Reports == ''Creating a custom report requires a comfortable knowledge of SQL.'' A report is basically a single named SQL query, executed and presented by Trac. Reports can be viewed and created from a custom SQL expression directly in from the web interface. Typically, a report consists of a SELECT-expression from the 'ticket'| table, using the available columns and sorting the way you want it. == Ticket columns == The ''ticket'' table has the following columns: * id * time * changetime * component * severity * priority * owner * reporter * cc * url * version * milestone * status * resolution * summary * description See TracTickets for a detailed description of the column fields. '''all active tickets, sorted by priority and time''' '''Example:''' ''All active tickets, sorted by priority and time'' {{{ SELECT id AS ticket, status, severity, priority, owner, time as created, summary FROM ticket WHERE status IN ('new', 'assigned', 'reopened') ORDER BY priority, time }}} ---- == Advanced Reports: Dynamic Variables == For more flexible reports, Trac supports the use of ''dynamic variables'' in report SQL statements. In short, dynamic variables are ''special'' strings that are replaced by custom data before query execution. === Using Variables in a Q}uery === The syntax for dynamic variables is simple, any upper case word beginning with '$' is considered a variable. Example: {{{ SELECT id AS ticket,summary FROM ticket WHERE priority='$PRIORITY' }}} To assign a value to $PRIORITY when viewing the report, you must define it as an argument in the report URL, leaving out the the leading '$'. Example: {{{ http://projects.edgewall.com/trac/reports/14?PRIORITY=high }}} === Special/Constant Variables === There is one ''magic'' dynamic variable to allow practical reports, its value automatically set without having to change the URL. * $USER -- Username of logged in user. Example (''List all tickets assigned to me''): {{{ SELECT id AS ticket,summary FROM ticket WHERE owner='$USER' }}} ---- == Advanced Reports: Custom Formatting == Trac is also capable of more advanced reports, including custom layouts, result grouping and user-defined CSS styles. To create such reports, we'll use specialized SQL statements to contr~ol the output of the Trac report engine. == Special Columns == To format reports, TracReports looks for 'magic' column names in the query result. These 'magic' names are processed and affect the layout and style of the final report. === Automatically formatted columns === * '''ticket''' -- Ticket ID number. Becomes a hyperlink to that ticket. * '''created, modified, date, time''' -- Format cell as a date and/or time. * '''description''' -- Ticket description field, parsed through the wiki engine. '''Example:''' {{{ SELECT id as ticket, created, status, summary FROM ticket }}} === Custom formatting columns === Columns whose names begin and end with 2 underscores (Example: '''_''''''_color_''''''_''') are assumed to be ''formatting hints'', affecting the appearance of the row. * '''_''''''_group_''''''_''' -- Group results based on values in this column. Each group will have its own header and table. * '''_''''''_color_''''''_''' -- Should be a numeric value ranging from 1 to 5 to select a pre-defined row color. Typically used to color rows by issue priority. * '''_''''''_style_''''''_''' -- A custom CSS style expression to use for the current row. '''Example:''' ''List active tickets, grouped by milestone, colored by priority'' {{{ SELECT p.value AS __color__, t.milestone AS __group__, (CASE owner WHEN 'daniel' THEN 'font-weight: bold; background: red;' ELSE '' END) AS __style__, t.id AS ticket, summary FROM ticket t,enum p WHERE t.status IN ('new', 'assigned', 'reopened') AND p.name=t.priority AND p.type='priority' ORDER BY t.milestone, p.value, t.severity, t.time }}} '''Note:''' A table join is used to match ''ticket'' priorities with their numeric representation from the ''enum'' table. === Changing layout of report rows === By default, all columns on each row are display on a single row in the HTML report, possibly formatted according to the descriptions above. However, it's also possible to create multi-line re€port entries. * '''column_''' -- ''Break row after this''. By appending an underscore ('_') to the column name, the remaining columns will be be continued on a second line. * '''_column_''' -- ''Full row''. By adding an underscore ('_') both at the beginning and the end of a column name, the data will be shown on a separate row. * '''_column''' -- ''Hide data''. Prepending an underscore ('_') to a column name instructs Trac to hide the contents from the HTML output. This is useful for information to be visible only if downloaded in other formats (like CSV or RSS/XML). '''Example:''' ''List active tickets, grouped by milestone, colored by priority, with description and multi-line layout'' {{{ SELECT p.value AS __color__, t.milestone AS __group__, (CASE owner WHEN 'daniel' THEN 'font-weight: bold; background: red;' ELSE '' END) AS __style__, t.id AS ticket, summary AS summary_, -- ## Break line here component,version, severity, milestone, status, owner, time AS created, changetime AS modified, -- ## Dates are formatted description AS _description_, -- ## Uses a full row changetime AS _changetime, reporter AS _reporter -- ## Hidden from HTML output FROM ticket t,enum p WHERE t.status IN ('new', 'assigned', 'reopened') AND p.name=t.priority AND p.type='priority' ORDER BY t.milestone, p.value, t.severity, t.time }}} ---- See also: TracTickets, TracQuery, TracGuideü¯€$&16@¯¯¯TracAccessibility11113211280trac127.0.0.1= Accessibility Support in Trac = Not every user has a graphic environment with a mouse or other pointing device. Some users rely on keyboard, alternative keyboard or v‹€')49C‹‹‹TracInstallPlatforms11113211280trac127.0.0.1= Platform-specific Documentation = This is an index of pages describing how to install and run Trac on specific platforms and operating systems. All pages are owÙ€ +0:ÙÙÙTracReports11113211280trac127.0.0.1= Trac Reports = [[TracGuideToc]] The Trac reports module provides a simple, yet powerful reporting facility to present information about tickets in the Trac database. yYEŠ€*/9ŠŠŠTracBackup11113211280trac127.0.0.1= Trac Backup = Since Trac uses a database backend, it requires some extra care to safely create a backup of a TracEnvironment. Luckily, TracAdmin has a command to make backuBF% €')49C% % % WikiRestructuredText11113211280trac127.0.0.1= reStructuredText Support in Trac = Trac supports using ''reStructuredText'' (RST) as an alternative to wiki markup in any context WikiFormatting is used. FroQ’üeF€!#.3=FFFWikiFormatting11113211280trac127.0.0.1= WikiFormatting = Wiki markup is a core feature in Trac, tightly integrating all the other parts of Trac into flexible and powerful whole. Trac has a built in smallftÄ€ +0:ÄÄÄTracUnicode11113211280trac127.0.0.1= Unicode Support in Trac = Trac stores all text using UTF-8 encoding, including text in tickets and wiki pages. As such, it supports most (all?) commonly used characteru�¯€"$/4>¯¯¯TracEnvironment11113211280trac127.0.0.1= Trac Storage - The Environment = Trac uses a directory structure and an embedded [http://www.sqlite.org/ SQLite] database as storage. == Creating an Environment == „… A new Trac environment is created using [wiki:TracAdmin trac-admin], like: {{{ $ trac-admin /path/to/projectenv initenv }}} [wiki:TracAdmin trac-admin] will ask you where your subversion repository is located and where it can find the trac templates directory (the default value should work for a typical install). '''Note:''' The web server user will require file system write permission to the environment directory and all the files inside. '''Remember to set the appropriate permissions.'' The same applies for the subversion repository files (unless using the [http://svn.collab.net/repos/svn/trunk/notes/fsfs FSFS Subversion backend], something we highly recommend. == Directory Structure == {{{ EnvDir |-- README |-- VERSION |-- attachments | |-- ticket | `-- wiki |-- conf | `-- trac.ini |-- db | `-- trac.db |-- log | `-- trac.log |-- templates | |-- site_css.cs | |-- site_footer.cs | `-- site_header.cs `-- wiki-macros }}} * '''README''' - Brief description of the environment. * '''VERSION''' - Contains the environment version identifier. * '''attachments''' - All attached files go in here. * '''ticket''' - Ticket attachments. * '''wiki''' - Wiki attachments. * '''conf''' * '''trac.ini''' - Main configuration file. See TracIni. * '''db''' * '''trac.db''' - SQLite database. * '''templates''' - Custom (environment-specific) templates. * '''site_css.cs''' - Custom CSS stylesheet. * '''site_footer.cs''' - Custom footer. * '''site_header.cs''' - Custom header. * '''wiki-macros''' - Environment-specific WikiMacros. ---- See also: TracBackup, TracIni, TracGuide‡Formatting. Another kind of macros are WikiProcessors. They typically deal with alternate markup formats and representation of larger blocks of information (like source code highlighting). See also: WikiProcessors. == Using Macros == Macro calls are enclosed in two ''square brackets''. Like python functions, macros can also have arguments, a comma separated list within parenthesis. === Examples === {{{ [[Timestamp]] }}} Display: [[Timestamp]] {{{ [[HelloWorld(Testing)]] }}} Display: [[HelloWorld(Testing)]] == Available Macros == Macros are still a new feature, and the list of available (and distributed) macros is admittedly not very impressive. In future Trac releases, we hope to build a library of useful macros, and will of course happily include contributed macros (see below). * '''!HelloWorld''' -- An example macro, useful for learning how to write macros. * '''Timestamp''' -- Insert the current date and time. ---- == Macros from around the world ==ˆ The [http://projects.edgewall.com/trac/ Trac Project] has a section dedicated to user-contributed macros, [http://projects.edgewall.com/trac/wiki/MacroBazaar MacroBazaar]. If you're looking for new macros, or have written new ones to share with the world, don't hesitate adding it to the [http://projects.edgewall.com/trac/wiki/MacroBazaar MacroBazaar] wiki page. http://projects.edgewall.com/trac/wiki/MacroBazaar ---- == Developing New Macros == Macros, like Trac itself, are written in the [http://www.python.org/ Python programming language]. They are very simple modules, identified by the filename and should contain a single ''entry point'' function. Trac will display the returned data inserted into the HTML where the macro was called. It's easiest to learn from an example: {{{ # MyMacro.py -- The world's simplest macro def execute(hdf, args, env): return "Hello World called with args: %s" % args }}} === Advanced Topics: Template-enabled Macros === For advanced uses, macros can also render structured output in HDF, to be rendered to HTML using clearsilver templates - like most Trac output. In short, this allows more generic and well-designed advanced macros. Macros gain direct access to the main HDF tree, and are free to manipulate it. Example: {{{ def execute(hdf, args, env): # Currently hdf is set only when the macro is called # From a wiki page if hdf: hdf.setValue('wiki.macro.greeting', 'Hello World') # args will be null if the macro is called without parentesis. args = args or 'No arguments' return 'Hello World, args = ' + args }}} You can also use the environment (env) object to access configuration data. Example. {{{ def execute(hdf, txt, env): return env.get_config('trac', 'repository_dir') }}} ---- See also: WikiProcessors, WikiFormatting, TracGuides are followed by a lower-case letter, hence AlabamA and ABc will not be links. See also: WikiPageNames, WikiNewPage, WikiFormatting, TracWiki == More information on CamelCase == * http://c2.com/cgi/wiki?WikiCase * http://en.wikipedia.org/wiki/CamelCase�ÔcCamelCaseb0G1X€ameücTracAccessibilityb0G1X€sib|cTracBackupb0G1X€acDcTracBrowserb0G1X€c cTracEnvironmentb0G1X€iìcTracImportb0G1X€@ cTracInib0G1X€0cTracInstallb0G1X€c ŒcTracInstallPlatformsb0G1X€€cTracLoggingb0G1X€c¨cTracModPythonb0G1X€odP ÔcTracMultipleProjectsb0G1X€ücTracNotificationb0G1X€$cTracPermissionsb0G1X€ mHcTracQueryb0G1X€rac°cTracReportsb0G1X€clcSandBoxb0G1X€ x\cTracLinksb0G1X€"raccTracRoadmapb0G1X€#clcRecentChangesb0G1X€&s1XcTracAdminb0G1X€'racÈcTracGuideb0G1X€(rac cTracChangesetb0G1X€)han,cTitleIndexb0G1X€*xpèXcTracSearchb0G1X€acPcTracSupportb0G1X€ c|cTracSyntaxColoringb0G1X€ Co cTracTicketsb0G1X€c#ÐcTracTicketsCustomFieldsb0G1X€@ôcTracTimelineb0G1X€€cTracUnicodeb0G1X€c@cWikiFormattingb0G1X€rm`cWikiHtmlb0G1X€ ¤cWikiMacrosb0G1X€ki¬cWikiPageNamesb0G1X€ ageÔcWikiProcessorsb0G1X€oc $cWikiRestructuredTextb0G1X€cWikiStartb0G1X€iki%cWikiRestructuredTextLinksb0G1X€!ext,cTracStandaloneb0G1X€$anÈcTracUpgradeb0G1X€%c„cWikiNewPageb0G1X€+icTracWikib0G1X€,�ÔcCamelCaseb0G1X€ameücTracAccessibilityb0G1X€sib|cTracBackupb0G1X€acDcTracBrowserb0G1X€c cTracEnvironmentb0G1X€iìcTracImportb0G1X€@ cTracInib0G1X€0cTracInstallb0G1X€c ŒcTracInstallPlatformsb0G1X€€cTracLoggingb0G1X€c¨cTracModPythonb0G1X€odP ÔcTracMultipleProjectsb0G1X€ücTracNotificationb0G1X€$cTracPermissionsb0G1X€ mHcTracQueryb0G1X€rac°cTracReportsb0G1X€clcSandBoxb0G1X€ x\cTracLinksb0G1X€"raccTracRoadmapb0G1X€#clcRecentChangesb0G1X€&s1XcTracAdminb0G1X€'racÈcTracGuideb0G1X€(rac cTracChangesetb0G1X€)han,cTitleIndexb0G1X€*xpèXcTracSearchb0G1X€acPcTracSupportb0G1X€ c|cTracSyntaxColoringb0G1X€ Co cTracTicketsb0G1X€c#ÐcTracTicketsCustomFieldsb0G1X€@ôcTracTimelineb0G1X€€cTracUnicodeb0G1X€c@cWikiFormattingb0G1X€rm`cWikiHtmlb0G1X€ ¤cWikiMacrosb0G1X€ki¬cWikiPageNamesb0G1X€ ageÔcWikiProcessorsb0G1X€oc $cWikiRestructuredTextb0G1X€cWikiStartb0G1X€iki%cWikiRestructuredTextLinksb0G1X€!ext,cTracStandaloneb0G1X€$anÈcTracUpgradeb0G1X€%c„cWikiNewPageb0G1X€+icTracWikib0G1X€,�o process user-edited text''. The wiki engine uses processors to allow using [wiki:WikiRestructuredText Restructured Text] and [wiki:WikiHtml raw HTML] in any wiki text throughout Trac. == Using Processors == To use a processor on a block of text, use a wiki blockquote, selecting a processor by name using 'hashbang notation' (#!), familiar to most UNIX users from scripts. '''Example 1''' (''inserting raw HTML in a wiki text''): {{{ #!html
{{{
#!html
<h1 style="color: orange">This is raw HTML</h1>
}}}
}}} '''Results in:''' {{{ #!html

This is raw HTML

}}} ---- '''Example 2''' (''inserting Restructured Text in wiki text''): {{{ #!html
{{{
#!rst
A header
--------
This is some **text** with a footnote [*]_.

.. [*] This is the footnote.
}}}
}}} '''Results in:''' {{{ #!rst A header -------- This is some **text** with a footnote [*]_. .. [*] This is the footnote. }}�} ---- '''Example 3''' (''inserting a block of C source code in wiki text''): {{{ #!html
{{{
#!c
int main(int argc, char *argv[])
{
  printf("Hello World\n");
  return 0;
}
}}}
}}} '''Results in:''' {{{ #!c int main(int argc, char *argv[]) { printf("Hello World\n"); return 0; } }}} ---- == Available Processors == The following processors are included in the Trac distribution: * '''html''' -- Insert custom HTML in a wiki page. See WikiHtml. * '''rst''' -- Trac support for Restructured Text. See WikiRestructuredText. * '''textile''' -- Initial support as of aug 2, 2004. See [http://projects.edgewall.com/trac/ticket/593 ticket 593] and [http://dealmeida.net/projects/textile/ Textile]. === Source Code Support === Trac includes processors to provide inline [wiki:TracSyntaxColoring syntax highlighting] for these languages: * '''c''' -- C * '''cpp''' -- C++ * '''python''' -- Python * '''perl''' -- Perl * '''ruby''' -- Ruby * ‘'''php''' -- PHP * '''asp''' --- ASP * '''sql''' -- SQL * '''xml''' -- XML '''Note:''' ''Trac relies on external software packages for syntax coloring. See TracSyntaxColoring for more info.'' By using the mime-type as processor, it is posible to syntax-highlight the same languages that are supported when browsing source code. (The list of mime-types can be found in [source:trunk/trac/Mimeview.py Mimeview.py]). For example, you can write: {{{ {{{ #!text/html

text

}}} }}} The result will be syntax highlighted html code. The same is valid for all other mime types supported. For more processor macros developed and/or contributed by users, visit the macro bazaar: http://projects.edgewall.com/trac/wiki/MacroBazaar ---- == Advanced Topics: Developing Processor Macros == Developing processors is no different than WikiMacros. In fact they work the same way, only the usage syntax differs. See WikiMacros for more information. '''Example:''' (''Restructured Text Processor''): {{{ from docutils.core import publish_string def execute(hdf, text, env): html = publish_string(text, writer_name = 'html') return html[html.find('')+6:html.find('')].strip() }}} ---- See also : WikiMacros, WikiHtml, WikiRestructuredText, TracSyntaxColoring, WikiFormatting, TracGuideüP €*/9P P P WikiMacros11113211280trac127.0.0.1= Wiki Macros = Trac macros are plugins to extend the Trac engine with custom 'functions' written in Python. A macro inserts dynamic HTML data in any context supporting Wiki†ð€).8ðððCamelCase11113211280trac127.0.0.1New words created by smashing together capitalized words. CamelCase is the original wiki convention for creating hyperlinks, with the additional requirement that the capital‰%€!#.3=%%%WikiProcessors11113211280trac127.0.0.1= Wiki Processors = Processors are WikiMacros designed to provide alternative markup formats for the Trac Wiki engine. Processors can be thought of as ''macro functions tŽ”rac search facility is straightforward and its interface should be familiar to most www users. Apart from the [search: Search module], you will also find a small search field above the navigation bar at all time. It provides convenient access to the search module from all pages. == Quickjumps == For intermediate and advanced use, Trac has a useful way to quickly navigate to a given resource, named '''quickjumps'''. If you enter a [wiki:TracLinks TracLink] in the search field above the navigation bar, Trac will recognize this and assume you know where you're going. For example: * ![42] -- Opens change set 42 * !#42 -- Opens ticket number 42 * !{1} -- Opens report 1 '''Note:''' ''This is a particularly useful feature to quickly navigate to a specific issue ticket or changeset.'' === Advanced: Disabling Quickjumps === To disable the quickjump feature for a search keyword - for example when searching for occurences of the literal word !TracGuide - begin the query with an exclamation mark (!). ---- See also: TracGuide, TracLinks, TracQueryeting a specified set of criteria. To configure and execute a custom query, switch to the ''View Tickets'' module from the navigation bar, and select the ''Custom Query'' link. == Query Form == A form will be presented, letting you select or enter values for any of the ticket properties (both built-in and custom). Any value selected/entered in this form will be used to constrain the set of tickets displayed. Only tickets where properties match the criteria will be displayed. == Results Display == After executing the search, a list of tickets meeting the selected criteria will show. By default, the list is sorted by priority. You can change the sorting to any other visible column by clicking on the corresponding column header. Clicking the same header again will reverse the sort order. You can edit the query by clicking ''Refine Query''. ---- See also: TracTickets, TracReports, TracGuide—ng of software issues, enhancements and overall progress. All aspects of Trac have been designed with the single goal to '''help developers write great software''' while '''staying out of the way''' and imposing as little as possible on a team's established process and culture. As all Wiki pages, this page is editable, this means that you can modify the contents of this page simply by using your web-browser. Simply click on the "Edit this page" link at the bottom of the page. WikiFormatting will give you a detailed description of available Wiki formatting commands. "[wiki:TracAdmin trac-admin] ''yourenvdir'' initenv" created a new Trac environment, containing a default set of wiki pages and some sample data. This newly created environment also contains [wiki:TracGuide documentation] to help you get started with your project. You can use [wiki:TracAdmin trac-admin] to configure [http://trac.edgewall.com/ Trac] to better fit your project, especially in regard to ''components'', ''versions'' and ''milestones''. TracGuide is a good place to start. Enjoy! [[BR]] ''The Trac Team'' == Starting Points == * TracGuide -- Built-in Documentation * [http://projects.edgewall.com/trac/ The Trac project] -- Trac Open Source Project * [http://projects.edgewall.com/trac/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions * TracSupport -- Trac Support For a complete list of local wiki pages, see TitleIndex. Trac is brought to you by [http://www.edgewall.com/ Edgewall Software], providing professional Linux and software development services to clients worldwide. Visit http://www.edgewall.com/ for more information. ™sing a Python version older than 2.3, the Trac logging mechanism will be silently disabled. Logging is configured in the {{{[logging]}}} section in [wiki:TracIni trac.ini]. == Python 2.2 Workaround == If you are using Python 2.2, however, note that the logging package from Python 2.3 works perfectly under 2.2 as well; you can just copy the entire {{{logging}}} directory from the Python 2.3 library into the Python 2.2 lib directory. Perhaps not the most elegant solution, but it works. == Supported Logging Methods == * '''none''' -- Suppress all log messages. * '''file''' -- Log messages to a file, specified with the ''log_file'' directive in [wiki:TracIni trac.ini]. * '''stderr''' -- Output all log entries to console ([wiki:TracStandalone tracd] only). * '''syslog''' -- (UNIX) Send messages to local syslogd via named pipe '/dev/log'. * '''winlog''' -- (Windows) Use the system's NT eventlog for Trac logging. == Log Levels == The level of verbosity of logged messages can be set using the ''log_level'' directive in [wiki:TracIni trac.ini]. The log level defines the minimum level of urgency required for a message to be logged. The levels are: * ''CRITICAL'' -- Log only the most critical, typically fatal, messages. * ''ERROR'' -- Request failures, bugs and errors. * ''WARN'' -- Warnings, non-interrupting events. * ''INFO'' -- Diagnostic information, log information about all requests. * ''DEBUG'' -- Development messages, profiling, etc. Not fit for human consumption. ---- See also: TracIni, TracGuide, TracEnvironmentüƒ€).8ƒƒƒTracQuery11113211280trac127.0.0.1= Trac Ticket Queries = [[TracGuideToc]] In addition to [wiki:TracReports reports], Trac provides support for ''custom ticket queries'', used to display lists of tickets me•U€).8UUUWikiStart11113211280trac127.0.0.1= Welcome to Trac 0.8.1 = Trac is a '''minimalistic''' approach to '''web-based''' management of '''software projects'''. Its goal is to simplify effective tracking and handli–€ +0:TracLogging11113211280trac127.0.0.1= Trac Logging = [[TracGuideToc]] Trac supports logging of system messages using the standard ''logging'' module part of Python 2.3 and newer. '''Note:''' If you are u˜œ }}} }}} This is a list of example uses of the ''trac'' directive, providing use of TracLinks in WikiRestructuredText. Note that not all that functionality has been merged yet. The patch attached to #801 provides all of these. {{{ #!rst Examples -------- trac role ========= Syntax is \`link\`\:trac: or :trac:\`link\`, and could be put anywhere in the text. 'link' has the same format as explain for the ``.. trac::`` directive below. ``In the middle of my text `WikiFormatting`:trac: see!!!!`` In the middle of my text `WikiFormatting`:trac: see!!!! or ``In the middle of my text :trac:`WikiFormatting` see!!!!`` In the middle of my text :trac:`WikiFormatting` see!!!! wiki ==== ``.. trac:: WikiFormatting`` .. trac:: WikiFormatting ``.. trac:: wiki:WikiFormatting`` .. trac:: wiki:WikiFormatting ``.. trac:: wiki:WikiFormatting WikiFormatting`` .. trac:: wiki:WikiFormatting WikiFormatting ``.. trac:: wiki:WikiFormatting LinkText`` .. trac:: �wiki:WikiFormatting LinkText tickets ======= ``.. trac:: #1`` .. trac:: #1 ``.. trac:: #1 ticket one`` .. trac:: #1 ticket one ``.. trac:: ticket:1`` .. trac:: ticket:1 ``.. trac:: ticket:1 ticket one`` .. trac:: ticket:1 ticket one reports ======= ``.. trac:: {1}`` .. trac:: {1} ``.. trac:: {1} report one`` .. trac:: {1} report one ``.. trac:: report:1`` .. trac:: report:1 ``.. trac:: report:1 report one`` .. trac:: report:1 report one changesets ========== ``.. trac:: [42]`` .. trac:: [42] ``.. trac:: [42] changeset 42`` .. trac:: [42] changeset 42 ``.. trac:: changeset:42`` .. trac:: changeset:42 ``.. trac:: changeset:42 changeset 42`` .. trac:: changeset:42 changeset 42 ``.. trac:: foo`` .. trac:: foo files ===== ``.. trac:: browser:/trunk/trac`` .. trac:: browser:/trunk/trac The leading ``/`` can be omitted... ``.. trac:: repos:trunk/trac trunk/trac`` .. trac:: repos:trunk/trac trunk/trac ``.. trac:: source:trunk/trac Trac source code`` .. trac:: source:trunk/trac Trac source code ``.. trac:: browser:trunk/README`` .. trac:: browser:trunk/README ``.. trac:: repos:trunk/README trunk/README`` .. trac:: repos:trunk/README trunk/README ``.. trac:: source:trunk/README README in trunk`` .. trac:: source:trunk/README README in trunk Note that if ``hoo`` is a file, the link targets its revision log. In order to see the file's content, you need to specify the revision explicitely, like here: ``.. trac:: browser:/trunk/README#latest latest of trunk/README`` .. trac:: browser:/trunk/README#latest latest of trunk/README ``.. trac:: repos:trunk/README#42 trunk/README in rev 42`` .. trac:: repos:trunk/README#42 trunk/README in rev 42 }}} ---- See also: WikiRestructuredTextLinks, TracLinksŸi pages, milestones and source files) from anywhere WikiFormatting is used. TracLinks are generally of the form '''item:id''' (where ''id'' represents the number, name or path of the item) though some frequently used kinds of items also have short-hand, alternative, notations. Some examples: * Tickets: '''!#1''' or '''!ticket:1''' * Reports: '''!{1}''' or '''!report:1''' * Changesets: '''![1]''' or '''!changeset:1''' * Wiki pages: '''CamelCase''' or '''!wiki:CamelCase''' * Milestones: '''!milestone:1.0''' * Files: '''!source:trunk/COPYING''' Display: * Tickets: #1 or ticket:1 * Reports: {1} or report:1 * Changesets: [1] or changeset:1 * Wiki pages: CamelCase or wiki:CamelCase * Milestones: milestone:1.0 * Files: source:trunk/COPYING '''Note:''' The wiki:CamelCase form is rarely used, but it can be convenient to refer to pages whose names do not follow WikiPageNames rules, i.e., single words, non-alphabetic characters, etc. Trac links using the full (non-short hand) notation can also be given a custom link title like this: {{{ [ticket:1 This is a link to ticket number one]. }}} Display: [ticket:1 This is a link to ticket number one]. It might seem a simple enough concept at a glance, but actually allows quite a complex network of information. In practice though, it's very intuitive and simple to use, and we've found the "link trail" extremely helpful to better understand what's happening in a project or why a particular change was made. == source: links == The default behavior for a source:/some/path link is to open the directory browser if the path points to a directory and otherwise open the log view. It's also possible to link directly to a specific revision of a file like this: source:/some/file#123 or like this to link to the latest revision: source:/some/file#latest. == Where to use TracLinks == You can use TracLinks in: * Source code (Subversion) commit messages * Wiki pages * Full descriptions for tickets, reports and milestones and any other text fields explicitly marked as supporting WikiFormatting. == Escaping TracLinks == To prevent parsing of a !TracLink, you can escape it by preceding it with a '!' (exclamation mark). {{{ !NoLinkHere. ![42] is not a link either. }}} Display: !NoLinkHere. ![42] is not a link either. ---- See also: WikiFormatting, TracWiki ¢ject. == The Roadmap View == Basically, the roadmap is just a list of future milestones. You can add a description to milestones (using WikiFormatting) describing main objectives, for example. In addition, tickets targeted for a milestone are aggregated, and the ratio between active and resolved tickets is displayed as a milestone progress bar. == The Milestone View == It is possible to drill down into this simple statistic by viewing the individual milestone pages. By default, the active/resolved ratio will be grouped and displayed by component. You can also regroup the status by other criteria, such as ticket owner or severity. Ticket numbers are linked to [wiki:TracQuery custom queries] listing corresponding tickets. == Roadmap Administration == It is possible to add, modify and remove milestones using either TracAdmin or the web interface. '''Note:''' Milestone descriptions can currently only be edited from the web interface. With appropriate permissions, you'll see links below the main navigation bar to manage milestones. == iCalendar Support == The Roadmap supports the [http://www.ietf.org/rfc/rfc2445.txt iCalendar] format to keep track of planned milestones and related tickets from your favorite calendar software. Calendar applications supporting the iCalendar specification include [http://www.apple.com/ical/ Apple iCal] for Mac OS X and the cross-platform [http://www.mozilla.org/projects/calendar/ Mozilla Calendar]. To subscribe to the roadmap, copy the iCalendar link from the roadmap (found at the bottom of the page) and choose the "Subscribe to remote calendar" action (or similar), and insert the URL just copied. '''Note:''' For tickets to be included in the calendar (as TO-DO items), you need to be authenticated when copying the link. You will only see tickets assigned to yourself, and associated with a milestone. ---- See also: TracTickets, TracReports, TracQuery, TracGuideü €!,.9>H WikiRestructuredTextLinks11113211280trac127.0.0.1= TracLinks in reStructuredText = This document is for testing the ``..trac::`` directive. The page is written like {{{ {{{ #!rst Examples ... ...›] €").8] ] ] TracLinks11113211280trac127.0.0.1= Trac Links = As you might have guessed, TracLinks are a very fundamental feature of Trac. They allow hyperlinking between Trac entities (tickets, reports, changesets, WikžŽ€# +0:ŽŽŽTracRoadmap11113211280trac127.0.0.1= The Trac Roadmap = [[TracGuideToc]] The roadmap provides a view on the [wiki:TracTickets ticket system] that helps planning and managing the future development of a pro¡¥ == Pros == * Fewer dependencies: You don't need to install apache or any other web-server. * Fast: Should be as fast as the ModPython version (much faster than the cgi). == Cons == * Less features: Tracd implements a very simple web-server and is not as configurable as apache. * Only htdigest authentication: Tracd can currently only authenticate users against apache-htdigest files. * No native https support: [http://www.rickk.com/sslwrap/ sslwrap] can be used instead. == Usage examples == A single project on port 8080. (http://localhost:8080/) {{{ $ tracd -p 8080 /path/to/project }}} With more than one project. (http://localhost:8080/project1/ and http://localhost:8080/project2/) {{{ $ tracd -p 8080 /path/to/project1 /path/to/project2 }}} With htdigest authentication. The file /tmp/users.htdigest contain user accounts for project1 with the realm "mycompany.com". {{{ $ tracd -p 8080 --auth project1,/tmp/users.htdigest,mycompany.com /path/to/project1 }}} ---- See also: TracGuide, TracInstall, TracModPython§steps necessary to upgrade an environment. == From 0.7.x to 0.8 == The database schema was changed between 0.7.x and 0.8. Existing environments must be upgraded before they can be used with Trac 0.8. The following command will automatically perform the upgrade: {{{ $ trac-admin /path/to/projectenv upgrade }}} Trac environments are created with a default set of wiki pages. It's recommended to update these pages on existing environments whenever Trac is upgraded to get up-to-date documentation and additional functionality. The following command will perform the update: {{{ $ trac-admin /path/to/projectenv wiki upgrade }}} 0.8 adds a new roadmap feature which requires additional permissions. While a fresh installation will by default grant ROADMAP_VIEW and MILESTONE_VIEW permissions to anonymous, these permissions have to be granted manually when upgrading: {{{ $ trac-admin /path/to/projectenv permission add anonymous MILESTONE_VIEW $ trac-admin /path/to/projectenv permission add anonymous ROADMAP_VIEW }}} ----- See also: TracGuide, TracInstall©it your needs. == Usage == {{{ Usage: trac-admin [command [subcommand] [option ...]] Invoking trac-admin without command starts interactive mode. about -- Shows information about trac-admin help -- Show documentation initenv -- Create and initialize a new environment interactively initenv -- Create and initialize a new environment from arguments hotcopy -- Make a hot backup copy of an environment. resync -- Re-synchronize trac with the repository upgrade -- Upgrade database to current version. wiki list -- List wiki pages ª wiki export [file] -- Export wiki page to file or stdout wiki import [file] -- Import wiki page from file or stdin wiki dump -- Export all wiki pages to files named by title wiki load -- Import all wiki pages from directory wiki upgrade -- Upgrade default wiki pages to current version permission list -- List permission rules permission add [action] [...] -- Add a new permission rule permission remove [action] [...] -- Remove permission rule component list -- Show available components component« add -- Add a new component component rename -- Rename a component component remove -- Remove/uninstall component component chown -- Change component ownership priority list -- Show possible ticket priorities priority add -- Add a priority value option priority change -- Change a priority value priority remove -- Remove priority value severity list -- Show possible ticket priorities severity add ¬ -- Add a severity value option severity change -- Change a severity value severity remove -- Remove severity value version list -- Show versions version add [time] -- Add version version rename -- Rename version version time