Add draft release notes for RBTools 5.0.

Review Request #13748 — Created April 18, 2024 and submitted

Information

RBTools
release-5.x

Reviewers

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
Add draft release notes for RBTools 5.0.
This change adds the draft release notes for the upcoming 5.0 release, in preparation for Review Board 7.0. Testing Done: Built docs and looked through the HTML output.
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 …

maubinmaubin

We have some performance improvements for posting review requests (the one where you limited the amount of data we fetch …

chipx86chipx86

We added the rbtools.utils.mimetype module, which also needs to be included in docs/api/coderef/index.rst.

chipx86chipx86

We added rbtools.utils.browser.open_browser().

chipx86chipx86

We added RBClient.user_agent to access the agent we compute, and a default rbtools.api.request.RBTOOLS_USER_AGENT.

chipx86chipx86

We added BaseSCMClient.get_file_content() and get_file_size() with suitable capability flags.

chipx86chipx86

We added Capabilities.get_capability().

chipx86chipx86

We added better error messages when trying to log in using an expired or invalid API token. This isn't dependent …

chipx86chipx86

We fixed bugs that could lead to a crash or data corruption when a command tries to write both Unicode …

chipx86chipx86

We added a strings_only= argument to force_unicode() and force_bytes(), which may matter to custom code.

chipx86chipx86

Command base classes have been moved into rbtools.commands.base. Old classes are deprecated.

chipx86chipx86

`DiffFile

chipx86chipx86

We added the DiffFileAttachmentListResource specialization for uploading binary files.

chipx86chipx86

We deprecated execute() in favor of run_process().

chipx86chipx86

We added rbtools.config for looking up configuration options, which is important for custom commands or consumers of the API. This …

chipx86chipx86

We removed the setuptools dependency and added packaging, importlib-metadata, and importlib-resources (versions in setup.py).

chipx86chipx86

We added a dependency on housekeeping. By the way, we need to bump the dependency version to the latest release. …

chipx86chipx86

We need to make sure any new modules are documented in rbtools/api/coderef/index.rst. I

chipx86chipx86

We added JSONOutput.raw for custom code to get the raw results of a command's JSON output when calling the command …

chipx86chipx86

This is missing the instructions block at the top of the release notes.

chipx86chipx86

There's a bunch of deprecation changes that are going to be important for people using the API or building custom …

chipx86chipx86

ClearCase had some major updates. Might be worth documenting, in case of regressions.

chipx86chipx86

This was a super recent change that slipped in, can you add it to the bug fixes list.

maubinmaubin

We should mention that web-based login does not currently support authenticating remote systems (e.g. when a user SSHs into a …

maubinmaubin

What really happens is an API token is generated and used once to authenticate RBTools. Then upon that authentication, a …

maubinmaubin

Wrap .reviewboardrc in backticks.

maubinmaubin

One blank link between these sections, since there's no content between the sections.

chipx86chipx86

Let's add a link to our e-mail address.

chipx86chipx86

This is missing a trailing period.

chipx86chipx86

We should mention the WEB_LOGIN setting.

chipx86chipx86

Let's link to the .reviewboardrc docs instead.

chipx86chipx86

Do we have any docs for this that we can link to? If not, let's file tasks to start making …

chipx86chipx86

Comma before "which".

chipx86chipx86

Comma before "which".

chipx86chipx86

To confirm, does this link correctly?

chipx86chipx86

Let's break this into our standard summary line / description for release notes. Easier to scan for the changes.

chipx86chipx86

Let's link to the TFS-Git docs.

chipx86chipx86

These should always list the version ranges.

chipx86chipx86

Installation is always before Compatibility in our release notes.

chipx86chipx86

This is going to be 5.x, rather than 5.0.

chipx86chipx86

Can you verify this works without a mailto:?

chipx86chipx86

These are missing reference roles and backticks.

chipx86chipx86

This has an extra backtick at the end We also want to explicitly title it BaseCommand.initialize_scm_tool().

chipx86chipx86

This isn't going to show the class name as-is, just __init__.

chipx86chipx86

These should still use roles.

chipx86chipx86

For the methods, don't forget to put () after the method name in the title, so it appears like a …

chipx86chipx86

Literals need two backticks.

chipx86chipx86

Missing trailing periods.

chipx86chipx86

This needs the Capabilities.get_capability() title, since it'll just link as get_capability().

chipx86chipx86

In our docs, we can wrap at any . within the reference to avoid the single-word lines and the long …

chipx86chipx86

The next bullet point got inlined. Let's make sure we have a blank line between every bullet point, even for …

chipx86chipx86

We aren't titling this, so no (). This should be the module path. Same with several below.

chipx86chipx86

No () here. This is a constant.

chipx86chipx86

review_Request -> review_request.

chipx86chipx86

These are all missing () for the titled method name.

chipx86chipx86

Let's wrap these (and any below that are too long).

chipx86chipx86

__init__ -> __init__() in the title.

chipx86chipx86

Missing a () in the title.

chipx86chipx86
maubin
  1. 
      
  2. Show all issues

    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.
  3. docs/releasenotes/5.0.rst (Diff revision 1)
     
     
    Show all issues

    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.

  4. docs/releasenotes/5.0.rst (Diff revision 1)
     
     
     
    Show all issues

    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.

  5. docs/releasenotes/5.0.rst (Diff revision 1)
     
     
    Show all issues

    Wrap .reviewboardrc in backticks.

  6. 
      
david
maubin
  1. Ship It!
  2. 
      
david
maubin
  1. Ship It!
  2. 
      
chipx86
  1. 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.

  2. Show all issues

    We have some performance improvements for posting review requests (the one where you limited the amount of data we fetch when posting).

  3. Show all issues

    We added the rbtools.utils.mimetype module, which also needs to be included in docs/api/coderef/index.rst.

  4. Show all issues

    We added rbtools.utils.browser.open_browser().

  5. Show all issues

    We added RBClient.user_agent to access the agent we compute, and a default rbtools.api.request.RBTOOLS_USER_AGENT.

  6. Show all issues

    We added BaseSCMClient.get_file_content() and get_file_size() with suitable capability flags.

  7. Show all issues

    We added Capabilities.get_capability().

  8. Show all issues

    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.

  9. Show all issues

    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.

  10. Show all issues

    We added a strings_only= argument to force_unicode() and force_bytes(), which may matter to custom code.

  11. Show all issues

    Command base classes have been moved into rbtools.commands.base. Old classes are deprecated.

  12. Show all issues

    `DiffFile

  13. Show all issues

    We added the DiffFileAttachmentListResource specialization for uploading binary files.

  14. Show all issues

    We deprecated execute() in favor of run_process().

  15. Show all issues

    We added rbtools.config for looking up configuration options, which is important for custom commands or consumers of the API. This is available on BaseCommand.config.

  16. Show all issues

    We removed the setuptools dependency and added packaging, importlib-metadata, and importlib-resources (versions in setup.py).

  17. Show all issues

    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.

  18. Show all issues

    We need to make sure any new modules are documented in rbtools/api/coderef/index.rst. I

  19. Show all issues

    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.

  20. Show all issues

    This is missing the instructions block at the top of the release notes.

    1. Is there an example of that I should base on? I don't see it in any of the rbtools relnotes.

    2. We haven't for RBTools in the past (we release so infrequently that I think it just never caught up to that), but we do for Djblets and Review Board.

  21. Show all issues

    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 classes
    • rbtools.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()'s repository_info and repository_name arguments.
    • rbtools.utils.review_Request.guess_existing_review_request()'s repository_info, repository_name, guess_summary, and guess_description arguments. submit_as is now required.
    • BaseCommand.initialize_scm_tool's require_repository_info argument.
    • BaseCommand.setup_tool()
    • BaseCommand.get_server_url()
    • APICache.__init__'s urlopen
    • ResourceDictField's iterfields(), iteritems().
    • rbtools.clients.SCMClient (in favor of rbtools.clients.base.scmclient.BaseSCMClient)
    • BaseSCMClient.scmclient_id is now always required
    • BaseSCMClient.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 args
    • rbtools.utils.review_Request.guess_existing_review_request() deprecated no-nkeyword-only args, and deprecated api_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.

  22. Show all issues

    ClearCase had some major updates. Might be worth documenting, in case of regressions.

    1. Not really sure what to say here. We've got pretty thorough unit testing of these changes. Our partners will tell us if they encounter any problems.

  23. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
     
     
     
    Show all issues

    One blank link between these sections, since there's no content between the sections.

  24. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
    Show all issues

    Let's add a link to our e-mail address.

  25. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
    Show all issues

    This is missing a trailing period.

  26. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
     
     
    Show all issues

    We should mention the WEB_LOGIN setting.

  27. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
    Show all issues

    Let's link to the .reviewboardrc docs instead.

  28. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
    Show all issues

    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.

  29. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
    Show all issues

    Comma before "which".

  30. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
    Show all issues

    Comma before "which".

  31. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
    Show all issues

    To confirm, does this link correctly?

  32. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
     
     
     
    Show all issues

    Let's break this into our standard summary line / description for release notes. Easier to scan for the changes.

  33. docs/releasenotes/5.0.rst (Diff revision 3)
     
     
    Show all issues

    Let's link to the TFS-Git docs.

  34. 
      
david
maubin
  1. 
      
  2. Show all issues

    This was a super recent change that slipped in, can you add it to the bug fixes list.

  3. 
      
chipx86
  1. 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.

    1. I feel like I just started going cross-eyed at some point in here.

  2. docs/rbtools/rbt/commands/review.rst (Diff revision 4)
     
     
     
     
     

    For a future TODO: We really need to document these payloads thoroughly.

  3. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
     
     
     
    Show all issues

    These should always list the version ranges.

  4. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
     
    Show all issues

    Installation is always before Compatibility in our release notes.

  5. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
    Show all issues

    This is going to be 5.x, rather than 5.0.

  6. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
    Show all issues

    Can you verify this works without a mailto:?

    1. Yeah, it puts mailto in the HTML link.

  7. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
     
    Show all issues

    These are missing reference roles and backticks.

  8. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
    Show all issues

    This has an extra backtick at the end

    We also want to explicitly title it BaseCommand.initialize_scm_tool().

  9. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
    Show all issues

    This isn't going to show the class name as-is, just __init__.

  10. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
     
     
     
     
     
     
     
     
    Show all issues

    These should still use roles.

  11. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
     
     
     
     
     
     
     
     
    Show all issues

    For the methods, don't forget to put () after the method name in the title, so it appears like a :py:meth normally does.

  12. docs/releasenotes/5.0.rst (Diff revision 4)
     
     
    Show all issues

    Literals need two backticks.

  13. 
      
david
maubin
  1. Ship It!
  2. 
      
chipx86
  1. 
      
  2. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
     
     
     
     
    Show all issues

    Missing trailing periods.

  3. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
    Show all issues

    This needs the Capabilities.get_capability() title, since it'll just link as get_capability().

  4. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
     
    Show all issues

    In our docs, we can wrap at any . within the reference to avoid the single-word lines and the long reference lines.

  5. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
    Show all issues

    The next bullet point got inlined.

    Let's make sure we have a blank line between every bullet point, even for one-liners, to stay consistent.

  6. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
    Show all issues

    We aren't titling this, so no (). This should be the module path.

    Same with several below.

  7. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
    Show all issues

    No () here. This is a constant.

  8. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
    Show all issues

    review_Request -> review_request.

  9. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
     
     
     
     
     
     
     
    Show all issues

    These are all missing () for the titled method name.

  10. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
    Show all issues

    Let's wrap these (and any below that are too long).

  11. docs/releasenotes/5.0.rst (Diff revision 5)
     
     
    Show all issues

    __init__ -> __init__() in the title.

  12. 
      
david
chipx86
  1. 
      
  2. docs/releasenotes/5.0.rst (Diff revision 6)
     
     
    Show all issues

    Missing a () in the title.

  3. 
      
david
Review request changed
Status:
Completed
Change Summary:
Pushed to release-5.x (c998780)