RBTools 1.0 Release Notes¶
Release date: June 28, 2018
When running on Python 2, RBTools now requires Python 2.7.
RBTools also now supports Python 3.5+.
New Features and Bug Fixes¶
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,
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¶
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 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.
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.
- Fixed reporting errors via the console and exit code.
--submit-asto be used when updating existing review requests.
When granted the proper permission, the
--submit-asoption 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_PEOPLEconfiguration 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.
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.
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 How Automated Code Reviews Appear.
Patch by Brian LeBlanc
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.
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.
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_itemsattributes 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
- 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