Changes to JCR

This file documents the changes made in each release of JCR, starting from version 0.5.0.

Version 0.6.4

Issued 2008-08-24

General
  • Improved display of toggle options - checkbox is now on the left, and clickable
  • Allowed Pylons 0.9.6.1 - incorrectly excluded from version rc1
  • Updated documentation
Project Review:
  • The status report now gives an indication of how likely it is that each file was reviewed, by showing a score for the amount of review activity for each file. Files with a low score may not have been properly reviewed (see documentation for details)
  • BUG: All review files now show in the status report, rather than only those with comments

Version 0.6.4rc1

Issued 2008-08-17

General
  • IMPORTANT: Restricted versions of Pylons which JCR can use. The new version 0.9.7rc1 has made an incompatible API change.
Project Review:
  • Added the ability to view side-by-side diffs on file view and review pages. Controlled by a toggle link in the header
  • Changed code font to monospace - was previously inconsistent
  • File header panel on file view and review pages now shows as window width, rather than page width
  • Minor usability improvements to comment dialog - selection indicators on file line, message on Select in File

Version 0.6.3

Issued 2008-08-09

General
  • IMPORTANT: Restricted versions of SQLAlchemy which JCR can use. The new version 0.5.x has made an incompatible API change.
  • BUG: JCR was not compatible with the new Webhelpers 0.6.x release, due to an API deprecation - failed with an import error
  • BUG: When installing, easy_setup would install an earlier version of Beaker, which was not acceptable to a later dependency
Project Review:
  • Improved layout of file review page header
  • Added fileset IDs to project page
  • BUG: Changing the number of context lines in the file comment dialog also changed the line number being displayed
Project Administration:
  • Added fileset IDs to files page
  • BUG: When generating diffs for single file with original file path, generates in incorrect directory if the original and modified fileset paths are of different lengths, causing a stack trace when trying to view the diffs
  • BUG: Should not have been possible to specify an original path for a removed file
  • BUG: 'Remove all files' link on files page would mark files for removal even if already marked
  • BUG: Delegate could not change project description - showed error message about delegate field being required
  • BUG: If diffed files did not have the same line ending at end of file, the diff was incorrect for the last line

Version 0.6.2

Issued 2008-06-29

General:
  • Improved the schema upgrade scripts for Sqlite (not relevant if you have already installed 0.6.2rc1)
  • BUG: All string fields should now support unicode values (previously caused a stack trace when loading)
Project Review:
  • Comment dialogs (file and project) now show an indicator of which comment is being edited, reviewed or marked as actioned
  • BUG: Viewing of file line comments in AJAX popup now works again in IE (broken in 0.6.2-rc1)
  • BUG: Project and file notes now support explicit line breaks in IE (always worked in Firefox)
  • BUG: When file comment dialog was opened from the "Record Action" link on the All Comments page (in Post-review), changing the number of lines of context to show didn't work
Project Administration:
  • BUG: Summary page would sometimes not register that diff generation was complete.

NOTE: If you did not install version 0.6.2rc1, a schema upgrade is required. See the note at the end of the section below for that version.

Version 0.6.2-rc1

Issued 2008-06-01

The main features in this release are:
  • Improved diffs, now showing intra-line changes
  • Keyboard navigation when reviewing.
General:
  • All new projects now have diffs generated directly by JCR, rather than shelling out to GNU diff. This is more robust, and also provides the ability to show diffs within changed lines. This also means that for new projects, the only GNU tools required are now 'tar' (for uploading tarballs) or 'unzip' (for zip files)
Project Review:
  • Diffs for modified files now show changed lines explicitly, including changes within those lines.
  • Added selection indicator to file review and file view pages, to show the current line
  • Added keyboard shortcuts for navigation. See Help for key bindings
    • File review page: Move between files, comments, diff chunks and lines in the file. Show comment dialog (you'll need to adjust your popup blocker), and show comments in AJAX popup
    • File view page: Select diff chunks
    • Comment dialog: Move between comments, and select in the file
  • Diff regions on file review and file view pages now jump to first diff chunk in the region. Likewise for comment regions on the file review page
  • The file list on the project page now shows statistics for each file (number of lines, and % change and number of diff chunks for changed files only)
  • Next and previous file links on file review page now show a progress indicator (file number and total number of files) in tooltip
  • Next and previous comment links on comment dialog now show a progress indicator (the comment number and total number of comments of that type) in tooltip
  • On the comment dialog, added the ability to suppress display of comments not requiring action (at Review Meeting and Post Review stages)
  • On the Project page, added AJAX display of all comments on the project thread or file when the mouse hovers over the red Comments field
  • Improved rendering speed of large files on File Review page
  • Improved documentation
  • BUG: Disabled users no longer appear in the 'For action by' dropdown on the comment popup
  • BUG: Java generic classes now show as links
  • BUG: Comment and diff region links did not work if the first line of the region was hidden deleted text
  • BUG: File count now shown correctly on project page
  • BUG: Previously could not clear the 'For action by' field
Project Administration:
  • Added the ability for the project owner to assign a delegate. The delegate can perform all administration tasks on the project (except for changing the delegate)
  • Added 'Select all' and 'Deselect all' options on file selection popup, other minor changes
  • Removed the 'Minimal diffs' option, since this is not supported by the new diff library
  • Note that the 'Ignore changes to whitespace' option is not support for new projects, since it is not supported by the new diff library.
  • Diff status is now reported on the Summary page while diffs are being generated, and any diff error is shown afterwards
  • Added a link to remove all files from a project
  • When a fileset is changed on a project with files attached, the files are removed (along with any comments on them)
  • Improved documentation.

NOTE: This release involves a schema upgrade. You must either run paster setup-app your.ini and accept the offer to upgrade your schema, or alternatively use the scripts under /db/upgrade/0.6.2b1 - see /docs/txt/setup/install.rst for details.

Version 0.6.1

Issued 2008-04-13

General:
  • Improved browser caching of static files
  • Fixed some dodgy HTML tags
  • BUG: Fixed concurrency issue, where simultaneous access to page sometimes returned a system error.
Project Review:
  • BUG: Review and action comments previously did not wrap
  • BUG: Thread title could not be edited after initial save
Project Administration:
  • Only Summary tab page is available while diffs are generating for the project, and the page automatically refreshes when diff generation is complete
System Administration:
  • Added a shell script wrapper for backing up JCR files (which uses the mkBackupList.py script to generate the file list)
  • Removed the shell scripts for resetting the admin password and generating the backup list, and instead put the python scripts directly in the 'bin' directory

Version 0.6.1rc1

Issued 2008-03-21

General:
  • * CRITICAL BUG * JCR 0.6.0 did not work properly with SQLAlchemy versions from 0.4.1 (sadly, I was testing with 0.4.0 :{ ). Caused by exception saving FileActions when reviewing files, adding comments etc.
  • Changed SQLAlchemy column type to Text for project and file notes columns (String without length now deprecated)
Project Review:
  • Tooltip for project and file notes now shows the first 50 characters of the note
  • Added error page when trying to view a file that cannot be found (e.g. because it has been archived, or not restored after a minimal backup)
  • Filtered out missing files in 'View any file', to allow for archived or restored files
Project Administration:
  • * CRITICAL BUG * Viewing a modified file when the JCR base directory was not under the working directory led to a stack trace
  • Added support for project note templates - used as default when creating a new project. Installer now includes default template
  • Now filter out (and ignore) duplicates in uploaded selection file.
System Administration:
  • Reinstated the mkBackupList.py script, which lists all files under the JCR base directory that must be backed up

Version 0.6.0

Issued 2008-02-17

These are the changes since 0.6.0rc1 - see that release for the major changes since 0.5.0.

Project Review:
  • Added a link to clear all file review scores
  • BUG: New Thread link on project page now opens in same popup window as other comments popups
  • BUG: Popup menu for other reviews (File review page) is no longer visible while page is loading
  • BUG: Popup menu for other reviews (File review page) can no longer show off right of screen
  • BUG: Auto-focus added to form field on View Any File search page
  • BUG: In comment popup, Select in File stopped working after clicking Edit or Update
  • BUG: Fixed improperly closed anchor tag in Java file links
  • BUG: Hiding of removed lines didn't work when viewing non-review files
  • BUG: When removed lines were hidden, indicator only showed for first instance in file
  • BUG: Update Review Comment and Update Action Record were both made available to the comment owner, rather than to the reviewer and actioner respectively
Project Administration:
  • Added support for uploading file set as zip file (in addition to tarball support)
  • Diff file lists now use paths relative to the JCR data directory, allowing this to be moved without problem
  • BUG: Regenerating diffs for a project now clears any original paths on project files, and moves any existing file comments to line 1 (since line numbers may well have changed with the re-diffing)
  • BUG: Diff file list now no longer includes 'dot' directories
  • BUG: If diffs are generated to ignore white space changes, and a file had only white space changes, it previously showed in the file list, but was empty when viewed. It no longer appears in the file list
General:
  • Added script to reset admin password
  • Minor documentation updates
  • BUG: .egg file now works on Python 2.5 as well (previously restricted to Python 2.4)
  • BUG: Now check for requests to view files with paths containing '..', and log user out (security)

NOTE: If upgrading from version 0.5.0, you must apply the database schema upgrades (under db/upgrade) in the following order:

  • 0.6.0-a3
  • 0.6.0-b2
  • 0.6.0rc1

Version 0.6.0rc1

Issued 2007-12-04

Yes, it's been another year...

Version 0.6 is a complete rewrite of JCR, using a number of newer libraries and frameworks. The have been a large number of usability improvements, plus some improved functionality.

General:
  • Using Pylons as web framework, with Mako for templating and SQLAlchemy for object-relational mapping
  • Now support Sqlite for testing and low-volume use
  • Installation now uses easy_install, so should be very much easier and faster. As well, setup application can automate most tasks, including creating and populating the database schema, creating directories, and installing a sample project (if desired)
  • After a session timeout, JCR will only try to redirect to the originally-requested page if it's not attempting an update (to prevent problems with comment actions being cleared by a POST after a session timeout)
  • Most forms now warn if changes have not been saved.
Usability General:
  • Two-level sorting on all tables
  • Numeric and date fields in tables sort descending by default
  • Toggle options (e.g. show/hide) no longer in top menus, and handled in a better way
  • Removed all Refresh links.
File Viewing/Reviewing:
  • Each file on the project page shows the likelihood it has already been reviewed by this user
  • Now shows pop-up menu for other reviews of this file (either by file name only, or full path)
  • Menu item added to view any file in the project
  • For Java classes, no longer shows Java link to self
  • Code font now always fixed width
  • Indicator shown where deleted lines are hidden.
Comments Popups:
  • As well as highlighting the current code line, also shows other lines containing comments
  • Highlights the selected comment when editing etc.
  • For all project stages from Review Meeting on, automatically selects the first comment for action or review (as appropriate) on opening. Also, after reviewing or recording action for a comment, automatically selects the next comment in the list
  • All links (http, jcrfile, jcrclass etc.) in comments and notes now show in a new window.
Administration:
  • Can now revert the project to a previous stage if appropriate. This allows the project owner to perform lots of tasks that previously required the administrator
  • Added configurable ability for superuser to advance project even if would not normally be allowed (e.g. not all comments actioned)
  • Dot files and directories are now excluded from diffs
  • Project status history is now available on the Summary page
  • The new Files tab page replaces the previous File Selection and File Attributes pages
  • Indicating that all code in the review project is new (i.e. there is no original file set) is now much more straightforward
  • New file sets are created from the Select File Set popup
  • Diff options for ignoring whitespace changes and generating minimal diffs are now applied at the project level, rather than for each file, and these options are saved with the project
  • The new Select Files popup allows searching by path/name (with wildcards) and/or change type.
Other:
  • When marking all actions completed from the All Comments pages (for file or project), it is only possible to mark the actions complete, not incomplete - use the popup if you need to do the latter.

NOTE: If upgrading from version 0.5.0, you must apply the database schema upgrades (under db/upgrade) in the following order:

  • 0.6.0-a3
  • 0.6.0-b2
  • 0.6.0rc1

Version 0.5.0

Issued 2006-12-02

Yes, it's been a year :(

New Features:
  • JCR now supports comments added at the project level, for issues that apply to more than one file. These act in much the same way as file comments, but are grouped by thread (like a message board discussion thread).
  • Major usability enhancements for sorting and navigation. The current sort order for project comments and files on the project page is now used in many places to make reviewing faster:
    • The project comments page now lists all project comment threads and files in this order
    • The project and file comment dialogs now have Next and Previous links to navigate through all comments (both project and file) in this order
    • The file review page has Next and Previous links to navigate through all review files in this order
    • All sortable tables now sort in a stable manner, i.e. refreshing or returning to the page does not change the sort order.
  • Project and file notes, and project and file comments, now render URLs as links. Protocols supported are http(s), file, jcrfile (for any file in the fileset) and jcrclass (for Java classes), e.g. jcrfile://path/to/file.py or jcrclass://SomeClassName
File Review:
  • Added border to code context, and changed file header and comment header styling, for better visual separation
  • Added menu item to refresh project and file comments pages, since in the post-review stage a browser refresh will try to re-post data
  • On the project page, clicking the number of comments link on a review file now opens the file comment dialog on the first comment for the file
  • Alert now shown if popup blocker prevents opening comment dialog
  • BUG: No longer show links to related Java classes in comment dialog
  • BUG: Show/hide of file notes no longer crashes in post-review or completed states
  • BUG: Project and file notes didn't wrap properly
  • BUG: Existing dialog wasn't used when Edit clicked on comments page
  • BUG: Adding a comment to a line of a file showed a comment indicator on that line in the file being displayed in the main window, even if this was not the file to which the comment was added
  • BUG: Lightweight comment popup on file review page did not work in IE 6 in strict mode, if you had scrolled the page
Project Administration:
  • Added automatic refresh of File Sets page while JCR is generating diffs
  • BUG: Changing the original file path on the File Attribute page caused an error
Maintenance:
  • Create new users link moved to menu - on a system with many users, it was far from obvious at the bottom of the page
  • BUG: When a new user was created, the password was stored in the clear, preventing login until it was changed
General:
  • Project notes on the project page, and file notes on the file page, are now expanded by default
  • Improved error message if 'systemids' table has not been populated correctly for MySQL (and therefore system IDs cannot be generated)
  • Links to external scripts page now open in a new window
  • The startJcr.sh script now supports passing of an alternative configuration file path
  • BUG: Comments dialogs (popups) now open centred in Internet Explorer
  • BUG: Null name or email addresses caused a stack trace when displaying user admin page
  • BUG: DBMS-specific database population scripts are now included, under /db/sql
Upgrade Notes:
  • There has been a schema change in this version. If upgrading from a previous version, please run the appropriate upgrade scripts for your DBMS and first installed version. Scripts are in db/upgrade/0.5.0.
    • If the first version of JCR you installed was 0.4.4, i.e. if you are upgrading from a version 0.4.4 schema, run upgrade-jcr-<dbms>-1.sql, then upgrade-jcr-<dbms>-2.sql, where <dbms> is postgres7, postgres8 or mysql as appropriate to your DBMS and version
    • If the first version of JCR you installed was earlier than 0.4.4 (and therefore you're using Postgres), there was no schema upgrade issued for 0.4.4, so you're still on a version 0.4.2 schema. Run upgrade-jcr-<dbms>-from_0.4.2-1.sql, then upgrade-jcr-<dbms>-from_0.4.2-2.sql, where <dbms> is postgres7 or postgres8 as appropriate to your DBMS and version.
  • Note: The next version of JCR will use the new Cherry 3.0 release, and will remove support for version 2.0