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.
- xblocks_core-2.0.0/.editorconfig +100 -0
- xblocks_core-2.0.0/.github/PULL_REQUEST_TEMPLATE.md +10 -0
- xblocks_core-2.0.0/.github/dependabot.yml +7 -0
- xblocks_core-2.0.0/.github/workflows/add-depr-ticket-to-depr-board.yml +19 -0
- xblocks_core-2.0.0/.github/workflows/add-remove-label-on-comment.yml +20 -0
- xblocks_core-2.0.0/.github/workflows/commitlint.yml +10 -0
- xblocks_core-2.0.0/.github/workflows/javascript-tests.yml +53 -0
- xblocks_core-2.0.0/.github/workflows/python-tests.yml +46 -0
- xblocks_core-2.0.0/.github/workflows/release.yml +120 -0
- xblocks_core-2.0.0/.github/workflows/self-assign-issue.yml +12 -0
- xblocks_core-2.0.0/.github/workflows/upgrade-python-requirements.yml +27 -0
- xblocks_core-2.0.0/.readthedocs.yaml +27 -0
- xblocks_core-2.0.0/LICENSE.txt +664 -0
- xblocks_core-2.0.0/MANIFEST.in +23 -0
- xblocks_core-2.0.0/Makefile +111 -0
- xblocks_core-2.0.0/PKG-INFO +366 -0
- xblocks_core-2.0.0/README.rst +317 -0
- xblocks_core-2.0.0/catalog-info.yaml +18 -0
- xblocks_core-2.0.0/codecov.yml +12 -0
- xblocks_core-2.0.0/docs/Makefile +230 -0
- xblocks_core-2.0.0/docs/_static/theme_overrides.css +10 -0
- xblocks_core-2.0.0/docs/changelog.rst +4 -0
- xblocks_core-2.0.0/docs/concepts/index.rst +2 -0
- xblocks_core-2.0.0/docs/conf.py +547 -0
- xblocks_core-2.0.0/docs/decisions/0001-purpose-of-this-repo.rst +30 -0
- xblocks_core-2.0.0/docs/decisions/0002-pointer-tags-handling.rst +118 -0
- xblocks_core-2.0.0/docs/decisions/README.rst +8 -0
- xblocks_core-2.0.0/docs/decisions.rst +12 -0
- xblocks_core-2.0.0/docs/getting_started.rst +18 -0
- xblocks_core-2.0.0/docs/how-tos/index.rst +2 -0
- xblocks_core-2.0.0/docs/index.rst +34 -0
- xblocks_core-2.0.0/docs/internationalization.rst +97 -0
- xblocks_core-2.0.0/docs/make.bat +281 -0
- xblocks_core-2.0.0/docs/quickstarts/index.rst +2 -0
- xblocks_core-2.0.0/docs/readme.rst +1 -0
- xblocks_core-2.0.0/docs/references/index.rst +2 -0
- xblocks_core-2.0.0/docs/testing.rst +44 -0
- xblocks_core-2.0.0/docs/xblocks_core.legacy_utils.rst +21 -0
- xblocks_core-2.0.0/docs/xblocks_core.rst +18 -0
- xblocks_core-2.0.0/pylintrc +396 -0
- xblocks_core-2.0.0/pylintrc_tweaks +13 -0
- xblocks_core-2.0.0/pyproject.toml +235 -0
- xblocks_core-2.0.0/renovate.json +6 -0
- xblocks_core-2.0.0/setup.cfg +4 -0
- xblocks_core-2.0.0/src/xblock_annotatable/.tx/config +8 -0
- xblocks_core-2.0.0/src/xblock_annotatable/__init__.py +5 -0
- xblocks_core-2.0.0/src/xblock_annotatable/block.py +307 -0
- xblocks_core-2.0.0/src/xblock_annotatable/conf/locale/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_annotatable/conf/locale/config.yaml +93 -0
- xblocks_core-2.0.0/src/xblock_annotatable/static/css/annotatable.css +188 -0
- xblocks_core-2.0.0/src/xblock_annotatable/static/css/annotatable_editor.css +12 -0
- xblocks_core-2.0.0/src/xblock_annotatable/static/js/src/annotatable.js +367 -0
- xblocks_core-2.0.0/src/xblock_annotatable/static/js/src/annotatable_editor.js +74 -0
- xblocks_core-2.0.0/src/xblock_annotatable/templates/annotatable.html +24 -0
- xblocks_core-2.0.0/src/xblock_annotatable/templates/annotatable_editor.html +20 -0
- xblocks_core-2.0.0/src/xblock_discussion/.tx/config +8 -0
- xblocks_core-2.0.0/src/xblock_discussion/__init__.py +5 -0
- xblocks_core-2.0.0/src/xblock_discussion/apps.py +53 -0
- xblocks_core-2.0.0/src/xblock_discussion/block.py +265 -0
- xblocks_core-2.0.0/src/xblock_discussion/conf/locale/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_discussion/conf/locale/config.yaml +93 -0
- xblocks_core-2.0.0/src/xblock_discussion/public/css/inline-discussion-rtl.css +4572 -0
- xblocks_core-2.0.0/src/xblock_discussion/public/css/inline-discussion.css +4572 -0
- xblocks_core-2.0.0/src/xblock_discussion/public/js/discussion_bundle.js +2 -0
- xblocks_core-2.0.0/src/xblock_discussion/templates/_discussion_inline_studio.html +16 -0
- xblocks_core-2.0.0/src/xblock_discussion/templates/discussion_templates/_discussion_inline.html +49 -0
- xblocks_core-2.0.0/src/xblock_discussion/templates/discussion_templates/_thread_list_template.html +55 -0
- xblocks_core-2.0.0/src/xblock_discussion/templates/discussion_templates/_underscore_templates.html +19 -0
- xblocks_core-2.0.0/src/xblock_discussion/templates/discussion_templates/templates.underscore +889 -0
- xblocks_core-2.0.0/src/xblock_html/.tx/config +8 -0
- xblocks_core-2.0.0/src/xblock_html/__init__.py +6 -0
- xblocks_core-2.0.0/src/xblock_html/block.py +498 -0
- xblocks_core-2.0.0/src/xblock_html/conf/locale/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_html/conf/locale/config.yaml +93 -0
- xblocks_core-2.0.0/src/xblock_html/static/css/html.css +297 -0
- xblocks_core-2.0.0/src/xblock_html/templates/html/announcement.yaml +18 -0
- xblocks_core-2.0.0/src/xblock_html/templates/html/anon_user_id.yaml +19 -0
- xblocks_core-2.0.0/src/xblock_html/templates/html/iframe.yaml +32 -0
- xblocks_core-2.0.0/src/xblock_html/templates/html/raw.yaml +9 -0
- xblocks_core-2.0.0/src/xblock_html/templates/html/zooming_image.yaml +239 -0
- xblocks_core-2.0.0/src/xblock_lti/.tx/config +8 -0
- xblocks_core-2.0.0/src/xblock_lti/__init__.py +7 -0
- xblocks_core-2.0.0/src/xblock_lti/block.py +1018 -0
- xblocks_core-2.0.0/src/xblock_lti/conf/locale/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_lti/conf/locale/config.yaml +93 -0
- xblocks_core-2.0.0/src/xblock_lti/lti_2_util.py +388 -0
- xblocks_core-2.0.0/src/xblock_lti/static/css/lti.css +57 -0
- xblocks_core-2.0.0/src/xblock_lti/static/js/src/lti.js +23 -0
- xblocks_core-2.0.0/src/xblock_lti/templates/lti.html +73 -0
- xblocks_core-2.0.0/src/xblock_lti/templates/lti_form.html +38 -0
- xblocks_core-2.0.0/src/xblock_pdf/__init__.py +3 -0
- xblocks_core-2.0.0/src/xblock_pdf/block.py +129 -0
- xblocks_core-2.0.0/src/xblock_pdf/js_tests/jquery.d.ts +5 -0
- xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/helpers/loadAsElement.js +1 -0
- xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/helpers/loadAsJQuery.js +1 -0
- xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/helpers/mockRuntime.js +23 -0
- xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/helpers/proveJQuery.js +12 -0
- xblocks_core-2.0.0/src/xblock_pdf/js_tests/specs/pdf.spec.ts +76 -0
- xblocks_core-2.0.0/src/xblock_pdf/js_tests/tsconfig.json +10 -0
- xblocks_core-2.0.0/src/xblock_pdf/js_tests/vitest.config.ts +15 -0
- xblocks_core-2.0.0/src/xblock_pdf/static/js/pdf.js +17 -0
- xblocks_core-2.0.0/src/xblock_pdf/templates/html/pdf.html +22 -0
- xblocks_core-2.0.0/src/xblock_pdf/utils.py +13 -0
- xblocks_core-2.0.0/src/xblock_poll_question/.tx/config +8 -0
- xblocks_core-2.0.0/src/xblock_poll_question/__init__.py +5 -0
- xblocks_core-2.0.0/src/xblock_poll_question/block.py +311 -0
- xblocks_core-2.0.0/src/xblock_poll_question/conf/locale/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_poll_question/conf/locale/config.yaml +93 -0
- xblocks_core-2.0.0/src/xblock_poll_question/static/css/poll.css +356 -0
- xblocks_core-2.0.0/src/xblock_poll_question/static/js/src/poll.js +196 -0
- xblocks_core-2.0.0/src/xblock_poll_question/templates/poll.html +7 -0
- xblocks_core-2.0.0/src/xblock_problem/.tx/config +8 -0
- xblocks_core-2.0.0/src/xblock_problem/__init__.py +5 -0
- xblocks_core-2.0.0/src/xblock_problem/block.py +2728 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/apps.py +54 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/capa_problem.py +1241 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/checker.py +174 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/correctmap.py +217 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/customrender.py +195 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/errors.py +62 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/inputtypes.py +1819 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/registry.py +57 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/responsetypes.py +3867 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/README.rst +43 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/__init__.py +4 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/exceptions.py +21 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/lazymod.py +43 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/remote_exec.py +142 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/safe_exec.py +506 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/test_files/pylib/constant.py +3 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/test_lazymod.py +62 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/test_remote_exec.py +35 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/safe_exec/tests/test_safe_exec.py +782 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/applets/Protex.jar +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/applets/genex.jar +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX2E0-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX2E1-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX2E2-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX2E3-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX3E0-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX3E1-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX3E2-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX4E0-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX4E1-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX4E2-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX5E1-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX5E2-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX6E0-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX6E1-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX7E0-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX8E0-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/AX9E0-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Bent-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Linear-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Linear-stick.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Octahedral-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Octahedral-stick.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Pentagonal-bipyramidal-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Pentagonal-planar-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Pentagonal-pyramidal-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Pyramidal-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Seesaw-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Square-antiprismatic-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Square-planar-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/T-shaped-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Tetrahedral-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Tetrahedral-stick.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Trigonal-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Trigonal-bipyramidal-3D-balls.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Trigonal-bipyramidal-stick.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/images/vsepr/Trigonal-planar-stick.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/README +1 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/annotationinput.js +98 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/chemical_equation_preview.js +36 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/choicetextinput.js +73 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/design-protein-2d.js +85 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/base_image.js +45 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/config_parser.js +271 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/container.js +13 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggable_events.js +143 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggable_logic.js +400 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggables.js +281 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/main.js +107 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/scroller.js +162 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/state.js +95 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/targets.js +266 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop/update_input.js +373 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/drag_and_drop.js +25 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/edit-a-gene.js +71 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/21B31BA00E7CE7B6BD63DD13A8586A45.cache.html +652 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/63308EE54E8033A708B414CAC05B0C32.cache.html +642 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/7AC57DC6EC8C1D8672DDF6E6D4EF57CC.cache.html +628 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/9B4F4D4EFA24CDE2E4287CC07897F249.cache.html +654 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/A069AC107D79C29D6237614AC340F0C0.cache.html +652 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/C6220FCC8B9234FEAD8D826A73C6D2A4.cache.html +642 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/clear.cache.gif +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/genex.css +122 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/genex.nocache.js +18 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/hosted.html +365 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/circles.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/circles_ie6.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/corner.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/corner_ie6.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/hborder.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/hborder_ie6.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/thumb_horz.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/thumb_vertical.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/vborder.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/genex/images/vborder_ie6.png +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.css +9 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.html +15 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.js +86 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/39CC89519B0E1FCB47B935AC9FE13D7B.cache.html +743 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/6E05B1CD5BFCAF7D53C7C64D84318178.cache.html +750 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/C824A958AB642DC2213DFFDAC640BEAA.cache.html +760 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/D9267DE8FB02F8B995B4A58C66C76E29.cache.html +758 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/F275492F7098103BCB05F4F86ABF6218.cache.html +750 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/F3301B0E65F38C7FCF2EF3764B3BB0B6.cache.html +754 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/clear.cache.gif +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/hosted.html +365 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/protex.css +57 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/protex.nocache.js +18 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/protex/scrollTableLoading.gif +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/schematicinput.js +49 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/src/formula_equation_preview.js +221 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/src/jschannel.js +790 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/src/jsinput.js +221 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/capa/symbolic_mathjax_preprocessor.js +35 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/static/js/vendor/CodeMirror/octave.js +118 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/annotationinput.html +61 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/chemicalequationinput.html +19 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/choicegroup.html +41 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/choicetext.html +61 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/clarification.html +10 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/codeinput.html +31 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/crystallography.html +29 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/designprotein2dinput.html +25 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/drag_and_drop_input.html +27 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/editageneinput.html +32 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/editamolecule.html +32 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/filesubmission.html +16 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/formulaequationinput.html +29 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/imageinput.html +33 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/jsinput.html +42 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/mathstring.html +8 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/matlabinput.html +121 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/optioninput.html +20 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/problem.html +154 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/problem_ajax.html +16 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/problem_notifications.html +19 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/schematicinput.html +18 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/solutionspan.html +3 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/status_span.html +12 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/textline.html +39 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/templates/vsepr_input.html +38 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/testing/__init__.py +7 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/testing/codejail.py +31 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/testing/response_xml_factory.py +934 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/helpers.py +119 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_answer_pool.py +672 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_capa_problem.py +824 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_correctmap.py +195 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_customrender.py +87 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_errors.py +63 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_hint_functionality.py +1134 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_html_render.py +318 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_input_templates.py +1187 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_inputtypes.py +1732 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_responsetypes.py +2781 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_shuffle.py +320 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_targeted_feedback.py +654 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_util.py +167 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_xqueue_interface.py +74 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/tests/test_xqueue_submission.py +125 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/util.py +252 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/xqueue_interface.py +185 -0
- xblocks_core-2.0.0/src/xblock_problem/capa/xqueue_submission.py +111 -0
- xblocks_core-2.0.0/src/xblock_problem/conf/locale/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_problem/conf/locale/config.yaml +93 -0
- xblocks_core-2.0.0/src/xblock_problem/markup.py +33 -0
- xblocks_core-2.0.0/src/xblock_problem/public/css/ProblemBlockDisplay.css +2306 -0
- xblocks_core-2.0.0/src/xblock_problem/public/js/ProblemBlockDisplay.js +1 -0
- xblocks_core-2.0.0/src/xblock_problem/stringify.py +33 -0
- xblocks_core-2.0.0/src/xblock_problem/xmlparser.py +146 -0
- xblocks_core-2.0.0/src/xblock_video/.tx/config +8 -0
- xblocks_core-2.0.0/src/xblock_video/__init__.py +5 -0
- xblocks_core-2.0.0/src/xblock_video/ajax_handler_mixin.py +52 -0
- xblocks_core-2.0.0/src/xblock_video/block.py +1184 -0
- xblocks_core-2.0.0/src/xblock_video/bumper_utils.py +147 -0
- xblocks_core-2.0.0/src/xblock_video/cache_utils.py +97 -0
- xblocks_core-2.0.0/src/xblock_video/conf/locale/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_video/conf/locale/config.yaml +93 -0
- xblocks_core-2.0.0/src/xblock_video/constants.py +17 -0
- xblocks_core-2.0.0/src/xblock_video/exceptions.py +11 -0
- xblocks_core-2.0.0/src/xblock_video/mixin.py +58 -0
- xblocks_core-2.0.0/src/xblock_video/public/css/video.css +1260 -0
- xblocks_core-2.0.0/src/xblock_video/public/js/video-xblock.js +2 -0
- xblocks_core-2.0.0/src/xblock_video/studio_metadata_mixin.py +166 -0
- xblocks_core-2.0.0/src/xblock_video/templates/video.html +213 -0
- xblocks_core-2.0.0/src/xblock_video/validation.py +129 -0
- xblocks_core-2.0.0/src/xblock_video/video_handlers.py +514 -0
- xblocks_core-2.0.0/src/xblock_video/video_static_content_utils.py +49 -0
- xblocks_core-2.0.0/src/xblock_video/video_transcripts_utils.py +236 -0
- xblocks_core-2.0.0/src/xblock_video/video_utils.py +178 -0
- xblocks_core-2.0.0/src/xblock_video/video_xfields.py +229 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/.tx/config +8 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/__init__.py +3 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/block.py +295 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/conf/locale/__init__.py +0 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/conf/locale/config.yaml +93 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/static/css/word_cloud.css +29 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/static/js/src/d3.layout.cloud.js +434 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/static/js/src/d3.min.js +37 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/static/js/src/html_utils.js +75 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/static/js/src/word_cloud.js +289 -0
- xblocks_core-2.0.0/src/xblock_word_cloud/templates/word_cloud.html +50 -0
- xblocks_core-2.0.0/src/xblocks_core/__init__.py +11 -0
- xblocks_core-2.0.0/src/xblocks_core/legacy_utils/__init__.py +6 -0
- xblocks_core-2.0.0/src/xblocks_core/legacy_utils/xml_utils.py +584 -0
- xblocks_core-2.0.0/src/xblocks_core.egg-info/PKG-INFO +366 -0
- xblocks_core-2.0.0/src/xblocks_core.egg-info/SOURCES.txt +330 -0
- xblocks_core-2.0.0/src/xblocks_core.egg-info/dependency_links.txt +1 -0
- xblocks_core-2.0.0/src/xblocks_core.egg-info/entry_points.txt +18 -0
- xblocks_core-2.0.0/src/xblocks_core.egg-info/requires.txt +28 -0
- xblocks_core-2.0.0/src/xblocks_core.egg-info/scm_file_list.json +605 -0
- xblocks_core-2.0.0/src/xblocks_core.egg-info/top_level.txt +10 -0
- xblocks_core-2.0.0/test_settings.py +92 -0
- xblocks_core-2.0.0/tox.ini +51 -0
- 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,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,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: .
|