Add draft release notes for RBTools 5.0.
Review Request #13748 — Created April 18, 2024 and submitted
This change adds the draft release notes for the upcoming 5.0 release,
in preparation for Review Board 7.0.
Built docs and looked through the HTML output.
Summary | ID |
---|---|
ed561408842bce77f0a4a65ac6d882086ecc1451 |
Description | From | Last Updated |
---|---|---|
There was also a bug fix for the rbt review add-diff-comment command. You can add this to the bug fix … |
maubin | |
We have some performance improvements for posting review requests (the one where you limited the amount of data we fetch … |
chipx86 | |
We added the rbtools.utils.mimetype module, which also needs to be included in docs/api/coderef/index.rst. |
chipx86 | |
We added rbtools.utils.browser.open_browser(). |
chipx86 | |
We added RBClient.user_agent to access the agent we compute, and a default rbtools.api.request.RBTOOLS_USER_AGENT. |
chipx86 | |
We added BaseSCMClient.get_file_content() and get_file_size() with suitable capability flags. |
chipx86 | |
We added Capabilities.get_capability(). |
chipx86 | |
We added better error messages when trying to log in using an expired or invalid API token. This isn't dependent … |
chipx86 | |
We fixed bugs that could lead to a crash or data corruption when a command tries to write both Unicode … |
chipx86 | |
We added a strings_only= argument to force_unicode() and force_bytes(), which may matter to custom code. |
chipx86 | |
Command base classes have been moved into rbtools.commands.base. Old classes are deprecated. |
chipx86 | |
`DiffFile |
chipx86 | |
We added the DiffFileAttachmentListResource specialization for uploading binary files. |
chipx86 | |
We deprecated execute() in favor of run_process(). |
chipx86 | |
We added rbtools.config for looking up configuration options, which is important for custom commands or consumers of the API. This … |
chipx86 | |
We removed the setuptools dependency and added packaging, importlib-metadata, and importlib-resources (versions in setup.py). |
chipx86 | |
We added a dependency on housekeeping. By the way, we need to bump the dependency version to the latest release. … |
chipx86 | |
We need to make sure any new modules are documented in rbtools/api/coderef/index.rst. I |
chipx86 | |
We added JSONOutput.raw for custom code to get the raw results of a command's JSON output when calling the command … |
chipx86 | |
This is missing the instructions block at the top of the release notes. |
chipx86 | |
There's a bunch of deprecation changes that are going to be important for people using the API or building custom … |
chipx86 | |
ClearCase had some major updates. Might be worth documenting, in case of regressions. |
chipx86 | |
This was a super recent change that slipped in, can you add it to the bug fixes list. |
maubin | |
We should mention that web-based login does not currently support authenticating remote systems (e.g. when a user SSHs into a … |
maubin | |
What really happens is an API token is generated and used once to authenticate RBTools. Then upon that authentication, a … |
maubin | |
Wrap .reviewboardrc in backticks. |
maubin | |
One blank link between these sections, since there's no content between the sections. |
chipx86 | |
Let's add a link to our e-mail address. |
chipx86 | |
This is missing a trailing period. |
chipx86 | |
We should mention the WEB_LOGIN setting. |
chipx86 | |
Let's link to the .reviewboardrc docs instead. |
chipx86 | |
Do we have any docs for this that we can link to? If not, let's file tasks to start making … |
chipx86 | |
Comma before "which". |
chipx86 | |
Comma before "which". |
chipx86 | |
To confirm, does this link correctly? |
chipx86 | |
Let's break this into our standard summary line / description for release notes. Easier to scan for the changes. |
chipx86 | |
Let's link to the TFS-Git docs. |
chipx86 | |
These should always list the version ranges. |
chipx86 | |
Installation is always before Compatibility in our release notes. |
chipx86 | |
This is going to be 5.x, rather than 5.0. |
chipx86 | |
Can you verify this works without a mailto:? |
chipx86 | |
These are missing reference roles and backticks. |
chipx86 | |
This has an extra backtick at the end We also want to explicitly title it BaseCommand.initialize_scm_tool(). |
chipx86 | |
This isn't going to show the class name as-is, just __init__. |
chipx86 | |
These should still use roles. |
chipx86 | |
For the methods, don't forget to put () after the method name in the title, so it appears like a … |
chipx86 | |
Literals need two backticks. |
chipx86 | |
Missing trailing periods. |
chipx86 | |
This needs the Capabilities.get_capability() title, since it'll just link as get_capability(). |
chipx86 | |
In our docs, we can wrap at any . within the reference to avoid the single-word lines and the long … |
chipx86 | |
The next bullet point got inlined. Let's make sure we have a blank line between every bullet point, even for … |
chipx86 | |
We aren't titling this, so no (). This should be the module path. Same with several below. |
chipx86 | |
No () here. This is a constant. |
chipx86 | |
review_Request -> review_request. |
chipx86 | |
These are all missing () for the titled method name. |
chipx86 | |
Let's wrap these (and any below that are too long). |
chipx86 | |
__init__ -> __init__() in the title. |
chipx86 | |
Missing a () in the title. |
chipx86 |
-
-
There was also a bug fix for the
rbt review add-diff-comment
command. You can add this to the bug fix list:- Fixed a bug where :rbtcommand:
rbt review add-diff-comment
would always add the comment to the last
file in the diffset, instead of the specified file.
- Fixed a bug where :rbtcommand:
-
We should mention that web-based login does not currently support authenticating remote systems (e.g. when a user SSHs into a remote server and tries to do
rbt
commands there). But we're planning on adding that in a future release. -
What really happens is an API token is generated and used once to authenticate RBTools. Then upon that authentication, a session cookie is created and stored, and that session is used for future requests.
I'd say let's just take out this sentence, its only giving implementation details anyway.
-
- Commits:
-
Summary ID de61d79c5a1cf3afa2cd10085f73e3e69f2d66cb 1ad9cfbbf40a68cf57fd1fd009b4a54d56a35b1e
Checks run (2 succeeded)
- Commits:
-
Summary ID 1ad9cfbbf40a68cf57fd1fd009b4a54d56a35b1e e79e0943fd9479536fdba81c68d89eb48b5f6fa7
Checks run (2 succeeded)
-
Biggest piece of feedback here is that we're only documenting the user-facing features, but since RBTools is an API that's built upon, it's crucial we document any and all API changes as well. I don't know if I caught everything, but I made my best attempt.
-
We have some performance improvements for posting review requests (the one where you limited the amount of data we fetch when posting).
-
We added the
rbtools.utils.mimetype
module, which also needs to be included indocs/api/coderef/index.rst
. -
-
We added
RBClient.user_agent
to access the agent we compute, and a defaultrbtools.api.request.RBTOOLS_USER_AGENT
. -
-
-
We added better error messages when trying to log in using an expired or invalid API token. This isn't dependent on the
--api-token
addition. -
We fixed bugs that could lead to a crash or data corruption when a command tries to write both Unicode and byte strings. This is the
OutputWrapper
change. -
We added a
strings_only=
argument toforce_unicode()
andforce_bytes()
, which may matter to custom code. -
-
-
-
-
We added
rbtools.config
for looking up configuration options, which is important for custom commands or consumers of the API. This is available onBaseCommand.config
. -
We removed the
setuptools
dependency and addedpackaging
,importlib-metadata
, andimportlib-resources
(versions insetup.py
). -
We added a dependency on
housekeeping
.By the way, we need to bump the dependency version to the latest release. It's currently set to an alpha release.
-
-
We added
JSONOutput.raw
for custom code to get the raw results of a command's JSON output when calling the command programmatically. This is structured data, not serialized to a string. -
-
There's a bunch of deprecation changes that are going to be important for people using the API or building custom commands. These are important to include. Breaking down the ones I noticed:
We removed deprecated methods (or fulfilled deprecated expectations where indicated).
rbtools.find_server_repository_info()
from client classesrbtools.utils.match_score
rbtools.utils.review_request.get_possible_matches()
rbtools.utils.review_Request.num_exact_matches()
rbtools.utils.review_Request.find_review_request_by_change_id()
'srepository_info
andrepository_name
arguments.rbtools.utils.review_Request.guess_existing_review_request()
'srepository_info
,repository_name
,guess_summary
, andguess_description
arguments.submit_as
is now required.BaseCommand.initialize_scm_tool
'srequire_repository_info
argument.BaseCommand.setup_tool()
BaseCommand.get_server_url()
APICache.__init__
'surlopen
ResourceDictField
'siterfields()
,iteritems()
.rbtools.clients.SCMClient
(in favor ofrbtools.clients.base.scmclient.BaseSCMClient
)BaseSCMClient.scmclient_id
is now always requiredBaseSCMClient.entrypoint_name
rbtools.utils.checks.check_gnu_diff()
rbtools.utils.checks.is_valid_version()
rbtools.utils.filesystem.CONFIG_FILE
rbtools.utils.process.log_command_line()
We added deprecations/changes:
rbtools.utils.review_request.find_review_request_by_change_id()
deprecated non-keyword-only argsrbtools.utils.review_Request.guess_existing_review_request()
deprecated no-nkeyword-only args, and deprecatedapi_client
The following require keyword-only arguments now:
RepositoryInfo.__init__()
BaseSCMClient.get_tree_matches_review_request()
BaseSCMClient.diff()
BaseSCMClient.apply_patch()
BaseSCMClient.create_commit()
BaseSCMClient.delete_branch()
BaseSCMClient.merge()
BaseSCMClient.apply_patch_for_empty_files()
BaseSCMClient.amend_commit_description()
rbtools.utils.diffs.filename_match_any_patterns()
rbtools.utils.diffs.filter_diff()
rbtools.utils.diffs.normalize_patterns()
rbtools.utils.diffs.remove_filenames_matching_patterns()
rbtools.utils.filesystem.make_tempfile()
Important for calling and implementing these.
-
-
-
-
-
-
-
Do we have any docs for this that we can link to?
If not, let's file tasks to start making this happen. We need to get better at this part of it.
-
-
-
-
Let's break this into our standard summary line / description for release notes. Easier to scan for the changes.
-
- Commits:
-
Summary ID e79e0943fd9479536fdba81c68d89eb48b5f6fa7 ddbaf34c0cde693453ab2487a478ec2f124be1f8
Checks run (2 succeeded)
-
For the new API changes sections, can you build the docs and check each item for consistency? There's a bunch of syntax errors and broken roles in there right now.
-
-
-
-
-
-
-
This has an extra backtick at the end
We also want to explicitly title it
BaseCommand.initialize_scm_tool()
. -
-
-
For the methods, don't forget to put
()
after the method name in the title, so it appears like a:py:meth
normally does. -
- Commits:
-
Summary ID ddbaf34c0cde693453ab2487a478ec2f124be1f8 d8c987fb3057f8d6caf1236946594ffa1d75e831