Edgewall Software

Changes between Version 9 and Version 10 of NewWorkflow


Ignore:
Timestamp:
Nov 15, 2004, 9:13:20 PM (20 years ago)
Author:
pkou <pkou at ua.fm>
Comment:

New patch that includes refactoring of ticket-specific code in order to support customized workflows

Legend:

Unmodified
Added
Removed
Modified
  • NewWorkflow

    v9 v10  
    1313
    1414List of attachments:
    15  * '''patch-newworkflow-r1040.diff''': Source code patch for Trac;
     15 * '''patch-newworkflow-r1064.diff''': Source code patch for Trac;
    1616 * '''closedticket.png''': Updated icon for closed tickets in timeline;
    1717 * '''resolvedticket.png''': New icon for resolved tickets in timeline;
     
    2929This documents includes description and implementation of new workflow system that resolves this issue for ''Trac''.
    3030
    31 It is still possible to use existing workflow with these changes. The new workflow does not remove existing workflow.  Workflow version is configured in ''trac.ini'' via property ''workflow_version''.
     31It is still possible to use existing workflow with these changes. The new workflow does not remove existing workflow.  Workflow is configured in ''trac.ini'' via property ''workflow''.
    3232
    3333== Workflow Transitions ==
     
    9797   1. Refresh source code tree from http://svn.edgewall.com/repos/trac/trunk;
    9898   1. Apply attached patch;
    99    1. Add attached files '''closedticket.png''', '''resolvedticket.png''', and '''reopenedticket.png''' to directory '''htdocs''';
    100    1. Install Trac by running '''setup.py install'''
    101  1. Upgrade every project by running '''trac-admin ''project-path'' upgrade''';
     99   1. Add attached files {{{closedticket.png}}}, {{{resolvedticket.png}}}, and {{{reopenedticket.png}}} to directory {{{htdocs}}};
     100   1. Install Trac by running {{{setup.py install}}}
     101 1. Upgrade every project by running {{{trac-admin project-path upgrade}}};
    102102 1. Settings for several predefined reports are overridden during the upgrade.  If standard reports have been customized for a project, then it is necessary to repeat the customization using the following steps:
    103    1. Go to directory ''' ''project-path''/db''';
     103   1. Go to directory {{{project-path/db}}};
    104104   1. Dump existing reports by running {{{sqlite trac.db ".dump report" > dump.new}}}
    105105   1. Dump original reports by running {{{sqlite trac.db.7.bak ".dump report" > dump.old}}}
     
    110110     1. Review and modify ''components''. Specify '''owner''' and '''qaowner''' for every component;
    111111     1. Review and modify ''milestones''. Specify '''owner''' for every milestone.
    112    1. Finally, edit''' ''project-path''/conf/trac.ini''' and change property '''workflow_version''' to '''2''' (section '''ticket''');
     112   1. Finally, edit {{{project-path/conf/trac.ini}}} and change property '''workflow''' to '''trac.workflows.QaRmtWorkflow''' (section '''ticket''');
    113113
    114114== Modified Files and Detailed Release Notes ==
     
    116116Many files have been modified and below list describes the changes.  The patch is also available.
    117117
    118  * Files '''wiki-default/TracIni''', '''wiki-default/TracAdmin''', '''scripts/trac-admin''', '''trac/db_default.py''', '''trac/Environment.py'''; Added '''trac/upgrades/db8.py''':
    119    * Property ''workflow_version'' added to ''trac.ini'', section ''tickets'':
    120      * For new projects and by default, it equals to '''2''' and new workflow is used;
    121      * For upgraded projects, it equals to '''1''' and current (old) workflow is used;
    122      * The version of workflow can be changed at any time.
     118=== Refactoring of Trac code for easy support of customized workflows ===
     119
     120 * File {{{wiki-default/TracIni}}}:
     121   * Property ''workflow'' added to ''trac.ini'', section ''tickets'':
     122     * The property specifies class name that implements workflow for Trac;
     123     * By default, it equals to '''trac.workflows.SimpleWorkflow''' and current workflow is used.
     124 * File {{{setup.py}}}; Added {{{trac/workflows/__init__.py}}}:
     125   * Install additional directory ''trac/workflows'', which contains predefined implementations of workflows for Trac.
     126 * Added {{{trac/workflows/Base.py}}}:
     127   * Abstract base class for any workflow.  All workflow implementations should be derived from it.
     128 * Added {{{trac/workflows/SimpleWorkflow.py}}}, {{{templates/ticket_workflow_simple.cs}}}:
     129   * Implementation of standard workflow (as in Trac 0.8).
     130 * Files {{{trac/Ticket.py}}}, {{{templates/ticket.cs}}}, {{{templates/newticket.cs}}}:
     131   * Code refactoring for customized workflow usage;
     132   * Workflow-specific code has been moved to {{{trac/workflows/SimpleWorkflow.py}}} and {{{templates/ticket_workflow_simple.cs}}};
     133   * Visible enhancements:
     134     * Better error handling: If validation of a ticket is failed, then the ticket is displayed in preview mode automatically with explanation of errors;
     135     * Custom fields are preserved in preview mode (see #930 also).
     136
     137=== Changes for new workflow ===
     138
     139 * Files {{{wiki-default/TracAdmin}}}, {{{scripts/trac-admin}}}, {{{trac/db_default.py}}}, {{{trac/upgrades/__init__.py}}}; Added {{{trac/upgrades/db8.py}}}:
    123140   * New ticket statuses ''resolved'' and ''verified'' added:
    124141     * Status ''resolved'' is used by QA for testing;
     
    142159       * ''Resolved Tickets by Owner''.
    143160     * For processing verified and closed defects by Release Manager:
    144        * ''Verified Tickets by Milestone (Full Description)''.
     161       * ''Completed Tickets by Milestone (Full Description)''.
    145162   * Default report ''All Tickets by Milestone'' renamed to ''Active Tickets by Milestone'' because existing name does not correspond to what is produced by the report;
    146163   * Default report ''My Tickets'' updated so that new statuses are queried;
     
    148165     * '''Not Assigned''' displayed as group name for empty ''owner'' or ''milestone'';
    149166     * '''Not Specified''' displayed as group name for empty ''version'';
    150    * Database version changed to '''8'''.  Affected tables including reports are updated during database upgrade.  Old workflow is used by default after the upgrade.
    151 
    152  * Files '''trac/Ticket.py''', '''templates/ticket.cs''':
    153    * New workflow is used when ''workflow_version'' equals to '''2''' in ''trac.ini'', section ''ticket''.  See separate chapter '''Workflow Transitions''' for details;
    154    * Owner is calculated automatically when statuses are changed.  The cacluation depends on currently logged user, status, component owner, component qaowner, milestone owner, and ticket reporter.  See separate section '''Automatic Ticket Assignment''' for details;
    155    * Displayed ticket actions depend on current workflow version;
    156 
    157  * Files '''trac/Milestone.py''', '''trac/Roadmap.py''', '''templates/roadmap.cs''', '''templates/milestone.cs''':
     167   * Database version changed to '''8'''.  Affected tables including reports are updated during database upgrade;
     168   * Old workflow is used by default after the upgrade.  New workflow is used by default for new projects.
     169
     170 * Files {{{trac/workflows/__init__.py}}}; Added {{{trac/workflows/QaRmtWorkflow.py}}}, {{{templates/ticket_workflow_qarmt.cs}}}:
     171   * Implementation of new workflow.  See separate chapters '''Workflow Transitions''' and '''Automatic Ticket Assignment''' for details.
     172
     173 * File {{{templates/ticket.cs}}}:
     174   * Display resolution in ticket header when it is available (currently, the resolution is displayed for closed tickets only).
     175
     176 * Files {{{trac/Milestone.py}}}, {{{trac/Roadmap.py}}}, {{{templates/roadmap.cs}}}, {{{templates/milestone.cs}}}:
    158177   * Word '''resolved''' is replaced with word '''completed''' in order to eliminate conflict with status ''resolved'';
    159178   * New statuses used when percentage is calculated:
     
    164183   * New statuses are taken into account when information is downloaded in ''iCalendar'' format.
    165184
    166  * Files '''htdocs/css/timeline.css''', '''htdocs/closedticket.png''', '''trac/Timeline.py''', '''templates/timeline_rss.cs''', '''templates/timeline.cs'''; Added '''htdocs/resolvedticket.png''':
     185 * Files {{{htdocs/css/timeline.css}}}, {{{htdocs/closedticket.png}}}, {{{trac/Timeline.py}}}, {{{templates/timeline_rss.cs}}}, {{{templates/timeline.cs}}}; Added {{{htdocs/resolvedticket.png}}}, {{{htdocs/reopenedticket.png}}}:
    167186   * The ''resolved'' and ''verified'' tickets added to timeline when new workflow is used;
    168187   * ''Milestone owner'' is retrieved from database for RSS;
    169188   * New icons are used for ''resolved'', ''closed'', and ''reopened''/''retested'' tickets in timeline.
    170189
    171  * File '''trac/Wikiformatter.py''':
     190 * File {{{trac/WikiFormatter.py}}}:
    172191   * Ticket status is displayed in popups for ticket numbers.
    173192
     
    183202== Patch History ==
    184203
     204 * '''patch-newworkflow-r1040.diff''': Patch that does not include refactoring in {{{Ticket.py}}} in order to support customized workflows.
    185205 * '''patch-newworkflow-r1034.diff''': Patch that includes one more non-related change (see #905 for details).  There are no more changes to remove! :-)
    186206 * '''patch-newworkflow-r1016.diff''': Patch that includes one more non-related change (see #892 for more details).  Also, this patch has merge conflicts with current codebase.  Also, this patch does not contain support for separate icon for reopened/retested tickets.