==============================
Review Board 1.7 Release Notes
==============================

**Release date**: December 16, 2012


This release contains all bug fixes and features found in
Review Board version :doc:`1.6.15 <1.6.15>`.


New User Features
=================

Site Style
----------

We introduced some incremental style improvements for Review Board.

Review Board's look and feel has remained the same since we first began
development in 2006. We felt it was time for a change, so we've revamped
it and modernized it a bit.

The new site design should be familiar to all existing Review Board
users, but makes better use of space, and is a bit more polished and
consistent, and a bit more responsive.

Some highlights include:

* Less wasted space near the top of the page.
* A clear and consistent navigation bar with account and support menus and
  a search field.
* Crisper, less boxy look to the UI.
* Fields are less jumpy.
* Faster animation speeds.

We'll be continuing to iterate on this in subsequent 1.7.x releases.


Review Requests
---------------

Issue Summary Table
~~~~~~~~~~~~~~~~~~~

Review requests now provide a summary of all filed issues, making it easy to
see what's left to do before the change can be submitted. Clicking on an
issue will take you to the appropriate comment in the review.

The list of issues can be filtered by status (opened, fixed, dropped) or by
the reviewer.

Patch by Yazan Medanat.

.. only:: html

   |issue-summary-image|_

   .. |issue-summary-image| image::
      _static/images/1.7/issue-summary_thumb.png
   .. _issue-summary-image:
      _static/images/1.7/issue-summary.png

.. only:: not html

   .. image:: _static/images/1.7/issue-summary.png


Diff Viewer
-----------

Better Moved File Rendering
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Diffs that contain moved or renamed files under certain supported SCMs
are no longer shown as one deleted file and one added file. We now show
that the file was moved, and even show any changes that may have been
made alongside the move.

This is currently only supported for Git, but more SCMs will be supported
in the future.

Patch by Dave Druska.


File Attachments
----------------

Better Thumbnail Rendering
~~~~~~~~~~~~~~~~~~~~~~~~~~

We've began to support better rendering for certain types of file
attachments. Images, plain text, Markdown, and ReStructured Text file
attachments are now shown with little previews of their contents.

These renderers are extensible through our new extensions support.

Work on this feature was done by Anthony Mok and Sampson Chen.

.. only:: html

   |attachment-thumbnails|_

   .. |attachment-thumbnails| image::
      _static/images/1.7/file-attachments_thumb.png
   .. _attachment-thumbnails:
      _static/images/1.7/file-attachments.png

.. only:: not html

   .. image:: _static/images/1.7/file-attachments.png


Image Review
~~~~~~~~~~~~

We added the ability to review image file attachments.

This works just like screenshot functionality. An image uploaded as a file
attachment can be reviewed by clicking-and-dragging on the image to comment
on the selected area. These comments will appear in the review.

Along with this, we've simplified things by removing screenshot uploading
and standardizing on file attachments. Existing screenshots on review requests
can still be reviewed, but new ones cannot be uploaded.

.. only:: html

   |image-review|_

   .. |image-review| image::
      _static/images/1.7/image-review_thumb.png
   .. _image-review:
      _static/images/1.7/image-review.png

.. only:: not html

   .. image:: _static/images/1.7/image-review.png


Dashboard
---------

"To Me" Column
~~~~~~~~~~~~~~

The new "To Me" column indicates whether a review request explicitly lists you
as a reviewer. This helps prioritize what review requests to look at first.

Patch by Anthony Mok. (:bug:`495`)


"My Comments" Column
~~~~~~~~~~~~~~~~~~~~

The "My Comments" column can now be turned on when viewing a user's review
request list. It's no longer limited to the dashboard.

Patch by Aamir Mansoor. (:bug:`2163`)


Bug Linking
~~~~~~~~~~~

Bugs listed in the dashboard now link to the bug report. (:bug:`2589`)


E-Mail
------

Review Request ID in Subject
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

E-mails now include the review request ID in the subject header.

This helps to identify a review request a bit faster, and makes it easier to
refer to a review request by ID from just the e-mail.

Patch by Curtis Miller. (:bug:`2271`)


Time Zone Support
-----------------

Dates and times are now localized to the user's region.

The default time zone in the database is now UTC, and users are able to
set their own time zone in their preferences page. All dates and times will
be shown relative to their time zone.

Patch by Dave Druska.


New Administration Features
===========================

New Administration UI
---------------------

The administration UI has been totally rewritten from the ground up. It's
now cleaner, provides more useful information at a glance, and is
extensible. The general look now fits in with the look of Review Board.

The new UI consists of several widgets that flow onto the page. Each widget
can describe a bit of information. The built-in widgets provide graphs
of user activity, caching, and more.

Some of the main settings are also listed on the side, for quick reference.

This was based on work done by Vlad Filippov.

.. only:: html

   |admin-ui|_

   .. |admin-ui| image::
      _static/images/1.7/admin-ui_thumb.png
   .. _admin-ui:
      _static/images/1.7/admin-ui.png

.. only:: not html

   .. image:: _static/images/1.7/admin-ui.png


Improved Cache Settings
-----------------------

The server-side cache settings is now easier to configure, and doesn't require
obscure cache backend URI knowledge.


Usability Improvements
======================

General
-------

* Added Retina versions of the Gravatars.

  If using a Retina-capable display (newer MacBook Pro, iPhone, or iPad),
  all gravatars will load as higher-resolution images.

  We'll be making Retina versions of all our artwork over time.

* Many of the form fields throughout the UI have grown wider to make it
  easier to see all available text.


Review Requests
---------------

* Links in the Description and Testing Done text now open in new windows or
  tabs.

  Patch by Jim Chen. (:bug:`2074`)

* Required fields on a review request are now marked as required by showing
  an asterisk.

  Patch by Yazan Medanat.

* Added a "Show changes" link on the change description boxes after publishing
  a diff. These will take you to an interdiff between the new diff and the
  previous version.

  Patch by Curtis Miller.

* The "Repository" and "Change Number" fields on a review request are no
  longer shown if they're unrelated to that review request.

* The expand/collapse review buttons are now larger, making them easier to
  hit, particularly on touch screens.

  Patch by Aamir Mansoor. (:bug:`2358`)

* File attachment thumbnails are now slimmed down. Clicking the thumbnail
  will open the review UI, if any.


Extensibility
=============

Extension Support
-----------------

Review Board 1.7 has experimental support for custom extensions. These can
augment the functionality of Review Board by providing new pages, custom
operations when actions take place, new review UIs, new REST API, new
review request actions, new administration UI widgets, and more.

Extensions have full access to the functions within Review Board, and can
even provide their own database models for tracking data.

This is a very experimental feature. We welcome people to play with it,
but note that it is very likely that your extension will break between
releases, depending on which APIs you rely upon. We don't intend for the
entire Review Board codebase to be used as a stable API. We will in time
document a stable API that can be relied upon.

There's a `guide
<http://www.reviewboard.org/docs/codebase/dev/extending/extensions/>`_
on creating extensions and doing some interesting things with them. We will
flesh this out in time to provide more information on extension development.

This was the work of many developers and contributors. In particular,
Mike Conley led a lot of the effort into getting this feature ready.

.. only:: html

   |extension-selector|_

   .. |extension-selector| image::
      _static/images/1.7/extensions_thumb.png
   .. _extension-selector:
      _static/images/1.7/extensions.png

.. only:: not html

   .. image:: _static/images/1.7/extensions.png


Review UIs
----------

We added infrastructure for writing new review UIs for different types
of files beyond images and diffs.

Going forward, this will allow us to provide ways to review different types
of file attachments through extensions. The support is still young and we'll
flesh it out in subsequent 1.7.x releases, along with documentation.


Web API Changes
===============

* Added server capabilities in ``/api/info/``.

  The ``/api/info/`` resource now has a list of server capabilities in
  a ``capabilities`` dictionary. These are organized by categories, each
  of which has a dictionary of capabilities as values. See the documentation
  for an example.

  This currently only contains one item, ``diffs.moved_files``, which
  indicates whether the server supports moved file information in diffs.

* Added resources for viewing the original and patched files for a FileDiff.

  These are child resources of the FileDiff resource, and can be retrieved
  by following the ``original_file`` and ``patched_file`` links, when
  available.

  The original file resource is not available for new files, and the
  patched file resource is not available for deleted files.

  Patch by Steven MacLeod.

* Custom data can be stored in a file attachment comment.

  This can be done by specifying a ``extra_data.myfield`` field when creating
  or updating a file attachment comment. ``myfield`` will then be accessible
  in the ``extra_data`` dictionary.

  If the value is blank, the key will be removed.

* Added a diff's ``basedir`` field to the Diff resource.

  This represents the base directory within a repository that all files
  in a patch are relative to. Primarily, this is used for Subversion diffs.

  Patch by John Sintal.

* Added the URL to a file attachment's review UI on the file attachment
  resource.


Performance Improvements
========================

* Reduced download time of JavaScript and CSS.

  All JavaScript and CSS files are now combined and minified. This reduces
  the number of downloads and the total download time by a considerable
  amount, making for a faster experience on an empty cache.

* Reduced diff storage and lookups.

  Any new per-file diffs uploaded will only be stored once in the database,
  instead of per-upload. That is, if you upload two patches, and one of the
  per-file diffs hasn't changed between the two, the diff will only be stored
  once in the database. This should reduce database sizes from here on out,
  but does not affect existing diffs.

  Patch by Dave Druska.

* Improved JavaScript run-time performance.

  We've updated our dependency on jQuery and jQuery-UI to newer versions,
  which offer significant performance improvements over the much older
  versions we have been using.


Removed Features
================

* The hidden reports feature (accessible at ``/reports/``) has been removed.
  The goal is to replace this with a more useful extension.

* Screenshots can no longer be uploaded in the UI.

  Instead, file attachments should be used, now that image file attachments
  can be reviewed just like screenshots could. Existing screenshots are
  unaffected.

  The API can still be used to upload screenshots. That will be removed in
  1.8.


Bug Fixes
=========

General Interface
-----------------

* Fixed a number of regressions in the UI from 1.7 beta 2.

  This includes auto-completion, quick search, and much more.

* The latest static media will always be used after an upgrade. Previously,
  older media could be cached and used.

* Fixed the display of the avatar on the account bar at the top of the page.
  Patch by Mike Conley.

* Fixed several style issues with rounded corners throughout the UI.

* Long nicknames and e-mail addresses on the user page no longer overflows
  on most browsers. Patch by Yazan Medanat.

* Removed parenthesis in the user autocompletion and quick search lists
  when the user doesn't have a name listed. Patch by Crystal Lok Koo.

* Text fields (for Description/Testing Done/Add Comment) are now guaranteed
  to use monospaced text. This was a problem in some configurations,
  particularly on MacOS X.


User Profiles
-------------

* Fixed setting timezones for users. (:bug:`2797`)

  We were only showing the timezone selector if using standard authentication,
  and setting the timezone didn't work properly. Now it works properly for
  any and all authentication backends.


File Attachments
----------------

* Fixed deleting text file attachments. (:bug:`2805`)

* The thumbnail for a file attachment is now shown after newly uploading
  a file.

* Captions changes for file attachments are now shown on change description
  boxes, just like screenshot caption changes.

  Patch by Bogdana Popa.

* File attachment comments are no longer missing from the review box.
  Patch by Bogdana Popa.

* File attachments and comments now show up in e-mails. They were previously
  missing.


Review Requests
---------------

* The review request draft/submitted/discarded banner no longer shifts when
  opening or closing the description editor.

* The review request fields no longer shift around when opening the inline
  editors.

* The reply draft banner is now shown immediately when replying to a comment.

* Changing the status of issues on a review now invalidates the cache of the
  page.

* It's no longer possible to accidentally trigger saving a comment in a
  hidden comment dialog. (:bug:`2775`)

* Attempting to download raw diffs with unicode filenames no longer causes
  errors. (:bug:`2581`)

* The editable fields no longer go into edit mode when simply selecting
  text. Patch by Dave Druska.


Dashboard
---------

* Review requests without repositories no longer shows "None" in the
  Repository column.

* The "Diff Updated" column in the dashboard now actually reflects the
  last diff update.

  Existing review requests will see blank values under the column until
  their next diff update.

  Patch by Bogdana Popa. (:bug:`1246`)


Extensions
----------

* URLs for URLHooks, administration pages, and API resources are now added
  and removed properly when enabling or disabling extensions.

* Extension settings and lists are now synced across all Apache threads or
  processes.


Administration UI
-----------------

* The Server setting in General Settings no longer appears blank.
  (:bug:`2757`)

* The Cache Statistics page now consistently shows statistics for memcached.

* Removed the "View On Site" link in the admin UI. (:bug:`2099`)

  This never did the right thing and only confused users.

* User lists in the administration UI are now sorted by username instead of
  ID.


Compatibility Changes
=====================

User-Facing Changes
-------------------

* Added support for the latest CVS diff file format.

  The latest CVS diff file format appends version information to the filenames
  in the diffs. We now support this format if encountered.

  Patch by Rodrigo Castro.

* Added support for newer versions of p4api. We now support 12.2, which
  P4PythonInstaller will soon use by default.

* Dropped Internet Explorer 6 and 7 as officially supported browsers.

  IE6 and 7 are now considered quite ancient. We recognize that many
  companies still use these browsers, and will happily accept non-intrusive
  patches that retain compatibility, but will not officially support them
  without a support contract.

  Going forward, we will be relying on more modern browser support for
  certain newer features.


Server-Side Changes
-------------------

* Upgraded our Django requirement to 1.4.

  This is the first release to require Django 1.4. This release is not
  backwards-compatible with earlier versions of Django, or tested to be
  compatible with Django 1.5 or newer.

* Dropped Python 2.4 support.

  We no longer support Python 2.4 deployments. This is part of our effort
  to move to more modern versions of Python, in order to improve the codebase.
  It's also a requirement that's otherwise enforced on us by Django 1.4,
  for the same reasons.

* Dropped Windows as an official server target.

  We have found that the bulk of users who have trouble installing a
  Review Board server are those trying to install on top of Windows.
  Furthermore, we have realized that some of our future dependencies do
  not work well on Windows.

  We will be dropping official support for Windows servers for users without
  a support contract. We'll continue to host some helpful information on
  trying to get things going with Windows for now, but will be strongly
  urging people to move onto Linux (on a physical machine or in a virtual
  machine).


Changes since 1.7 RC 1
======================

New Features
------------

* Added the cache backend selector in General Settings.


Web API Changes
---------------

* Added a diff's ``basedir`` field to the Diff resource. Patch by John Sintal.

* Added the URL to a file attachment's review UI on the file attachment
  resource.


Usability Improvements
----------------------

* Many of the form fields throughout the UI have grown wider to make it
  easier to see all available text.

* Switched to a standardized button style throughout the UI.


Extensions
----------

* All extensions must accept variable arguments (``*args, **kwargs``)
  in their ``__init__`` method and pass them down to ``Extension.__init__``.

* Review UIs can be provided by extensions now by using ReviewUIHook.
  Patch by Sampson Chen.

* Review UIs can be provided by extensions now by using
  FileAttachmentThumbnailHook. Patch by Sampson Chen.


Bug Fixes
---------

* Uploaded file attachments now have the appropriate Review/Add Comment link,
  depending on the file type.

* Fixed some styling issues with the administration UI.

* Fixed some styling issues with file attachment thumbnails.

* Fixed problems with linkifying text in review request descriptions
  when using ``&`` in the URL. Patch by Emil Stanchev.

* Draft captions are now shown in the review UIs.

* Comments on images that predate review UIs no longer break on load.

* Fixed a font selection problem with Description/Testing fields on
  MacOS X.

* Review UI pages no longer show :guilabel:`Download Diff` if there's no
  diff to download. Patch by Michelle Chuang.

* Comments on file attachments now show the appropriate section of the
  file that was commented on, instead of just the filename.

* We no longer absolutely rely on the browser to know the type of uploaded
  files. If it doesn't know, we determine it on the system.


Contributors
============

* Aamir Mansoor
* Anthony Mok
* Bogdana Popa
* Christian Hammond
* Crystal Lok Koo
* Curtis Miller
* Dave Druska
* David Trowbridge
* Emil Stanchev
* Jacob Farkas
* Jim Chen
* John Sintal
* Kahlil Almani
* Karl Leuschen
* Kevin Quinn
* Michelle Chuang
* Mike Conley
* Rodrigo Castro
* Sampson Chen
* Stephen Gallagher
* Steven MacLeod
* Tina Yang
* Vlad Filippov
* Wesley Ellis
* Wilson Yeung
* Yazan Medanat
