[[BackLinksMenu]] [[TicketQuery(summary=SCS_ISSUE_TRACKER_SETUP_R2, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == As we are getting close to beta versions, issue tracker should be set up in a way that is convinient for the end users to report bugs. == Task requirements == * Change default tickets type to bug * Make the default component of tickets "uncategorized" * Review trac permissions * unregistered (anonymous) users should be able to: * Create a ticket of type bug * An explanation of what should they fill in will be useful * unregistered users should NOT be able to * Create more than number of tickets for a time interval * Delete or edit existing tickets - this should also be noted (this one is easy - ticket deletion is not possible without a plugin). * Some of the registered users should be able to * Delete tickets - this should be discussed - accidently deleting of tickets won't be nice, but unwanted content should be deleteable. Probably deletion of bug tickets only is enough, but should be done by some users only. == Task result == Issue tracker ready for anonymous bug reporting. == Implementation idea == Install the plugins from the Related section. === Workflow === Here is the example from the TypedTicketWorkflow sample {{{ [ticket] workflow = TypedTicketWorkflow [ticket-workflow] accept = new,assigned,accepted,reopened -> accepted accept.operations = set_owner_to_self accept.permissions = TICKET_MODIFY accept.tickettype = bug, task }}} Here is our current workflow {{{ [ticket-workflow] t1a_super = * -> s3c_implementation_ok t1a_super.name = super review t1b_super = * -> s2c_design_ok t1b_super.name = super review t1c_super = * -> s1c_analysis_ok t1c_super.name = super review t1d_super = * -> new t1d_super.name = super review t2a_resolve = * -> closed t2a_resolve.name = resolve t2a_resolve.operations = set_resolution t2b_reassign = * -> * t2b_reassign.name = reassign t2b_reassign.operations = set_owner t2b_reassign.permissions = TICKET_MODIFY t2b_reassign.set_owner = pac,kyli,boyan,meddle,pap,veliko87,jani,tanya,peko,todor,milo,sriggins,orliin,niki,gogov,danvisel,mira,alex,deyan,pav,alex,htomov,nmatelan,nvasilev,mitex,mbenkov,dido,stitch t2c_reopen = closed -> new t2c_reopen.name = reopen t2c_reopen.operations = del_resolution t2c_reopen.permissions = TICKET_CREATE t5a_fail_testing = s4b_test_finished -> s3c_implementation_ok t5a_fail_testing.name = review test FAIL t5b_finish_test_ok = s4b_test_finished -> s4c_test_ok t5b_finish_test_ok.name = review test OK t5c_finish_test = s4a_test_started -> s4b_test_finished t5c_finish_test.name = finish test t5d_start_test = s3c_implementation_ok -> s4a_test_started t5d_start_test.name = start test t6a_review_implementation_fail3 = s3b_implementation_finished -> new t6a_review_implementation_fail3.name = review implementation FAIL 3 t6b_review_implementation_fail2 = s3b_implementation_finished -> s1c_analysis_ok t6b_review_implementation_fail2.name = review implementation FAIL 2 t6c_review_implementation_fail = s3b_implementation_finished -> s2c_design_ok t6c_review_implementation_fail.name = review implementation FAIL t6d_review_implementation_ok = s3b_implementation_finished -> s3c_implementation_ok t6d_review_implementation_ok.name = review implementation - OK t6e_finish_implementation = s3a_implementation_started -> s3b_implementation_finished t6e_finish_implementation.name = finish implementation t6f_start_implementation = s2c_design_ok -> s3a_implementation_started t6f_start_implementation.name = start implementation t6f_start_implementation.operations = set_owner_to_self t6f_start_implementation.permissions = TICKET_MODIFY t7a_review_design_fail2 = s2b_design_finished -> new t7a_review_design_fail2.name = review design - FAIL 2 t7b_review_design_fail = s2b_design_finished -> s1c_analysis_ok t7b_review_design_fail.name = review design - FAIL t7c_review_design_ok = s2b_design_finished -> s2c_design_ok t7c_review_design_ok.name = review design - OK t7d_finish_design = s2a_design_started -> s2b_design_finished t7d_finish_design.name = finish design t7e_start_design = s1c_analysis_ok -> s2a_design_started t7e_start_design.name = start design t7e_start_design.operations = set_owner_to_self t7e_start_design.permissions = TICKET_MODIFY t8a_review_analysis_fail = s1b_analysis_finished -> new t8a_review_analysis_fail.name = review analysis - FAIL t8b_review_analysis_ok = s1b_analysis_finished -> s1c_analysis_ok t8b_review_analysis_ok.name = review analysis - OK t8c_finish_analysis = s1a_analysis_started -> s1b_analysis_finished t8c_finish_analysis.name = finish analysis t8d_start_analysis = new -> s1a_analysis_started t8d_start_analysis.name = start analysis t8d_start_analysis.operations = set_owner_to_self t8d_start_analysis.permissions = TICKET_MODIFY t9_leave = * -> * t9_leave.name = leave }}} This allows adding workflow for bugs. For bug actions you should add ".tickettype" = bug and for the others - ".tickettype = unplanned_task, planned_task". Discuss with the team leader granting "TICKET_CREATE" permissions to anonymous users. Default ticket type should be set to bug (default_type in trac.ini). Hide some of the dropdown menus - for example task type (this is optional and may not be so convinient). Fields may be described by replacing {{{ http://sophie2.org/trac/newticket }}} with {{{ http://sophie2.org/trac/newticket?summary=Write%20brief%20summary%20of%20the%20error%20here&description=Write%20detailed%20description%20of%20the%20error%20here }}} == Related == * http://trac-hacks.org/wiki/TicketSubmitPolicyPlugin allows some fields to be required for posting a ticket. * http://trac-hacks.org/wiki/TypedTicketWorkflowPlugin can modify the task depending on task type * http://trac-hacks.org/wiki/TicketDeletePlugin allows deleting of tickets. Currently, we may not need this but having a way to deal with unwanted content is good. * http://trac.edgewall.org/wiki/SpamFilter spam filter may come handy, but ip blocking may block our local ip-s too. * http://sophie2.org/trac/wiki/TracTickets gives an idea on how to show the reporter what to type. == How to demo == ^(Provide instructions for demonstration of the task.)^ = Design = ^(Describe your design here.)^ = Implementation = ^(Describe and link the implementation results here (from the wiki or the repository).)^ = Testing = ^(Place the testing results here.)^ = Comments = ^(Write comments for this or later revisions here.)