[[PageOutline(2-3, Categories, pullout)]] = Distributed Peer Review of Source Code == Description This plugin integrates a code review system for software developers into Trac. The interface integrates seamlessly with your repositories ({{{Subversion}}} and {{{Git}}}) and Tracs source browser, thereby allowing users to work in their known environment. The plugin can be used when developing software for **regulated environments** like [wikipedia:IEC_61508 IEC 61508] by * enforcing proper processes using [wiki:PeerReviewPlugin/Workflows review workflows] and assigned reviewers, * tracking the review status for every single source file of your software, * maintaining a [https://en.wiktionary.org/wiki/paper_trail paper trail] for your review activities, * documenting your reviews by exporting them into MS Word ''docx'' files. You may chose files from the repository and comment on them. Later on one may check the applied changes against the original file during a follow-up review using a diff view. File changes may be {{{approved}}} or {{{disapproved}}} depending on the outcome of the review. The plugin is also suitable for reviewing changesets by integrating with the changeset page of Trac. There is a [./ChangesetReview tutorial for changeset reviews] available. Key features: * Support for multiple repositories * Supports {{{Git}}} and {{{Subversion}}} repositories ({{{Mercurial}}} not tested but likely works, too) * Diff view of changes in follow up reviews similar to Tracs source browser * Use wiki formatting in comments * Inline display of comments * Mark comments as read * [wiki:PeerReviewPlugin/ReviewLinks Wiki links] for review resource similar to TracLinks * Customizable [wiki:PeerReviewPlugin/Workflows review workflows] * Custom [wiki:PeerReviewPlugin/Reports reports] * [wiki:PeerReviewPlugin/Timeline Timeline events]: show status changes for reviews * Export data in MS Word docx format **Note:** Trac 0.12 is supported up to V3.1, see [browser:/peerreviewplugin/tags/0.12/3.1]. This is the main page with code reviews assigned to you and code reviews that you have created to be performed by others: {{{#!box width=500 ==== Main page with review overview [[Image(PeerReviewPlugin/Documentation:my_code_reviews.png, 480px, border=2)]] }}} The plugin uses code from TestManagerForTracPlugin for the workflow feature (see TestManagerForTracPluginWorkflow) and persistence of objects (see TestManagerForTracPluginGenericClass). Thanks to [wiki:seccanj Roberto Longobardi] for making it available under the permissive bsd-license. See also: [[ListTagged(codereview)]] == Documentation More information can be found on the following pages: * [wiki:PeerReviewPlugin/Documentation User guide] * [wiki:PeerReviewPlugin/ChangesetReview Changeset reviews] * [wiki:PeerReviewPlugin/Reports Reports] * [wiki:PeerReviewPlugin/Timeline Timeline] * [wiki:PeerReviewPlugin/Screenshots Screenshots] * [wiki:PeerReviewPlugin/ReviewLinks Wiki links] * [wiki:PeerReviewPlugin/Workflows Workflows] == Bugs/Feature Requests Existing bugs and feature requests for PeerReviewPlugin are [report:9?COMPONENT=PeerReviewPlugin here]. If you have any issues, create a [/newticket?component=PeerReviewPlugin new ticket]. [[TicketQuery(component=PeerReviewPlugin&group=type,format=progress)]] If you have any comments about the plugin or/and you would like to join the discussion, please see ticket #2850. == Download Download the zipped source from [export:peerreviewplugin here]. Multirepository support is available in [source:peerreviewplugin/trunk trunk]. == Source Check out PeerReviewPlugin from [/svn/peerreviewplugin here] using Subversion, or [source:peerreviewplugin browse the source] with Trac. == Installation **Note:** Trac 0.12 is supported up to V3.1, see [browser:/peerreviewplugin/tags/0.12/3.1]. General instructions on installing Trac plugins can be found on the [TracPlugins#InstallingaTracplugin TracPlugins] page. Enable the plugin in your `trac.ini` file: {{{#!ini [components] codereview.* = enabled }}} == Configuration === Permissions The permissions `CODE_REVIEW_VIEW`, `CODE_REVIEW_DEV` and `CODE_REVIEW_MGR` must be assigned as appropriate: * With permission {{{CODE_REVIEW_VIEW}}} users are able to only view code reviews. * Only users with permission {{{CODE_REVIEW_DEV}}} may perform code reviews by commenting on files. * Permission {{{CODE_REVIEW_MGR}}} is for administration of code reviews. === Workflow operation for reviews You can configure a custom workflow operation {{{set_review_owner}}} for reviews: {{{#!ini [peerreview-resource_workflow] change_owner = * -> * change_owner.name = Change Owner to change_owner.operations = set_review_owner change_owner.permissions = CODE_REVIEW_MGR }}} This operation allows you to change the owner of a review. Possible users are taken from the same list as the one used when creating a review. In the given example you need the permission {{{CODE_REVIEW_MGR}}} to perform the operation. === Project list When creating a review you can specify an associated project. The projects are taken from the list created by SimpleMultiProjectPlugin. If you don't have this plugin installed or you want to create another list, you may do so using the following settings: {{{#!ini [peerreview] projects = Project1, Project2, Project3 }}} == Recent Changes [[ChangeLog(peerreviewplugin, 3)]] == Author/Contributors '''Author:''' Team5 [[BR]] '''Maintainer:''' [[Maintainer]] [[BR]] '''Contributors:''' [wiki:sontek], [wiki:djeebus], [wiki:proofek], [wiki:blongden], [wiki:bselby], [wiki:andersm], [wiki:rjollos], [wiki:yudivian]