Summer of Code 2009 Wrap-Up

We had the opportunity this year to participate in the Google Summer of Code, a program that pays college/university students to work on open source projects for the Summer. While we've mentored students in the past for other projects, this was our first year as an actual organization accepted into the program. And we can't wait for next year.

We had three students this year, Eduardo Felipe Castegnaro, Helder Ribeiro, and Markus Knittig. They worked on several awesome features, many of which are making it soon into the upcoming Review Board 1.1 development releases.

Eduardo Felipe Castegnaro

Eduardo worked on three main features: Improved whitespace detection/handling in the diff viewer, move detection, and policy support.

The new whitespace detection/handling feature gives reviewers the ability to dynamically show or hide lines that contain only whitespace changes. If a diff contains many lines that have, say, trailing whitespace removed, those lines can be hidden in order to simplify the review process. This feature is in today for the upcoming 1.1 alpha 1 release.

The move detection shows when a block of code in a diff has moved within the file, instead of just showing adds/deletes. Indicators beside the code show that the lines have moved, where they moved to or from, and, when clicked, will jump to the original or new location. This feature is scheduled for the 1.1 alpha 2 release.

The Policy support change is designed to give organizations more control over the rules governing their review process. It will be used in a future release to allow these organizations to enforce, for example, that a change can only be submitted if three senior people sign off on the change. There's still much that needs to be done for this work, and it won't be making it into the 1.1 release, but it's tremendous progress for this much-awaited feature.

Helder Ribeiro

Helder worked on support for Web Hooks and some infrastructure changes needed to support it.

Web Hooks allow organizations to set up scripts outside of Review Board that will be notified when a review request has been published or updated and when a review or reply has been posted. These could be used to, for example, update the bug reports associated with the review request, providing a link to the review request. Web Hooks are scheduled for the 1.1 release.

Much of Helder's work has been to get our code set up in such a way where both the Web Hooks and existing e-mail support can be based on the same signals. It's also done so that more notification mechanisms can be added in the future, which wasn't really easy and clean before. Helder also worked on various other little fixes throughout the code.

Markus Knittig

Markus worked on Eclipse integration for Review Board. This support will make it possible to manage review requests directly from within Eclipse. This work is a bit separate from the main Review Board codebase, and will be continuing on his eReviewBoard repository on GitHub.

Wrapping Up...

This year was great, and we're certainly looking forward to participating again next year. Over the course of the Summer, we've learned what works, and what doesn't, and will be taking this knowledge into our next year in order to refine our processes and make the Summer of Code a great experience for everyone involved.

We'd like to publicly thank all of our students for working with us this year and producing such awesome work. We've sent special Review Board Summer of Code 2009 t-shirts to everyone involved, and hope they'll all continue to work with us on the project in the future.

Review Board 1.0.3 released

Last night's 1.0.2 release had two fairly critical bugs. The first being that, due to some code shuffle in the tree, the web server configuration templates weren't bundled with Review Board, making initial installations fail. The second bug only manifested if you had Django 1.0.2 installed. We required some functionality that only existed in 1.0.3 and higher, but didn't specify this requirement for the package.

The new 1.0.3 release is now out, and fixes these two problems. We now require Django 1.1 or higher. This brings with it a number of stability and speed improvements behind the scenes. It also gives administrators a new ability to batch delete items in the database, which can be useful when cleaning up spam or test comments. In the future we'll add new batch edit functionality based on this.

Full release notes are available.

Update: The upgrade to Django 1.1 broke the styles for the administration UI. A 1.0.3.1 patch release is available which just fixes the styles in the administration UI.

Review Board 1.0.2 released

Over the past few weeks, we've been hard at work fixing many bugs impacting our users and improving error handling. Tonight, we bring to you Review Board 1.0.2.

This release contains fixes for 17 bugs. Many of these have impacted quite a number of end users and administrators since 1.0, so we highly recommend upgrading. This release will also help with diagnosing of new bugs that cause Internal Server Errors, as we do a better job of logging crashes.

Full release notes are available.

Review Board has moved to Git

Today, we finished a migration of the codebase from Google Code's SVN repository to Git repository hosted on GitHub.

Git is a distributed version control system gaining popularity in many companies and open source projects. We've been using it for Review Board development for quite some time, pushing changes to SVN once they're ready for the release. We felt moving to it fully was a natural next step.

Moving to Git has many advantages. We can make changes public before they're ready for inclusion by putting them on development branches. Users can play with the branches, easily merge between them, and even contribute to changes that are in-progress. Companies can maintain forks of the Review Board codebase with their own customizations and still keep them in sync without nearly as much effort as with SVN.

Review Board Checkouts

The main Review Board project repositories are up on the Review Board GitHub account. RBTools and Review Board itself have their own repositories now.

To check out a repository locally, first install Git and then clone the repository. For example:

$ git clone git://github.com/reviewboard/reviewboard.git

This will create a reviewboard directory containing the codebase. To fetch new changes, make sure you're on the master branch and then pull the latest changes:

$ git checkout master
$ git pull origin master

Experimental Branches

From time to time, you'll find experimental branches on the GitHub forks ran by David Trowbridge and Christian Hammond.

Contributing

Contributors who have supplied patches to Review Board that are still pending will need to move their patches over to Git. An e-mail will be sent out to all contributors with pending patches with some instructions on this.

If you're unfamiliar with Git, take a look at GitHub's guides on using Git and GitHub.

Our project's Review Board server has been updated with the new repositories, "Review Board" and "RBTools." There's also a new "RBTools" review group, for changes against RBTools.

If you have any questions or need help, please ask on the Review Board mailing list.

Review Board 1.0.1 released

Review Board 1.0.1 was released, which contains bug fixes and minor feature enhancements.

This release fixes several first-time install problems people have had with Review Board 1.0. Particularly bugs on Windows with finding cvs.exe, a missing ClearCase repository type, and installing patch or patch.exe for the first time. It also introduces compatibility with Mercurial 1.3.

Full release notes are available.

Djblets SVN has moved

Tonight, we had some issues with the DNS mapping for the server hosting Djblets SVN. While this is a temporary problem, we decided to take the opportunity to begin a migration of Djblets over to Git. This is part of a longer-term plan to move both Review Board and Djblets to Git, which will help with our own development and allow third parties to maintain custom versions of Review Board without getting horribly out of sync with us.

If you're using Review Board and Djblets from official releases, you won't have to do anything. However, if you're currently using or developing against Review Board or Djblets SVN, you'll have to make some changes.

First, Djblets has new home on GitHub. To do a checkout of Djblets, you can type:

$ git clone git://github.com/chipx86/djblets.git djblets

Second, you'll need to make some changes to your Review Board checkout in order to get things working again with the development server. We've removed the reviewboard/djblets and reviewboard/htdocs/media/djblets directories, which previously performed a checkout of the proper directories in Djblets To make things work again, do the following:

  1. Install a build of Djblets (run python setup.py install in the Djblets checkout) or install it for development usage (python setup.py develop).
  2. Make a symlink to the Djblets media directory in reviewboard/htdocs/media by typing:
    $ cd reviewboard/htdocs/media
    $ ln -s /path/to/djblets/djblets/media djblets
    

Once you've made these changes, you should be able to build and test Review Board again. If you need any help, contact us on our mailing list.

Review Board 1.0 released!

After nearly two and a half years of development, over 2000 commits, and contributions from over 120 people, we are proud and excited to bring to you the culmination of our work: Review Board 1.0.

A lot has been put into this release. There were many times in the past where we wanted to just get 1.0 out the door, but decided to wait until the time was ready. We believe it was worth the wait.

The release notes are up, giving an overview of Review Board 1.0 and listing some small changes since RC3. If you're new to Review Board, we recommend reading through the release notes and checking out the screenshots.

For those in the Bay Area, we're planning to throw a release party on July 11th somewhere around Palo Alto, CA. The location is still being worked out, but the plan is to find a restaurant and meet up for drinks and food. It's a great opportunity to meet the developers and other users. Anyone is invited, so if you want to join us, please RSVP.

Thanks to everyone who has helped contribute to this release! Without the bug reports, code contributions and financial support we've received, Review Board would not be where it is today.

Over the next few months we'll be putting together the 1.1 release with some cool new features and improved usability and setup. Stay tuned!

Review Board 1.0 RC3 released

Today brings what should be the final RC release before Review Board 1.0!

RC2 introduced a slowdown with a particular SQL query on the All Review Requests page that caused problems on large installations. Not only has that query been fixed, but further optimizations have been made to our queries to speed up the dashboard and other pages even more.

At this point, we're confident in our 1.0 release. Aside from the slowdown, we haven't seen any other showstopper issues. Assuming we don't see any this week, we plan to release 1.0 next weekend.

New Features:

  • rb-site.exe is now provided on Windows and installed in the Python path, making installation easier. (Bug #1110)
  • Added a loading indicator for the news display in the Adminsitration Dashboard.
  • Automatically updates the stored path for media files when moving the site directory. Previously, this would break with no easy way to fix it, but now Review Board notices the move and updates the stored media directory properly.
  • Added support for parent diffs for Mercurial. Patch by Colin Caughie.

Bugs Fixed:

  • Fixed some major speed problems on large installs. One of the queries on the All Review Requests page could take an unusually long amount of time to finish when ran against a large number of review requests, which on some database setups could stall other queries, which would affect all users. These have been resolved. A side effect of this is that the "Last Updated" column in the dashboard may revert back to the "Last Updated" time on the review request after the upgrade to RC3, but this is a one-time issue and should be at worst an annoyance. (Bug #1144).
  • Reduced concurrency issues when saving multiple comments when the server is slow. This could lead to broken reviews, causing errors. We now queue up the saves so that we don't attempt to save multiple comments at once.
  • Fixed issues where files with \r\r\n newlines would break the diff viewer. This can happen in some Perforce setups when dealing with a file checked out from one platform and modified on another. Patch by Raghu Kaippully. (Bug #1071)
  • Interdiffs containing two files with different revisions but the same content no longer displays an error. (Bug #1032)
  • Properly marked the Password field as a password field in the Add/Change Repository form in the Administration UI. Patch by Sharan Rao. (Bug #942)
  • The "Ship It" column now has the appropriate style on the All Review Requests page. (Bug #1115)
  • Reduce the chances of concurrency issues internally when saving the Comment and ScreenshotComment database models. (Bug #709)
  • Nercurial's HTTP support would fail when the repository served up raw files using the /raw-file URL instead of /raw. Our Mercurial support now tries both paths before giving up. This provides compatibility with http://bitbucket.org.
  • The LDAP support no longer breaks when e-mail information isn't provided by either the LDAP settings or the server. An error in this case is now logged to the Review Board log file. Patch by Paolo Borelli.
  • Improved the checks for the Git binary and for a valid repository in our Git support. Patch by Alexey Morozov.
  • A review request with a bug number no longer causes a 500 error when the bug tracker URL doesn't have a "%s" in it. Patch by Paolo Borelli.
  • Fixed the link for deleting a screenshot when on the diff viewer page. It was pointing to the wrong path. (Bug #1147)
Review Board 1.0 RC2 released

It seems a few bad bugs snuck into RC1 that affected many users. Thanks to everyone who tested RC1 early and let us know! We've just released RC2, which should prove to be a much more reliable release.

We will probably put out one more RC release after this, which will improve installation on Windows and fix any remaining showstoppers. We'll then release 1.0 shortly after.

Bugs Fixed:

  • Installation of new sites using rb-site was broken. (Bug #1012)
  • The dashboard threw an exception when using PostgreSQL. (Bug #1099)
  • LDAP e-mail generation was broken and caused an exception.
  • Active Directory was broken for some users and caused an exception. (Bug #1112)
  • We hit concurrency issues when saving reviews sometimes. We now register each with a ConcurrencyManager.
  • Apache configuration files with spaces in filenames were still broken. (Bug #1111)

Feature Enhancements:

  • Control-Enter now saves in the comment dialog, and Escape cancels the comment.
Review Board 1.0 RC1 released

Update: There's a known bug in RC1 where rb-site install will fail on a fresh new install. We will have a new release soon, once we make sure there aren't any other major regressions. You can either attempt to install a previous beta and then upgrade to RC1, or you can use the May 4th nightly by running: easy_install -f http://downloads.review-board.org/nightlies/ -U ReviewBoard

One more giant step toward 1.0! We've just released 1.0 RC1, which contains a number of bug fixes, some new features, and usability improvements.

We've reached a new milestone with this release. Every pre-release issue in our bug database tagged for 1.0 has been fixed. This is a release candidate, so the hope is that this version will be stable enough for a final 1.0 release. If we don't see any major show-stopping bugs in the next couple of weeks, we'll release 1.0.

At this point, we are feature frozen. No new features will go in for 1.0, nor will bug fixes for minor bugs. Following 1.0, we'll be working simultaneously on a 1.1 and a 1.5 (or 2.0) release. The 1.1 release will contain bug fixes and some features, while 1.5 (or 2.0) will be a major feature enhancement release.

So with that, here's what you can expect from 1.0 RC1.

Bugs Fixed:

  • The review request page was "jumpy" on load. The review request and review draft banners would display after the page loaded. We now display these along with the page, minimizing the jumpiness of the page.
  • Saved settings weren't always taking effect until after the server was restarted. (Bug #734)
  • The comment dialog wasn't appearing on screenshots. (Bug #1013)
  • The comment dialog width was incorrect when showing existing comments.
  • The Registration page wasn't working after upgrading to beta 1 until you forced a save on the General Settings page. (Bug #1033)
  • Comment flags weren't always being shown on diffs. (Bug #1028)
  • Site paths with spaces in the path resulted in broken web server configuration files. (Bug #1015)
  • We were redirecting to the review request page when just saving a review, instead of staying on the same page. (Bug #1056)
  • The left-hand side of a diff would be collapsed into a small column when showing an interdiff for a newly added file. (Bug #730)
  • rb-site didn't properly allow for specifying a database host with a port number. Patch by Eric Huss.
  • Different versions of a diff fragment were being cached with the same cache key, causing display problems when switching between diffs and interdiffs containing new or deleted files. This also broke anchors in the diff viewer. (Bug #1036)
  • The review request page was caching the page contents without taking into account whether the user had a pending review or reply, making it appear as if the review/reply was lost.
  • Linkified URLs were breaking when the URL was followed by an entity. Part of the entity was being embedded in the URL, breaking both the URL and the display. (Bug #1069)
  • The black selection rectangle in the diff viewer was too far off to the left in Internet Explorer 8.
  • Fixed some speed issues and warnings in our PNG transparency support for Internet Explorer 6. (Bug #817)
  • LDAP and Active Directory broken on servers that don't support "givenName" and "sn" fields. (Bug #891)
  • Bug tracker URLs that didn't include a "%s" marker caused breakages on review requests using bug numbers. (Bug #1091)
  • The "Download Diff" link was displaying even when the diff wasn't accessible. We now use the same rules as we use for the "View Diff" link. Patch by Eric Huss.
  • Clicking the edit icon (the pencil) on review requests sometimes caused the browser to scroll. (Bug #1057)

New Features:

  • Added an activity indicator at the top of the page to show when a request is being made. Examples include saving a comment, marking a change as submitted, or saving fields on a review request. This appears as a small but eye-catching box at the top of the page with a spiner, letting the user know that the request is still being processed. (Bug #945)
  • Changed the "Ship It" column to show the number of reviews marked "ship it" next to the checkmark. This makes it easier to see at a glance how many people have signed off on the review request.
  • Drastically sped up the dashboard. (Bug #406) We were making a lot of queries in the dashboard, depending on the columns used. In a worst-case scenario, this resulted in a few hundred queries. A lot of work has gone into reducing the number, which both lightens the load on the database server and speeds up loading the page.
  • Added an "All My Requests" entry to the dashboard's sidebar, which shows all open and submitted review requests that the user has made. Patch by Noah Miller. (Bug #503)
  • Added a field to the General Settings page for selecting the timezone. (Bug #1038)
  • Added URL, bug number, and review request ID linkification to reviews and replies. This works the same way that review request linkification works. (Bug #916)
  • Added support for using mod_fcgid on Apache through the generated fastcgi Apache configuration file. Patch by Mark Knittig.
  • Added "x" and "c" shortcut keys in the diff viewer for going to the previous/next comment. This is useful on French keyboards that don't have "[" and "]" keys. (Bug #1031)
  • rb-site now warns about missing dependencies before starting the install, and limits configuration to what's available. This prevents the case where people would get part-way through an install and see it fail due to a missing Python module or database server. (Bugs #755, #756)
  • Made the user selection fields in the administration UI more usable. They now display as a side-by-side view, with selected users on the right, and the list of users is searchable. Patch by Eric Huss. (Bug #912)
  • Improved compatibility with Active Directory servers, allowing for using a "custom search root" that administrators can override for specific setups, and for using the server's "mail" field when available for e-mail addresses. (Bug #908)
  • Added subtle animations for the review draft banner, indicating whether we're creating a new review or discarding one.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 pages