NuWa Trac

This page was derived from IHEP|dybsvn|wiki:NuWa_Trac (http://dayabay.ihep.ac.cn/tracs/dybsvn/wiki/NuWa_Trac)

Main page is here: http://dayabay.ihep.ac.cn/tracs/dybsvn

NuWa Trac

Glossary

ticket defect OR enhancement request
Trac Instance installed Trac web application associated with an SVN repository
workflow a sequence of states thru which tickets pass

Nuwa Trac Login and Preferences

Prior to login the top line tabs of Trac will be almost empty, only allowing access to the front page and links into other pages will result in error messages featuring 404 not allowed. Access the full functionality using the Login link near the top right. To be informed of status changes to tickets your create or close or build/test failures associated with your commits you must associate an email address with your Trac account using the preferences link at the top right.


Receiving Trac notifications via email

See this Link to arrange to receive email from Trac for failed builds and changes to tickets.

Tickets

Should you create a new ticket ?

First search for a pre-existing ticket that matches your intended one, using the search box at top right of the dybsvn Trac instance. If you do not find a matching ticket click the New Ticket tab available at the top of every dybsvn Trac page. If in doubt create the ticket anyhow, if it is a duplicate it can easily be flagged as such.

Fields To Fill

Short summary provide the bottom line error in full (by copy and paste) , searchability is more important than readability
Type defect/enhancement/task
Full description Mention the command you were running and any peculiarities of your installation, also mention your platform. Provide at least the last 10 lines or so of traceback up to and including the bottom line error. See below for details of creating good descriptions
Priority blocker/critical/major/minor/trivial
Milestone assign the ticket to a milestone (optional ... usually leave this to management )
Component sub-component of the NuWa software concerned. See below list of components
Version the version of the software in use (eg trunk )
Keywords comma or space separated list of keywords eg Linux,Ubuntu,Zlib,Prerequisite, see below for Keyword guidelines
Assign To username of the person tasked to handle this issue (optional ... usually leave this to management )
CC (optional ... additional email address to be notified of status changes to this ticket )

Example Image of Ticket Creation

 


Ticket Type

Provides categorization of the ticket:

Defect a bug, anything that does not work as expected
Enhancement a new feature or an improvement over an existing one
Task everything else, something that needs to be done

Priority Classification

Priority, for asserting the importance of a ticket

blocker basic functionality is not available until this is fixed
critical severe loss of data due to the defect or highly needed enhancement
major defect with major impact / big enhancement
minor defect with minor impact / small enhancement
trivial defect with little or no impact / cosmetic enhancement

NuWa components

Initial thoughts on components, soon to be replaced.

documentation /dybgaudi/trunk/Documentation omissions, errors, etc..
installation /installation/trunk dybinst automated installation system and pre-requisites issues
dybtest /dybgaudi/trunk/DybTest automated test running and presentation system, including nose, xmlnose and bitten-slave
db /db/trunk
generators /dybgaudi/trunk/Generators wrappers around the generators and the generators themselves
gentools /dybgaudi/trunk/Simulation/GenTools common tools that stand between the generators and gaudi
elecsim /dybgaudi/trunk/Simulation/ElecSim
trigsim /dybgaudi/trunk/Simulation/TrigSim
detsim /dybgaudi/trunk/Simulation/DetSim
dybgaudi /dybgaudi/trunk dybgaudi not covered by above components
python scripts gaudi python script issues
other none of the above components seems appropriate

The components are comprised :

  • name ( free-form, but most are derived from repository paths )
  • owner ( corresponding to the SVN username , which via Trac preferences is associated to an email address )

They provide a classification of tickets, that is used for automated email notification to the relevant owners.

automated component updates

To reduce the maintenance burden of maintaining a long list of paths and owners, the directories to be promoted to components are identified by the setting of SVN owner properties on directories in the repository (these properties are visible in the web interface) :

cd dybgaudi/Simulation
svn propset owner bv GenTools
> property 'owner' set on 'GenTools'
svn propget owner GenTools
> bv
svn ci -m "set properties for the autocomponent script "

The properties are propagated into components via the autocomponent script that is manually run on the server. The result of property changes is the creation/updating/deletion of the components, in the above case components are created/edited :

The Trac preferences for the SVN user offline allows the setting of an email address associated with the additional components. For further details (only administrators need know more) see the script hosted at NTU :


Writing a good description

Good descriptions for a problem report are the ones that make it easy for the developers to understand and/or reproduce the problem.

To that end, it's usually necessary to give the following information:

  • How To Reproduce: describe what you were doing when the problem happened such that someone following your instructions can reproduce the problem. The fewer the steps and shorter the time needed to reproduce the issue the more attention developers will give to finding a solution so attempt to isolate the issue if you can.


  • backtrace: if you have one, append it at the end of the description, enclosed in a {{{ ... }}} block, creating a code block.

Note the description can use use the full range of Trac wikitext formatting and linking facilities. See the front page (http://dayabay.ihep.ac.cn/tracs/dybsvn) of the dybsvn Trac instance for examples of linking to revisions, docdb documents, wiki pages, other tickets etc..


Good Keywords

Assigning appropriate keywords to your tickets will facilitate rapid finding of issues and finding related issues. To assign good keywords check the list of keywords (Tag Cloud) on the front page (http://dayabay.ihep.ac.cn/tracs/dybsvn) for tags or keywords that are appropriate to your issue and then re-use those with the same spelling and capitalization. Using multiple short keywords (delimited by spaces) is encouraged. When creating new keywords follow the capitalization conventions of the pre-existing keywords.

Trac Wiki Text basics

Code blocks

Code blocks, useful for stack traces, are defined using three curly brackets :

{{{
  def HelloWorld():
      print "Hello World"
}}}

Display:

 def HelloWorld():
     print "Hello World"

Details on wiki formatting


Diff blocks

Present a unified diff with the wikitext :

{{{
Index: bitten/admin.py
===================================================================
--- bitten/admin.py	(revision 547)
+++ bitten/admin.py	(working copy)
@@ -235,6 +235,22 @@
             config.delete(db=db)
         db.commit()
 
+
+    def _resolve_recipe(self, recipe_xml , authname ):

}}}


Linking using url prefixes

Wikitext like :

docdb:101

can be turned into a link by setting up URL prefixes by editing a wiki page, which associates docdb with the required URL.

Links to other tickets can be made using hash followed by the ticket number, eg

#1

Details on linking


Ticket Workflow

From Trac 0.11 the states thru which tickets pass is configurable, depending on the workflow in use, the basic one is intended to be used.


Viewing Tickets

Reports

Users with appropriate permissions can create named customized reports by tweaking an SQL statement

after which additional entries will appear in the Available Reports list obtained from the View Tickets link. Links to these reports can be made using wikitext, eg for report 6

{6}

This wikitext can be entered into the search box at top right to access the report. Note that milestone descriptions are in wikitext, hence can contain links to such customized reports.

Queries

An alternative to reports is to create a query interactively , by choosing Custom Query at the top right while viewing Available Reports. The queries can also be stored in wikitext form. A Daya Bay specific example is shown here.