Projects are more than just source code. They’re screenshots, they’re art, documentation, log files, datasets, audio files, video, 3D models.
Review Board has long supported attaching any kind of file to a review request for review. No limitations on file types.
It’s easy! Want to review a file? Just drag-and-drop it onto a review request, and it’s there.
Want to include a screenshot or a mockup when discussing a change? Drag-and-drop it onto a comment field (or click the Upload button).
Got an update to a screenshot, or a document maybe? Just update the attachment with a new one. Each version is tracked, and can even be diffed!
But you can do more
View Markdown files, as source code or a hybrid source/rendered mode.
Read through documents in PDF format.
Images, text-based files, and PDF documents can all be diffed, seeing how they’ve changed between uploads. Just like interdiffs for source code!
Yes, that includes PDF documents. Documentation, presentations, and anything else that exports to PDF can be diffed right in Review Board. They’re rendered as normal, but with the changes highlighted for you.
Binary files that can’t be viewed directly in Review Board can be downloaded to your system and inspected there. Once you’ve finished looking it over, leave a comment on the file to include it in your review.
What files can be reviewed?
You can review anything with Review Board.
Review Board will render the following files (and their diffs!):
Any source code (such as .c, .css, .html, .js, .py, .rb, .sh, or anything else text-based)
Markdown files (.md), showing both source code and rendered views
Datasets and logs (such as .json, .log)
Any other text-based files (.diff, .txt, .xml, anything)
Images (.png, .gif, .jpg, .bmp, and more)
PDF documents (.pdf), and soon Office document types (requires a license to Power Pack)
And you can include any other types of binary files for download and commenting, such as:
Audio files (.mp3, .wav, .ogg, .flac)
Video files (.mpg, .mkv, .mov)
3D models (.blend, .stl, .obj, .fbx, and more)
Any other kind of binary formats (.sqlite, .uasset, .zip, .exe)
If it’s a file, you can upload it to Review Board and comment on it, review it, include it in discussions.
Just one of the ways you can use Review Board to level up your code review and build better products.
The new, long-awaited update to RBCommons, our Review Board code review SaaS, is here! This is a huge update, featuring Dark Mode, multi-commit reviews, a new-and-improved review experience, dashboard improvements, better code safety, mobile support, image review in diffs, new integrations, and much more.
Along with that, we have new, simplified billing plans designed to better scale with your team, which we’ll cover near the end of this post.
Commit Histories / Multi-Commit Review
In the past decade, DVCS has become the norm, and many people work in local branches with lots of individual commits. Previously, any code changes posted to RBCommons would show up as a squashed diff, merely showing the difference between the upstream code and the tip of the local branch.
When using DVCS systems like Git or Mercurial, RBTools will now upload the commit history of your branch. You can look at the diff of the branch as a whole, but also dig down into each individual commit.
Unified Review Banner
Until now, your draft review requests, reviews, and replies were all managed separately, each with their own green draft banner. While it was obvious when there was a draft review request update or a draft review, sometimes draft replies could get lost in long threads.
The new unified banner always sits at the top of the page, and collects all your work together in one place. You’ll never lose a draft again.
With the banner, you can now publish all your drafts at once, generating a single e-mail notification. This means you can publish all of your replies to people’s reviews along with the updated version of your change with a single click, possibly our most requested feature ever.
This also allows you to add comments to your own diff before you publish it, which is handy for calling out parts of the diff to jump-start the conversation.
Dark Mode
There’s nothing worse than staying up late to review code and feeling blinded by your screen. With Dark Mode, you can reduce eye strain and work comfortably no matter the time of day.
Markdown Formatting Toolbar
Rich text editors throughout the product now include a new toolbar for common Markdown formatting options. Don’t remember how to make something italic or include a link? Just click a button!
Dashboard Improvements
“Overview” Section
The new overview section of the dashboard is a combined view that shows both your incoming and outgoing review requests. This new view is now the default when you open the regular dashboard page.
Stale Ship-It Indicators
The Ship-It indicator in the dashboard will now show as greyed out if there has been an update to the review request since the Ship-It was given.
Diff Viewer Improvements
Trojan Character Detection
Trojan Source attacks employ special Unicode characters, such as bi-directional control characters, zero-width spaces, or confusable/homoglyph characters (which have the appearance of other common characters) to trick reviewers into approving possibly malicious code.
These are CVE-2021-42574 and CVE-2021-42694, and affect many tools on the market (code review tools, IDEs, repository browsers, and more). And with Vibe Coding, you never quite know what you’re going to get.
Review Board now detects characters that can be used in these attacks, and flags them in the diff viewer. When found, a helpful notice with examples and informative links will be shown at the top of the file, and the lines themselves will be flagged.
The Unicode characters will be highlighted and replaced with the Unicode codepoint, rendering the attack harmless. Reviewers can click a button to see how the code would have looked.
Current File Display / Quick Switch
When browsing through the diff, the list of files will now dock into the banner at the top of the screen. This will always show you the names of the files that are visible on the screen, so you always know what you’re looking at.
Clicking the menu at the side of this file list will pop open the full list, so you can quickly navigate to other files without having to scroll all the way back up to the top of the page.
Binary Files (Images) in Diffs
Review Board now supports displaying, reviewing, and diffing certain types of binary files included as part of your code diffs.
At the moment, this is limited to image files but support for additional file types are in the works.
This requires posting your changes with RBTools 5.0+, and is supported for a limited set of version control systems:
Git
Mercurial
Perforce
Subversion
Mobile Diff Viewer
The diff viewer has been updated with a new responsive mode when viewing on mobile devices. This will change the display from the two-column view into a single column for content. This makes it much easier to read and interact with diffs on phones and other mobile devices.
Other Improvements
There are many additional tweaks and polish that you’ll see, including:
Draft indicators for file attachments that tell you whether an attachment is new, pending deletion, or has a new update within your current draft.
Quick options to archive after publishing, and click the archive icon itself to toggle the archive state instead of having to wait for a drop-down menu to appear.
We’ve been tweaking colors and spacing, and polishing down some rough edges to improve the look and feel, especially for reading diffs.
Better support for mobile devices.
Better accessibility support for screen readers, keyboard navigation, low contrast, and other accessibility tools.
Renamed “submitted” to “completed”. The word “submitted” throughout the Review Board UI was a holdover from the very earliest days of the tool, when we adopted the Perforce naming convention for when changes were pushed to a central repository. This has long been a source of confusion, so we’ve renamed this state to “completed”.
Clicking a text field on a review request now positions the cursor where you click.
You can configure these integrations in your Team Administration -> Integrations page.
New Pricing
Finally, we’d like to announce that we have simplified our pricing model based on feedback from both new and long-time users. Gone are the 4 tiers, each with their own feature sets and allowed user counts. Now, you can choose between 2 tiers of features, and pay a simple monthly fee based on how many users are in your team.
The Basic tier is priced at only $6/user/month, and contains all the feaures you’re used to on RBCommons, including code review, image review, unlimited repositories, and wide repository and integration support.
The Business tier is priced at $12/user/month, and includes up to 50 configured integrations, Document Review, Reports, and integrations with several enterprise-level source code management services (including Azure DevOps, Bitbucket Data Center, and ClearCase).
All existing team accounts will continue to be grandfathered in on their current plan, so you don’t have to switch to the new plans unless you want to.
Plans can be configured in your Team Administration -> Account & Billing page.
Questions?
See the RBCommons FAQ for some answers to (our anticipated) common questions.
And as always, reach out to us at support@beanbaginc.com or the “Need Help?” button in the bottom-right of any page (if you’ve opted into Intercom communication).
Update: The upgrade is scheduled for Saturday, April 26th. We’ll have downtime throughout the day as we move to new servers and finalize the upgrade!
We’re excited to announce that RBCommons will be getting a major update with tons of new features and more flexible pricing for teams of all sizes.
We want to show off what’s coming soon. There’s a lot!
Commit Histories
Previously, any code changes posted to RBCommons would show up as a squashed diff, merely showing the difference between the upstream code and the tip of your local branch. If your change was built with multiple commits, there was really no way to really dive into them individually. Until now.
When using Git, or Mercurial, or other DVCS solutions, RBTools will upload the complete commit history of your branch. You can look at the diff of the entire branch as a whole just as before, but also dig down into each individual commit, or even ranges of commits.
The New Unified Draft Banner
Until now, your draft review requests, reviews, and replies were all managed separately, each with their own green draft banner. While it was obvious when there was a draft review request update or a draft review, sometimes draft replies could get lost in long threads.
We’ve rebuilt this with a new unified banner that always sits at the top of the page, collecting all your work together in one place. You’ll never lose a draft again.
With the new banner, you can now publish all your drafts at once, generating a single e-mail. This means you can publish all of your replies to people’s reviews along with the updated version of your change with a single click. Fun fact, this was one of our most-requested features ever.
You can also add comments to your own diff before you publish it, which is handy for calling out parts of the diff to jump-start the conversation.
Dark Mode
There’s nothing worse than staying up late to review code and feeling blinded by your screen. With dark mode, you can reduce eye strain and work comfortably no matter the time of day.
Markdown Formatting Toolbar
Rich text editors throughout the product now include a new toolbar for common Markdown formatting options. Don’t remember how to make something italic or include a link? Just click a button!
An Improved Dashboard
The “Overview” section
The new Overview section of the Dashboard is a combined view that shows both your incoming and outgoing review requests. This is your new default view whenever you open the Dashboard.
Stale Ship Its!
The Ship It! indicator in the dashboard will now show as greyed out if there has been an update to the review request since the Ship It! was given.
If you don’t have this column added, click the pencil to the right of the columns and add it (or any other column you like!). Click and drag columns to place them in any order you prefer.
All Sorts of Diff Viewer Features
Trojan Character Detection
Trojan Source attacks employ special Unicode characters, such as bi-directional control characters, zero-width spaces, or confusable/homoglyph characters (which have the appearance of other common characters) to trick reviewers into approving possibly malicious code.
These are CVE-2021-42574 and CVE-2021-42694, and affect many tools on the market (code review tools, IDEs, repository browsers, and more).
Review Board now detects characters that can be used in these attacks, and flags them in the diff viewer. When found, a helpful notice with examples and informative links will be shown at the top of the file, and the lines themselves will be flagged.
The Unicode characters will be highlighted and replaced with the Unicode codepoint, rendering the attack harmless. Reviewers can click a button to see how the code would have looked.
Current File Display and Quick Switch
When browsing through the diff, the list of files will now dock into the banner at the top of the screen. This will always show you the names of the files that are visible on the screen, so you always know what you’re looking at.
Clicking the menu at the side of this file list will pop open the full list, so you can quickly navigate to other files without having to scroll all the way back up to the top of the page.
Binary Files in Diffs
Review Board now supports displaying, reviewing, and diffing certain types of binary files included as part of your code diffs.
At the moment this is limited to image files, but support for additional file types (including PDFs) are in the works.
This requires posting your changes with RBTools 5.0+, and is supported for a limited set of version control systems:
Git
Mercurial
Perforce
Subversion
Mobile Diff Viewer
The diff viewer has been updated with a new responsive mode when viewing on mobile devices. This will change the display from the two-column view into a single column for content. This makes it much easier to read and interact with diffs on phones and other mobile devices.
Finally, we’d like to announce that we’re going to be changing the pricing for RBCommons.
Our new pricing model has two tiers, Basic and Business. Both of these are priced per-user, so you don’t have to worry about a big price jump just because you need to add a 26th user.
All existing team accounts will continue to be grandfathered in on their current plan, so you don’t have to switch to the new plans unless you want to. If and when you’re ready, simply change your plan to take advantage of the new flexible pricing.
Plus…
There are many additional tweaks and polish that you’ll see, including:
Draft indicators for file attachments that tell you whether an attachment is new, pending deletion, or has a new update within your current draft.
Quick options to archive after publishing, and click the archive icon itself to toggle the archive state instead of having to wait for a drop-down menu to appear.
We’ve been tweaking colors and spacing, and polishing down some rough edges to improve the look and feel, especially for reading diffs.
Better support for mobile devices.
Better accessibility support for screen readers, keyboard navigation, low contrast, and other accessibility tools.
Renamed “submitted” to “completed” for review request states. The word “submitted” throughout the Review Board UI was a holdover from the very earliest days of the tool, when we adopted the Perforce naming convention for when changes were pushed to a central repository. This has long been a source of confusion, so we’ve renamed this state to “completed”.
Clicking a text field on a review request now positions the cursor where you click.
Too many bug fixes to count.
Coming April 26th
We’re scheduling downtime for April 26th, and the servers will be unavailable during this time. By Monday, everyone will get to use the new RBCommons! We’ll have a full announcement and a FAQ to help introduce you to some of the major highlights of this release.
For further updates on RBCommons and all things Review Board, you can follow us on:
Our team’s been hard at work bringing RBCommons to the cutting-edge Review Board 7 platform. This is a massive update with tons of new features, and we think it’s time to give you a glimpse of what’s coming:
Multi-commit review requests for Git and Mercurial
In the past decade, DVCS has become the norm, and many people work in local branches with lots of individual commits. Previously, any code changes posted to RBCommons would show up as a squashed diff, merely showing the difference between the upstream code and the tip of the local branch.
When using DVCS systems like Git or Mercurial, RBTools will now upload the commit history of your branch. You can look at the diff of the branch as a whole, but also dig down into each individual commit.
An improved review experience
Until now, your draft review requests, reviews, and replies were all managed separately, each with their own green draft banner. While it was obvious when there was a draft review request update or a draft review, sometimes draft replies could get lost in long threads.
The new unified banner always sits at the top of the page, and collects all your work together in one place. You can also use this to publish all your drafts at once with a single click and a single-email notification.
Dark mode
There’s nothing worse than staying up late to review code and feeling blinded by your screen. With dark mode, you can reduce eye strain and work comfortably no matter the time of day.
And just so much more
There’s a lot more coming, but we wanted to keep this first message short. We’re working hard to make this transition as seamless as possible for you. Keep an eye out for more details about all the new features and a timeline for the rollout.
If you have any questions, please feel free to reply to this e-mail.
Thanks for using RBCommons! We’re excited to bring Review Board 7 to you.
Welcome back to ChangeLog, where we dive into the latest developments around Review Board, Power Pack, and other Beanbag products.
Today we’re going to cover a major feature coming to Power Pack, plus some work that’s in progress for Review Board 6.
Office Document Review in Power Pack
Power Pack has long offered support for reviewing and diffing PDF documents. This has been used by companies to review documentation, contracts, schematics, industrial designs, and more.
Soon, you’ll be able to review a few more file types:
Microsoft Office documents (Word, Excel, PowerPoint)
It also supports diffing! You’ll be able to view the differences in new revisions of Word documents, spreadsheets, and presentations.
This will require setting up a small microservice, which we’ll provide via Docker.
When uploading a supported document to Review Board, Power Pack will send it along to the microservice to convert to PDF for render. This supports not just showing the document, but diffing multiple revisions of the document as well.
Both the original document and the PDF can also be downloaded to the local machine.
We’re expecting this will be released in Power Pack 6 by early/mid-2023.
The Unified Draft Banner
Over the years, we’ve come up with all sorts of ideas for improving the review experience in Review Board, and in Review Board 6, we’re kicking some of our plans into action, starting with the Unified Draft Banner.
This replaces the current, basic draft banners shown on review requests and reviews with a new one that:
Helps you see what all you have pending to publish (review requests, reviews, replies).
Let’s you publish them either all at once (with one combined e-mail) or individually, as before.
Shows additional information on what you’re reviewing, like the list of files in the diff viewer.
Can be further augmented by extensions.
When creating a new review request, the banner will look pretty similar to today:
When you have multiple things in flight (such as review request updates and replies to reviews), you can publish them in one go:
Or you can switch to a specific draft to publish:
The gear menu controls options for your publishes (depending on what’s being published):
The “Review” menu will always be present, and can be used to guide users to creating a new review, adding general comments, and quickly posting a Ship It! review.
This is still in the early stages. We’ll provide some more screenshots as development progresses.
Actions Rewrite
Behind-the-scenes, we have the “actions” system, which lets Review Board and extensions register buttons in some parts of the review request UI. It’s where the “Ship It!”, “Close”, “Upload Diff”, etc. buttons all come from.
The existing system is, let’s be honest, a bit of a mess. It grew organically, and we kept bolting things onto the design. There are class-based review request actions, dictionary-based review request actions, two forms of header actions, and several other purpose-built types. Keeping this maintainable has been a problem.
So this is finally getting a major overhaul. The new design is a lot more reasonable for both us and extension authors to work with. With this, we’re aiming for:
Better keyboard shortcuts throughout the product.
Improved accessibility.
Newer UI features like a possible Command-K bar (a sort of command-line-in-browser interface, similar to macOS Spotlight, Alfred, and other tools).
Once this is further along, we’ll have more to show off.
Looking Toward Review Board 6
With Review Board 6, we’re heavily focusing on improvements to the review process. There’s more to talk about, but we’ll save those for a future ChangeLog (available on this blog, Reddit, Mastodon, Twitter, or Facebook).
We’re aiming to for a mid-2023 release date for Review Board 6. This is a shorter release cycle than most of our large releases, and that’s the plan going forward. We want to get new features our faster, with smaller, focused releases.
RBTools 2.0 is out, bringing compatibility improvements and new features for all users. The biggest improvement is the support for Review Board 4.0’s upcoming multi-commit review requests.
Multi-Commit Review Requests
Review Board 4.0 beta 1 is coming in the next few weeks, and with RBTools 2.0, developers will be able to post a series of commits to a review request so that they can be reviewed individually or as one squashed change, depending on what the reviewer chooses to do.
Those changes can also be landed, preserving their history or squashing them back into a single commit.
To stay with the old behavior and squash the commits before posting to a review request, you can pass –squash to rbt post or rbt land (or set SQUASH_HISTORY = True or LAND_SQUASH = True, respectively, in .reviewboardrc).
This is available for both Git and Mercurial, and will require Review Board 4.0.
RBCommons users will receive multi-commit review request support in 2021.
Custom Certificate Authorities
If your Review Board server uses a self-signed certificate backed by an in-house Certificate Authority, you can now configure RBTools to recognize it through the --ca-certs, --client-key, and --client-cert options (or CA_CERTS, CLIENT_KEY, and CLIENT_CERT in .reviewboardrc).
Easier Repository Setup
rbt setup-repo has been redesigned to better help people configure their local repositories to connect to Review Board. It offers a more helpful guided setup, making it easier to find the right repository and generate your .reviewboardrc file.
Default Branches in Git
RBTools now understands the init.defaultBranch configuration for Git, helping you transition your primary branch from master to something like main.
Better Mercurial Integration
Compatibility issues are fixed, repository detection is faster, and custom scripts can benefit from performance improvements by connecting RBTools to the Mercurial command server.
And Better Perforce Integration
RBTools can work with a wider mix of configurations utilizing SSL and brokers.
There’s also a new reviewboard.repository_name Perforce counter that can tie a depot to a Review Board repository, which can be used if .reviewboardrc isn’t an option.
Plus…
Variety of improvements for Python 3 compatibility (including support for Python 3.9).
Additional Git arguments for fine-tuning rename detection.
Custom formatting for rbt status, which is useful for scripting.
rbt land and rbt patch now accept a review request URL, instead of just an ID.
rbt patch can print a patch from a review request without needing a local copy of the repository.
If you’re a regular follower of ChangeLog, you’ll notice we’ve gone from weekly to semi-monthly, and may be wondering what’s going on. Don’t worry, we’ll return to our regularly-scheduled ChangeLog in time.
We’ve been focusing heavily on wrapping up Review Board 4.0 development, testing things internally, and helping many of our support customers get out from under a backlog of internal support requests within their companies.
And just taking care of ourselves during a global pandemic.
So here’s some of what we’ve been busy with lately:
Review Board 4.0 beta and RBTools 2.0 beta preparation
Wrapping up our semester with CANOSP students
Higher Power Pack/RBCommons Trial Lengths
We’ve increased the amount of time you have to give Power Pack or RBCommons a try. Now, when you download a Power Pack license, or sign up for a team on RBCommons, you have two full months to fully explore and use the products.
We’ve applied the new trial period to all existing RBCommons customers who are still in their trial.
If you’re a Power Pack user, and have a trial license, come talk to us for an extension.
New Releases
RBTools 1.0.3
Last month, we released RBTools 1.0.3, which was long overdue. We’re going to try to release RBTools releases more frequently going forward, and we have some good stuff prepared for 1.0.4 for Perforce users coming up soon.
We also have two new releases for some tools we use to help build Review Board: kgb, and introducing babel-plugin-django-gettext.
kgb 5.0
kgb is a Python module that helps with writing unit tests, adding support for function spies. This lets you spy on any function or method, whether in your own code or elsewhere, and track all calls made to the function and inspect the results of those calls.
It’s also used to override what happens when a function is called, mocking results or behavior. This goes far beyond the capabilities of Python’s own mock patching, and instead alters things at a bytecode level. Super useful when you want to fake results from urlopen, for example.
kgb 5.0 introduces support for:
Python 3.8
New spy assertion methods, providing detailed output when they fail
Support for spying on “slippery” functions (functions generated dynamically when referencing the function itself — common in some API-wrapping Python libraries, like Stripe)
babel-plugin-django-gettext 1.0
We use Babel to let us build modern JavaScript and export it to older browsers. Something Babel allows for is custom plugins to transform JavaScript, and we’ve introduced a new plugin to help us write better localized text.
When using the standard gettext support, lines are not allowed to wrap, meaning you end up with some very long lines of text to maintain, and if you want to include the contents of variables in the text, you have to wrap in this interpolate() call, which is a pain.
This plugin takes all the annoyance out of this. Instead of writing:
var s = interpolate(
gettext('This is localizated text, and we can freely wrap lines how we want, or include variables like %(foo)s.'),
{'foo': foo},
true);
We get to write:
const s = _`
This is localizated text, and we can freely wrap
lines how we want, or include variables like ${foo}.
`;
Better, right?
If you use Babel and Django, give this plugin a try.
We’ll be releasing a new version soon with even better support for ngettext (used for strings that are based on singular/plural values) and combining with other tagged templates (like dedent).
Review Board 3.0.18 Release Prep
We’re getting close to a new Review Board 3.0.18 release. There’s a lot going into this one, but some highlights will include:
Preparation for GitHub and Bitbucket API/feature deprecations
Compatibility fixes for GitLab, Subversion, and Perforce
Improved API support for working with repositories
Faster SSH communication
Faster condensediffs for large MySQL databases
Lots of bug fixes
Expect 3.0.18 within the next two weeks.
Review Board 4.0 Release Prep
Work continues. We’ve had some people test 4.0 early, and found some regressions that pertain to extensions. We don’t want to release with those regressions in place, so we’re still iterating, but the good news is that the core product is looking pretty good now.
Remember, this release is a major architectural rewrite of the product, with equally major dependency updates, so there’s a lot to get right.
Meanwhile, we’re getting RBTools 2.0 ready for beta. This is meant to be used with Review Board 4.0, and features all the multi-commit review support, from posting changes to landing them. We’ll be shipping both at the same time.
CANOSP Student Wrap-Ups
We’ve talked before about the CANOSP student program we work with in Canada. Well, we’ve wrapped up our semester, and I can speak for the team when I say we’re going to miss working with this group.
By the way, if you’re looking to hire some strong developers coming out of college, we have plenty we can refer.
To wrap up their semester, they’ve put together some final demos of the work they’ve done, and we’d like to show them off.
Hannah Lin
Hannah worked this semester on a prototype for a new first-time setup guide for administrators, and some keyboard accessibility improvements in the diff viewer and modal dialogs, amongst other improvements. She’s also continuing on after the semester, working on a formatting toolbar for input fields.
Katherine Patenio
Katherine worked away on RBTools for most of the semester, fixing some bugs that shipped in RBTools 1.0.3, and completely reworking the rbt setup-repo experience (which we hope to ship in RBTools 2.0).
She also did a lot of work on investigating improvements to supporting users with different kinds of color-blindness, which she covers in this demo.
Monica Bui
Monica focused primarily this semester on keyboard navigation improvements in the New Review Request page (part of a big effort toward improved accessibility), and prototyping new guidance for filling in fields on a blank review request. We think that will pair nicely with work planned for Review Board 5.0.
Xiaohui Liu
Xiaohui worked on standardizing how we handle keyboard shortcuts, introducing a new registry on the page that anything can plug into to register shortcuts. This even offers a handy help screen, giving users an overview of all the keys can happily press to get their work done faster.
Xiaole Zeng
Xiaole’s projects covered help and accessibility improvements, such as adding a new Help menu to the top-right of every page (which could provide access to useful, relevant documentation), and making the review request infoboxes on the Dashboard less annoying and more keyboard-friendly. We’re looking to ship some of this in 4.0.
And that’s it for the moment
We’ll be back to a weekly format once we’ve gotten some of these releases wrapped up, and of course any time we have something pretty exciting to talk about.
This is our first ChangeLog in several weeks. As you all know, the current pandemic has resulted in a lot of changes and hardships in the world. We’re doing fine here, and our team has stayed healthy and safe, if a little less productive than we’d like as we adjust and take care of our families.
Still, work never ceases, and it’s time to start keeping you all up-to-date again. Here’s a breakdown of what we’ll be covering today.
More companies than ever are in full-on work-from-home mode, and this brings with it a lot of new work challenges that are, right now, often mixed with personal-life stresses.
We can help with at least some of that.
Our company offers support contracts for Review Board, which can be tailored to meet your company’s needs. We help with anything from basic Q&A and troubleshooting to custom builds and assistance with developing in-house integrations.
If you’re managing Review Board at your company, and are feeling a bit overwhelmed right now, please reach out. We can help. And we take support seriously.
Basic Support
Basic Support is pretty well-suited for smaller companies that need general troubleshooting, installation/upgrade assistance, or may have other questions.
We guarantee a response by the following day, but always aim for same-day (just depends on the support load).
Unlike our community support forum, all your support requests are handled privately on a dedicated support tracker, where you can manage tickets, provide confidential attachments, and more.
We don’t farm out our support to some outside party. We, the developers of Review Board, will handle your support. You’ll probably hear from me personally quite a bit.
Premium Support
This is a better option for the larger companies.
Or if you’re working on any in-house integrations or need priority bug fixes or need to use an older version of Review Board but may need some custom builds with fixes on occasion.
Or have some terrible emergency that needs to be resolved quick.
With Premium, there’s a same-day guarantee, 24/7/365. We’ll usually respond within an hour, especially if it’s an emergency. I will personally wake up and take care of your issue at 4AM if you need something.
So again, if things are crazy right now and you need a hand, contact us and we’ll talk options with you.
Increases to Trial Lengths
Since things are slower-moving right now (again, with the work-from-home status of so many companies), we want to make sure that you’re not in as much of a rush to evaluate either RBCommons and Power Pack.
So we’re going to be increasing the trial lengths of both from 30 days to 60.
This isn’t done yet, as we’re still preparing the codebases to change this over. In the meantime, if you’re a trial user of either, we’ll try to make sure to be proactive and increase your trial period manually.
A much better commit editing experience (for rbt land and rbt patch)
Several bug fixes for various source code management systems and for Python 3 environments
We should have this release out next week.
KGB 5.0
KGB is our Python module for using function spies in unit tests. This lets you track when a function is called, with what arguments and results, and to even override what happens when that function is called.
It’s extremely powerful, and is a big part of how we maintain our large test suites.
We’re preparing a 5.0 release, which adds:
Python 3.8 support, with positional-only arguments
Workarounds for very corner-casey situations with method decorator that generate a new function every time it’s accessed (what we’re calling “slippery functions,” because they’re hard to hold on to)
Probably some new helpers for asserting the results of calls (TBD)
This should be released in the coming weeks. If you’re a Python user, I highly suggest giving KGB a try.
Review Board 4.0 Progress
Almost there.
We were going to get 4.0 in beta form by end of March. That was the goal. We hinted at this last time, and we were feeling good about it, but the impact from the pandemic changed some priorities.
So it’s delayed… I’m not going to give a new date at this point, but nearly everything is ready for beta. We just want to hammer on it some more first, make sure we’re pushing out a solid beta. Pretty much everything, including our extension ecosystem, is ready to go.
Student Demos
As you may know by now, we work with CS students every semester, mentoring them and helping them learn to contribute to real-world code bases through Review Board development.
They recently completed their second demo videos for the semester, showing off what they’ve built. Please take a look. I’m sure they’d love to hear some positive feedback on their videos:
Stay Safe, and Wash Your Hands
(Definitely the catch phrase of 2020, but it’s important!)
These are exciting times, right? While everyone is preparing for the coronavirus, we’ve been preparing for Review Board 4.0 beta 1.
And the coronavirus.
The shelves are getting pretty empty in my local grocery store, but I’ve kept my sanity.
Preparing for Review Board 4.0 Beta 1
We have an internal target date for 4.0 beta 1, which is coming up very soon, but we’re not prepared to release that just yet. Still a couple factors that might need to delay a week.
This beta will feature:
Posting and reviewing multi-commit review requests
A brand new, streamlined, mobile-friendly administration UI
A full move to Django 1.11, with preliminary Python 3 support (which will affect extensions, so get ready)
Read-only mode, letting you prepare for an upgrade without shutting the whole server down
A new “Overview” mode in the Dashboard showing all incoming and outgoing review requests
A new integration for Jenkins CI
Live thumbnails for video file attachments
Beginnings of accessibility improvements, improving keyboard input, color contrast, and screen reader integration
New JavaScript and CSS components usable by third-party extensions
An overhaul of the diff parsers, setting things up for some major future improvements to diffing capabilities (including our in-development new DiffX proposal)
Removal of a lot of deprecated internal APIs (again, this may affect extensions)
We’re working on the final bits of the administration UI, and expect to be done by end of next week. Everything is in place, with the exception of the Integrations, Extensions, and Security Center pages. But that’s it!
We’ve also been finishing up the work to make our third-party integrations (Travis-CI, Asana, Jenkins, etc.), Review Bot, and Power Pack all compatible with Review Board 4.0, Django 1.11, and Python 3. These are the last big blockers before release.
After all that is done, beta 1 will be a go!
(Assuming none of us get the coronavirus.)
If you are building custom extensions, please get ready to test this beta. Let us know if you plan to test so we can coordinate with you and give you a heads up on what may change.
RBTools 2.0 Beta
RBTools 2.0 features full support for multi-commit review requests. We’ve had the bulk of this work done for a while, but have been really thoroughly testing it in preparation for a beta, which will go out alongside Review Board 4.0 beta 1.
This week, we’ve finished up the work to apply patches from a multi-commit review request (giving the ability to apply all commits sequentially or squash into a single commit), and to fully land changes.
We’re wrapping this up soon. If you test Review Board 4.0 beta 1, you’ll need RBTools 2.0 beta 1.
What else, what else..
Accessibility Improvements
We’re continuing to work toward improving our accessibility story in Review Board. While we’re nowhere close to where we want to be yet, we’ve amended our policies around new UI components to ensure that keyboard usage and ARIA roles are a first-class citizen in any designs.
If you make use of any assistive technologies, such as screen readers, we’d love to talk to you and get your feedback on a few things!
Video Thumbnails
Review Board 4.0 will be making it easier to glance over file attachments for video files. Just like file attachment thumbnails for images and text files give you a preview of the contents, they’ll soon give you a preview of the video as well.
Hovering the mouse over these thumbnails will cause the video to play (muted) until you move the mouse away. Hovering over them again causes the video to resume from where it left off.
This is great if someone’s using video files to demonstrate their feature. We’re hoping to make this the start of some useful UI around videos.
New UI Components
This past week saw the development of several new accessible CSS/JavaScript components, which can be used by extensions:
New Button Classes
We’ve historically had a few different ways to show buttons. Any <input type="button" />, <input type="submit" />, or anything with the .btn CSS class would have a consistent appearance, and could be modified by a set of additional CSS classes.
This has been revised to include <button> (which we oddly did not have before) and anything using the .rb-c-button CSS class (the successor to .btn, which is now deprecated).
Button Groups
A button group (.rb-c-button-group in LessCSS) is a collection of buttons, packed together either horizontally or vertically, providing an almost toolbar appearance.
Pop-up Menus
The new RB.MenuView (JavaScript) and .rb-c-menu (LessCSS) component manages a pop-up menu that can be shown or hidden as needed. It supports full keyboard navigation and ARIA attributes for accessibility.
We’re working on moving to this in every place that involves a pop-up menu, including review request actions (like “Update” and “Close”) and the Account, Support, and Follow menus in the upper-right of pages.
Menu Buttons
RB.MenuButtonView (JavaScript) and .rb-c-menu-button (LessCSS) implements a type of button that displays a pop-up menu when clicked.
There are two main ways this can be used:
As a single button that will show some text and a drop-down indicator, used just to display the menu.
As a group of action buttons, all packed together (but visually separated), containing a final button that displays the drop-down menu.
The later is great when you want to offer a common action, but make alternative actions easily available.
Like the new pop-up menus, these provide full keyboard navigation and ARIA attributes for accessibility, and are a great building block for extensions to use.
We hope to provide full documentation at a later time on the standard library of UI components we’re building.
New KGB Release Coming
KGB is our Python module for unit tests, which provides the ability to spy on any function and track the calls and results, or override the behavior. It’s incredibly powerful, and we make heavy of use of it in Review Board and all our other projects.
We’ve just fixed up KGB to work with Python 3.8, so we’re preparing for a release pretty soon.
If you’re a Python developer, check out KGB. Tell your friends. Give us some feature requests. Honestly, it’s pretty complete these days, but we need more reasons to bump the version number.
Alright, that’s enough for this ChangeLog.
Coming Up
We may skip next week’s ChangeLog to focus on finishing beta 1, unless we have anything really interesting to report.
If you want to know more, have any questions, or are curious about anything else, please reach out on our community forum.