"Own Your Own Code" shown in the sky above a brick castle wall.

Own Your Own Code

If you’re reading this in 2025, your source code probably lives on someone’s cloud somewhere. It might be going through an AI service or two. It might be running through a CI/CD pipeline in the cloud, steps controlled by a stranger on the Internet.

We’ve handed off control — not just where code lives, but how it moves, who can see it, and what tools we’re allowed to use. Even some self-hosted platforms may come bundled with vendor lock-in. Their issue tracker, their code review, their CI pipeline. They’re built-in and within reach, but more often than not, they’re the wrong tool for the job.

We trust these companies to be good stewards. Sometimes that works out, but sometimes that trust ages like fine milk. Platforms get acquired. Prices go up. Integrations break. Our private code leaks. Sometimes by their own AI. Once your company’s code is in their possession, you just have to hope they have your best interests at heart.

And then there’s the challenges of the world’s political climate. If your data is hosted by a cloud-based service, you don’t necessarily know where in the world it is. Data privacy agreements and laws can change unexpectedly, and what was once a safe bet might suddenly become a major liability.

So maybe it’s worth asking:

Should we take back control of our code?

And how do we start?

Choose Self-Hosted

Taking control of your own code starts with taking control over the tools you use to manage your code, your projects. And the best way to do that is to choose the right tools for your needs and host them in a network you control.

Most forms of development tools can be self-hosted, including:

Some of these are all-in-one solutions, taking care of most or all aspects of development. These can be easy to set up, and will be similar to choosing a cloud solution. This can be a good option for moving your development in-house, but they do come with tradeoffs:

  1. You’re stuck with the limitations of the tools it provides, making it harder to swap them for more specialized (and often better) dedicated tools (such as better code review or bug trackers)
  2. If you ever want to switch to something new (say, a future successor to Git), you may have to find a new all-in-one tool and fully replace your old one.

Many of the standalone solutions, such as Review Board, are designed to work with a wide range of other tools and types of source code repositories. These are usually built to be extensible for any of your custom in-house needs, and are quite future-proofed. You can piece together the right tools that suit your organization, without locking yourself in to any one.

And though this means having to manage multiple tools in-house, the tradeoff is increased flexibility for your developers and products. Plus, these tools usually offer some pretty stellar support services that can work more closely with your team than any SaaS giant.

In either case, self-hosting any of these tools will help keep your source code, your discussions, your proprietary information, and your decisions private and in your control.

But there’s one more consideration.

Choose Open Source?

Self-hosted development products on the market tend to be in one of the following categories:

  1. Open source and free
  2. Closed source and paid
  3. A hybrid model (open source with paid support, or open source with closed source add-ons)

Some cloud providers offer paid closed-source versions of their products to run in your network, though they’re still a black box. You don’t always know if any of your data’s leaving your network, and you’re stuck with the feature set and the lifespan of the product. If the product is discontinued, you have little choice but to find an alternative once again.

On the other side are open source products that are fully community-driven. The code is in your control, and if the product’s ever discontinued, you can fork and patch as needed. However, it may not come with support, so you’re on your own.

Hybrid models give you the best of both. Open source code that you can verify and tailor to your needs, with the option of business-class support to help you manage the product so that you can spend more time focusing on your own code. Paid offerings often include premium features or enhancements that make the product even more useful for teams with growing or specialized needs.

Hybrid is the model we use with Review Board, with paid support and extra features via Power Pack.

An Incomplete List of Self-Hosted Products

The beauty of these products is that they’re not just clones of GitHub. There’s a lot of features and innovation out there to explore.

Here’s a few of the options available for projects today. If you know of a good one that should be included in this list, we’d love to hear about it!

Source Code Management:

  • Git — Open source — Decentralized version control system.
  • GitLab — Open source with paid support — Offers both free and enterprise self-hosted editions.
  • Gitea / Forgejo — Open source — Lightweight Git hosting platforms, simple to self-host.
  • GitHub Enterprise Server — Closed source — GitHub’s paid, self-hosted enterprise edition.
  • Perforce (Helix Core) — Closed source — High-performance version control for large codebases.
  • Fossil — Open source — DVCS with built-in wiki, issue tracking, and web UI.
  • Subversion (SVN) — Open source — Centralized version control system.

Code Review:

  • Review Board — Open source with paid support and licensed add-ons — Code review tool with repository and diff support.
  • Phorge — Open source — Community-maintained fork of the retired Phabricator platform.
  • Gerrit — Open source — Advanced Git code review system, used by large orgs like Android.
  • GitLab — Open source with paid support — Built-in code review features.
  • Gitea / Forgejo — Open source — Lightweight code hosting with basic pull request-style review.

Bug Trackers:

  • Bugzilla — Open source — Mature bug tracking system with strong customization.
  • MantisBT — Open source — Lightweight bug tracker with a web interface.
  • Redmine — Open source — Project management tool with issue tracking and Gantt charts.
  • Trac — Open source — Combines bug tracking, wiki, and SCM integration.
  • Bugasura — Hybrid (self-hosted plan) — Modern, UX-focused issue tracker.
  • YouTrack — Closed source — JetBrains’ tracker with on-prem options.

Knowledge Tracking / Wikis:

  • MediaWiki — Open source — Powers Wikipedia; highly customizable and scalable.
  • BookStack — Open source — User-friendly documentation/wiki platform.
  • DokuWiki — Open source — File-based wiki, great for small teams or personal use.
  • Outline — Open source — Modern wiki with markdown support and rich integrations.
  • Trac — Open source — Includes a built-in wiki with developer-focused features.
  • Obsidian — Closed source with local-first design — Markdown knowledge base that can run fully offline.

Continuous Integration / Delivery:

  • Jenkins — Open source — Powerful CI/CD automation with vast plugin support.
  • Concourse CI — Open source — Pipeline-focused CI/CD system with strong reproducibility.
  • Buildbot — Open source — Flexible Python-based build system for complex workflows.
  • Drone CI — Open source — Container-native CI/CD with YAML-based config.
  • Woodpecker CI — Open source — Community-driven fork of Drone with active development.
  • GitLab CI — Open source with paid support — Integrated CI/CD in GitLab.

AI Code Assistance (Local Models):

  • Ollama — Open source with prebuilt models — Run LLMs like Code Llama, StarCoder locally.
  • LM Studio — Closed source (free) — GUI for downloading and running local LLMs.
  • Tabby — Open source — Self-hosted AI code assistant compatible with VS Code, JetBrains.
  • CodeGeeX — Open source (model weights available) — AI code generation with local inference support.

Take Back Control

There’s no shortage of excellent tools out there. You don’t need to settle for trusting your code, your infrastructure, or your future to companies that may not share your priorities (and increasingly see your hard work as little more than AI training data). Owning your development stack isn’t just a matter of principle. It’s a safeguard. An investment in your future. One you can start building today.

Read More

Welcome to the New RBCommons!

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.

A screenshot of the commit selection UI, showing columns “First” and “Last” (for selecting a range of commits), “Summary”, “ID”, and “Author”. This appears below the diff revision slider in the diff viewer.

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.

The new draft banner, showing a summary of drafts stating “Changes, review, and 1 reply”. Next to that is a “Publish All” button, and then a “Review” drop-down for creating or editing reviews. Below that is the “Describe your changes” text field for review request drafts.

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.

A screenshot of a review request with the "Review" menu expanded, showing options: "Create a new review," "Add a general comment," and "Ship it!".

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.

A review request in dark mode, with a dark-cool-blue palette.

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!

A text field with the Markdown formatting toolbar open, showing Bold, Italic, Strike-Through, Code, Link, Upload Picture, Bullet List, and Numeric List buttons.

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.

A screenshot of the Dashboard showing Ship-It indicators. One is grey, indicating there are updates since the last Ship It.

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.

A file in the diff viewer with a banner warning about possible dangerous Unicode characters. It shows a description of how these could be used maliciously, and then shows the character codes for each invisible character below in the diff. A "Hide suspicious characters" button controls their display.

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.

The diff viewer with a banner at the top showing the name and information on the currently-viewed file. A button on the right can be clicked to see the other files in the diff.

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
An image diff shown embedded in the diff viewer.

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.

The diff viewer in dark mode shown on a mobile device.

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.
  • Too many bug fixes to count.

New Integrations

RBCommons includes new integrations:

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).

Read More

Get Ready for the New RBCommons

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.

The new Unified Review Banner, showing that there are changes, a review, and a reply ready to publish. Alongside that is a Publish button and a Review menu. Under that is a textbox saying "Describe your changes."

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.

A review request shown in dark mode, with a dark cool-blue color palette.

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!

A text field with the Markdown formatting toolbar below it, showing the following buttons: Bold, Italic, Strikethrough, Code Block, Link, Upload Picture, Bullet List, Numeric List.

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.

The Dashboard, with stale Ship It indicators shown in grey instead of green.

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.

A warning block shown on a diff containing malicious trojan code. The warning explains the kind of attack, warns the user to review carefully, and provides a button for toggling the hidden malicious characters.

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.

The diff viewer showing the current file docked to the top of the page, with a menu for navigating to other files.

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
An image diff in the diff viewer, showing a split view between two versions of a game character.##

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.

The diff viewer in mobile mode, showing inserted code, deleted code, and moved code, with comments filed.

New Integrations

RBCommons is adding new chat integrations with Discord, Matrix, and Microsoft Teams, as well as a new CI integration with Jenkins.

New Flexible Pricing

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:

Or join us on the new Review Board Discord.

Read More

A Sneak Peak Into the New RBCommons

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.

A list of commits for a review request, with summaries for each and selectors for choosing a range to view.

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.

The new review banner, showing pending changes, one review, and one reply. A button saying "Publish All" to the right of that summary publishes all pending drafts. A "Review" drop-down to the right of the button controls the review. A "Describe your changes" field sits below it.

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.

A typical review request, but shown in dark mode, with a dark cool-blue color palette.

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.

Read More

Djblets 3.3: Typing, Symbols, AmountSelectorWidget

Djblets 3.3 introduces a new form field widget for unit-based number input and further enhances our support for Python type hints.

Typing Improvements

The following modules now support Python type hints:

A new djblets.util.typing module has been added with new useful types, including KwargsDict, StrOrPromise, JSONValue, JSONDict, and JSONList.

Utility Symbols

A new djblets.util.symbols module has been added with utility symbols that can be used in APIs.

Right now, this includes UNSET, which can be used as a default result or value in many APIs instead of using None. More will be added in time.

AmountSelectorWidget

The new AmountSelectorWidget can be used in form fields to let users input a number and select a unit (such as bytes, kilobytes, or megabytes).

See the release notes for more details on Djblets 3.3.

Installation

$ pip3 install Djblets==3.3

Learn More

Djblets 3.3 release notes
Documentation
PyPI

Read More

beanbag-docutils 2.2: Enhanced JSON Output

beanbag-docutils is our collection of extensions for the Sphinx documentation platform.

This is a major feature release that introduces some new capabilities for JSON output, making it easier to integrate documentation into your own sites:

  • The metadata extension extracts .. meta:: into the JSON output for a page.
  • The json_writer extension replaces the sphinxcontrib-serializinghtml JSON writer and includes both a copy of the docs-wide Table of Contents structure in the globalcontext.fjson file and per-page anchor navigation HTML in the page’s .fjson file.

You can see how we make use of these new capabilities in the brand-new Review Board documentation site.

Installation

$ pip3 install beanbag-docutils==2.2

Learn More

Read More

ChangeLog: Office Document Review, New Draft Banner, Actions Rewrite

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)
  • OpenOffice/LibreOffice documents (Writer, Calc, Impress)
A sample review session for a LibreOffice Impress document, covering a presentation titled "Writing Enterprise WebApps in Bourne Shell." There's a comment saying "This seems like a really bad idea." The second page says "Bourne Shell: Why Not?" and states "It's on every system; It's memory-safe; You might not completely nuke your system unexpectedly, maybe."

It also supports diffing! You’ll be able to view the differences in new revisions of Word documents, spreadsheets, and presentations.

A screenshot showing a side-by-side diff of two PowerPoint presentations. The old text, "You definitely won't completely nuke your system unexpectedly" is shown on the left in red. On the right, the replacement text is shown in green: "You might not completely nuke your system unexpectedly." The red and green show only the changed words.

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:

Basic draft banner shown when posting a brand-new review request. This states the review request is a draft, and includes a combo Publish/Options button, followed by a Discard button.

When you have multiple things in flight (such as review request updates and replies to reviews), you can publish them in one go:

A draft banner showing that there are both changes to the review request pending, and one reply to a review. This lists "Changes an 1 reply" as a drop-down menu for selecting just a subset; a "Publish All"/Options combo button, and a "Review" drop-down menu. On the next line is a "Describe your changes" field for describing the new review request draft.

Or you can switch to a specific draft to publish:

The drop-down for the "Changes and 1 reply" menu, showing each draft. These can be clicked. The items are: 1) "Review request changes", and 2) "Replying to David Trowbridge's review"

The gear menu controls options for your publishes (depending on what’s being published):

The drop-down options on the "Publish All" combo button. This shows a single "Archive after publishing" checkbox.

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 current list of review request actions. This shows: "Star", "Archive", "Close" menu, "Update" menu, "Download Diff", "Add General Comment", and two tabs: "Reviews" and "Diff".

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.

Read More

Djblets 3.1: Token Deprecations and API Fixes

We’ve released Djblets 3.1, our collection of production-quality add-ons for Django.

This release features:

  • Ability to deprecate token generators
  • Deprecated token information in the API
  • Fixes for URI template name collisions in the API
  • Fixes for generating the new API tokens introduced in Djblets 3
  • Python 3 type hints for the djblets.registries, djblets.secrets, and djblets.siteconfig models

For complete details, see the release notes.

Read More

Django Evolution 2.2: Django 3.2-4.1 Support

Django Evolution 2.2 is a major feature release, offering new database features, improved compatibility, and several bug fixes.

Django Evolution is our alternative database migration library for Django, which supports a wide range of Django versions and optimized application of database changes. It targets self-managed applications, like Review Board, which may potentially go several releases between upgrades.

The highlights include:

  • Compatibility with Django 1.6 through 4.1, and Python 2.7 through 3.11
  • Support for conditions, expressions, opclasses, and field lists in Django’s Index classes.
  • Ability to change field types in ChangeField.
  • Improved settings for defining project-provided custom evolutions.
  • Bug fixes for MySQL compatibility, edge cases in SQL generation for indexes, and Python 3.10 compatibility.

The release notes cover the full list of changes in Django Evolution 2.2.

Read More

RBTools 3.1.2, Power Pack 5.1.1

Today, we’re bringing two new releases of RBTools and Power Pack, focusing on stability and feature improvements.

RBTools 3.1.2 Highlights

  • Now supports the upcoming Python 3.11.
  • Added back directory change information to diffs for ClearCase and VersionVault, and fixed problems posting symlinks.
  • Fixed several issues generating Perforce diffs, especially on Python 3.
  • Fixed applied patches on Subversion.

To learn more about this release, see the RBTools 3.1.2 release notes.

Power Pack 5.1.1 Highlights

  • Added support for showing changes to directories when using ClearCase or VersionVault
  • Fixed broken repository configuration forms when selecting Cliosoft SOS on Review Board 4.0.3 or older.

This upgrade is available for all existing Power Pack users.

To learn more about this release, see the Power Pack 5.1.1 release notes.

Read More