RBTools 5.3__tar.gz → 7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. {rbtools-5.3 → rbtools-7.0}/AUTHORS +2 -1
  2. {rbtools-5.3 → rbtools-7.0}/PKG-INFO +7 -7
  3. {rbtools-5.3 → rbtools-7.0}/RBTools.egg-info/PKG-INFO +7 -7
  4. {rbtools-5.3 → rbtools-7.0}/RBTools.egg-info/SOURCES.txt +88 -8
  5. {rbtools-5.3 → rbtools-7.0}/RBTools.egg-info/requires.txt +3 -3
  6. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/build-installer.bat +218 -26
  7. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/bootstrapper.wixproj +6 -4
  8. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/common.props +7 -2
  9. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/rbtools.wixproj +6 -6
  10. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/_ext/rbt_commands.py +65 -33
  11. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/api/coderef/index.rst +83 -3
  12. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/api/index.rst +0 -1
  13. rbtools-7.0/docs/rbtools/api/overview.rst +401 -0
  14. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/api/tutorial.rst +37 -44
  15. {rbtools-5.3/docs/rbtools/rbt/configuration → rbtools-7.0/docs/rbtools}/authentication.rst +9 -3
  16. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/conf.py +28 -9
  17. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/index.rst +21 -16
  18. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/installation.rst +1 -2
  19. rbtools-7.0/docs/rbtools/rbt/commands/info.rst +13 -0
  20. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/land.rst +2 -2
  21. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/login.rst +4 -4
  22. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/post.rst +41 -12
  23. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/status-update.rst +2 -2
  24. rbtools-7.0/docs/rbtools/rbt/configuration/aliases.rst +98 -0
  25. rbtools-7.0/docs/rbtools/rbt/configuration/index.rst +43 -0
  26. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/configuration/repositories.rst +70 -42
  27. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/configuration/tfs.rst +1 -1
  28. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/configuration/users.rst +130 -110
  29. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/workflows/clearcase.rst +2 -2
  30. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/workflows/git.rst +3 -3
  31. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/workflows/index.rst +3 -5
  32. rbtools-7.0/docs/rbtools/workflows/jujutsu.rst +373 -0
  33. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/workflows/sos.rst +1 -1
  34. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.6.3.rst +2 -2
  35. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.1.rst +1 -1
  36. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.10.rst +1 -1
  37. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.2.rst +1 -1
  38. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.3.rst +1 -1
  39. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.5.rst +1 -1
  40. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.6.rst +1 -1
  41. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.7.rst +1 -1
  42. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.8.rst +1 -1
  43. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.rst +7 -7
  44. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/1.0.2.rst +2 -2
  45. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/1.0.3.rst +2 -2
  46. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/1.0.rst +1 -1
  47. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/2.0.rst +1 -1
  48. rbtools-7.0/docs/releasenotes/6.0.rst +135 -0
  49. rbtools-7.0/docs/releasenotes/7.0.rst +313 -0
  50. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/_ext/extralinks.py +4 -3
  51. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/conf.py +20 -17
  52. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/index.rst +17 -0
  53. {rbtools-5.3 → rbtools-7.0}/pyproject.toml +6 -6
  54. {rbtools-5.3 → rbtools-7.0}/rbtools/__init__.py +24 -22
  55. {rbtools-5.3 → rbtools-7.0}/rbtools/api/cache.py +51 -43
  56. {rbtools-5.3 → rbtools-7.0}/rbtools/api/capabilities.py +10 -3
  57. {rbtools-5.3 → rbtools-7.0}/rbtools/api/client.py +73 -8
  58. {rbtools-5.3 → rbtools-7.0}/rbtools/api/decode.py +17 -10
  59. {rbtools-5.3 → rbtools-7.0}/rbtools/api/decorators.py +13 -14
  60. {rbtools-5.3 → rbtools-7.0}/rbtools/api/errors.py +87 -80
  61. {rbtools-5.3 → rbtools-7.0}/rbtools/api/factory.py +37 -8
  62. {rbtools-5.3 → rbtools-7.0}/rbtools/api/request.py +297 -107
  63. rbtools-7.0/rbtools/api/resource/__init__.py +307 -0
  64. rbtools-7.0/rbtools/api/resource/api_token.py +100 -0
  65. rbtools-7.0/rbtools/api/resource/archived_review_request.py +86 -0
  66. rbtools-7.0/rbtools/api/resource/base.py +2177 -0
  67. rbtools-7.0/rbtools/api/resource/base_archived_object.py +135 -0
  68. rbtools-7.0/rbtools/api/resource/base_comment.py +86 -0
  69. rbtools-7.0/rbtools/api/resource/base_diff_commit.py +63 -0
  70. rbtools-7.0/rbtools/api/resource/base_review.py +197 -0
  71. rbtools-7.0/rbtools/api/resource/base_review_group.py +102 -0
  72. rbtools-7.0/rbtools/api/resource/base_review_request.py +103 -0
  73. rbtools-7.0/rbtools/api/resource/base_user.py +139 -0
  74. rbtools-7.0/rbtools/api/resource/change.py +101 -0
  75. rbtools-7.0/rbtools/api/resource/default_reviewer.py +86 -0
  76. rbtools-7.0/rbtools/api/resource/diff.py +342 -0
  77. rbtools-7.0/rbtools/api/resource/diff_comment.py +187 -0
  78. rbtools-7.0/rbtools/api/resource/diff_commit.py +72 -0
  79. rbtools-7.0/rbtools/api/resource/diff_context.py +76 -0
  80. rbtools-7.0/rbtools/api/resource/diff_file_attachment.py +200 -0
  81. rbtools-7.0/rbtools/api/resource/draft_diff_commit.py +175 -0
  82. rbtools-7.0/rbtools/api/resource/draft_file_attachment.py +88 -0
  83. rbtools-7.0/rbtools/api/resource/draft_screenshot.py +73 -0
  84. rbtools-7.0/rbtools/api/resource/extension.py +89 -0
  85. rbtools-7.0/rbtools/api/resource/file_attachment.py +119 -0
  86. rbtools-7.0/rbtools/api/resource/file_attachment_comment.py +163 -0
  87. rbtools-7.0/rbtools/api/resource/file_diff.py +270 -0
  88. rbtools-7.0/rbtools/api/resource/general_comment.py +90 -0
  89. rbtools-7.0/rbtools/api/resource/hosting_service.py +147 -0
  90. rbtools-7.0/rbtools/api/resource/hosting_service_account.py +102 -0
  91. rbtools-7.0/rbtools/api/resource/last_update.py +57 -0
  92. rbtools-7.0/rbtools/api/resource/mixins.py +199 -0
  93. rbtools-7.0/rbtools/api/resource/muted_review_request.py +86 -0
  94. rbtools-7.0/rbtools/api/resource/oauth_application.py +142 -0
  95. rbtools-7.0/rbtools/api/resource/oauth_token.py +55 -0
  96. rbtools-7.0/rbtools/api/resource/plain_text.py +25 -0
  97. rbtools-7.0/rbtools/api/resource/remote_repository.py +99 -0
  98. rbtools-7.0/rbtools/api/resource/repository.py +306 -0
  99. rbtools-7.0/rbtools/api/resource/repository_branch.py +76 -0
  100. rbtools-7.0/rbtools/api/resource/repository_commit.py +89 -0
  101. rbtools-7.0/rbtools/api/resource/repository_group.py +38 -0
  102. rbtools-7.0/rbtools/api/resource/repository_info.py +21 -0
  103. rbtools-7.0/rbtools/api/resource/repository_user.py +38 -0
  104. rbtools-7.0/rbtools/api/resource/review.py +138 -0
  105. rbtools-7.0/rbtools/api/resource/review_group.py +71 -0
  106. rbtools-7.0/rbtools/api/resource/review_group_user.py +38 -0
  107. rbtools-7.0/rbtools/api/resource/review_reply.py +89 -0
  108. rbtools-7.0/rbtools/api/resource/review_request.py +767 -0
  109. rbtools-7.0/rbtools/api/resource/review_request_draft.py +158 -0
  110. rbtools-7.0/rbtools/api/resource/root.py +4365 -0
  111. rbtools-7.0/rbtools/api/resource/screenshot.py +107 -0
  112. rbtools-7.0/rbtools/api/resource/screenshot_comment.py +37 -0
  113. rbtools-7.0/rbtools/api/resource/search.py +64 -0
  114. rbtools-7.0/rbtools/api/resource/server_info.py +21 -0
  115. rbtools-7.0/rbtools/api/resource/session.py +60 -0
  116. rbtools-7.0/rbtools/api/resource/status_update.py +158 -0
  117. rbtools-7.0/rbtools/api/resource/user.py +187 -0
  118. rbtools-7.0/rbtools/api/resource/user_file_attachment.py +76 -0
  119. rbtools-7.0/rbtools/api/resource/validate_diff.py +78 -0
  120. rbtools-7.0/rbtools/api/resource/validate_diff_commit.py +91 -0
  121. rbtools-7.0/rbtools/api/resource/validation.py +80 -0
  122. rbtools-7.0/rbtools/api/resource/watched.py +83 -0
  123. rbtools-7.0/rbtools/api/resource/watched_review_group.py +38 -0
  124. rbtools-7.0/rbtools/api/resource/watched_review_request.py +38 -0
  125. rbtools-7.0/rbtools/api/resource/webhook.py +91 -0
  126. {rbtools-5.3 → rbtools-7.0}/rbtools/api/tests/base.py +21 -13
  127. rbtools-7.0/rbtools/api/tests/test_auth_handlers.py +437 -0
  128. {rbtools-5.3 → rbtools-7.0}/rbtools/api/tests/test_errors.py +73 -75
  129. {rbtools-5.3 → rbtools-7.0}/rbtools/api/tests/test_factory.py +48 -19
  130. {rbtools-5.3 → rbtools-7.0}/rbtools/api/tests/test_http_request.py +16 -14
  131. {rbtools-5.3 → rbtools-7.0}/rbtools/api/tests/test_resource.py +144 -82
  132. {rbtools-5.3 → rbtools-7.0}/rbtools/api/transport/__init__.py +34 -10
  133. {rbtools-5.3 → rbtools-7.0}/rbtools/api/transport/sync.py +99 -45
  134. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/__init__.py +56 -83
  135. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/base/registry.py +11 -7
  136. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/base/repository.py +17 -12
  137. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/base/scmclient.py +219 -297
  138. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/bazaar.py +44 -21
  139. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/clearcase.py +366 -204
  140. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/cvs.py +35 -11
  141. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/errors.py +8 -6
  142. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/git.py +602 -261
  143. rbtools-7.0/rbtools/clients/jujutsu.py +1633 -0
  144. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/mercurial.py +407 -196
  145. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/perforce.py +451 -162
  146. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/plastic.py +35 -16
  147. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/sos.py +89 -43
  148. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/svn.py +351 -169
  149. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/__init__.py +25 -19
  150. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_base_scmclient.py +7 -48
  151. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_bzr.py +28 -60
  152. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_clearcase.py +162 -69
  153. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_cvs.py +14 -34
  154. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_git.py +959 -152
  155. rbtools-7.0/rbtools/clients/tests/test_jujutsu.py +2687 -0
  156. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_mercurial.py +1075 -145
  157. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_p4.py +969 -44
  158. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_plastic.py +2 -0
  159. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_scanning.py +14 -14
  160. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_scmclient_registry.py +14 -9
  161. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_sos.py +40 -44
  162. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_svn.py +817 -199
  163. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/test_tfs.py +31 -28
  164. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/conf/hooks-env.tmpl +19 -0
  165. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/current +1 -0
  166. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/format +3 -0
  167. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/fsfs.conf +200 -0
  168. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/7 +13 -0
  169. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revs/0/0 +0 -0
  170. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revs/0/1 +0 -0
  171. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revs/0/2 +0 -0
  172. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revs/0/3 +0 -0
  173. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revs/0/4 +0 -0
  174. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revs/0/5 +0 -0
  175. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revs/0/6 +0 -0
  176. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/revs/0/7 +0 -0
  177. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/db/txn-current +1 -0
  178. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/uuid +1 -0
  179. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/post-commit.tmpl +20 -8
  180. rbtools-7.0/rbtools/clients/tests/testdata/svn-repo/hooks/post-lock.tmpl +64 -0
  181. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/post-revprop-change.tmpl +18 -5
  182. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/post-unlock.tmpl +28 -9
  183. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/pre-commit.tmpl +22 -12
  184. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/pre-lock.tmpl +28 -6
  185. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/pre-revprop-change.tmpl +17 -4
  186. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/pre-unlock.tmpl +28 -6
  187. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/hooks/start-commit.tmpl +29 -13
  188. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tfs.py +95 -66
  189. rbtools-7.0/rbtools/commands/__init__.py +108 -0
  190. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/alias.py +27 -16
  191. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/api_get.py +2 -0
  192. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/attach.py +11 -7
  193. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/base/__init__.py +4 -0
  194. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/base/commands.py +558 -204
  195. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/base/options.py +108 -33
  196. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/base/output.py +51 -12
  197. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/clearcache.py +3 -1
  198. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/close.py +39 -19
  199. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/diff.py +11 -5
  200. rbtools-7.0/rbtools/commands/info.py +243 -0
  201. rbtools-7.0/rbtools/commands/install.py +287 -0
  202. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/land.py +135 -65
  203. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/list_repo_types.py +10 -2
  204. rbtools-7.0/rbtools/commands/login.py +182 -0
  205. rbtools-7.0/rbtools/commands/logout.py +66 -0
  206. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/patch.py +256 -181
  207. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/post.py +540 -379
  208. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/publish.py +34 -11
  209. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/review.py +74 -50
  210. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/setup_completion.py +3 -5
  211. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/setup_repo.py +6 -6
  212. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/stamp.py +45 -21
  213. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/status.py +43 -26
  214. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/status_update.py +92 -47
  215. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/tests/test_alias.py +1 -1
  216. rbtools-7.0/rbtools/commands/tests/test_command_auth_session.py +306 -0
  217. rbtools-7.0/rbtools/commands/tests/test_command_initialization.py +622 -0
  218. rbtools-7.0/rbtools/commands/tests/test_info.py +345 -0
  219. rbtools-7.0/rbtools/commands/tests/test_login.py +170 -0
  220. rbtools-7.0/rbtools/commands/tests/test_logout.py +108 -0
  221. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/tests/test_main.py +38 -23
  222. rbtools-7.0/rbtools/commands/tests/test_patch.py +371 -0
  223. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/tests/test_post.py +110 -0
  224. rbtools-7.0/rbtools/commands/tests/test_review.py +383 -0
  225. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/tests/test_setup_completion.py +13 -5
  226. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/tests/test_setup_repo.py +4 -5
  227. {rbtools-5.3 → rbtools-7.0}/rbtools/config/__init__.py +4 -0
  228. {rbtools-5.3 → rbtools-7.0}/rbtools/config/config.py +84 -48
  229. {rbtools-5.3 → rbtools-7.0}/rbtools/config/errors.py +7 -9
  230. {rbtools-5.3 → rbtools-7.0}/rbtools/config/loader.py +4 -1
  231. {rbtools-5.3 → rbtools-7.0}/rbtools/config/tests/test_config.py +5 -2
  232. {rbtools-5.3 → rbtools-7.0}/rbtools/deprecation.py +11 -20
  233. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/errors.py +7 -12
  234. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/patcher.py +378 -78
  235. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/patches.py +261 -73
  236. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tests/test_apple_diff_tool.py +4 -2
  237. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tests/test_apply_patch_error.py +0 -16
  238. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tests/test_diff_file_result.py +2 -0
  239. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tests/test_diff_tools_registry.py +2 -0
  240. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tests/test_gnu_diff_tool.py +2 -0
  241. rbtools-7.0/rbtools/diffs/tests/test_patch.py +422 -0
  242. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tests/test_patcher.py +251 -37
  243. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tests/test_unified_diff_writer.py +2 -0
  244. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/backends/apple.py +8 -3
  245. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/backends/gnu.py +9 -4
  246. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/base/__init__.py +2 -0
  247. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/base/diff_file_result.py +10 -7
  248. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/base/diff_tool.py +11 -6
  249. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/errors.py +12 -8
  250. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/registry.py +17 -11
  251. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/writers.py +19 -14
  252. {rbtools-5.3 → rbtools-7.0}/rbtools/hooks/common.py +12 -6
  253. {rbtools-5.3 → rbtools-7.0}/rbtools/hooks/git.py +2 -0
  254. {rbtools-5.3 → rbtools-7.0}/rbtools/testing/__init__.py +5 -0
  255. {rbtools-5.3 → rbtools-7.0}/rbtools/testing/api/payloads.py +3 -1
  256. {rbtools-5.3 → rbtools-7.0}/rbtools/testing/api/transport.py +54 -14
  257. {rbtools-5.3 → rbtools-7.0}/rbtools/testing/commands.py +41 -23
  258. {rbtools-5.3 → rbtools-7.0}/rbtools/testing/testcase.py +66 -6
  259. {rbtools-5.3 → rbtools-7.0}/rbtools/testing/transport.py +2 -4
  260. rbtools-7.0/rbtools/ui/__init__.py +5 -0
  261. rbtools-7.0/rbtools/ui/console.py +986 -0
  262. rbtools-7.0/rbtools/ui/tests/__init__.py +5 -0
  263. rbtools-7.0/rbtools/ui/tests/test_console.py +350 -0
  264. rbtools-7.0/rbtools/ui/theme.py +110 -0
  265. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/aliases.py +6 -1
  266. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/commands.py +33 -30
  267. rbtools-7.0/rbtools/utils/commit_messages.py +263 -0
  268. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/console.py +69 -38
  269. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/diffs.py +9 -5
  270. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/encoding.py +5 -4
  271. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/errors.py +2 -0
  272. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/filesystem.py +10 -90
  273. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/graphs.py +2 -0
  274. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/mimetypes.py +13 -8
  275. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/process.py +111 -37
  276. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/repository.py +31 -15
  277. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/review_request.py +26 -31
  278. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/source_tree.py +18 -15
  279. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/streams.py +10 -4
  280. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_aliases.py +2 -0
  281. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_buffered_iterator.py +2 -0
  282. rbtools-7.0/rbtools/utils/tests/test_commit_messages.py +206 -0
  283. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_console.py +2 -0
  284. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_filesystem.py +2 -0
  285. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_process.py +20 -6
  286. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_repository.py +2 -0
  287. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_review_request.py +2 -0
  288. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_source_tree.py +15 -15
  289. rbtools-7.0/rbtools/utils/users.py +387 -0
  290. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/web_login.py +177 -27
  291. {rbtools-5.3 → rbtools-7.0}/setup.cfg +1 -1
  292. rbtools-5.3/docs/rbtools/api/overview.rst +0 -183
  293. rbtools-5.3/docs/rbtools/api/resource-specific.rst +0 -150
  294. rbtools-5.3/docs/rbtools/rbt/configuration/index.rst +0 -11
  295. rbtools-5.3/rbtools/api/resource.py +0 -1695
  296. rbtools-5.3/rbtools/clients/base/patch.py +0 -30
  297. rbtools-5.3/rbtools/clients/tests/test_legacy_patcher.py +0 -147
  298. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/current +0 -1
  299. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/format +0 -2
  300. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/fsfs.conf +0 -38
  301. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/revs/0/0 +0 -11
  302. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/revs/0/1 +0 -0
  303. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/revs/0/2 +0 -0
  304. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/revs/0/3 +0 -0
  305. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/revs/0/4 +0 -0
  306. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/revs/0/5 +0 -0
  307. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/revs/0/6 +0 -0
  308. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/db/txn-current +0 -1
  309. rbtools-5.3/rbtools/clients/tests/testdata/svn-repo/hooks/post-lock.tmpl +0 -44
  310. rbtools-5.3/rbtools/commands/__init__.py +0 -264
  311. rbtools-5.3/rbtools/commands/info.py +0 -91
  312. rbtools-5.3/rbtools/commands/install.py +0 -222
  313. rbtools-5.3/rbtools/commands/login.py +0 -90
  314. rbtools-5.3/rbtools/commands/logout.py +0 -35
  315. rbtools-5.3/rbtools/commands/tests/test_command_initialization.py +0 -111
  316. rbtools-5.3/rbtools/diffs/tests/test_patch.py +0 -165
  317. rbtools-5.3/rbtools/utils/COPYING.appdirs +0 -23
  318. rbtools-5.3/rbtools/utils/README.appdirs +0 -3
  319. rbtools-5.3/rbtools/utils/appdirs.py +0 -552
  320. rbtools-5.3/rbtools/utils/users.py +0 -201
  321. {rbtools-5.3 → rbtools-7.0}/COPYING +0 -0
  322. {rbtools-5.3 → rbtools-7.0}/INSTALL +0 -0
  323. {rbtools-5.3 → rbtools-7.0}/MANIFEST.in +0 -0
  324. {rbtools-5.3 → rbtools-7.0}/NEWS +0 -0
  325. {rbtools-5.3 → rbtools-7.0}/RBTools.egg-info/dependency_links.txt +0 -0
  326. {rbtools-5.3 → rbtools-7.0}/RBTools.egg-info/entry_points.txt +0 -0
  327. {rbtools-5.3 → rbtools-7.0}/RBTools.egg-info/top_level.txt +0 -0
  328. {rbtools-5.3 → rbtools-7.0}/README.md +0 -0
  329. {rbtools-5.3 → rbtools-7.0}/contrib/P4V/P4V-Mac-Linux-Tools-Import.xml +0 -0
  330. {rbtools-5.3 → rbtools-7.0}/contrib/P4V/P4V-Windows-RBTools-Install.xml +0 -0
  331. {rbtools-5.3 → rbtools-7.0}/contrib/P4V/README.md +0 -0
  332. {rbtools-5.3 → rbtools-7.0}/contrib/installers/macosx/build-mpkg.sh +0 -0
  333. {rbtools-5.3 → rbtools-7.0}/contrib/installers/macosx/distribution.xml +0 -0
  334. {rbtools-5.3 → rbtools-7.0}/contrib/installers/macosx/resources/background.tiff +0 -0
  335. {rbtools-5.3 → rbtools-7.0}/contrib/installers/macosx/resources/background@2x.tiff +0 -0
  336. {rbtools-5.3 → rbtools-7.0}/contrib/installers/macosx/resources/conclusion.html +0 -0
  337. {rbtools-5.3 → rbtools-7.0}/contrib/installers/macosx/resources/welcome.html +0 -0
  338. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/scripts/get-version.py +0 -0
  339. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/Product_en-us.wxl +0 -0
  340. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/bundle.wxs +0 -0
  341. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/defines.wxi +0 -0
  342. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/files/favicon.ico +0 -0
  343. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/files/logo.png +0 -0
  344. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/files/rbt +0 -0
  345. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/files/rbt.cmd +0 -0
  346. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/product.wxs +0 -0
  347. {rbtools-5.3 → rbtools-7.0}/contrib/installers/windows/wix/rbtools.sln +0 -0
  348. {rbtools-5.3 → rbtools-7.0}/contrib/tools/git-hook-check-approval +0 -0
  349. {rbtools-5.3 → rbtools-7.0}/contrib/tools/git-hook-set-submitted +0 -0
  350. {rbtools-5.3 → rbtools-7.0}/contrib/tools/p4-trigger-script +0 -0
  351. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/Makefile +0 -0
  352. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/_ext/__init__.py +0 -0
  353. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/glossary.rst +0 -0
  354. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/alias.rst +0 -0
  355. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/api-get.rst +0 -0
  356. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/attach.rst +0 -0
  357. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/clear-cache.rst +0 -0
  358. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/close.rst +0 -0
  359. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/diff.rst +0 -0
  360. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/index.rst +0 -0
  361. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/install.rst +0 -0
  362. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/list-repo-types.rst +0 -0
  363. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/logout.rst +0 -0
  364. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/patch.rst +0 -0
  365. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/publish.rst +0 -0
  366. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/review.rst +0 -0
  367. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/setup-completion.rst +0 -0
  368. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/setup-repo.rst +0 -0
  369. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/stamp.rst +0 -0
  370. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/commands/status.rst +0 -0
  371. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/rbt/index.rst +0 -0
  372. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/redirects.json +0 -0
  373. {rbtools-5.3 → rbtools-7.0}/docs/rbtools/workflows/perforce.rst +0 -0
  374. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.2-beta-1.rst +0 -0
  375. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.2-beta-2.rst +0 -0
  376. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.2-rc-1.rst +0 -0
  377. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.2.rst +0 -0
  378. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.3.1.rst +0 -0
  379. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.3.2.rst +0 -0
  380. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.3.3.rst +0 -0
  381. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.3.4.rst +0 -0
  382. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.3.rst +0 -0
  383. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.4.1.rst +0 -0
  384. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.4.2.rst +0 -0
  385. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.4.3.rst +0 -0
  386. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.4.rst +0 -0
  387. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.5.1.rst +0 -0
  388. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.5.2.rst +0 -0
  389. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.5.3.rst +0 -0
  390. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.5.4.rst +0 -0
  391. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.5.5.rst +0 -0
  392. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.5.6.rst +0 -0
  393. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.5.7.rst +0 -0
  394. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.5.rst +0 -0
  395. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.6.1.rst +0 -0
  396. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.6.2.rst +0 -0
  397. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.6.rst +0 -0
  398. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.11.rst +0 -0
  399. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.4.rst +0 -0
  400. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/0.7.9.rst +0 -0
  401. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/1.0.1.rst +0 -0
  402. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/2.0.1.rst +0 -0
  403. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/3.0.rst +0 -0
  404. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/3.1.1.rst +0 -0
  405. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/3.1.2.rst +0 -0
  406. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/3.1.rst +0 -0
  407. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/4.0.rst +0 -0
  408. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/4.1.rst +0 -0
  409. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/5.0.rst +0 -0
  410. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/5.1.1.rst +0 -0
  411. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/5.1.rst +0 -0
  412. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/5.2.1.rst +0 -0
  413. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/5.2.rst +0 -0
  414. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/5.3.rst +0 -0
  415. {rbtools-5.3 → rbtools-7.0}/docs/releasenotes/Makefile +0 -0
  416. {rbtools-5.3 → rbtools-7.0}/rbtools/api/__init__.py +0 -0
  417. {rbtools-5.3 → rbtools-7.0}/rbtools/api/tests/__init__.py +0 -0
  418. {rbtools-5.3 → rbtools-7.0}/rbtools/api/tests/test_capabilities.py +0 -0
  419. {rbtools-5.3 → rbtools-7.0}/rbtools/api/utils.py +0 -0
  420. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/base/__init__.py +0 -0
  421. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/checkoutlist +0 -0
  422. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/checkoutlist,v +0 -0
  423. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/commitinfo +0 -0
  424. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/commitinfo,v +0 -0
  425. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/config +0 -0
  426. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/config,v +0 -0
  427. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/cvswrappers +0 -0
  428. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/cvswrappers,v +0 -0
  429. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/loginfo +0 -0
  430. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/loginfo,v +0 -0
  431. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/modules +0 -0
  432. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/modules,v +0 -0
  433. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/notify +0 -0
  434. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/notify,v +0 -0
  435. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postadmin +0 -0
  436. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postadmin,v +0 -0
  437. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postproxy +0 -0
  438. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postproxy,v +0 -0
  439. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/posttag +0 -0
  440. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/posttag,v +0 -0
  441. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postwatch +0 -0
  442. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/postwatch,v +0 -0
  443. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/preproxy +0 -0
  444. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/preproxy,v +0 -0
  445. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/rcsinfo +0 -0
  446. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/rcsinfo,v +0 -0
  447. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/taginfo +0 -0
  448. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/taginfo,v +0 -0
  449. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/val-tags +0 -0
  450. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/verifymsg +0 -0
  451. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/CVSROOT/verifymsg,v +0 -0
  452. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/test-project/file1,v +0 -0
  453. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/test-project/file2,v +0 -0
  454. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/cvs-repo/test-project/file3,v +0 -0
  455. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/HEAD +0 -0
  456. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/config +0 -0
  457. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/description +0 -0
  458. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/applypatch-msg.sample +0 -0
  459. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/commit-msg.sample +0 -0
  460. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/post-update.sample +0 -0
  461. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/pre-applypatch.sample +0 -0
  462. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/pre-commit.sample +0 -0
  463. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/pre-push.sample +0 -0
  464. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/pre-rebase.sample +0 -0
  465. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/prepare-commit-msg.sample +0 -0
  466. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/hooks/update.sample +0 -0
  467. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/info/exclude +0 -0
  468. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/0e/88e512079c31f885b3ced6fab680674a69d8ac +0 -0
  469. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/18/c5c09410ba62e8240c2cabe0822c55a60fc519 +0 -0
  470. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 +0 -0
  471. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/5e/98e9540e1b741b5be24fcb33c40c1c8069c1fb +0 -0
  472. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/63/4b3e8ff85bada6f928841a9f2c505560840b3a +0 -0
  473. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/6a/76568cc86d73144323388a2669c6add94a572c +0 -0
  474. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/79/66b68a2d81aaa3707c6200aac1c1c86f91431b +0 -0
  475. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/9d/c1177bba796bd19564d1d84f27a8e4576a204a +0 -0
  476. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/bd/5eb938439b726de969e52fa2d93d5e366811b7 +0 -0
  477. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/c4/1fe7c20a7342965922f2772bea3e514975134a +0 -0
  478. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/objects/e6/a3577b3236ed08fdb3a42e8042bfc415d2ae22 +0 -0
  479. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/packed-refs +0 -0
  480. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/refs/heads/.gitignore +0 -0
  481. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/git-repo/refs/tags/.gitignore +0 -0
  482. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/hg-repo/foo.txt +0 -0
  483. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/homedir/.bazaar/bazaar.conf +0 -0
  484. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/homedir/.gitconfig +0 -0
  485. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/homedir/.gitignore +0 -0
  486. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/README.txt +0 -0
  487. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/conf/authz +0 -0
  488. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/conf/passwd +0 -0
  489. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/conf/svnserve.conf +0 -0
  490. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/fs-type +0 -0
  491. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/min-unpacked-rev +0 -0
  492. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/rep-cache.db-journal +0 -0
  493. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/0 +0 -0
  494. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/1 +0 -0
  495. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/2 +0 -0
  496. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/3 +0 -0
  497. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/4 +0 -0
  498. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/5 +0 -0
  499. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/revprops/0/6 +0 -0
  500. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/transactions/.gitignore +0 -0
  501. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/txn-current-lock +0 -0
  502. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/txn-protorevs/.gitignore +0 -0
  503. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/db/write-lock +0 -0
  504. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/format +0 -0
  505. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/locks/db-logs.lock +0 -0
  506. {rbtools-5.3 → rbtools-7.0}/rbtools/clients/tests/testdata/svn-repo/locks/db.lock +0 -0
  507. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/base/errors.py +0 -0
  508. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/conf/completions/bash +0 -0
  509. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/conf/completions/zsh +0 -0
  510. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/main.py +0 -0
  511. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/tests/__init__.py +0 -0
  512. {rbtools-5.3 → rbtools-7.0}/rbtools/commands/tests/test_base_output.py +0 -0
  513. {rbtools-5.3 → rbtools-7.0}/rbtools/config/tests/__init__.py +0 -0
  514. {rbtools-5.3 → rbtools-7.0}/rbtools/config/tests/test_loader.py +0 -0
  515. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/__init__.py +0 -0
  516. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tests/__init__.py +0 -0
  517. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/__init__.py +0 -0
  518. {rbtools-5.3 → rbtools-7.0}/rbtools/diffs/tools/backends/__init__.py +0 -0
  519. {rbtools-5.3 → rbtools-7.0}/rbtools/helpers/__init__.py +0 -0
  520. {rbtools-5.3 → rbtools-7.0}/rbtools/helpers/hgext.py +0 -0
  521. {rbtools-5.3 → rbtools-7.0}/rbtools/hooks/__init__.py +0 -0
  522. {rbtools-5.3 → rbtools-7.0}/rbtools/testing/api/__init__.py +0 -0
  523. {rbtools-5.3 → rbtools-7.0}/rbtools/testing/scripts/editor.py +0 -0
  524. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/__init__.py +0 -0
  525. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/browser.py +0 -0
  526. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/checks.py +0 -0
  527. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/__init__.py +0 -0
  528. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_checks.py +0 -0
  529. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_encoding.py +0 -0
  530. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_mimetypes.py +0 -0
  531. {rbtools-5.3 → rbtools-7.0}/rbtools/utils/tests/test_web_login.py +0 -0
@@ -29,12 +29,12 @@ Contributors:
29
29
  * Anthony Cruz
30
30
  * Anthony Hache
31
31
  * Azad Salahli
32
- * Barret Rennie
33
32
  * Bartosz Gołek
34
33
  * Ben (full name unknown)
35
34
  * Ben Asher
36
35
  * Ben Hollis
37
36
  * Ben Jackson
37
+ * Beth Rennie
38
38
  * Bogdana Popa
39
39
  * Bradley Baetz
40
40
  * Brandon Martin
@@ -45,6 +45,7 @@ Contributors:
45
45
  * Chris Eagan
46
46
  * Chris Hunt
47
47
  * Chris Liu
48
+ * Conor Burgess
48
49
  * Craig Silverstein
49
50
  * Damian
50
51
  * Dana Lacoste
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: RBTools
3
- Version: 5.3
3
+ Version: 7.0
4
4
  Summary: Command line tools and API for working with code and document reviews on Review Board
5
5
  Author-email: "Beanbag, Inc." <questions@beanbaginc.com>
6
6
  License: MIT
@@ -16,26 +16,26 @@ Classifier: Natural Language :: English
16
16
  Classifier: Operating System :: OS Independent
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
- Classifier: Programming Language :: Python :: 3.8
20
- Classifier: Programming Language :: Python :: 3.9
21
19
  Classifier: Programming Language :: Python :: 3.10
22
20
  Classifier: Programming Language :: Python :: 3.11
23
21
  Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
24
  Classifier: Topic :: Software Development
25
25
  Classifier: Topic :: Software Development :: Quality Assurance
26
- Requires-Python: >=3.8
26
+ Requires-Python: >=3.10
27
27
  Description-Content-Type: text/markdown
28
28
  License-File: COPYING
29
29
  License-File: AUTHORS
30
+ Requires-Dist: appdirs~=1.4.4
30
31
  Requires-Dist: certifi>=2023.5.7
31
- Requires-Dist: colorama
32
32
  Requires-Dist: housekeeping~=1.1
33
33
  Requires-Dist: packaging>=21.3
34
34
  Requires-Dist: puremagic
35
35
  Requires-Dist: pydiffx~=1.1.0
36
- Requires-Dist: texttable
36
+ Requires-Dist: rich~=15.0
37
+ Requires-Dist: typelets~=1.1.0
37
38
  Requires-Dist: typing_extensions>=4.3.0
38
- Requires-Dist: tqdm
39
39
  Requires-Dist: importlib-metadata>=5.0
40
40
  Requires-Dist: importlib-resources>=5.9
41
41
  Dynamic: license-file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: RBTools
3
- Version: 5.3
3
+ Version: 7.0
4
4
  Summary: Command line tools and API for working with code and document reviews on Review Board
5
5
  Author-email: "Beanbag, Inc." <questions@beanbaginc.com>
6
6
  License: MIT
@@ -16,26 +16,26 @@ Classifier: Natural Language :: English
16
16
  Classifier: Operating System :: OS Independent
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
- Classifier: Programming Language :: Python :: 3.8
20
- Classifier: Programming Language :: Python :: 3.9
21
19
  Classifier: Programming Language :: Python :: 3.10
22
20
  Classifier: Programming Language :: Python :: 3.11
23
21
  Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
24
  Classifier: Topic :: Software Development
25
25
  Classifier: Topic :: Software Development :: Quality Assurance
26
- Requires-Python: >=3.8
26
+ Requires-Python: >=3.10
27
27
  Description-Content-Type: text/markdown
28
28
  License-File: COPYING
29
29
  License-File: AUTHORS
30
+ Requires-Dist: appdirs~=1.4.4
30
31
  Requires-Dist: certifi>=2023.5.7
31
- Requires-Dist: colorama
32
32
  Requires-Dist: housekeeping~=1.1
33
33
  Requires-Dist: packaging>=21.3
34
34
  Requires-Dist: puremagic
35
35
  Requires-Dist: pydiffx~=1.1.0
36
- Requires-Dist: texttable
36
+ Requires-Dist: rich~=15.0
37
+ Requires-Dist: typelets~=1.1.0
37
38
  Requires-Dist: typing_extensions>=4.3.0
38
- Requires-Dist: tqdm
39
39
  Requires-Dist: importlib-metadata>=5.0
40
40
  Requires-Dist: importlib-resources>=5.9
41
41
  Dynamic: license-file
@@ -39,6 +39,7 @@ contrib/tools/git-hook-check-approval
39
39
  contrib/tools/git-hook-set-submitted
40
40
  contrib/tools/p4-trigger-script
41
41
  docs/rbtools/Makefile
42
+ docs/rbtools/authentication.rst
42
43
  docs/rbtools/conf.py
43
44
  docs/rbtools/glossary.rst
44
45
  docs/rbtools/index.rst
@@ -48,7 +49,6 @@ docs/rbtools/_ext/__init__.py
48
49
  docs/rbtools/_ext/rbt_commands.py
49
50
  docs/rbtools/api/index.rst
50
51
  docs/rbtools/api/overview.rst
51
- docs/rbtools/api/resource-specific.rst
52
52
  docs/rbtools/api/tutorial.rst
53
53
  docs/rbtools/api/coderef/index.rst
54
54
  docs/rbtools/rbt/index.rst
@@ -59,6 +59,7 @@ docs/rbtools/rbt/commands/clear-cache.rst
59
59
  docs/rbtools/rbt/commands/close.rst
60
60
  docs/rbtools/rbt/commands/diff.rst
61
61
  docs/rbtools/rbt/commands/index.rst
62
+ docs/rbtools/rbt/commands/info.rst
62
63
  docs/rbtools/rbt/commands/install.rst
63
64
  docs/rbtools/rbt/commands/land.rst
64
65
  docs/rbtools/rbt/commands/list-repo-types.rst
@@ -73,7 +74,7 @@ docs/rbtools/rbt/commands/setup-repo.rst
73
74
  docs/rbtools/rbt/commands/stamp.rst
74
75
  docs/rbtools/rbt/commands/status-update.rst
75
76
  docs/rbtools/rbt/commands/status.rst
76
- docs/rbtools/rbt/configuration/authentication.rst
77
+ docs/rbtools/rbt/configuration/aliases.rst
77
78
  docs/rbtools/rbt/configuration/index.rst
78
79
  docs/rbtools/rbt/configuration/repositories.rst
79
80
  docs/rbtools/rbt/configuration/tfs.rst
@@ -81,6 +82,7 @@ docs/rbtools/rbt/configuration/users.rst
81
82
  docs/rbtools/workflows/clearcase.rst
82
83
  docs/rbtools/workflows/git.rst
83
84
  docs/rbtools/workflows/index.rst
85
+ docs/rbtools/workflows/jujutsu.rst
84
86
  docs/rbtools/workflows/perforce.rst
85
87
  docs/rbtools/workflows/sos.rst
86
88
  docs/releasenotes/0.2-beta-1.rst
@@ -138,6 +140,8 @@ docs/releasenotes/5.1.rst
138
140
  docs/releasenotes/5.2.1.rst
139
141
  docs/releasenotes/5.2.rst
140
142
  docs/releasenotes/5.3.rst
143
+ docs/releasenotes/6.0.rst
144
+ docs/releasenotes/7.0.rst
141
145
  docs/releasenotes/Makefile
142
146
  docs/releasenotes/conf.py
143
147
  docs/releasenotes/index.rst
@@ -153,10 +157,73 @@ rbtools/api/decorators.py
153
157
  rbtools/api/errors.py
154
158
  rbtools/api/factory.py
155
159
  rbtools/api/request.py
156
- rbtools/api/resource.py
157
160
  rbtools/api/utils.py
161
+ rbtools/api/resource/__init__.py
162
+ rbtools/api/resource/api_token.py
163
+ rbtools/api/resource/archived_review_request.py
164
+ rbtools/api/resource/base.py
165
+ rbtools/api/resource/base_archived_object.py
166
+ rbtools/api/resource/base_comment.py
167
+ rbtools/api/resource/base_diff_commit.py
168
+ rbtools/api/resource/base_review.py
169
+ rbtools/api/resource/base_review_group.py
170
+ rbtools/api/resource/base_review_request.py
171
+ rbtools/api/resource/base_user.py
172
+ rbtools/api/resource/change.py
173
+ rbtools/api/resource/default_reviewer.py
174
+ rbtools/api/resource/diff.py
175
+ rbtools/api/resource/diff_comment.py
176
+ rbtools/api/resource/diff_commit.py
177
+ rbtools/api/resource/diff_context.py
178
+ rbtools/api/resource/diff_file_attachment.py
179
+ rbtools/api/resource/draft_diff_commit.py
180
+ rbtools/api/resource/draft_file_attachment.py
181
+ rbtools/api/resource/draft_screenshot.py
182
+ rbtools/api/resource/extension.py
183
+ rbtools/api/resource/file_attachment.py
184
+ rbtools/api/resource/file_attachment_comment.py
185
+ rbtools/api/resource/file_diff.py
186
+ rbtools/api/resource/general_comment.py
187
+ rbtools/api/resource/hosting_service.py
188
+ rbtools/api/resource/hosting_service_account.py
189
+ rbtools/api/resource/last_update.py
190
+ rbtools/api/resource/mixins.py
191
+ rbtools/api/resource/muted_review_request.py
192
+ rbtools/api/resource/oauth_application.py
193
+ rbtools/api/resource/oauth_token.py
194
+ rbtools/api/resource/plain_text.py
195
+ rbtools/api/resource/remote_repository.py
196
+ rbtools/api/resource/repository.py
197
+ rbtools/api/resource/repository_branch.py
198
+ rbtools/api/resource/repository_commit.py
199
+ rbtools/api/resource/repository_group.py
200
+ rbtools/api/resource/repository_info.py
201
+ rbtools/api/resource/repository_user.py
202
+ rbtools/api/resource/review.py
203
+ rbtools/api/resource/review_group.py
204
+ rbtools/api/resource/review_group_user.py
205
+ rbtools/api/resource/review_reply.py
206
+ rbtools/api/resource/review_request.py
207
+ rbtools/api/resource/review_request_draft.py
208
+ rbtools/api/resource/root.py
209
+ rbtools/api/resource/screenshot.py
210
+ rbtools/api/resource/screenshot_comment.py
211
+ rbtools/api/resource/search.py
212
+ rbtools/api/resource/server_info.py
213
+ rbtools/api/resource/session.py
214
+ rbtools/api/resource/status_update.py
215
+ rbtools/api/resource/user.py
216
+ rbtools/api/resource/user_file_attachment.py
217
+ rbtools/api/resource/validate_diff.py
218
+ rbtools/api/resource/validate_diff_commit.py
219
+ rbtools/api/resource/validation.py
220
+ rbtools/api/resource/watched.py
221
+ rbtools/api/resource/watched_review_group.py
222
+ rbtools/api/resource/watched_review_request.py
223
+ rbtools/api/resource/webhook.py
158
224
  rbtools/api/tests/__init__.py
159
225
  rbtools/api/tests/base.py
226
+ rbtools/api/tests/test_auth_handlers.py
160
227
  rbtools/api/tests/test_capabilities.py
161
228
  rbtools/api/tests/test_errors.py
162
229
  rbtools/api/tests/test_factory.py
@@ -170,6 +237,7 @@ rbtools/clients/clearcase.py
170
237
  rbtools/clients/cvs.py
171
238
  rbtools/clients/errors.py
172
239
  rbtools/clients/git.py
240
+ rbtools/clients/jujutsu.py
173
241
  rbtools/clients/mercurial.py
174
242
  rbtools/clients/perforce.py
175
243
  rbtools/clients/plastic.py
@@ -177,7 +245,6 @@ rbtools/clients/sos.py
177
245
  rbtools/clients/svn.py
178
246
  rbtools/clients/tfs.py
179
247
  rbtools/clients/base/__init__.py
180
- rbtools/clients/base/patch.py
181
248
  rbtools/clients/base/registry.py
182
249
  rbtools/clients/base/repository.py
183
250
  rbtools/clients/base/scmclient.py
@@ -187,7 +254,7 @@ rbtools/clients/tests/test_bzr.py
187
254
  rbtools/clients/tests/test_clearcase.py
188
255
  rbtools/clients/tests/test_cvs.py
189
256
  rbtools/clients/tests/test_git.py
190
- rbtools/clients/tests/test_legacy_patcher.py
257
+ rbtools/clients/tests/test_jujutsu.py
191
258
  rbtools/clients/tests/test_mercurial.py
192
259
  rbtools/clients/tests/test_p4.py
193
260
  rbtools/clients/tests/test_plastic.py
@@ -264,6 +331,7 @@ rbtools/clients/tests/testdata/homedir/.bazaar/bazaar.conf
264
331
  rbtools/clients/tests/testdata/svn-repo/README.txt
265
332
  rbtools/clients/tests/testdata/svn-repo/format
266
333
  rbtools/clients/tests/testdata/svn-repo/conf/authz
334
+ rbtools/clients/tests/testdata/svn-repo/conf/hooks-env.tmpl
267
335
  rbtools/clients/tests/testdata/svn-repo/conf/passwd
268
336
  rbtools/clients/tests/testdata/svn-repo/conf/svnserve.conf
269
337
  rbtools/clients/tests/testdata/svn-repo/db/current
@@ -283,6 +351,7 @@ rbtools/clients/tests/testdata/svn-repo/db/revprops/0/3
283
351
  rbtools/clients/tests/testdata/svn-repo/db/revprops/0/4
284
352
  rbtools/clients/tests/testdata/svn-repo/db/revprops/0/5
285
353
  rbtools/clients/tests/testdata/svn-repo/db/revprops/0/6
354
+ rbtools/clients/tests/testdata/svn-repo/db/revprops/0/7
286
355
  rbtools/clients/tests/testdata/svn-repo/db/revs/0/0
287
356
  rbtools/clients/tests/testdata/svn-repo/db/revs/0/1
288
357
  rbtools/clients/tests/testdata/svn-repo/db/revs/0/2
@@ -290,6 +359,7 @@ rbtools/clients/tests/testdata/svn-repo/db/revs/0/3
290
359
  rbtools/clients/tests/testdata/svn-repo/db/revs/0/4
291
360
  rbtools/clients/tests/testdata/svn-repo/db/revs/0/5
292
361
  rbtools/clients/tests/testdata/svn-repo/db/revs/0/6
362
+ rbtools/clients/tests/testdata/svn-repo/db/revs/0/7
293
363
  rbtools/clients/tests/testdata/svn-repo/db/transactions/.gitignore
294
364
  rbtools/clients/tests/testdata/svn-repo/db/txn-protorevs/.gitignore
295
365
  rbtools/clients/tests/testdata/svn-repo/hooks/post-commit.tmpl
@@ -336,9 +406,15 @@ rbtools/commands/conf/completions/zsh
336
406
  rbtools/commands/tests/__init__.py
337
407
  rbtools/commands/tests/test_alias.py
338
408
  rbtools/commands/tests/test_base_output.py
409
+ rbtools/commands/tests/test_command_auth_session.py
339
410
  rbtools/commands/tests/test_command_initialization.py
411
+ rbtools/commands/tests/test_info.py
412
+ rbtools/commands/tests/test_login.py
413
+ rbtools/commands/tests/test_logout.py
340
414
  rbtools/commands/tests/test_main.py
415
+ rbtools/commands/tests/test_patch.py
341
416
  rbtools/commands/tests/test_post.py
417
+ rbtools/commands/tests/test_review.py
342
418
  rbtools/commands/tests/test_setup_completion.py
343
419
  rbtools/commands/tests/test_setup_repo.py
344
420
  rbtools/config/__init__.py
@@ -384,14 +460,17 @@ rbtools/testing/api/__init__.py
384
460
  rbtools/testing/api/payloads.py
385
461
  rbtools/testing/api/transport.py
386
462
  rbtools/testing/scripts/editor.py
387
- rbtools/utils/COPYING.appdirs
388
- rbtools/utils/README.appdirs
463
+ rbtools/ui/__init__.py
464
+ rbtools/ui/console.py
465
+ rbtools/ui/theme.py
466
+ rbtools/ui/tests/__init__.py
467
+ rbtools/ui/tests/test_console.py
389
468
  rbtools/utils/__init__.py
390
469
  rbtools/utils/aliases.py
391
- rbtools/utils/appdirs.py
392
470
  rbtools/utils/browser.py
393
471
  rbtools/utils/checks.py
394
472
  rbtools/utils/commands.py
473
+ rbtools/utils/commit_messages.py
395
474
  rbtools/utils/console.py
396
475
  rbtools/utils/diffs.py
397
476
  rbtools/utils/encoding.py
@@ -410,6 +489,7 @@ rbtools/utils/tests/__init__.py
410
489
  rbtools/utils/tests/test_aliases.py
411
490
  rbtools/utils/tests/test_buffered_iterator.py
412
491
  rbtools/utils/tests/test_checks.py
492
+ rbtools/utils/tests/test_commit_messages.py
413
493
  rbtools/utils/tests/test_console.py
414
494
  rbtools/utils/tests/test_encoding.py
415
495
  rbtools/utils/tests/test_filesystem.py
@@ -1,11 +1,11 @@
1
+ appdirs~=1.4.4
1
2
  certifi>=2023.5.7
2
- colorama
3
3
  housekeeping~=1.1
4
4
  packaging>=21.3
5
5
  puremagic
6
6
  pydiffx~=1.1.0
7
- texttable
7
+ rich~=15.0
8
+ typelets~=1.1.0
8
9
  typing_extensions>=4.3.0
9
- tqdm
10
10
  importlib-metadata>=5.0
11
11
  importlib-resources>=5.9
@@ -30,15 +30,25 @@ set DEPS_DIR=%BUILD_BASE%\deps
30
30
  ::-------------------------------------------------------------------------
31
31
  :: Dependencies
32
32
  ::-------------------------------------------------------------------------
33
- set PYTHON_VERSION=3.10.11
33
+ set PYTHON_VERSION=3.13.15
34
34
 
35
35
  set PYTHON_URL_BASE=https://www.python.org/ftp/python
36
36
 
37
37
  set PYTHON_X64_FILENAME=python-%PYTHON_VERSION%-amd64.exe
38
38
  set PYTHON_X64_URL=%PYTHON_URL_BASE%/%PYTHON_VERSION%/%PYTHON_X64_FILENAME%
39
- set PYTHON_X64_MD5=a55e9c1e6421c84a4bd8b4be41492f51
39
+ set PYTHON_X64_SHA256=edec09c4853aeae9ac36efb8c9f95b6b8e2fee65eee56d9767a8b7c69c574403
40
40
  set PYTHON_X64_DEP=%DEPS_DIR%\python-%PYTHON_VERSION%-x64
41
41
 
42
+ set NUGET_VERSION=6.9.1
43
+ set NUGET_URL=https://dist.nuget.org/win-x86-commandline/v%NUGET_VERSION%/nuget.exe
44
+ set NUGET_SHA256=82bb13e2365e1e5ee7d0975618dcf90b279427de8a7ecb338b9b78bfc457d51b
45
+ set NUGET_DIR=%DEPS_DIR%\nuget-%NUGET_VERSION%
46
+ set NUGET_EXE=%NUGET_DIR%\nuget.exe
47
+
48
+ set TRUSTED_SIGNING_CLIENT_VERSION=1.0.60
49
+ set TRUSTED_SIGNING_CLIENT_DIR=%DEPS_DIR%\Microsoft.Trusted.Signing.Client.%TRUSTED_SIGNING_CLIENT_VERSION%
50
+ set AZURE_SIGN_DLIB_PATH=%TRUSTED_SIGNING_CLIENT_DIR%\bin\x64\Azure.CodeSigning.Dlib.dll
51
+
42
52
 
43
53
  ::-------------------------------------------------------------------------
44
54
  :: Binaries
@@ -49,12 +59,6 @@ set BUNDLED_PYTHON_X64=%BUNDLED_PYTHON_X64_DIR%\python.exe
49
59
  call :SetMSBuildPath || goto :Abort
50
60
 
51
61
 
52
- ::-------------------------------------------------------------------------
53
- :: Signing certificate
54
- ::-------------------------------------------------------------------------
55
- set CERT_THUMBPRINT_SHA1=88b278d63d192543884faa8cd97cc77ef74ef897
56
-
57
-
58
62
  ::-------------------------------------------------------------------------
59
63
  :: Begin the installation process
60
64
  ::-------------------------------------------------------------------------
@@ -63,9 +67,12 @@ if not exist "%BUILD_STAGE%" mkdir "%BUILD_STAGE%"
63
67
 
64
68
  call :InstallPython ^
65
69
  x64 %PYTHON_X64_DEP% %PYTHON_X64_FILENAME% ^
66
- %PYTHON_X64_URL% %PYTHON_X64_MD5% ^
70
+ %PYTHON_X64_URL% %PYTHON_X64_SHA256% ^
67
71
  || goto :Abort
68
72
 
73
+ call :InstallNuGet || goto :Abort
74
+ call :InstallTrustedSigningClient || goto :Abort
75
+ call :GenerateSigningMetadata || goto :Abort
69
76
  call :CreateBuildDirectory || goto :Abort
70
77
  call :InstallPackages || goto :Abort
71
78
  call :InstallRBTools || goto :Abort
@@ -80,14 +87,14 @@ exit /B 0
80
87
  ::-------------------------------------------------------------------------
81
88
  :: Installs Python
82
89
  ::-------------------------------------------------------------------------
83
- :InstallPython arch dep_path python_filename url md5
90
+ :InstallPython arch dep_path python_filename url sha256
84
91
  setlocal
85
92
 
86
93
  set _arch=%~1
87
94
  set _dep_path=%~2
88
95
  set _python_filename=%~3
89
96
  set _url=%~4
90
- set _md5=%~5
97
+ set _sha256=%~5
91
98
 
92
99
  echo.
93
100
  echo == Installing Python [%_arch%] ==
@@ -99,7 +106,7 @@ if not exist "%_dep_path%" (
99
106
  if not exist "%_PYTHON_INSTALLER%" (
100
107
  echo Preparing to download Python v%PYTHON_VERSION% [%_arch%]...
101
108
 
102
- call :DownloadAndVerify %_url% "%_PYTHON_INSTALLER%" %_md5%
109
+ call :DownloadAndVerify %_url% "%_PYTHON_INSTALLER%" SHA256 %_sha256%
103
110
  if %errorlevel% neq 0 exit /b 1
104
111
 
105
112
  echo Downloaded to %_PYTHON_INSTALLER%
@@ -130,6 +137,158 @@ if not exist "%_dep_path%" (
130
137
  exit /B 0
131
138
 
132
139
 
140
+ ::-------------------------------------------------------------------------
141
+ :: Download nuget.exe.
142
+ ::
143
+ :: This is needed for part of the Azure Artifact Signing setup.
144
+ ::-------------------------------------------------------------------------
145
+ :InstallNuGet
146
+ setlocal
147
+
148
+ echo.
149
+ echo == Installing NuGet [%NUGET_VERSION%] ==
150
+
151
+ if not exist "%NUGET_DIR%" mkdir "%NUGET_DIR%"
152
+
153
+ call :DownloadAndVerify %NUGET_URL% "%NUGET_EXE%" SHA256 %NUGET_SHA256%
154
+
155
+ if ERRORLEVEL 1 (
156
+ call :DeleteIfExists "%NUGET_EXE%"
157
+ exit /B 1
158
+ )
159
+
160
+ exit /B 0
161
+
162
+
163
+ ::-------------------------------------------------------------------------
164
+ :: Install the Azure Trusted Signing client.
165
+ ::
166
+ :: This installs to the dependency tree so signtool.exe can find it.
167
+ ::-------------------------------------------------------------------------
168
+ :InstallTrustedSigningClient
169
+ setlocal
170
+
171
+ echo.
172
+ echo == Installing Microsoft.Trusted.Signing.Client [%TRUSTED_SIGNING_CLIENT_VERSION%] ==
173
+
174
+ if not exist "%TRUSTED_SIGNING_CLIENT_DIR%" (
175
+ "%NUGET_EXE%" install Microsoft.Trusted.Signing.Client ^
176
+ -Version %TRUSTED_SIGNING_CLIENT_VERSION% ^
177
+ -OutputDirectory "%DEPS_DIR%" ^
178
+ -NonInteractive
179
+ if %errorlevel% neq 0 exit /B 1
180
+ )
181
+
182
+ if not exist "%AZURE_SIGN_DLIB_PATH%" (
183
+ echo Could not find the Azure Trusted Signing dlib at:
184
+ echo %AZURE_SIGN_DLIB_PATH%
185
+ exit /B 1
186
+ )
187
+
188
+ exit /B 0
189
+
190
+
191
+ ::-------------------------------------------------------------------------
192
+ :: Generate the Azure Trusted Signing metadata JSON file.
193
+ ::
194
+ :: This will populate the file from environment variables describing the
195
+ :: Artifact Signing account and certificate profile to use. The result will
196
+ :: be passed to signtool.exe in the build stage.
197
+ ::-------------------------------------------------------------------------
198
+ :GenerateSigningMetadata
199
+ setlocal
200
+
201
+ echo.
202
+ echo == Generating Azure Trusted Signing metadata ==
203
+
204
+ call :TrimTrailingSpaces "%AZURE_TRUSTED_SIGNING_ENDPOINT%" _endpoint
205
+ call :TrimTrailingSpaces "%AZURE_TRUSTED_SIGNING_ACCOUNT%" _account
206
+ call :TrimTrailingSpaces "%AZURE_TRUSTED_SIGNING_CERT_PROFILE%" _cert_profile
207
+
208
+ if "%_endpoint%" == "" (
209
+ echo AZURE_TRUSTED_SIGNING_ENDPOINT must be set.
210
+ exit /B 1
211
+ )
212
+
213
+ if "%_account%" == "" (
214
+ echo AZURE_TRUSTED_SIGNING_ACCOUNT must be set.
215
+ exit /B 1
216
+ )
217
+
218
+ if "%_cert_profile%" == "" (
219
+ echo AZURE_TRUSTED_SIGNING_CERT_PROFILE must be set.
220
+ exit /B 1
221
+ )
222
+
223
+ set _metadata_file=%DEPS_DIR%\trusted-signing-metadata.json
224
+
225
+ (
226
+ echo {
227
+ echo "Endpoint": "%_endpoint%",
228
+ echo "CodeSigningAccountName": "%_account%",
229
+ echo "CertificateProfileName": "%_cert_profile%"
230
+ echo }
231
+ ) > "%_metadata_file%"
232
+
233
+ endlocal & set AZURE_SIGN_METADATA_FILE=%_metadata_file%
234
+ exit /B 0
235
+
236
+
237
+ ::-------------------------------------------------------------------------
238
+ :: Get a token for communicating with Azure.
239
+ ::
240
+ :: This assumes the build process is running within an EC2 instance. It
241
+ :: will exchange the instance's identity for an Azure AD federated token,
242
+ :: which lets signtool.exe talk to Azure.
243
+ ::
244
+ :: The resulting token is good for a period of time, and is considered
245
+ :: sensitive data. It's stored under a non-guessable name in the temp
246
+ :: directory, and should be deleted once done.
247
+ ::-------------------------------------------------------------------------
248
+ :GetFederatedToken
249
+ setlocal
250
+
251
+ echo.
252
+ echo == Requesting an Azure federated token via AWS ==
253
+
254
+ call :TrimTrailingSpaces "%AZURE_TENANT_ID%" _tenant_id
255
+ call :TrimTrailingSpaces "%AZURE_CLIENT_ID%" _client_id
256
+
257
+ if "%_tenant_id%" == "" (
258
+ echo AZURE_TENANT_ID must be set.
259
+ exit /B 1
260
+ )
261
+
262
+ if "%_client_id%" == "" (
263
+ echo AZURE_CLIENT_ID must be set.
264
+ exit /B 1
265
+ )
266
+
267
+ where aws >NUL 2>&1
268
+ if %errorlevel% neq 0 (
269
+ echo The AWS CLI ^(aws.exe^) must be installed and on PATH.
270
+ exit /B 1
271
+ )
272
+
273
+ set _token_file=%TEMP%\rbtools-azure-token-%RANDOM%%RANDOM%.jwt
274
+
275
+ aws sts get-web-identity-token ^
276
+ --audience "api://AzureADTokenExchange" ^
277
+ --signing-algorithm RS256 ^
278
+ --duration-seconds 3600 ^
279
+ --query WebIdentityToken ^
280
+ --output text > "%_token_file%"
281
+
282
+ if %errorlevel% neq 0 (
283
+ echo Failed to obtain an AWS web identity token.
284
+ call :DeleteIfExists "%_token_file%"
285
+ exit /B 1
286
+ )
287
+
288
+ endlocal & set "AZURE_FEDERATED_TOKEN_FILE=%_token_file%" & set "AZURE_TENANT_ID=%_tenant_id%" & set "AZURE_CLIENT_ID=%_client_id%"
289
+ exit /B 0
290
+
291
+
133
292
  ::-------------------------------------------------------------------------
134
293
  :: Populates the build directory from dependencies
135
294
  ::-------------------------------------------------------------------------
@@ -247,9 +406,14 @@ if ERRORLEVEL 1 exit /B 1
247
406
 
248
407
  set _rbtools_version=%_return1%
249
408
 
409
+ :: Fetch the token as late as possible, so nothing can fail and accidentally
410
+ :: leave it sitting around before we get a chance to clean it up.
411
+ call :GetFederatedToken
412
+ if ERRORLEVEL 1 exit /B 1
413
+
250
414
  set _wix_path=%CD%\wix
251
415
  set _sln_file=%_wix_path%\rbtools.sln
252
- set _timestamp_url=http://timestamp.comodoca.com/authenticode
416
+ set _timestamp_url=http://timestamp.acs.microsoft.com
253
417
 
254
418
  echo.
255
419
  echo == Building the RBTools installer [x64] ==
@@ -261,11 +425,16 @@ echo == Building the RBTools installer [x64] ==
261
425
  /p:Root="%BUILD_ROOT_X64%" ^
262
426
  /p:OutputPath="%BUILD_STAGE%\\" ^
263
427
  /p:SourcePath="%_wix_path%" ^
264
- /p:CertificateThumbprint=%CERT_THUMBPRINT_SHA1% ^
428
+ /p:AzureSignDlibPath="%AZURE_SIGN_DLIB_PATH%" ^
429
+ /p:AzureSignMetadataFile="%AZURE_SIGN_METADATA_FILE%" ^
265
430
  /p:TimestampUrl=%_timestamp_url% ^
266
431
  "%_sln_file%"
267
432
 
268
- if ERRORLEVEL 1 exit /B 1
433
+ set _msbuild_result=%ERRORLEVEL%
434
+
435
+ call :DeleteIfExists "%AZURE_FEDERATED_TOKEN_FILE%"
436
+
437
+ if %_msbuild_result% neq 0 exit /B 1
269
438
 
270
439
  mkdir "%BUILD_DEST%" 2>&1
271
440
  dir "%BUILD_STAGE%" /S
@@ -345,18 +514,19 @@ exit /B 0
345
514
  ::-------------------------------------------------------------------------
346
515
  :: Downloads and verifies a file from a URL.
347
516
  ::-------------------------------------------------------------------------
348
- :DownloadAndVerify url dest expected_hash
517
+ :DownloadAndVerify url dest algorithm expected_hash
349
518
  setlocal
350
519
 
351
520
  set _url=%~1
352
521
  set _dest=%~2
353
- set _expected_hash=%~3
522
+ set _algorithm=%~3
523
+ set _expected_hash=%~4
354
524
 
355
525
  if not exist "%_dest%" (
356
526
  call :DownloadFile %_url% "%_dest%" || exit /B 1
357
527
  )
358
528
 
359
- call :VerifyMD5 "%_dest%" %_expected_hash% || exit /B 1
529
+ call :VerifyHash "%_dest%" %_algorithm% %_expected_hash% || exit /B 1
360
530
 
361
531
  exit /B 0
362
532
 
@@ -380,21 +550,20 @@ exit /B 0
380
550
 
381
551
 
382
552
  ::-------------------------------------------------------------------------
383
- :: Verifies the MD5 checksum of a file.
553
+ :: Verifies the checksum of a file against a given hash algorithm.
384
554
  ::-------------------------------------------------------------------------
385
- :VerifyMD5 filename expected_hash
555
+ :VerifyHash filename algorithm expected_hash
386
556
  setlocal
387
557
 
388
558
  set _filename=%~1
389
- set _expected_hash=%~2
559
+ set _algorithm=%~2
560
+ set _expected_hash=%~3
390
561
 
391
- echo Verifying that %_filename% has MD5 hash %_expected_hash%...
562
+ echo Verifying that %_filename% has %_algorithm% hash %_expected_hash%...
392
563
 
393
564
  PowerShell -NoProfile -Command ^
394
- "$md5 = New-Object Security.Cryptography.MD5CryptoServiceProvider;"^
395
- "$file = [System.IO.File]::ReadAllBytes('%_filename%');"^
396
- "$hash = [System.BitConverter]::ToString($md5.ComputeHash($file));"^
397
- "$hash = $hash.toLower().Replace('-', '');"^
565
+ "$hash = (Get-FileHash -Path '%_filename%' -Algorithm %_algorithm%).Hash;"^
566
+ "$hash = $hash.ToLower();"^
398
567
  "if ($hash -eq '%_expected_hash%') {"^
399
568
  " Write-Host '%_filename% has a valid hash.';"^
400
569
  " exit 0;"^
@@ -408,6 +577,29 @@ echo Hash verified.
408
577
  exit /B 0
409
578
 
410
579
 
580
+ ::-------------------------------------------------------------------------
581
+ :: Trims trailing spaces from a value.
582
+ ::
583
+ :: This is used with environment variables to strip any trailing spaces.
584
+ :: This can happen pretty easily, since `set A=B && set C=D` will set
585
+ :: `A="B "`, and Azure can't handle this.
586
+ ::-------------------------------------------------------------------------
587
+ :TrimTrailingSpaces value varname
588
+ setlocal EnableDelayedExpansion
589
+
590
+ set "_str=%~1"
591
+
592
+ :TrimTrailingSpacesLoop
593
+
594
+ if defined _str if "!_str:~-1!" == " " (
595
+ set "_str=!_str:~0,-1!"
596
+ goto :TrimTrailingSpacesLoop
597
+ )
598
+
599
+ endlocal & set "%~2=%_str%"
600
+ exit /B 0
601
+
602
+
411
603
  ::-------------------------------------------------------------------------
412
604
  :: Deletes a file or directory if it exists.
413
605
  ::-------------------------------------------------------------------------