xblocks-core 2.0.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 (332) hide show
  1. xblocks_core-2.0.0/.editorconfig +100 -0
  2. xblocks_core-2.0.0/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  3. xblocks_core-2.0.0/.github/dependabot.yml +7 -0
  4. xblocks_core-2.0.0/.github/workflows/add-depr-ticket-to-depr-board.yml +19 -0
  5. xblocks_core-2.0.0/.github/workflows/add-remove-label-on-comment.yml +20 -0
  6. xblocks_core-2.0.0/.github/workflows/commitlint.yml +10 -0
  7. xblocks_core-2.0.0/.github/workflows/javascript-tests.yml +53 -0
  8. xblocks_core-2.0.0/.github/workflows/python-tests.yml +46 -0
  9. xblocks_core-2.0.0/.github/workflows/release.yml +120 -0
  10. xblocks_core-2.0.0/.github/workflows/self-assign-issue.yml +12 -0
  11. xblocks_core-2.0.0/.github/workflows/upgrade-python-requirements.yml +27 -0
  12. xblocks_core-2.0.0/.readthedocs.yaml +27 -0
  13. xblocks_core-2.0.0/LICENSE.txt +664 -0
  14. xblocks_core-2.0.0/MANIFEST.in +23 -0
  15. xblocks_core-2.0.0/Makefile +111 -0
  16. xblocks_core-2.0.0/PKG-INFO +366 -0
  17. xblocks_core-2.0.0/README.rst +317 -0
  18. xblocks_core-2.0.0/catalog-info.yaml +18 -0
  19. xblocks_core-2.0.0/codecov.yml +12 -0
  20. xblocks_core-2.0.0/docs/Makefile +230 -0
  21. xblocks_core-2.0.0/docs/_static/theme_overrides.css +10 -0
  22. xblocks_core-2.0.0/docs/changelog.rst +4 -0
  23. xblocks_core-2.0.0/docs/concepts/index.rst +2 -0
  24. xblocks_core-2.0.0/docs/conf.py +547 -0
  25. xblocks_core-2.0.0/docs/decisions/0001-purpose-of-this-repo.rst +30 -0
  26. xblocks_core-2.0.0/docs/decisions/0002-pointer-tags-handling.rst +118 -0
  27. xblocks_core-2.0.0/docs/decisions/README.rst +8 -0
  28. xblocks_core-2.0.0/docs/decisions.rst +12 -0
  29. xblocks_core-2.0.0/docs/getting_started.rst +18 -0
  30. xblocks_core-2.0.0/docs/how-tos/index.rst +2 -0
  31. xblocks_core-2.0.0/docs/index.rst +34 -0
  32. xblocks_core-2.0.0/docs/internationalization.rst +97 -0
  33. xblocks_core-2.0.0/docs/make.bat +281 -0
  34. xblocks_core-2.0.0/docs/quickstarts/index.rst +2 -0
  35. xblocks_core-2.0.0/docs/readme.rst +1 -0
  36. xblocks_core-2.0.0/docs/references/index.rst +2 -0
  37. xblocks_core-2.0.0/docs/testing.rst +44 -0
  38. xblocks_core-2.0.0/docs/xblocks_core.legacy_utils.rst +21 -0
  39. xblocks_core-2.0.0/docs/xblocks_core.rst +18 -0
  40. xblocks_core-2.0.0/pylintrc +396 -0
  41. xblocks_core-2.0.0/pylintrc_tweaks +13 -0
  42. xblocks_core-2.0.0/pyproject.toml +235 -0
  43. xblocks_core-2.0.0/renovate.json +6 -0
  44. xblocks_core-2.0.0/setup.cfg +4 -0
  45. xblocks_core-2.0.0/src/xblock_annotatable/.tx/config +8 -0
  46. xblocks_core-2.0.0/src/xblock_annotatable/__init__.py +5 -0
  47. xblocks_core-2.0.0/src/xblock_annotatable/block.py +307 -0
  48. xblocks_core-2.0.0/src/xblock_annotatable/conf/locale/__init__.py +0 -0
  49. xblocks_core-2.0.0/src/xblock_annotatable/conf/locale/config.yaml +93 -0
  50. xblocks_core-2.0.0/src/xblock_annotatable/static/css/annotatable.css +188 -0
  51. xblocks_core-2.0.0/src/xblock_annotatable/static/css/annotatable_editor.css +12 -0
  52. xblocks_core-2.0.0/src/xblock_annotatable/static/js/src/annotatable.js +367 -0
  53. xblocks_core-2.0.0/src/xblock_annotatable/static/js/src/annotatable_editor.js +74 -0
  54. xblocks_core-2.0.0/src/xblock_annotatable/templates/annotatable.html +24 -0
  55. xblocks_core-2.0.0/src/xblock_annotatable/templates/annotatable_editor.html +20 -0
  56. xblocks_core-2.0.0/src/xblock_discussion/.tx/config +8 -0
  57. xblocks_core-2.0.0/src/xblock_discussion/__init__.py +5 -0
  58. xblocks_core-2.0.0/src/xblock_discussion/apps.py +53 -0
  59. xblocks_core-2.0.0/src/xblock_discussion/block.py +265 -0
  60. xblocks_core-2.0.0/src/xblock_discussion/conf/locale/__init__.py +0 -0
  61. xblocks_core-2.0.0/src/xblock_discussion/conf/locale/config.yaml +93 -0
  62. xblocks_core-2.0.0/src/xblock_discussion/public/css/inline-discussion-rtl.css +4572 -0
  63. xblocks_core-2.0.0/src/xblock_discussion/public/css/inline-discussion.css +4572 -0
  64. xblocks_core-2.0.0/src/xblock_discussion/public/js/discussion_bundle.js +2 -0
  65. xblocks_core-2.0.0/src/xblock_discussion/templates/_discussion_inline_studio.html +16 -0
  66. xblocks_core-2.0.0/src/xblock_discussion/templates/discussion_templates/_discussion_inline.html +49 -0
  67. xblocks_core-2.0.0/src/xblock_discussion/templates/discussion_templates/_thread_list_template.html +55 -0
  68. xblocks_core-2.0.0/src/xblock_discussion/templates/discussion_templates/_underscore_templates.html +19 -0
  69. xblocks_core-2.0.0/src/xblock_discussion/templates/discussion_templates/templates.underscore +889 -0
  70. xblocks_core-2.0.0/src/xblock_html/.tx/config +8 -0
  71. xblocks_core-2.0.0/src/xblock_html/__init__.py +6 -0
  72. xblocks_core-2.0.0/src/xblock_html/block.py +498 -0
  73. xblocks_core-2.0.0/src/xblock_html/conf/locale/__init__.py +0 -0
  74. xblocks_core-2.0.0/src/xblock_html/conf/locale/config.yaml +93 -0
  75. xblocks_core-2.0.0/src/xblock_html/static/css/html.css +297 -0
  76. xblocks_core-2.0.0/src/xblock_html/templates/html/announcement.yaml +18 -0
  77. xblocks_core-2.0.0/src/xblock_html/templates/html/anon_user_id.yaml +19 -0
  78. xblocks_core-2.0.0/src/xblock_html/templates/html/iframe.yaml +32 -0
  79. xblocks_core-2.0.0/src/xblock_html/templates/html/raw.yaml +9 -0
  80. xblocks_core-2.0.0/src/xblock_html/templates/html/zooming_image.yaml +239 -0
  81. xblocks_core-2.0.0/src/xblock_lti/.tx/config +8 -0
  82. xblocks_core-2.0.0/src/xblock_lti/__init__.py +7 -0
  83. xblocks_core-2.0.0/src/xblock_lti/block.py +1018 -0
  84. xblocks_core-2.0.0/src/xblock_lti/conf/locale/__init__.py +0 -0
  85. xblocks_core-2.0.0/src/xblock_lti/conf/locale/config.yaml +93 -0
  86. xblocks_core-2.0.0/src/xblock_lti/lti_2_util.py +388 -0
  87. xblocks_core-2.0.0/src/xblock_lti/static/css/lti.css +57 -0
  88. xblocks_core-2.0.0/src/xblock_lti/static/js/src/lti.js +23 -0
  89. xblocks_core-2.0.0/src/xblock_lti/templates/lti.html +73 -0
  90. xblocks_core-2.0.0/src/xblock_lti/templates/lti_form.html +38 -0
  91. xblocks_core-2.0.0/src/xblock_pdf/__init__.py +3 -0
  92. xblocks_core-2.0.0/src/xblock_pdf/block.py +129 -0
  93. xblocks_core-2.0.0/src/xblock_pdf/js_tests/jquery.d.ts +5 -0
  94. xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/helpers/loadAsElement.js +1 -0
  95. xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/helpers/loadAsJQuery.js +1 -0
  96. xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/helpers/mockRuntime.js +23 -0
  97. xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/helpers/proveJQuery.js +12 -0
  98. xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/pdf.spec.ts +76 -0
  99. xblocks_core-2.0.0/src/xblock_pdf/js_tests/tsconfig.json +10 -0
  100. xblocks_core-2.0.0/src/xblock_pdf/js_tests/vitest.config.ts +15 -0
  101. xblocks_core-2.0.0/src/xblock_pdf/static/js/pdf.js +17 -0
  102. xblocks_core-2.0.0/src/xblock_pdf/templates/html/pdf.html +22 -0
  103. xblocks_core-2.0.0/src/xblock_pdf/utils.py +13 -0
  104. xblocks_core-2.0.0/src/xblock_poll_question/.tx/config +8 -0
  105. xblocks_core-2.0.0/src/xblock_poll_question/__init__.py +5 -0
  106. xblocks_core-2.0.0/src/xblock_poll_question/block.py +311 -0
  107. xblocks_core-2.0.0/src/xblock_poll_question/conf/locale/__init__.py +0 -0
  108. xblocks_core-2.0.0/src/xblock_poll_question/conf/locale/config.yaml +93 -0
  109. xblocks_core-2.0.0/src/xblock_poll_question/static/css/poll.css +356 -0
  110. xblocks_core-2.0.0/src/xblock_poll_question/static/js/src/poll.js +196 -0
  111. xblocks_core-2.0.0/src/xblock_poll_question/templates/poll.html +7 -0
  112. xblocks_core-2.0.0/src/xblock_problem/.tx/config +8 -0
  113. xblocks_core-2.0.0/src/xblock_problem/__init__.py +5 -0
  114. xblocks_core-2.0.0/src/xblock_problem/block.py +2728 -0
  115. xblocks_core-2.0.0/src/xblock_problem/capa/__init__.py +0 -0
  116. xblocks_core-2.0.0/src/xblock_problem/capa/apps.py +54 -0
  117. xblocks_core-2.0.0/src/xblock_problem/capa/capa_problem.py +1241 -0
  118. xblocks_core-2.0.0/src/xblock_problem/capa/checker.py +174 -0
  119. xblocks_core-2.0.0/src/xblock_problem/capa/correctmap.py +217 -0
  120. xblocks_core-2.0.0/src/xblock_problem/capa/customrender.py +195 -0
  121. xblocks_core-2.0.0/src/xblock_problem/capa/errors.py +62 -0
  122. xblocks_core-2.0.0/src/xblock_problem/capa/inputtypes.py +1819 -0
  123. xblocks_core-2.0.0/src/xblock_problem/capa/registry.py +57 -0
  124. xblocks_core-2.0.0/src/xblock_problem/capa/responsetypes.py +3867 -0
  125. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/README.rst +43 -0
  126. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/__init__.py +4 -0
  127. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/exceptions.py +21 -0
  128. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/lazymod.py +43 -0
  129. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/remote_exec.py +142 -0
  130. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/safe_exec.py +506 -0
  131. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/__init__.py +0 -0
  132. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/test_files/pylib/constant.py +3 -0
  133. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/test_lazymod.py +62 -0
  134. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/test_remote_exec.py +35 -0
  135. xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/test_safe_exec.py +782 -0
  136. xblocks_core-2.0.0/src/xblock_problem/capa/static/applets/Protex.jar +0 -0
  137. xblocks_core-2.0.0/src/xblock_problem/capa/static/applets/genex.jar +0 -0
  138. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX2E0-3D-balls.png +0 -0
  139. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX2E1-3D-balls.png +0 -0
  140. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX2E2-3D-balls.png +0 -0
  141. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX2E3-3D-balls.png +0 -0
  142. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX3E0-3D-balls.png +0 -0
  143. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX3E1-3D-balls.png +0 -0
  144. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX3E2-3D-balls.png +0 -0
  145. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX4E0-3D-balls.png +0 -0
  146. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX4E1-3D-balls.png +0 -0
  147. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX4E2-3D-balls.png +0 -0
  148. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX5E1-3D-balls.png +0 -0
  149. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX5E2-3D-balls.png +0 -0
  150. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX6E0-3D-balls.png +0 -0
  151. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX6E1-3D-balls.png +0 -0
  152. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX7E0-3D-balls.png +0 -0
  153. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX8E0-3D-balls.png +0 -0
  154. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX9E0-3D-balls.png +0 -0
  155. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Bent-3D-balls.png +0 -0
  156. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Linear-3D-balls.png +0 -0
  157. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Linear-stick.png +0 -0
  158. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Octahedral-3D-balls.png +0 -0
  159. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Octahedral-stick.png +0 -0
  160. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Pentagonal-bipyramidal-3D-balls.png +0 -0
  161. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Pentagonal-planar-3D-balls.png +0 -0
  162. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Pentagonal-pyramidal-3D-balls.png +0 -0
  163. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Pyramidal-3D-balls.png +0 -0
  164. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Seesaw-3D-balls.png +0 -0
  165. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Square-antiprismatic-3D-balls.png +0 -0
  166. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Square-planar-3D-balls.png +0 -0
  167. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/T-shaped-3D-balls.png +0 -0
  168. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Tetrahedral-3D-balls.png +0 -0
  169. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Tetrahedral-stick.png +0 -0
  170. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Trigonal-3D-balls.png +0 -0
  171. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Trigonal-bipyramidal-3D-balls.png +0 -0
  172. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Trigonal-bipyramidal-stick.png +0 -0
  173. xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Trigonal-planar-stick.png +0 -0
  174. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/README +1 -0
  175. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/annotationinput.js +98 -0
  176. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/chemical_equation_preview.js +36 -0
  177. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/choicetextinput.js +73 -0
  178. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/design-protein-2d.js +85 -0
  179. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/base_image.js +45 -0
  180. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/config_parser.js +271 -0
  181. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/container.js +13 -0
  182. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggable_events.js +143 -0
  183. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggable_logic.js +400 -0
  184. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggables.js +281 -0
  185. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/main.js +107 -0
  186. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/scroller.js +162 -0
  187. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/state.js +95 -0
  188. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/targets.js +266 -0
  189. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/update_input.js +373 -0
  190. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop.js +25 -0
  191. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/edit-a-gene.js +71 -0
  192. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/21B31BA00E7CE7B6BD63DD13A8586A45.cache.html +652 -0
  193. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/63308EE54E8033A708B414CAC05B0C32.cache.html +642 -0
  194. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/7AC57DC6EC8C1D8672DDF6E6D4EF57CC.cache.html +628 -0
  195. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/9B4F4D4EFA24CDE2E4287CC07897F249.cache.html +654 -0
  196. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/A069AC107D79C29D6237614AC340F0C0.cache.html +652 -0
  197. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/C6220FCC8B9234FEAD8D826A73C6D2A4.cache.html +642 -0
  198. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/clear.cache.gif +0 -0
  199. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/genex.css +122 -0
  200. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/genex.nocache.js +18 -0
  201. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/hosted.html +365 -0
  202. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/circles.png +0 -0
  203. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/circles_ie6.png +0 -0
  204. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/corner.png +0 -0
  205. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/corner_ie6.png +0 -0
  206. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/hborder.png +0 -0
  207. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/hborder_ie6.png +0 -0
  208. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/thumb_horz.png +0 -0
  209. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/thumb_vertical.png +0 -0
  210. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/vborder.png +0 -0
  211. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/vborder_ie6.png +0 -0
  212. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.css +9 -0
  213. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.html +15 -0
  214. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.js +86 -0
  215. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/39CC89519B0E1FCB47B935AC9FE13D7B.cache.html +743 -0
  216. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/6E05B1CD5BFCAF7D53C7C64D84318178.cache.html +750 -0
  217. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/C824A958AB642DC2213DFFDAC640BEAA.cache.html +760 -0
  218. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/D9267DE8FB02F8B995B4A58C66C76E29.cache.html +758 -0
  219. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/F275492F7098103BCB05F4F86ABF6218.cache.html +750 -0
  220. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/F3301B0E65F38C7FCF2EF3764B3BB0B6.cache.html +754 -0
  221. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/clear.cache.gif +0 -0
  222. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/hosted.html +365 -0
  223. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/protex.css +57 -0
  224. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/protex.nocache.js +18 -0
  225. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/scrollTableLoading.gif +0 -0
  226. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/schematicinput.js +49 -0
  227. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/src/formula_equation_preview.js +221 -0
  228. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/src/jschannel.js +790 -0
  229. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/src/jsinput.js +221 -0
  230. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/symbolic_mathjax_preprocessor.js +35 -0
  231. xblocks_core-2.0.0/src/xblock_problem/capa/static/js/vendor/CodeMirror/octave.js +118 -0
  232. xblocks_core-2.0.0/src/xblock_problem/capa/templates/annotationinput.html +61 -0
  233. xblocks_core-2.0.0/src/xblock_problem/capa/templates/chemicalequationinput.html +19 -0
  234. xblocks_core-2.0.0/src/xblock_problem/capa/templates/choicegroup.html +41 -0
  235. xblocks_core-2.0.0/src/xblock_problem/capa/templates/choicetext.html +61 -0
  236. xblocks_core-2.0.0/src/xblock_problem/capa/templates/clarification.html +10 -0
  237. xblocks_core-2.0.0/src/xblock_problem/capa/templates/codeinput.html +31 -0
  238. xblocks_core-2.0.0/src/xblock_problem/capa/templates/crystallography.html +29 -0
  239. xblocks_core-2.0.0/src/xblock_problem/capa/templates/designprotein2dinput.html +25 -0
  240. xblocks_core-2.0.0/src/xblock_problem/capa/templates/drag_and_drop_input.html +27 -0
  241. xblocks_core-2.0.0/src/xblock_problem/capa/templates/editageneinput.html +32 -0
  242. xblocks_core-2.0.0/src/xblock_problem/capa/templates/editamolecule.html +32 -0
  243. xblocks_core-2.0.0/src/xblock_problem/capa/templates/filesubmission.html +16 -0
  244. xblocks_core-2.0.0/src/xblock_problem/capa/templates/formulaequationinput.html +29 -0
  245. xblocks_core-2.0.0/src/xblock_problem/capa/templates/imageinput.html +33 -0
  246. xblocks_core-2.0.0/src/xblock_problem/capa/templates/jsinput.html +42 -0
  247. xblocks_core-2.0.0/src/xblock_problem/capa/templates/mathstring.html +8 -0
  248. xblocks_core-2.0.0/src/xblock_problem/capa/templates/matlabinput.html +121 -0
  249. xblocks_core-2.0.0/src/xblock_problem/capa/templates/optioninput.html +20 -0
  250. xblocks_core-2.0.0/src/xblock_problem/capa/templates/problem.html +154 -0
  251. xblocks_core-2.0.0/src/xblock_problem/capa/templates/problem_ajax.html +16 -0
  252. xblocks_core-2.0.0/src/xblock_problem/capa/templates/problem_notifications.html +19 -0
  253. xblocks_core-2.0.0/src/xblock_problem/capa/templates/schematicinput.html +18 -0
  254. xblocks_core-2.0.0/src/xblock_problem/capa/templates/solutionspan.html +3 -0
  255. xblocks_core-2.0.0/src/xblock_problem/capa/templates/status_span.html +12 -0
  256. xblocks_core-2.0.0/src/xblock_problem/capa/templates/textline.html +39 -0
  257. xblocks_core-2.0.0/src/xblock_problem/capa/templates/vsepr_input.html +38 -0
  258. xblocks_core-2.0.0/src/xblock_problem/capa/testing/__init__.py +7 -0
  259. xblocks_core-2.0.0/src/xblock_problem/capa/testing/codejail.py +31 -0
  260. xblocks_core-2.0.0/src/xblock_problem/capa/testing/response_xml_factory.py +934 -0
  261. xblocks_core-2.0.0/src/xblock_problem/capa/tests/__init__.py +0 -0
  262. xblocks_core-2.0.0/src/xblock_problem/capa/tests/helpers.py +119 -0
  263. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_answer_pool.py +672 -0
  264. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_capa_problem.py +824 -0
  265. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_correctmap.py +195 -0
  266. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_customrender.py +87 -0
  267. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_errors.py +63 -0
  268. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_hint_functionality.py +1134 -0
  269. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_html_render.py +318 -0
  270. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_input_templates.py +1187 -0
  271. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_inputtypes.py +1732 -0
  272. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_responsetypes.py +2781 -0
  273. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_shuffle.py +320 -0
  274. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_targeted_feedback.py +654 -0
  275. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_util.py +167 -0
  276. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_xqueue_interface.py +74 -0
  277. xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_xqueue_submission.py +125 -0
  278. xblocks_core-2.0.0/src/xblock_problem/capa/util.py +252 -0
  279. xblocks_core-2.0.0/src/xblock_problem/capa/xqueue_interface.py +185 -0
  280. xblocks_core-2.0.0/src/xblock_problem/capa/xqueue_submission.py +111 -0
  281. xblocks_core-2.0.0/src/xblock_problem/conf/locale/__init__.py +0 -0
  282. xblocks_core-2.0.0/src/xblock_problem/conf/locale/config.yaml +93 -0
  283. xblocks_core-2.0.0/src/xblock_problem/markup.py +33 -0
  284. xblocks_core-2.0.0/src/xblock_problem/public/css/ProblemBlockDisplay.css +2306 -0
  285. xblocks_core-2.0.0/src/xblock_problem/public/js/ProblemBlockDisplay.js +1 -0
  286. xblocks_core-2.0.0/src/xblock_problem/stringify.py +33 -0
  287. xblocks_core-2.0.0/src/xblock_problem/xmlparser.py +146 -0
  288. xblocks_core-2.0.0/src/xblock_video/.tx/config +8 -0
  289. xblocks_core-2.0.0/src/xblock_video/__init__.py +5 -0
  290. xblocks_core-2.0.0/src/xblock_video/ajax_handler_mixin.py +52 -0
  291. xblocks_core-2.0.0/src/xblock_video/block.py +1184 -0
  292. xblocks_core-2.0.0/src/xblock_video/bumper_utils.py +147 -0
  293. xblocks_core-2.0.0/src/xblock_video/cache_utils.py +97 -0
  294. xblocks_core-2.0.0/src/xblock_video/conf/locale/__init__.py +0 -0
  295. xblocks_core-2.0.0/src/xblock_video/conf/locale/config.yaml +93 -0
  296. xblocks_core-2.0.0/src/xblock_video/constants.py +17 -0
  297. xblocks_core-2.0.0/src/xblock_video/exceptions.py +11 -0
  298. xblocks_core-2.0.0/src/xblock_video/mixin.py +58 -0
  299. xblocks_core-2.0.0/src/xblock_video/public/css/video.css +1260 -0
  300. xblocks_core-2.0.0/src/xblock_video/public/js/video-xblock.js +2 -0
  301. xblocks_core-2.0.0/src/xblock_video/studio_metadata_mixin.py +166 -0
  302. xblocks_core-2.0.0/src/xblock_video/templates/video.html +213 -0
  303. xblocks_core-2.0.0/src/xblock_video/validation.py +129 -0
  304. xblocks_core-2.0.0/src/xblock_video/video_handlers.py +514 -0
  305. xblocks_core-2.0.0/src/xblock_video/video_static_content_utils.py +49 -0
  306. xblocks_core-2.0.0/src/xblock_video/video_transcripts_utils.py +236 -0
  307. xblocks_core-2.0.0/src/xblock_video/video_utils.py +178 -0
  308. xblocks_core-2.0.0/src/xblock_video/video_xfields.py +229 -0
  309. xblocks_core-2.0.0/src/xblock_word_cloud/.tx/config +8 -0
  310. xblocks_core-2.0.0/src/xblock_word_cloud/__init__.py +3 -0
  311. xblocks_core-2.0.0/src/xblock_word_cloud/block.py +295 -0
  312. xblocks_core-2.0.0/src/xblock_word_cloud/conf/locale/__init__.py +0 -0
  313. xblocks_core-2.0.0/src/xblock_word_cloud/conf/locale/config.yaml +93 -0
  314. xblocks_core-2.0.0/src/xblock_word_cloud/static/css/word_cloud.css +29 -0
  315. xblocks_core-2.0.0/src/xblock_word_cloud/static/js/src/d3.layout.cloud.js +434 -0
  316. xblocks_core-2.0.0/src/xblock_word_cloud/static/js/src/d3.min.js +37 -0
  317. xblocks_core-2.0.0/src/xblock_word_cloud/static/js/src/html_utils.js +75 -0
  318. xblocks_core-2.0.0/src/xblock_word_cloud/static/js/src/word_cloud.js +289 -0
  319. xblocks_core-2.0.0/src/xblock_word_cloud/templates/word_cloud.html +50 -0
  320. xblocks_core-2.0.0/src/xblocks_core/__init__.py +11 -0
  321. xblocks_core-2.0.0/src/xblocks_core/legacy_utils/__init__.py +6 -0
  322. xblocks_core-2.0.0/src/xblocks_core/legacy_utils/xml_utils.py +584 -0
  323. xblocks_core-2.0.0/src/xblocks_core.egg-info/PKG-INFO +366 -0
  324. xblocks_core-2.0.0/src/xblocks_core.egg-info/SOURCES.txt +330 -0
  325. xblocks_core-2.0.0/src/xblocks_core.egg-info/dependency_links.txt +1 -0
  326. xblocks_core-2.0.0/src/xblocks_core.egg-info/entry_points.txt +18 -0
  327. xblocks_core-2.0.0/src/xblocks_core.egg-info/requires.txt +28 -0
  328. xblocks_core-2.0.0/src/xblocks_core.egg-info/scm_file_list.json +605 -0
  329. xblocks_core-2.0.0/src/xblocks_core.egg-info/top_level.txt +10 -0
  330. xblocks_core-2.0.0/test_settings.py +92 -0
  331. xblocks_core-2.0.0/tox.ini +51 -0
  332. xblocks_core-2.0.0/uv.lock +3135 -0
@@ -0,0 +1,100 @@
1
+ # ***************************
2
+ # ** DO NOT EDIT THIS FILE **
3
+ # ***************************
4
+ #
5
+ # This file was generated by edx-lint: https://github.com/openedx/edx-lint
6
+ #
7
+ # If you want to change this file, you have two choices, depending on whether
8
+ # you want to make a local change that applies only to this repo, or whether
9
+ # you want to make a central change that applies to all repos using edx-lint.
10
+ #
11
+ # Note: If your .editorconfig file is simply out-of-date relative to the latest
12
+ # .editorconfig in edx-lint, ensure you have the latest edx-lint installed
13
+ # and then follow the steps for a "LOCAL CHANGE".
14
+ #
15
+ # LOCAL CHANGE:
16
+ #
17
+ # 1. Edit the local .editorconfig_tweaks file to add changes just to this
18
+ # repo's file.
19
+ #
20
+ # 2. Run:
21
+ #
22
+ # $ edx_lint write .editorconfig
23
+ #
24
+ # 3. This will modify the local file. Submit a pull request to get it
25
+ # checked in so that others will benefit.
26
+ #
27
+ #
28
+ # CENTRAL CHANGE:
29
+ #
30
+ # 1. Edit the .editorconfig file in the edx-lint repo at
31
+ # https://github.com/openedx/edx-lint/blob/master/edx_lint/files/.editorconfig
32
+ #
33
+ # 2. install the updated version of edx-lint (in edx-lint):
34
+ #
35
+ # $ pip install .
36
+ #
37
+ # 3. Run (in edx-lint):
38
+ #
39
+ # $ edx_lint write .editorconfig
40
+ #
41
+ # 4. Make a new version of edx_lint, submit and review a pull request with the
42
+ # .editorconfig update, and after merging, update the edx-lint version and
43
+ # publish the new version.
44
+ #
45
+ # 5. In your local repo, install the newer version of edx-lint.
46
+ #
47
+ # 6. Run:
48
+ #
49
+ # $ edx_lint write .editorconfig
50
+ #
51
+ # 7. This will modify the local file. Submit a pull request to get it
52
+ # checked in so that others will benefit.
53
+ #
54
+ #
55
+ #
56
+ #
57
+ #
58
+ # STAY AWAY FROM THIS FILE!
59
+ #
60
+ #
61
+ #
62
+ #
63
+ #
64
+ # SERIOUSLY.
65
+ #
66
+ # ------------------------------
67
+ # Generated by edx-lint version: 5.2.5
68
+ # ------------------------------
69
+ [*]
70
+ end_of_line = lf
71
+ insert_final_newline = true
72
+ charset = utf-8
73
+ indent_style = space
74
+ indent_size = 4
75
+ max_line_length = 120
76
+ trim_trailing_whitespace = true
77
+
78
+ [{Makefile, *.mk}]
79
+ indent_style = tab
80
+ indent_size = 8
81
+
82
+ [*.{yml,yaml,json}]
83
+ indent_size = 2
84
+
85
+ [*.js]
86
+ indent_size = 2
87
+
88
+ [*.diff]
89
+ trim_trailing_whitespace = false
90
+
91
+ [.git/*]
92
+ trim_trailing_whitespace = false
93
+
94
+ [COMMIT_EDITMSG]
95
+ max_line_length = 72
96
+
97
+ [*.rst]
98
+ max_line_length = 79
99
+
100
+ # f2f02689fced7a2e0c62c2f9803184114dc2ae4b
@@ -0,0 +1,10 @@
1
+
2
+ **Merge checklist:**
3
+ Check off if complete *or* not applicable:
4
+ - [ ] Version bumped
5
+ - [ ] Changelog record added
6
+ - [ ] Documentation updated (not only docstrings)
7
+ - [ ] Fixup commits are squashed away
8
+ - [ ] Unit tests added/updated
9
+ - [ ] Manual testing instructions provided
10
+ - [ ] Noted any: Concerns, dependencies, migration issues, deadlines, tickets
@@ -0,0 +1,7 @@
1
+ version: 2
2
+ updates:
3
+ # Adding new check for github-actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
@@ -0,0 +1,19 @@
1
+ # Run the workflow that adds new tickets that are either:
2
+ # - labelled "DEPR"
3
+ # - title starts with "[DEPR]"
4
+ # - body starts with "Proposal Date" (this is the first template field)
5
+ # to the org-wide DEPR project board
6
+
7
+ name: Add newly created DEPR issues to the DEPR project board
8
+
9
+ on:
10
+ issues:
11
+ types: [opened]
12
+
13
+ jobs:
14
+ routeissue:
15
+ uses: openedx/.github/.github/workflows/add-depr-ticket-to-depr-board.yml@master
16
+ secrets:
17
+ GITHUB_APP_ID: ${{ secrets.GRAPHQL_AUTH_APP_ID }}
18
+ GITHUB_APP_PRIVATE_KEY: ${{ secrets.GRAPHQL_AUTH_APP_PEM }}
19
+ SLACK_BOT_TOKEN: ${{ secrets.SLACK_ISSUE_BOT_TOKEN }}
@@ -0,0 +1,20 @@
1
+ # This workflow runs when a comment is made on the ticket
2
+ # If the comment starts with "label: " it tries to apply
3
+ # the label indicated in rest of comment.
4
+ # If the comment starts with "remove label: ", it tries
5
+ # to remove the indicated label.
6
+ # Note: Labels are allowed to have spaces and this script does
7
+ # not parse spaces (as often a space is legitimate), so the command
8
+ # "label: really long lots of words label" will apply the
9
+ # label "really long lots of words label"
10
+
11
+ name: Allows for the adding and removing of labels via comment
12
+
13
+ on:
14
+ issue_comment:
15
+ types: [created]
16
+
17
+ jobs:
18
+ add_remove_labels:
19
+ uses: openedx/.github/.github/workflows/add-remove-label-on-comment.yml@master
20
+
@@ -0,0 +1,10 @@
1
+ # Run commitlint on the commit messages in a pull request.
2
+
3
+ name: Lint Commit Messages
4
+
5
+ on:
6
+ - pull_request
7
+
8
+ jobs:
9
+ commitlint:
10
+ uses: openedx/.github/.github/workflows/commitlint.yml@master
@@ -0,0 +1,53 @@
1
+ name: JavaScript Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches:
8
+ - "**"
9
+
10
+ jobs:
11
+ javascript-tests:
12
+ name: Run JavaScript Tests
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ node-version: [24]
17
+
18
+ steps:
19
+ - name: Check out repository
20
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
21
+
22
+ - name: Set up Node.js ${{ matrix.node-version }}
23
+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
24
+ with:
25
+ node-version: ${{ matrix.node-version }}
26
+ cache: "npm"
27
+
28
+ - name: Install Latest Firefox
29
+ run: |
30
+ sudo apt-get purge -y firefox
31
+ LATEST_VERSION=$(curl -s https://product-details.mozilla.org/1.0/firefox_versions.json | jq -r '.LATEST_FIREFOX_VERSION')
32
+ echo "Latest Firefox version is $LATEST_VERSION"
33
+ wget "https://ftp.mozilla.org/pub/firefox/releases/${LATEST_VERSION}/linux-x86_64/en-US/firefox-${LATEST_VERSION}.tar.xz" -O firefox.tar.xz
34
+ tar -xJf firefox.tar.xz
35
+ sudo mv firefox /opt/firefox
36
+ sudo ln -sf /opt/firefox/firefox /usr/bin/firefox
37
+
38
+ - name: Install Required System Packages
39
+ run: |
40
+ sudo apt-get update
41
+ sudo apt-get install -y libxmlsec1-dev ubuntu-restricted-extras xvfb
42
+
43
+ - name: Install npm dependencies
44
+ run: npm ci
45
+
46
+ - name: Install external dependencies
47
+ run: npm run setup-tests
48
+
49
+ - name: Build project
50
+ run: npm run build
51
+
52
+ - name: Run tests
53
+ run: npm run test-ci
@@ -0,0 +1,46 @@
1
+ name: Python Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches:
8
+ - "**"
9
+ # Called from release.yml before publishing on push to main.
10
+ workflow_call:
11
+
12
+ jobs:
13
+ python-tests:
14
+ name: ${{ matrix.toxenv }}
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ python-version: ["3.12"]
20
+ toxenv: [quality, docs, django42, django52]
21
+
22
+ steps:
23
+ - name: Check out repository
24
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
25
+
26
+ - name: Install uv
27
+ uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
28
+ with:
29
+ enable-cache: true
30
+ python-version: "${{ matrix.python-version }}"
31
+
32
+ - name: Install CI dependencies
33
+ run: uv sync --group ci
34
+
35
+ - name: Run tests with Tox (${{ matrix.toxenv }})
36
+ env:
37
+ TOXENV: ${{ matrix.toxenv }}
38
+ run: uv run tox
39
+
40
+ - name: Upload coverage to Codecov
41
+ if: matrix.python-version == '3.12' && matrix.toxenv == 'django42'
42
+ uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v6.0.2
43
+ with:
44
+ token: ${{ secrets.CODECOV_TOKEN }}
45
+ flags: unittests
46
+ fail_ci_if_error: true
@@ -0,0 +1,120 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ run_tests:
9
+ uses: ./.github/workflows/python-tests.yml
10
+ secrets: inherit
11
+ permissions:
12
+ contents: read
13
+
14
+ release:
15
+ needs: run_tests
16
+ runs-on: ubuntu-latest
17
+ if: github.ref_name == 'main'
18
+ concurrency:
19
+ group: ${{ github.workflow }}-release-${{ github.ref_name }}
20
+ cancel-in-progress: false
21
+
22
+ permissions:
23
+ contents: write
24
+
25
+ steps:
26
+ # Checkout at the branch that triggered the workflow, then force-reset to
27
+ # the exact sha so we don't accidentally release commits that arrived
28
+ # while this workflow was running.
29
+ - name: Setup | Checkout Repository on Release Branch
30
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
31
+ with:
32
+ ref: ${{ github.ref_name }}
33
+
34
+ - name: Setup | Force release branch to workflow sha
35
+ run: git reset --hard ${{ github.sha }}
36
+
37
+ - name: Set up Python
38
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
39
+ with:
40
+ python-version: "3.12"
41
+
42
+ - name: Set up Node.js
43
+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
44
+ with:
45
+ node-version: 24
46
+
47
+ - name: Install npm dependencies and build
48
+ run: |
49
+ npm ci
50
+ npm run build
51
+
52
+ - name: Action | Semantic Version Release
53
+ id: release
54
+ uses: python-semantic-release/python-semantic-release@9a026e9303981c866c3425723009becb2437c757 # v10.6.2
55
+ with:
56
+ github_token: ${{ secrets.GITHUB_TOKEN }}
57
+ git_committer_name: "github-actions"
58
+ git_committer_email: "actions@users.noreply.github.com"
59
+ changelog: "false"
60
+ # Commit, tag, push and build, but don't create the GitHub release.
61
+ # We create it ourselves in the next step so that the distributions
62
+ # are attached before the release is published. See that step for why.
63
+ vcs_release: "false"
64
+
65
+ # This repo has immutable releases enabled, which freezes a release's
66
+ # assets the moment it is published, so assets cannot be attached
67
+ # afterwards. `gh release create` handles this by creating the release as
68
+ # a draft, uploading the assets, and only then publishing it:
69
+ # https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/immutable-releases
70
+ - name: Publish | Create GitHub Release with Assets
71
+ if: steps.release.outputs.released == 'true'
72
+ env:
73
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
74
+ # Reuse the release notes python-semantic-release generated for us.
75
+ RELEASE_NOTES: ${{ steps.release.outputs.release_notes }}
76
+ TAG: ${{ steps.release.outputs.tag }}
77
+ run: |
78
+ # Output the release notes to a file
79
+ printf '%s' "$RELEASE_NOTES" > "$RUNNER_TEMP/release_notes.md"
80
+ # Create a draft release, upload the assets, then publish it.
81
+ gh release create "$TAG" \
82
+ --verify-tag \
83
+ --title "$TAG" \
84
+ --notes-file "$RUNNER_TEMP/release_notes.md" \
85
+ dist/*
86
+
87
+ - name: Upload | Distribution Artifacts
88
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
89
+ if: steps.release.outputs.released == 'true'
90
+ with:
91
+ name: distribution-artifacts
92
+ path: dist/
93
+ if-no-files-found: error
94
+
95
+ outputs:
96
+ released: ${{ steps.release.outputs.released || 'false' }}
97
+ version: ${{ steps.release.outputs.version }}
98
+
99
+ publish_to_pypi:
100
+ # Separate from the release job for least privilege and retry-ability:
101
+ # publishing can fail independently and shouldn't require reversing the release.
102
+ runs-on: ubuntu-latest
103
+ needs: release
104
+ if: github.ref_name == 'main' && needs.release.outputs.released == 'true'
105
+
106
+ permissions:
107
+ contents: read
108
+
109
+ steps:
110
+ - name: Download Distribution Artifacts
111
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
112
+ with:
113
+ name: distribution-artifacts
114
+ path: dist/
115
+
116
+ - name: Publish to PyPI
117
+ uses: pypa/gh-action-pypi-publish@release/v1
118
+ with:
119
+ user: __token__
120
+ password: ${{ secrets.PYPI_UPLOAD_TOKEN }}
@@ -0,0 +1,12 @@
1
+ # This workflow runs when a comment is made on the ticket
2
+ # If the comment starts with "assign me" it assigns the author to the
3
+ # ticket (case insensitive)
4
+
5
+ name: Assign comment author to ticket if they say "assign me"
6
+ on:
7
+ issue_comment:
8
+ types: [created]
9
+
10
+ jobs:
11
+ self_assign_by_comment:
12
+ uses: openedx/.github/.github/workflows/self-assign-issue.yml@master
@@ -0,0 +1,27 @@
1
+ name: Upgrade Python Requirements
2
+
3
+ on:
4
+ schedule:
5
+ - cron: "0 0 * * 1"
6
+ workflow_dispatch:
7
+ inputs:
8
+ branch:
9
+ description: "Target branch against which to create requirements PR"
10
+ required: true
11
+ default: 'main'
12
+
13
+ jobs:
14
+ call-upgrade-python-requirements-workflow:
15
+ uses: openedx/.github/.github/workflows/upgrade-python-requirements.yml@master
16
+ with:
17
+ branch: ${{ github.event.inputs.branch || 'main' }}
18
+ # optional parameters below; fill in if you'd like github or email notifications
19
+ # user_reviewers: ""
20
+ team_reviewers: "axim-aximprovements"
21
+ email_address: "aximimprovements@axim.org"
22
+ send_success_notification: false
23
+ secrets:
24
+ requirements_bot_github_token: ${{ secrets.REQUIREMENTS_BOT_GITHUB_TOKEN }}
25
+ requirements_bot_github_email: ${{ secrets.REQUIREMENTS_BOT_GITHUB_EMAIL }}
26
+ edx_smtp_username: ${{ secrets.EDX_SMTP_USERNAME }}
27
+ edx_smtp_password: ${{ secrets.EDX_SMTP_PASSWORD }}
@@ -0,0 +1,27 @@
1
+ # .readthedocs.yml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Build documentation in the docs/ directory with Sphinx
9
+ sphinx:
10
+ configuration: docs/conf.py
11
+ fail_on_warning: true
12
+
13
+ # Set the version of python needed to build these docs.
14
+ build:
15
+ os: "ubuntu-lts-latest"
16
+ tools:
17
+ python: "3.12"
18
+
19
+ python:
20
+ install:
21
+ - requirements: requirements/doc.txt
22
+
23
+ # This will pip install this repo into the python environment
24
+ # if you are using this in a repo that is not pip installable
25
+ # then you should remove the following two lines.
26
+ - method: pip
27
+ path: .