taskflow 5.9.1__tar.gz → 5.11.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 (356) hide show
  1. {taskflow-5.9.1 → taskflow-5.11.0}/.pre-commit-config.yaml +5 -18
  2. {taskflow-5.9.1 → taskflow-5.11.0}/.zuul.yaml +6 -0
  3. {taskflow-5.9.1 → taskflow-5.11.0}/ChangeLog +28 -0
  4. taskflow-5.11.0/PKG-INFO +147 -0
  5. taskflow-5.11.0/releasenotes/notes/remove-py38-15af791146f479e1.yaml +5 -0
  6. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/2023.1.rst +1 -1
  7. taskflow-5.11.0/releasenotes/source/2024.2.rst +6 -0
  8. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/index.rst +1 -0
  9. {taskflow-5.9.1 → taskflow-5.11.0}/requirements.txt +4 -0
  10. {taskflow-5.9.1 → taskflow-5.11.0}/setup-etcd-env.sh +1 -1
  11. {taskflow-5.9.1 → taskflow-5.11.0}/setup.cfg +2 -11
  12. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/jobs/test_etcd_job.py +2 -0
  13. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/jobs/test_redis_job.py +2 -1
  14. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_failure.py +2 -5
  15. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/utils.py +7 -6
  16. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/failure.py +2 -6
  17. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/eventlet_utils.py +1 -1
  18. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/version.py +3 -8
  19. taskflow-5.11.0/taskflow.egg-info/PKG-INFO +147 -0
  20. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow.egg-info/SOURCES.txt +3 -1
  21. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow.egg-info/entry_points.txt +0 -1
  22. taskflow-5.11.0/taskflow.egg-info/pbr.json +1 -0
  23. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow.egg-info/requires.txt +25 -16
  24. {taskflow-5.9.1 → taskflow-5.11.0}/test-requirements.txt +1 -4
  25. {taskflow-5.9.1 → taskflow-5.11.0}/tox.ini +7 -7
  26. taskflow-5.9.1/PKG-INFO +0 -109
  27. taskflow-5.9.1/taskflow.egg-info/PKG-INFO +0 -109
  28. taskflow-5.9.1/taskflow.egg-info/pbr.json +0 -1
  29. {taskflow-5.9.1 → taskflow-5.11.0}/.coveragerc +0 -0
  30. {taskflow-5.9.1 → taskflow-5.11.0}/.mailmap +0 -0
  31. /taskflow-5.9.1/pylintrc → /taskflow-5.11.0/.pylintrc +0 -0
  32. {taskflow-5.9.1 → taskflow-5.11.0}/.stestr.conf +0 -0
  33. {taskflow-5.9.1 → taskflow-5.11.0}/AUTHORS +0 -0
  34. {taskflow-5.9.1 → taskflow-5.11.0}/CONTRIBUTING.rst +0 -0
  35. {taskflow-5.9.1 → taskflow-5.11.0}/LICENSE +0 -0
  36. {taskflow-5.9.1 → taskflow-5.11.0}/README.rst +0 -0
  37. {taskflow-5.9.1 → taskflow-5.11.0}/bindep.txt +0 -0
  38. {taskflow-5.9.1 → taskflow-5.11.0}/doc/diagrams/area_of_influence.graffle.tgz +0 -0
  39. {taskflow-5.9.1 → taskflow-5.11.0}/doc/diagrams/core.graffle.tgz +0 -0
  40. {taskflow-5.9.1 → taskflow-5.11.0}/doc/diagrams/jobboard.graffle.tgz +0 -0
  41. {taskflow-5.9.1 → taskflow-5.11.0}/doc/diagrams/tasks.graffle.tgz +0 -0
  42. {taskflow-5.9.1 → taskflow-5.11.0}/doc/diagrams/worker-engine.graffle.tgz +0 -0
  43. {taskflow-5.9.1 → taskflow-5.11.0}/doc/requirements.txt +0 -0
  44. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/conf.py +0 -0
  45. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/index.rst +0 -0
  46. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/templates/layout.html +0 -0
  47. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/arguments_and_results.rst +0 -0
  48. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/atoms.rst +0 -0
  49. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/conductors.rst +0 -0
  50. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/engines.rst +0 -0
  51. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/examples.rst +0 -0
  52. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/exceptions.rst +0 -0
  53. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/history.rst +0 -0
  54. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/area_of_influence.svg +0 -0
  55. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/conductor.png +0 -0
  56. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/conductor_cycle.png +0 -0
  57. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/distributed_flow_rpc.png +0 -0
  58. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/engine_states.svg +0 -0
  59. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/flow_states.svg +0 -0
  60. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/job_states.svg +0 -0
  61. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/jobboard.png +0 -0
  62. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/mandelbrot.png +0 -0
  63. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/retry_states.svg +0 -0
  64. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/task_states.svg +0 -0
  65. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/tasks.png +0 -0
  66. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/wbe_request_states.svg +0 -0
  67. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/img/worker-engine.svg +0 -0
  68. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/index.rst +0 -0
  69. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/inputs_and_outputs.rst +0 -0
  70. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/jobs.rst +0 -0
  71. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/notifications.rst +0 -0
  72. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/patterns.rst +0 -0
  73. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/persistence.rst +0 -0
  74. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/resumption.rst +0 -0
  75. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/shelf.rst +0 -0
  76. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/states.rst +0 -0
  77. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/types.rst +0 -0
  78. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/utils.rst +0 -0
  79. {taskflow-5.9.1 → taskflow-5.11.0}/doc/source/user/workers.rst +0 -0
  80. {taskflow-5.9.1 → taskflow-5.11.0}/playbooks/tests/functional/Debian.yaml +0 -0
  81. {taskflow-5.9.1 → taskflow-5.11.0}/playbooks/tests/functional/RedHat.yaml +0 -0
  82. {taskflow-5.9.1 → taskflow-5.11.0}/playbooks/tests/functional/pre.yml +0 -0
  83. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/.placeholder +0 -0
  84. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/add-sentinel-redis-support-9fd16e2a5dd5c0c9.yaml +0 -0
  85. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/bug-2056656-871b67ddbc8cfc92.yaml +0 -0
  86. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/disable-process_executor-python-312-d1074c816bc8303e.yaml +0 -0
  87. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml +0 -0
  88. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/etcd-jobboard-backend-8a9fea2238fb0f12.yaml +0 -0
  89. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/fix-endless-loop-on-storage-error-dd4467f0bbc66abf.yaml +0 -0
  90. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/fix-endless-loop-on-storage-failures-b98b30f0c34d25e1.yaml +0 -0
  91. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/fix-revert-all-revert-a0310cd7beaa7409.yaml +0 -0
  92. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/fix-storage-failure-handling-5c115d92daa0eb82.yaml +0 -0
  93. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/fix-zookeeper-option-parsing-f9d37fbc39af47f4.yaml +0 -0
  94. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/redis-username-df0eb33869db09a2.yaml +0 -0
  95. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/remove-strict-redis-f2a5a924b314de41.yaml +0 -0
  96. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/sentinel-fallbacks-6fe2ab0d68959cdf.yaml +0 -0
  97. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/sentinel-ssl-399c56ed7067d282.yaml +0 -0
  98. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/sentinel-use-redis-creds-63f58b12ad46a2b5.yaml +0 -0
  99. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/notes/zookeeper-ssl-support-b9abf24a39096b62.yaml +0 -0
  100. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/2023.2.rst +0 -0
  101. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/2024.1.rst +0 -0
  102. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/_static/.placeholder +0 -0
  103. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/_templates/.placeholder +0 -0
  104. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/conf.py +0 -0
  105. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/ocata.rst +0 -0
  106. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/pike.rst +0 -0
  107. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/queens.rst +0 -0
  108. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/rocky.rst +0 -0
  109. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/stein.rst +0 -0
  110. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/train.rst +0 -0
  111. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/unreleased.rst +0 -0
  112. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/ussuri.rst +0 -0
  113. {taskflow-5.9.1 → taskflow-5.11.0}/releasenotes/source/victoria.rst +0 -0
  114. {taskflow-5.9.1 → taskflow-5.11.0}/run_tests.sh +0 -0
  115. {taskflow-5.9.1 → taskflow-5.11.0}/setup.py +0 -0
  116. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/__init__.py +0 -0
  117. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/atom.py +0 -0
  118. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/conductors/__init__.py +0 -0
  119. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/conductors/backends/__init__.py +0 -0
  120. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/conductors/backends/impl_blocking.py +0 -0
  121. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/conductors/backends/impl_executor.py +0 -0
  122. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/conductors/backends/impl_nonblocking.py +0 -0
  123. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/conductors/base.py +0 -0
  124. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/contrib/__init__.py +0 -0
  125. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/deciders.py +0 -0
  126. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/__init__.py +0 -0
  127. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/__init__.py +0 -0
  128. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/actions/__init__.py +0 -0
  129. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/actions/base.py +0 -0
  130. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/actions/retry.py +0 -0
  131. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/actions/task.py +0 -0
  132. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/builder.py +0 -0
  133. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/compiler.py +0 -0
  134. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/completer.py +0 -0
  135. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/deciders.py +0 -0
  136. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/engine.py +0 -0
  137. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/executor.py +0 -0
  138. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/process_executor.py +0 -0
  139. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/runtime.py +0 -0
  140. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/scheduler.py +0 -0
  141. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/scopes.py +0 -0
  142. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/selector.py +0 -0
  143. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/action_engine/traversal.py +0 -0
  144. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/base.py +0 -0
  145. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/helpers.py +0 -0
  146. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/__init__.py +0 -0
  147. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/dispatcher.py +0 -0
  148. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/endpoint.py +0 -0
  149. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/engine.py +0 -0
  150. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/executor.py +0 -0
  151. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/protocol.py +0 -0
  152. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/proxy.py +0 -0
  153. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/server.py +0 -0
  154. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/types.py +0 -0
  155. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/engines/worker_based/worker.py +0 -0
  156. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/99_bottles.py +0 -0
  157. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/alphabet_soup.py +0 -0
  158. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/build_a_car.py +0 -0
  159. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/buildsystem.py +0 -0
  160. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/calculate_in_parallel.py +0 -0
  161. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/calculate_linear.py +0 -0
  162. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/create_parallel_volume.py +0 -0
  163. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/delayed_return.py +0 -0
  164. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/distance_calculator.py +0 -0
  165. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/dump_memory_backend.py +0 -0
  166. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/echo_listener.py +0 -0
  167. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/example_utils.py +0 -0
  168. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/fake_billing.py +0 -0
  169. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/graph_flow.py +0 -0
  170. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/hello_world.py +0 -0
  171. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/jobboard_produce_consume_colors.py +0 -0
  172. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/parallel_table_multiply.py +0 -0
  173. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/persistence_example.py +0 -0
  174. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/pseudo_scoping.out.txt +0 -0
  175. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/pseudo_scoping.py +0 -0
  176. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_from_backend.out.txt +0 -0
  177. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_from_backend.py +0 -0
  178. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_many_flows/my_flows.py +0 -0
  179. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_many_flows/resume_all.py +0 -0
  180. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_many_flows/run_flow.py +0 -0
  181. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_many_flows.out.txt +0 -0
  182. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_many_flows.py +0 -0
  183. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_vm_boot.py +0 -0
  184. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/resume_volume_create.py +0 -0
  185. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/retry_flow.out.txt +0 -0
  186. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/retry_flow.py +0 -0
  187. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/reverting_linear.out.txt +0 -0
  188. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/reverting_linear.py +0 -0
  189. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/run_by_iter.out.txt +0 -0
  190. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/run_by_iter.py +0 -0
  191. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/run_by_iter_enumerate.out.txt +0 -0
  192. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/run_by_iter_enumerate.py +0 -0
  193. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/share_engine_thread.py +0 -0
  194. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/simple_linear.out.txt +0 -0
  195. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/simple_linear.py +0 -0
  196. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/simple_linear_listening.out.txt +0 -0
  197. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/simple_linear_listening.py +0 -0
  198. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/simple_linear_pass.out.txt +0 -0
  199. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/simple_linear_pass.py +0 -0
  200. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/simple_map_reduce.py +0 -0
  201. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/switch_graph_flow.py +0 -0
  202. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/timing_listener.py +0 -0
  203. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/tox_conductor.py +0 -0
  204. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/wbe_event_sender.py +0 -0
  205. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/wbe_mandelbrot.out.txt +0 -0
  206. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/wbe_mandelbrot.py +0 -0
  207. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/wbe_simple_linear.out.txt +0 -0
  208. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/wbe_simple_linear.py +0 -0
  209. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/examples/wrapped_exception.py +0 -0
  210. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/exceptions.py +0 -0
  211. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/flow.py +0 -0
  212. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/formatters.py +0 -0
  213. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/jobs/__init__.py +0 -0
  214. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/jobs/backends/__init__.py +0 -0
  215. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/jobs/backends/impl_etcd.py +0 -0
  216. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/jobs/backends/impl_redis.py +0 -0
  217. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/jobs/backends/impl_zookeeper.py +0 -0
  218. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/jobs/base.py +0 -0
  219. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/listeners/__init__.py +0 -0
  220. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/listeners/base.py +0 -0
  221. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/listeners/capturing.py +0 -0
  222. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/listeners/claims.py +0 -0
  223. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/listeners/logging.py +0 -0
  224. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/listeners/printing.py +0 -0
  225. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/listeners/timing.py +0 -0
  226. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/logging.py +0 -0
  227. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/patterns/__init__.py +0 -0
  228. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/patterns/graph_flow.py +0 -0
  229. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/patterns/linear_flow.py +0 -0
  230. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/patterns/unordered_flow.py +0 -0
  231. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/__init__.py +0 -0
  232. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/__init__.py +0 -0
  233. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/impl_dir.py +0 -0
  234. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/impl_memory.py +0 -0
  235. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/impl_sqlalchemy.py +0 -0
  236. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/impl_zookeeper.py +0 -0
  237. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/__init__.py +0 -0
  238. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/README +0 -0
  239. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/alembic.ini +0 -0
  240. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/env.py +0 -0
  241. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/script.py.mako +0 -0
  242. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/0bc3e1a3c135_set_result_meduimtext_type.py +0 -0
  243. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/14b227d79a87_add_intention_column.py +0 -0
  244. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/1c783c0c2875_replace_exception_an.py +0 -0
  245. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/1cea328f0f65_initial_logbook_deta.py +0 -0
  246. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/2ad4984f2864_switch_postgres_to_json_native.py +0 -0
  247. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/3162c0f3f8e4_add_revert_results_and_revert_failure_.py +0 -0
  248. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/40fc8c914bd2_fix_atomdetails_failure_size.py +0 -0
  249. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/589dccdf2b6e_rename_taskdetails_to_atomdetails.py +0 -0
  250. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/6df9422fcb43_fix_flowdetails_meta_size.py +0 -0
  251. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/84d6e888850_add_task_detail_type.py +0 -0
  252. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/alembic/versions/README +0 -0
  253. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/migration.py +0 -0
  254. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/backends/sqlalchemy/tables.py +0 -0
  255. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/base.py +0 -0
  256. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/models.py +0 -0
  257. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/persistence/path_based.py +0 -0
  258. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/retry.py +0 -0
  259. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/states.py +0 -0
  260. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/storage.py +0 -0
  261. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/task.py +0 -0
  262. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/test.py +0 -0
  263. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/__init__.py +0 -0
  264. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/fixtures.py +0 -0
  265. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/test_examples.py +0 -0
  266. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/__init__.py +0 -0
  267. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/__init__.py +0 -0
  268. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_builder.py +0 -0
  269. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_compile.py +0 -0
  270. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_creation.py +0 -0
  271. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_process_executor.py +0 -0
  272. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/action_engine/test_scoping.py +0 -0
  273. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/jobs/__init__.py +0 -0
  274. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/jobs/base.py +0 -0
  275. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/jobs/test_entrypoint.py +0 -0
  276. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/jobs/test_zk_job.py +0 -0
  277. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/patterns/__init__.py +0 -0
  278. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/patterns/test_graph_flow.py +0 -0
  279. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/patterns/test_linear_flow.py +0 -0
  280. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/patterns/test_unordered_flow.py +0 -0
  281. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/persistence/__init__.py +0 -0
  282. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/persistence/base.py +0 -0
  283. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/persistence/test_dir_persistence.py +0 -0
  284. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/persistence/test_memory_persistence.py +0 -0
  285. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/persistence/test_sql_persistence.py +0 -0
  286. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/persistence/test_zk_persistence.py +0 -0
  287. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_arguments_passing.py +0 -0
  288. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_check_transition.py +0 -0
  289. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_conductors.py +0 -0
  290. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_deciders.py +0 -0
  291. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_engine_helpers.py +0 -0
  292. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_engines.py +0 -0
  293. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_exceptions.py +0 -0
  294. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_flow_dependencies.py +0 -0
  295. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_formatters.py +0 -0
  296. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_functor_task.py +0 -0
  297. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_listeners.py +0 -0
  298. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_mapfunctor_task.py +0 -0
  299. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_notifier.py +0 -0
  300. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_progress.py +0 -0
  301. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_reducefunctor_task.py +0 -0
  302. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_retries.py +0 -0
  303. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_states.py +0 -0
  304. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_storage.py +0 -0
  305. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_suspend.py +0 -0
  306. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_task.py +0 -0
  307. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_types.py +0 -0
  308. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_utils.py +0 -0
  309. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_async_utils.py +0 -0
  310. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_binary.py +0 -0
  311. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_iter_utils.py +0 -0
  312. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_kazoo_utils.py +0 -0
  313. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/test_utils_threading_utils.py +0 -0
  314. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/__init__.py +0 -0
  315. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_creation.py +0 -0
  316. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_dispatcher.py +0 -0
  317. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_endpoint.py +0 -0
  318. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_executor.py +0 -0
  319. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_message_pump.py +0 -0
  320. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_pipeline.py +0 -0
  321. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_protocol.py +0 -0
  322. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_proxy.py +0 -0
  323. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_server.py +0 -0
  324. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_types.py +0 -0
  325. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/tests/unit/worker_based/test_worker.py +0 -0
  326. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/__init__.py +0 -0
  327. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/entity.py +0 -0
  328. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/graph.py +0 -0
  329. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/latch.py +0 -0
  330. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/notifier.py +0 -0
  331. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/sets.py +0 -0
  332. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/timing.py +0 -0
  333. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/types/tree.py +0 -0
  334. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/__init__.py +0 -0
  335. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/async_utils.py +0 -0
  336. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/banner.py +0 -0
  337. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/iter_utils.py +0 -0
  338. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/kazoo_utils.py +0 -0
  339. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/kombu_utils.py +0 -0
  340. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/misc.py +0 -0
  341. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/persistence_utils.py +0 -0
  342. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/redis_utils.py +0 -0
  343. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/schema_utils.py +0 -0
  344. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow/utils/threading_utils.py +0 -0
  345. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow.egg-info/dependency_links.txt +0 -0
  346. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow.egg-info/not-zip-safe +0 -0
  347. {taskflow-5.9.1 → taskflow-5.11.0}/taskflow.egg-info/top_level.txt +0 -0
  348. {taskflow-5.9.1 → taskflow-5.11.0}/tools/clear_zk.sh +0 -0
  349. {taskflow-5.9.1 → taskflow-5.11.0}/tools/env_builder.sh +0 -0
  350. {taskflow-5.9.1 → taskflow-5.11.0}/tools/pretty_tox.sh +0 -0
  351. {taskflow-5.9.1 → taskflow-5.11.0}/tools/schema_generator.py +0 -0
  352. {taskflow-5.9.1 → taskflow-5.11.0}/tools/speed_test.py +0 -0
  353. {taskflow-5.9.1 → taskflow-5.11.0}/tools/state_graph.py +0 -0
  354. {taskflow-5.9.1 → taskflow-5.11.0}/tools/subunit_trace.py +0 -0
  355. {taskflow-5.9.1 → taskflow-5.11.0}/tools/test-setup.sh +0 -0
  356. {taskflow-5.9.1 → taskflow-5.11.0}/tools/update_states.sh +0 -0
@@ -1,15 +1,6 @@
1
- # We from the Oslo project decided to pin repos based on the
2
- # commit hash instead of the version tag to prevend arbitrary
3
- # code from running in developer's machines. To update to a
4
- # newer version, run `pre-commit autoupdate` and then replace
5
- # the newer versions with their commit hash.
6
-
7
- default_language_version:
8
- python: python3
9
-
10
1
  repos:
11
2
  - repo: https://github.com/pre-commit/pre-commit-hooks
12
- rev: 9136088a246768144165fcc3ecc3d31bb686920a # v3.3.0
3
+ rev: v5.0.0
13
4
  hooks:
14
5
  - id: trailing-whitespace
15
6
  # Replaces or checks mixed line ending
@@ -27,13 +18,9 @@ repos:
27
18
  - id: debug-statements
28
19
  - id: check-yaml
29
20
  files: .*\.(yaml|yml)$
30
- - repo: local
21
+ - repo: https://opendev.org/openstack/hacking
22
+ rev: 7.0.0
31
23
  hooks:
32
- - id: flake8
33
- name: flake8
34
- additional_dependencies:
35
- - hacking>=6.1.0,<6.2.0
36
- language: python
37
- entry: flake8
38
- files: '^.*\.py$'
24
+ - id: hacking
25
+ additional_dependencies: []
39
26
  exclude: '^(doc|releasenotes|tools)/.*$'
@@ -5,6 +5,12 @@
5
5
  pre-run: playbooks/tests/functional/pre.yml
6
6
  vars:
7
7
  tox_envlist: functional
8
+ irrelevant-files:
9
+ - ^.*\.rst$
10
+ - ^doc/.*$
11
+ - ^LICENSE$
12
+ - ^releasenotes/.*$
13
+ - ^\.pre-commit-config\.yaml$
8
14
 
9
15
  - job:
10
16
  name: taskflow-functional-redis
@@ -1,6 +1,34 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 5.11.0
5
+ ------
6
+
7
+ * Skip installation to speed up pep8
8
+ * fix typo
9
+ * Skip functional jobs for license file update
10
+ * pre-commit: Bump versions
11
+ * Remove "test" extra
12
+ * Sync test requirements
13
+ * Remove zake from runtime dependency
14
+ * Read pifpaf environments to detect service ports
15
+ * Drop unused constants
16
+ * Bump etcd in tests
17
+ * Replace oslo\_utils.encodeutils.exception\_to\_unicode
18
+ * Bump pylint
19
+ * Skip functional tests for doc update
20
+ * reno: Update master for unmaintained/2023.1
21
+
22
+ 5.10.0
23
+ ------
24
+
25
+ * Add note about requirements lower bounds
26
+ * Remove Python 3.8 support
27
+ * Declare Python 3.12 support
28
+ * Remove unused usage of pkg\_resources
29
+ * Drop SQLALCHEMY\_WARN\_20
30
+ * Update master for stable/2024.2
31
+
4
32
  5.9.1
5
33
  -----
6
34
 
@@ -0,0 +1,147 @@
1
+ Metadata-Version: 2.1
2
+ Name: taskflow
3
+ Version: 5.11.0
4
+ Summary: Taskflow structured state management library.
5
+ Home-page: https://docs.openstack.org/taskflow/latest/
6
+ Author: OpenStack
7
+ Author-email: openstack-discuss@lists.openstack.org
8
+ Keywords: reliable,tasks,execution,parallel,dataflow,workflows,distributed
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Environment :: OpenStack
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Operating System :: POSIX :: Linux
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3 :: Only
22
+ Classifier: Programming Language :: Python :: Implementation :: CPython
23
+ Classifier: Topic :: Software Development :: Libraries
24
+ Classifier: Topic :: System :: Distributed Computing
25
+ Requires-Python: >=3.9
26
+ License-File: LICENSE
27
+ Requires-Dist: pbr>=2.0.0
28
+ Requires-Dist: futurist>=1.2.0
29
+ Requires-Dist: fasteners>=0.17.3
30
+ Requires-Dist: networkx>=2.1.0
31
+ Requires-Dist: stevedore>=1.20.0
32
+ Requires-Dist: jsonschema>=3.2.0
33
+ Requires-Dist: automaton>=1.9.0
34
+ Requires-Dist: oslo.utils>=3.33.0
35
+ Requires-Dist: oslo.serialization>=2.18.0
36
+ Requires-Dist: tenacity>=6.0.0
37
+ Requires-Dist: cachetools>=2.0.0
38
+ Requires-Dist: pydot>=1.2.4
39
+ Provides-Extra: zookeeper
40
+ Requires-Dist: kazoo>=2.6.0; extra == "zookeeper"
41
+ Provides-Extra: redis
42
+ Requires-Dist: redis>=4.0.0; extra == "redis"
43
+ Provides-Extra: etcd
44
+ Requires-Dist: etcd3gw>=2.0.0; extra == "etcd"
45
+ Provides-Extra: workers
46
+ Requires-Dist: kombu>=4.3.0; extra == "workers"
47
+ Provides-Extra: eventlet
48
+ Requires-Dist: eventlet>=0.18.2; extra == "eventlet"
49
+ Provides-Extra: database
50
+ Requires-Dist: SQLAlchemy>=1.0.10; extra == "database"
51
+ Requires-Dist: alembic>=0.8.10; extra == "database"
52
+ Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "database"
53
+ Requires-Dist: PyMySQL>=0.7.6; extra == "database"
54
+ Requires-Dist: psycopg2>=2.8.0; extra == "database"
55
+ Provides-Extra: test
56
+ Requires-Dist: kazoo>=2.6.0; extra == "test"
57
+ Requires-Dist: redis>=4.0.0; extra == "test"
58
+ Requires-Dist: etcd3gw>=2.0.0; extra == "test"
59
+ Requires-Dist: kombu>=4.3.0; extra == "test"
60
+ Requires-Dist: eventlet>=0.18.2; extra == "test"
61
+ Requires-Dist: SQLAlchemy>=1.0.10; extra == "test"
62
+ Requires-Dist: alembic>=0.8.10; extra == "test"
63
+ Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "test"
64
+ Requires-Dist: PyMySQL>=0.7.6; extra == "test"
65
+ Requires-Dist: psycopg2>=2.8.0; extra == "test"
66
+ Requires-Dist: zake>=0.1.6; extra == "test"
67
+ Requires-Dist: pydotplus>=2.0.2; extra == "test"
68
+ Requires-Dist: oslotest>=3.2.0; extra == "test"
69
+ Requires-Dist: testtools>=2.2.0; extra == "test"
70
+ Requires-Dist: testscenarios>=0.4; extra == "test"
71
+ Requires-Dist: stestr>=2.0.0; extra == "test"
72
+ Requires-Dist: pifpaf>=0.10.0; extra == "test"
73
+
74
+ ========================
75
+ Team and repository tags
76
+ ========================
77
+
78
+ .. image:: https://governance.openstack.org/tc/badges/taskflow.svg
79
+ :target: https://governance.openstack.org/tc/reference/tags/index.html
80
+
81
+ .. Change things from this point on
82
+
83
+ TaskFlow
84
+ ========
85
+
86
+ .. image:: https://img.shields.io/pypi/v/taskflow.svg
87
+ :target: https://pypi.org/project/taskflow/
88
+ :alt: Latest Version
89
+
90
+ A library to do [jobs, tasks, flows] in a highly available, easy to understand
91
+ and declarative manner (and more!) to be used with OpenStack and other
92
+ projects.
93
+
94
+ * Free software: Apache license
95
+ * Documentation: https://docs.openstack.org/taskflow/latest/
96
+ * Source: https://opendev.org/openstack/taskflow
97
+ * Bugs: https://bugs.launchpad.net/taskflow/
98
+ * Release notes: https://docs.openstack.org/releasenotes/taskflow/
99
+
100
+ Join us
101
+ -------
102
+
103
+ - https://launchpad.net/taskflow
104
+
105
+ Testing and requirements
106
+ ------------------------
107
+
108
+ Requirements
109
+ ~~~~~~~~~~~~
110
+
111
+ Because this project has many optional (pluggable) parts like persistence
112
+ backends and engines, we decided to split our requirements into two
113
+ parts: - things that are absolutely required (you can't use the project
114
+ without them) are put into ``requirements.txt``. The requirements
115
+ that are required by some optional part of this project (you can use the
116
+ project without them) are put into our ``test-requirements.txt`` file (so
117
+ that we can still test the optional functionality works as expected). If
118
+ you want to use the feature in question (`eventlet`_ or the worker based engine
119
+ that uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
120
+ have an implementation built using `kazoo`_ ...), you should add
121
+ that requirement(s) to your project or environment.
122
+
123
+ Tox.ini
124
+ ~~~~~~~
125
+
126
+ Our ``tox.ini`` file describes several test environments that allow to test
127
+ TaskFlow with different python versions and sets of requirements installed.
128
+ Please refer to the `tox`_ documentation to understand how to make these test
129
+ environments work for you.
130
+
131
+ Developer documentation
132
+ -----------------------
133
+
134
+ We also have sphinx documentation in ``docs/source``.
135
+
136
+ *To build it, run:*
137
+
138
+ ::
139
+
140
+ $ python setup.py build_sphinx
141
+
142
+ .. _kazoo: https://kazoo.readthedocs.io/en/latest/
143
+ .. _sqlalchemy: https://www.sqlalchemy.org/
144
+ .. _kombu: https://kombu.readthedocs.io/en/latest/
145
+ .. _eventlet: http://eventlet.net/
146
+ .. _tox: https://tox.testrun.org/
147
+
@@ -0,0 +1,5 @@
1
+ ---
2
+ upgrade:
3
+ - |
4
+ Support for Python 3.8 has been removed. Now the minimum python version
5
+ supported is 3.9 .
@@ -3,4 +3,4 @@
3
3
  ===========================
4
4
 
5
5
  .. release-notes::
6
- :branch: stable/2023.1
6
+ :branch: unmaintained/2023.1
@@ -0,0 +1,6 @@
1
+ ===========================
2
+ 2024.2 Series Release Notes
3
+ ===========================
4
+
5
+ .. release-notes::
6
+ :branch: stable/2024.2
@@ -6,6 +6,7 @@
6
6
  :maxdepth: 1
7
7
 
8
8
  unreleased
9
+ 2024.2
9
10
  2024.1
10
11
  2023.2
11
12
  2023.1
@@ -1,3 +1,7 @@
1
+ # Requirements lower bounds listed here are our best effort to keep them up to
2
+ # date but we do not test them so no guarantee of having them all correct. If
3
+ # you find any incorrect lower bounds, let us know or propose a fix.
4
+
1
5
  # See: https://bugs.launchpad.net/pbr/+bug/1384919 for why this is here...
2
6
  pbr>=2.0.0 # Apache-2.0
3
7
 
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
  set -eux
3
3
  if [ -z "$(which etcd)" ]; then
4
- ETCD_VERSION=3.3.27
4
+ ETCD_VERSION=3.4.27
5
5
  case `uname -s` in
6
6
  Darwin)
7
7
  OS=darwin
@@ -7,7 +7,7 @@ author = OpenStack
7
7
  author_email = openstack-discuss@lists.openstack.org
8
8
  home_page = https://docs.openstack.org/taskflow/latest/
9
9
  keywords = reliable,tasks,execution,parallel,dataflow,workflows,distributed
10
- python_requires = >=3.8
10
+ python_requires = >=3.9
11
11
  classifier =
12
12
  Development Status :: 5 - Production/Stable
13
13
  Environment :: OpenStack
@@ -17,10 +17,10 @@ classifier =
17
17
  Operating System :: POSIX :: Linux
18
18
  Programming Language :: Python
19
19
  Programming Language :: Python :: 3
20
- Programming Language :: Python :: 3.8
21
20
  Programming Language :: Python :: 3.9
22
21
  Programming Language :: Python :: 3.10
23
22
  Programming Language :: Python :: 3.11
23
+ Programming Language :: Python :: 3.12
24
24
  Programming Language :: Python :: 3 :: Only
25
25
  Programming Language :: Python :: Implementation :: CPython
26
26
  Topic :: Software Development :: Libraries
@@ -56,7 +56,6 @@ taskflow.engines =
56
56
  [extras]
57
57
  zookeeper =
58
58
  kazoo>=2.6.0 # Apache-2.0
59
- zake>=0.1.6 # Apache-2.0
60
59
  redis =
61
60
  redis>=4.0.0 # MIT
62
61
  etcd =
@@ -71,14 +70,6 @@ database =
71
70
  SQLAlchemy-Utils>=0.30.11 # BSD License
72
71
  PyMySQL>=0.7.6 # MIT License
73
72
  psycopg2>=2.8.0 # LGPL/ZPL
74
- test =
75
- pydotplus>=2.0.2 # MIT License
76
- hacking<0.11,>=0.10.0
77
- oslotest>=3.2.0 # Apache-2.0
78
- mock>=2.0.0 # BSD
79
- testtools>=2.2.0 # MIT
80
- testscenarios>=0.4 # Apache-2.0/BSD
81
- stestr>=2.0.0 # Apache-2.0
82
73
 
83
74
  [egg_info]
84
75
  tag_build =
@@ -26,12 +26,14 @@ from taskflow.tests.unit.jobs import base
26
26
  from taskflow.tests import utils as test_utils
27
27
 
28
28
  ETCD_AVAILABLE = test_utils.etcd_available()
29
+ ETCD_PORT = test_utils.ETCD_PORT
29
30
 
30
31
 
31
32
  class EtcdJobBoardMixin:
32
33
  def create_board(self, conf=None, persistence=None):
33
34
  self.path = f"test-{uuidutils.generate_uuid()}"
34
35
  board_conf = {
36
+ "port": ETCD_PORT,
35
37
  "path": self.path,
36
38
  }
37
39
  if conf:
@@ -32,6 +32,7 @@ from taskflow.utils import redis_utils as ru
32
32
 
33
33
  REDIS_AVAILABLE = test_utils.redis_available(
34
34
  impl_redis.RedisJobBoard.MIN_REDIS_VERSION)
35
+ REDIS_PORT = test_utils.REDIS_PORT
35
36
 
36
37
 
37
38
  @testtools.skipIf(not REDIS_AVAILABLE, 'redis is not available')
@@ -41,7 +42,7 @@ class RedisJobboardTest(test.TestCase, base.BoardTestMixin):
41
42
 
42
43
  def create_board(self, persistence=None):
43
44
  namespace = uuidutils.generate_uuid()
44
- client = ru.RedisClient()
45
+ client = ru.RedisClient(port=REDIS_PORT)
45
46
  config = {
46
47
  'namespace': ("taskflow-%s" % namespace).encode('latin-1'),
47
48
  }
@@ -17,8 +17,6 @@
17
17
  import pickle
18
18
  import sys
19
19
 
20
- from oslo_utils import encodeutils
21
-
22
20
  from taskflow import exceptions
23
21
  from taskflow import test
24
22
  from taskflow.tests import utils as test_utils
@@ -334,8 +332,7 @@ class NonAsciiExceptionsTestCase(test.TestCase):
334
332
  bad_string = chr(200)
335
333
  excp = ValueError(bad_string)
336
334
  fail = failure.Failure.from_exception(excp)
337
- self.assertEqual(encodeutils.exception_to_unicode(excp),
338
- fail.exception_str)
335
+ self.assertEqual(str(excp), fail.exception_str)
339
336
  expected = u'Failure: ValueError: \xc8'
340
337
  self.assertEqual(expected, str(fail))
341
338
 
@@ -350,7 +347,7 @@ class NonAsciiExceptionsTestCase(test.TestCase):
350
347
  def test_wrapped_failure_non_ascii_unicode(self):
351
348
  hi_cn = u'嗨'
352
349
  fail = ValueError(hi_cn)
353
- self.assertEqual(hi_cn, encodeutils.exception_to_unicode(fail))
350
+ self.assertEqual(hi_cn, str(fail))
354
351
  fail = failure.Failure.from_exception(fail)
355
352
  wrapped_fail = exceptions.WrappedFailure([fail])
356
353
  expected_result = (u"WrappedFailure: "
@@ -15,6 +15,7 @@
15
15
  # under the License.
16
16
 
17
17
  import contextlib
18
+ import os
18
19
  import string
19
20
  import threading
20
21
  import time
@@ -32,12 +33,12 @@ from taskflow.types import failure
32
33
  from taskflow.utils import kazoo_utils
33
34
  from taskflow.utils import redis_utils
34
35
 
35
- ARGS_KEY = '__args__'
36
- KWARGS_KEY = '__kwargs__'
37
- ORDER_KEY = '__order__'
36
+ ETCD_PORT = int(os.getenv("TASKFLOW_TEST_ETCD_PORT", 2379))
37
+ REDIS_PORT = int(os.getenv("TASKFLOW_TEST_REDIS_SENTINEL_PORT", 6379))
38
+ ZK_PORT = int(os.getenv("TASKFLOW_TEST_ZOOKEEPER_PORT", 2181))
38
39
  ZK_TEST_CONFIG = {
39
40
  'timeout': 1.0,
40
- 'hosts': ["localhost:2181"],
41
+ 'hosts': ["localhost:%d" % ZK_PORT],
41
42
  }
42
43
  # If latches/events take longer than this to become empty/set, something is
43
44
  # usually wrong and should be debugged instead of deadlocking...
@@ -78,7 +79,7 @@ def zookeeper_available(min_version, timeout=3):
78
79
 
79
80
 
80
81
  def redis_available(min_version):
81
- client = redis.Redis()
82
+ client = redis.Redis(port=REDIS_PORT)
82
83
  try:
83
84
  client.ping()
84
85
  except Exception:
@@ -90,7 +91,7 @@ def redis_available(min_version):
90
91
 
91
92
 
92
93
  def etcd_available():
93
- client = etcd3gw.Etcd3Client()
94
+ client = etcd3gw.Etcd3Client(port=ETCD_PORT)
94
95
  try:
95
96
  client.get("/")
96
97
  except Exception:
@@ -21,7 +21,6 @@ import os
21
21
  import sys
22
22
  import traceback
23
23
 
24
- from oslo_utils import encodeutils
25
24
  from oslo_utils import reflection
26
25
 
27
26
  from taskflow import exceptions as exc
@@ -29,9 +28,6 @@ from taskflow.utils import iter_utils
29
28
  from taskflow.utils import schema_utils as su
30
29
 
31
30
 
32
- _exception_message = encodeutils.exception_to_unicode
33
-
34
-
35
31
  def _copy_exc_info(exc_info):
36
32
  if exc_info is None:
37
33
  return None
@@ -57,7 +53,7 @@ def _are_equal_exc_info_tuples(ei1, ei2):
57
53
  # because we want the types to be exactly the same, not just have
58
54
  # one be inherited from the other.
59
55
  if not all((type(ei1[1]) == type(ei2[1]), # noqa: E721
60
- _exception_message(ei1[1]) == _exception_message(ei2[1]),
56
+ str(ei1[1]) == str(ei2[1]),
61
57
  repr(ei1[1]) == repr(ei2[1]))):
62
58
  return False
63
59
  if ei1[2] == ei2[2]:
@@ -195,7 +191,7 @@ class Failure():
195
191
  if not self._exc_type_names:
196
192
  raise TypeError("Invalid exception type '%s' (%s)"
197
193
  % (exc_info[0], type(exc_info[0])))
198
- self._exception_str = _exception_message(self._exc_info[1])
194
+ self._exception_str = str(self._exc_info[1])
199
195
  self._traceback_str = ''.join(
200
196
  traceback.format_tb(self._exc_info[2]))
201
197
  self._causes = kwargs.pop('causes', None)
@@ -29,6 +29,6 @@ def check_for_eventlet(exc=None):
29
29
  """
30
30
  if not EVENTLET_AVAILABLE:
31
31
  if exc is None:
32
- raise RuntimeError('Eventlet is not current available')
32
+ raise RuntimeError('Eventlet is not currently available')
33
33
  else:
34
34
  raise exc
@@ -14,19 +14,14 @@
14
14
  # License for the specific language governing permissions and limitations
15
15
  # under the License.
16
16
 
17
- import pkg_resources
17
+ from pbr import version as pbr_version
18
18
 
19
19
  TASK_VENDOR = "OpenStack Foundation"
20
20
  TASK_PRODUCT = "OpenStack TaskFlow"
21
21
  TASK_PACKAGE = None # OS distro package version suffix
22
22
 
23
- try:
24
- from pbr import version as pbr_version
25
- _version_info = pbr_version.VersionInfo('taskflow')
26
- version_string = _version_info.version_string
27
- except ImportError:
28
- _version_info = pkg_resources.get_distribution('taskflow')
29
- version_string = lambda: _version_info.version
23
+ _version_info = pbr_version.VersionInfo('taskflow')
24
+ version_string = _version_info.version_string
30
25
 
31
26
 
32
27
  def version_string_with_package():
@@ -0,0 +1,147 @@
1
+ Metadata-Version: 2.1
2
+ Name: taskflow
3
+ Version: 5.11.0
4
+ Summary: Taskflow structured state management library.
5
+ Home-page: https://docs.openstack.org/taskflow/latest/
6
+ Author: OpenStack
7
+ Author-email: openstack-discuss@lists.openstack.org
8
+ Keywords: reliable,tasks,execution,parallel,dataflow,workflows,distributed
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Environment :: OpenStack
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: License :: OSI Approved :: Apache Software License
14
+ Classifier: Operating System :: POSIX :: Linux
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3 :: Only
22
+ Classifier: Programming Language :: Python :: Implementation :: CPython
23
+ Classifier: Topic :: Software Development :: Libraries
24
+ Classifier: Topic :: System :: Distributed Computing
25
+ Requires-Python: >=3.9
26
+ License-File: LICENSE
27
+ Requires-Dist: pbr>=2.0.0
28
+ Requires-Dist: futurist>=1.2.0
29
+ Requires-Dist: fasteners>=0.17.3
30
+ Requires-Dist: networkx>=2.1.0
31
+ Requires-Dist: stevedore>=1.20.0
32
+ Requires-Dist: jsonschema>=3.2.0
33
+ Requires-Dist: automaton>=1.9.0
34
+ Requires-Dist: oslo.utils>=3.33.0
35
+ Requires-Dist: oslo.serialization>=2.18.0
36
+ Requires-Dist: tenacity>=6.0.0
37
+ Requires-Dist: cachetools>=2.0.0
38
+ Requires-Dist: pydot>=1.2.4
39
+ Provides-Extra: zookeeper
40
+ Requires-Dist: kazoo>=2.6.0; extra == "zookeeper"
41
+ Provides-Extra: redis
42
+ Requires-Dist: redis>=4.0.0; extra == "redis"
43
+ Provides-Extra: etcd
44
+ Requires-Dist: etcd3gw>=2.0.0; extra == "etcd"
45
+ Provides-Extra: workers
46
+ Requires-Dist: kombu>=4.3.0; extra == "workers"
47
+ Provides-Extra: eventlet
48
+ Requires-Dist: eventlet>=0.18.2; extra == "eventlet"
49
+ Provides-Extra: database
50
+ Requires-Dist: SQLAlchemy>=1.0.10; extra == "database"
51
+ Requires-Dist: alembic>=0.8.10; extra == "database"
52
+ Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "database"
53
+ Requires-Dist: PyMySQL>=0.7.6; extra == "database"
54
+ Requires-Dist: psycopg2>=2.8.0; extra == "database"
55
+ Provides-Extra: test
56
+ Requires-Dist: kazoo>=2.6.0; extra == "test"
57
+ Requires-Dist: redis>=4.0.0; extra == "test"
58
+ Requires-Dist: etcd3gw>=2.0.0; extra == "test"
59
+ Requires-Dist: kombu>=4.3.0; extra == "test"
60
+ Requires-Dist: eventlet>=0.18.2; extra == "test"
61
+ Requires-Dist: SQLAlchemy>=1.0.10; extra == "test"
62
+ Requires-Dist: alembic>=0.8.10; extra == "test"
63
+ Requires-Dist: SQLAlchemy-Utils>=0.30.11; extra == "test"
64
+ Requires-Dist: PyMySQL>=0.7.6; extra == "test"
65
+ Requires-Dist: psycopg2>=2.8.0; extra == "test"
66
+ Requires-Dist: zake>=0.1.6; extra == "test"
67
+ Requires-Dist: pydotplus>=2.0.2; extra == "test"
68
+ Requires-Dist: oslotest>=3.2.0; extra == "test"
69
+ Requires-Dist: testtools>=2.2.0; extra == "test"
70
+ Requires-Dist: testscenarios>=0.4; extra == "test"
71
+ Requires-Dist: stestr>=2.0.0; extra == "test"
72
+ Requires-Dist: pifpaf>=0.10.0; extra == "test"
73
+
74
+ ========================
75
+ Team and repository tags
76
+ ========================
77
+
78
+ .. image:: https://governance.openstack.org/tc/badges/taskflow.svg
79
+ :target: https://governance.openstack.org/tc/reference/tags/index.html
80
+
81
+ .. Change things from this point on
82
+
83
+ TaskFlow
84
+ ========
85
+
86
+ .. image:: https://img.shields.io/pypi/v/taskflow.svg
87
+ :target: https://pypi.org/project/taskflow/
88
+ :alt: Latest Version
89
+
90
+ A library to do [jobs, tasks, flows] in a highly available, easy to understand
91
+ and declarative manner (and more!) to be used with OpenStack and other
92
+ projects.
93
+
94
+ * Free software: Apache license
95
+ * Documentation: https://docs.openstack.org/taskflow/latest/
96
+ * Source: https://opendev.org/openstack/taskflow
97
+ * Bugs: https://bugs.launchpad.net/taskflow/
98
+ * Release notes: https://docs.openstack.org/releasenotes/taskflow/
99
+
100
+ Join us
101
+ -------
102
+
103
+ - https://launchpad.net/taskflow
104
+
105
+ Testing and requirements
106
+ ------------------------
107
+
108
+ Requirements
109
+ ~~~~~~~~~~~~
110
+
111
+ Because this project has many optional (pluggable) parts like persistence
112
+ backends and engines, we decided to split our requirements into two
113
+ parts: - things that are absolutely required (you can't use the project
114
+ without them) are put into ``requirements.txt``. The requirements
115
+ that are required by some optional part of this project (you can use the
116
+ project without them) are put into our ``test-requirements.txt`` file (so
117
+ that we can still test the optional functionality works as expected). If
118
+ you want to use the feature in question (`eventlet`_ or the worker based engine
119
+ that uses `kombu`_ or the `sqlalchemy`_ persistence backend or jobboards which
120
+ have an implementation built using `kazoo`_ ...), you should add
121
+ that requirement(s) to your project or environment.
122
+
123
+ Tox.ini
124
+ ~~~~~~~
125
+
126
+ Our ``tox.ini`` file describes several test environments that allow to test
127
+ TaskFlow with different python versions and sets of requirements installed.
128
+ Please refer to the `tox`_ documentation to understand how to make these test
129
+ environments work for you.
130
+
131
+ Developer documentation
132
+ -----------------------
133
+
134
+ We also have sphinx documentation in ``docs/source``.
135
+
136
+ *To build it, run:*
137
+
138
+ ::
139
+
140
+ $ python setup.py build_sphinx
141
+
142
+ .. _kazoo: https://kazoo.readthedocs.io/en/latest/
143
+ .. _sqlalchemy: https://www.sqlalchemy.org/
144
+ .. _kombu: https://kombu.readthedocs.io/en/latest/
145
+ .. _eventlet: http://eventlet.net/
146
+ .. _tox: https://tox.testrun.org/
147
+
@@ -1,6 +1,7 @@
1
1
  .coveragerc
2
2
  .mailmap
3
3
  .pre-commit-config.yaml
4
+ .pylintrc
4
5
  .stestr.conf
5
6
  .zuul.yaml
6
7
  AUTHORS
@@ -9,7 +10,6 @@ ChangeLog
9
10
  LICENSE
10
11
  README.rst
11
12
  bindep.txt
12
- pylintrc
13
13
  requirements.txt
14
14
  run_tests.sh
15
15
  setup-etcd-env.sh
@@ -74,6 +74,7 @@ releasenotes/notes/fix-revert-all-revert-a0310cd7beaa7409.yaml
74
74
  releasenotes/notes/fix-storage-failure-handling-5c115d92daa0eb82.yaml
75
75
  releasenotes/notes/fix-zookeeper-option-parsing-f9d37fbc39af47f4.yaml
76
76
  releasenotes/notes/redis-username-df0eb33869db09a2.yaml
77
+ releasenotes/notes/remove-py38-15af791146f479e1.yaml
77
78
  releasenotes/notes/remove-strict-redis-f2a5a924b314de41.yaml
78
79
  releasenotes/notes/sentinel-fallbacks-6fe2ab0d68959cdf.yaml
79
80
  releasenotes/notes/sentinel-ssl-399c56ed7067d282.yaml
@@ -82,6 +83,7 @@ releasenotes/notes/zookeeper-ssl-support-b9abf24a39096b62.yaml
82
83
  releasenotes/source/2023.1.rst
83
84
  releasenotes/source/2023.2.rst
84
85
  releasenotes/source/2024.1.rst
86
+ releasenotes/source/2024.2.rst
85
87
  releasenotes/source/conf.py
86
88
  releasenotes/source/index.rst
87
89
  releasenotes/source/ocata.rst