RBTools 1.0 Release Notes¶
Release date: June 28, 2018
Compatibility Notes¶
When running on Python 2, RBTools now requires Python 2.7.
RBTools also now supports Python 3.5+.
New Features and Bug Fixes¶
Colorized Output¶
RBTools commands can now use color in their output. This will only be used when the commands are sending their output directly to a terminal.
Patch by Daniel Arteaga.
Bash and Zsh Auto-Completion¶
RBTools now includes scripts to enable shell completion for commands. To set this up, run rbt setup-completion.
Better Repository Detection¶
In the case where repositories are nested inside one another (for example, if
one’s home directory is a Git repository and there’s a Subversion checkout
inside of it), RBTools wouldn’t always detect the nested repository type,
requiring specifying REPOSITORY_TYPE
explicitly. In RBTools 1.0, the
deepest repository will be detected. This can still be overridden in
.reviewboardrc
if desired.
Patch by Maram El-Salamouny.
Publishing With Change Descriptions¶
rbt post and rbt publish can now include a change
description, using -m
. The --markdown
flag used for
review request descriptions will apply to this as well.
Publishing Without Sending E-Mail¶
rbt post and rbt publish can now publish review requests without sending e-mail to reviewers. This is particularly useful for small corrections and updates that do not require re-notifying reviewers. The options for this are rbt post --trivial-publish and rbt publish --trivial.
rbt alias¶
rbt alias is a new command for managing aliases defined in
.reviewboardrc
. It can list the defined aliases, as well as do a “dry
run” which can show what command would be executed when running a given alias.
rbt land¶
Added recursive landing support.
The rbt land command can now land review requests recursively; that is, it can now land all the unlanded review requests in the same repository that the review request depends on. It also does this in the correct order so that they should apply successfully.
Fixed reporting errors.
rbt patch¶
Fixed reporting errors via the console and exit code.
rbt post¶
Allow
--submit-as
to be used when updating existing review requests.When granted the proper permission, the
--submit-as
option allows posting review requests as a user other than the one authenticated with RBTools. This is typically used with automation to post review requests on behalf of the authors of the change. rbt post can now use this same option when updating an existing review request.Patch by Halvor Lund
Don’t overwrite reviewers from .reviewboardrc when updating a review request.
When initially creating a review request, the reviewers can be set via the
TARGET_GROUPS
andTARGET_PEOPLE
configuration keys. If the list of reviewers was then changed in the web UI, subsequent uses of rbt post to update the review request would overwrite this. These config keys are now only used when initially creating a review request.Patch by Ryan Wooster.
rbt status¶
Added the current review status to rbt status.
In addition to just listing the review request ID and summary of each open review request, the status table now includes the current state of each. This can show whether it is pending review, has open issues (and how many), has a ship it (and how many), or if there’s an unpublished draft.
Patch by Justin Wu.
Added local branch information to rbt status.
The local branch name corresponding to each open review request is now listed in the status table.
Patch by Evan Hunzinger.
rbt status-update¶
The new rbt status-update command allows creating and updating status updates in Review Board 3.0. This allows writing tools that can do some analysis on a review request or diff and post the results back in a simple format. For more details about status reports, see Automated Review Status and Results.
Patch by Brian LeBlanc
Git¶
Added a smarter parent-base finding algorithm.
When posting revision ranges, RBTools may create a “parent diff” which contains the delta between the upstream code and the initial revision in the range. Depending on the configuration of the
TRACKING_BRANCH
, these parent diffs could be very large, even if there were more recent revisions upstream. RBTools will now attempt to find the most recent commit available upstream, instead of just blindly using the tracking branch.Patch by Shaurya Sengar.
Subversion¶
Fixed a few bugs relating to treatment of non-ASCII characters in diffs.
Improved performance for detecting and interfacing with SVN repositories.
Patches by Griffin Myers.
Python API¶
Removed calls to
die()
from utility code.Some of the API utilities would cause the program to exit. These now will raise exceptions instead of exiting, allowing callers to handle the problem.
Added pagination helpers to list resources.
Instead of iterating through all pages of a resource manually, callers can now iterate over the
all_pages
andall_items
attributes to get all pages and all items, respectively.Allow setting extra data fields in item resource update and create methods.
Extra data fields can now be set in the update and create methods by including keyword arguments in the form of
extra_data__field_name
.
Contributors¶
Barret Rennie
Brian LeBlanc
Christian Hammond
Daniel Arteaga
David Trowbridge
Evan Hunzinger
Griffin Myers
Halvor Lund
Joshua Olson
Justin Wu
Maram El-Salamouny
Ryan Wooster
Shaurya Sengar