[[PageOutline(2-5,Contents,pullout)]] = CodeReviewPlugin Concepts == Basic idea * Whenever a changeset is displayed, review information is available: * Reviewer. * Review result description. * Review result state: ACCEPTED or REJECTED. * When the user has the permission CODE_REVIEW, this information is editable. * A button named "Review" is saving the information and setting Reviewer to the current user. * When the user lacks the permission CODE_REVIEW, this information is read-only. * Reviews are also available from "View Tickets", if you add a report on the table CODEREVIEW. * To make this easier, besides the changeset revision, the changeset author is also redundantly store in this table. == Ideas If approved, turn them to tickets and mark them here accordingly. * Send an email to the author, whenever a changeset is REJECTED. * (Somehow) give reviewers an overview on changesets not yet reviews. * Currently I accomplish this via the timeline. '''Yoheeb added:''' * Allow selective creation and display of code review comments that are specific to a file in the changeset, maybe next to (view diffs) on changeset summary, add "Code review - ACCEPTED/REJECTED/NONE/ADD REVIEW (with proper permissions of course)" as a link to the full review. * Allow wiki formatting in code reviews, including inter-trac links. (file: xyz/abc.C according to !#123, this isn't the correct fix....see @line127-129 or something) * Configurable Workflow hooks on configurable Code review status (accept, reject...etc)? Originally, I was going to create something similar to this, but you created a foundation that was better. Some things I was going for, which I hope you will consider: My design requirements were (optional items in italics): 1 - Allow a code review on a changeset[[BR]] 2 - save the code review results in a "permanent" location (I was going to use subversion repo properties)[[BR]] 3 - ability to view/print code reviews for: A: individual changeset[[BR]] B: Range of Changeset (including all) ''4 - configurable pass/fail, etc states''[[BR]] 5 - Access to add/view code reviews for entire changeset from changeset view ''A: with wiki markup support and/or links to individual files under review'' 6 - Access to add/view code reviews for the "currently" viewed file from a changeset diff view[[BR]] 7 - code review permission to create/edit a review[[BR]] ''8 - code review VIEW permission''[[BR]] 9 - ability to see all (or individual) reviews when viewing a specific file/file+revision (suggest augmenting annotation feature)[[BR]] ''10 - workflow triggers.'' with that: My original idea was to save the reviews to the subversion changeset via properties with some simple formatting, and: * Also suggest a link to code review, if present, when a list if files is presented for large changesets, right next to "view diffs". * Modify the Annotation view template to parse the special properties, and pull out reviews specific to the current file/selected revision and: * Show each review by author (allow multiple reviewers) * only show the review outcome (accepted, rejected, ...make this configurable?) as a link to the full review text as a wiki page/section of a page (maybe 1 page per changeset, 1 heading section per file?) * This allows a code review summary to just be a print of a wiki page, or, a print of all the sub page via, say, Wiki-Print. * changeset string format could be something as simple as CR:REVNUM:File:Author:result as the property name, then the comments. * then on the annotation hover, parsed into: (in pseudo code) {{{ for all properties on changeset REVNUM: split on : if [0] ==CR and [1] ==$REVNUM: if [3] == CURRENT_FILE_SHOWN: insert "Code review by " +Author +" - " + CreateLinkToFullReview(CR:REVNUM:File:Author:result) into annotation pop-up else: remove it from the __displayed__ list of properties in annotation pop-up! else: allow normal processing }}} Now I realize this is tied to Subversion, but could some of these ideas be incorporated into this database based implementation.