diff --git a/.github/workflows/create-github-release.yml b/.github/workflows/create-github-release.yml new file mode 100644 index 00000000..960480bd --- /dev/null +++ b/.github/workflows/create-github-release.yml @@ -0,0 +1,42 @@ +name: Create a new GitHub Release + +on: + workflow_dispatch: + +jobs: + create-github-release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: 3.11 + + - name: Install dev requirements + run: make requirements + + - name: Install pandoc for using scriv with RST + run: sudo apt install -y pandoc + + - name: Configure Git user + run: | + git config user.name 'github-actions[bot]' + git config user.email 'github-actions[bot]@users.noreply.github.com' + + - name: Read current version + id: version + run: | + echo "CURRENT_VERSION=$(bump-my-version show current_version)" >> $GITHUB_OUTPUT + + - name: Create and push Git tag + env: + CURRENT_VERSION: ${{ steps.version.outputs.CURRENT_VERSION }} + run: | + git tag -a "v$CURRENT_VERSION" -m "Release v$CURRENT_VERSION" + git push origin "v$CURRENT_VERSION" + + - name: Create GitHub release + env: + GITHUB_TOKEN: ${{ github.token }} + run: scriv github-release --repo=openedx/openedx-filters diff --git a/.github/workflows/create-release-pr.yml b/.github/workflows/create-release-pr.yml new file mode 100644 index 00000000..af924f72 --- /dev/null +++ b/.github/workflows/create-release-pr.yml @@ -0,0 +1,62 @@ +name: Create a Release Pull Request + +on: + workflow_dispatch: + inputs: + semver-type: + description: "Semantic version to be released" + required: true + type: choice + options: + - "major" + - "minor" + - "patch" + +jobs: + create-release-pr: + runs-on: ubuntu-latest + env: + SEMVER_TYPE: ${{ github.event.inputs.semver-type }} + + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: 3.11 + + - name: Install dev requirements + run: make requirements + + - name: Configure git user + run: | + git config user.name 'github-actions[bot]' + git config user.email 'github-actions[bot]@users.noreply.github.com' + + - name: Calculate current and next version + id: version + run: | + echo "CURRENT_VERSION=$(bump-my-version show current_version)" >> $GITHUB_OUTPUT + echo "NEW_VERSION=$(bump-my-version show --increment $SEMVER_TYPE new_version)" >> $GITHUB_OUTPUT + + - name: Execute bump version + run: bump-my-version bump $SEMVER_TYPE + + - name: Collect changelog entries + run: make changelog-collect + + - name: Create pull request + uses: peter-evans/create-pull-request@v7 + env: + GITHUB_TOKEN: ${{ github.token }} + CURRENT_VERSION: ${{ steps.version.outputs.CURRENT_VERSION }} + NEW_VERSION: ${{ steps.version.outputs.NEW_VERSION }} + with: + commit-message: "chore: bump version `v${{ env.CURRENT_VERSION }}` → `v${{ env.NEW_VERSION }}`" + title: "Release `v${{ env.NEW_VERSION }}`" + body: | + ### Description + + This PR bumps the version from `v${{ env.CURRENT_VERSION }}` to `v${{ env.NEW_VERSION }}`. + + The changelog has been automatically generated using `scriv`. + branch: release-v${{ env.NEW_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index cfad5206..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Create a new GitHub Release - -on: - workflow_dispatch: - inputs: - tag: - description: "The type of version bump" - required: true - type: choice - options: - - "major" - - "minor" - - "patch" - -jobs: - release: - runs-on: ubuntu-latest - env: - TAG: ${{ github.event.inputs.tag }} - - steps: - - name: Checkout - uses: actions/checkout@v5 - - - name: Set up Python - uses: actions/setup-python@v6 - with: - python-version: 3.11 - - - name: Install requirements - run: pip install scriv bump-my-version - - - name: Install pandoc for scriv - run: sudo apt install -y pandoc - - - name: Set up Git - run: | - git config user.name 'github-actions[bot]' - git config user.email 'github-actions[bot]@users.noreply.github.com' - - - name: Get current and new version - id: version - run: | - echo "CURRENT_VERSION=$(bump-my-version show current_version)" >> $GITHUB_OUTPUT - echo "NEW_VERSION=$(bump-my-version show --increment $TAG new_version)" >> $GITHUB_OUTPUT - - - name: Bump version - run: bump-my-version bump $TAG - - - name: Collect changelog - run: make changelog - - - name: Commit changes and create tag - uses: stefanzweifel/git-auto-commit-action@v6 - with: - branch: ${{ github.ref }} - commit_message: "chore: bump version ${{ steps.version.outputs.CURRENT_VERSION }} → ${{ steps.version.outputs.NEW_VERSION }}" - tagging_message: "v${{ steps.version.outputs.NEW_VERSION }}" - - - name: Create GitHub release - run: scriv github-release --repo=openedx/openedx-filters - env: - GITHUB_TOKEN: ${{ github.token }} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 364e6e58..e0d9f591 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -22,17 +22,24 @@ Change Log - Edit and commit the newly-created file in the `changelog.d` folder following the instructions in the file. - If you need to create a new release: + If you need to create a new release: - - There is a `relese.yml` workflow to create a new release. You can trigger - it manually in the Actions tab in GitHub. The workflow will bump the - version, update the changelog, create a tag, and create a new GitHub - release! 🚀 + - There are two workflows for creating releases: -Unreleased ----------- + 1. ``create-release-pr.yml`` - Creates a release pull request with version + bump and changelog collection. You can trigger it manually in the + Actions tab, selecting the semantic version type (major/minor/patch). + + 2. ``create-github-release.yml`` - Creates the actual GitHub release and tag. + Run this after merging the release PR to complete the release process! 🚀 + + +This file includes a history of past releases. Changes that were not yet added to a release are in the [changelog.d/](./changelog.d) folder. + +.. scriv-insert-here [2.1.0] - 2025-04-23 +-------------------- Added ~~~~~ @@ -40,10 +47,6 @@ Added * Added django52 support. * Also releasing pending items. -See the fragment files in the `changelog.d directory`_. -.. _changelog.d directory: https://github.com/openedx/openedx-filters/tree/master/changelog.d -.. scriv-insert-here - [2.0.1] - 2025-02-18 -------------------- diff --git a/Makefile b/Makefile index 00e5c4e0..21e68448 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ docs: ## generate Sphinx HTML documentation, including API docs changelog-entry: ## Create a new changelog entry scriv create -changelog: ## Collect changelog entries in the CHANGELOG.rst file +changelog-collect: ## Collect changelog entries in the CHANGELOG.rst file scriv collect # Define PIP_COMPILE_OPTS=-v to get more information during make upgrade. diff --git a/changelog.d/20250326_102750_bryann.valderrama_add_changelog_entries.rst b/changelog.d/20250326_102750_bryann.valderrama_add_changelog_entries.rst index 3a1e81dd..d8a91fb5 100644 --- a/changelog.d/20250326_102750_bryann.valderrama_add_changelog_entries.rst +++ b/changelog.d/20250326_102750_bryann.valderrama_add_changelog_entries.rst @@ -1,3 +1,3 @@ Added ~~~~~ -* New documentation section with naming suggestions for creating filters. (by @mariajgrimaldi) +* New documentation section with naming suggestions for creating filters. (by @mariajgrimaldi in #264) diff --git a/changelog.d/20250326_103610_bryann.valderrama_add_changelog_entries.rst b/changelog.d/20250326_103610_bryann.valderrama_add_changelog_entries.rst index 5e4e1fd2..055c9cc8 100644 --- a/changelog.d/20250326_103610_bryann.valderrama_add_changelog_entries.rst +++ b/changelog.d/20250326_103610_bryann.valderrama_add_changelog_entries.rst @@ -1,3 +1,3 @@ Changed ~~~~~~~ -* Updated documentation titles and styles to follow the Open edX style guide. (by @Apgomeznext) +* Updated documentation titles and styles to follow the Open edX style guide. (by @Apgomeznext in #262 and #263) diff --git a/changelog.d/20250326_104004_bryann.valderrama_add_changelog_entries.rst b/changelog.d/20250326_104004_bryann.valderrama_add_changelog_entries.rst index 803180f5..706703d4 100644 --- a/changelog.d/20250326_104004_bryann.valderrama_add_changelog_entries.rst +++ b/changelog.d/20250326_104004_bryann.valderrama_add_changelog_entries.rst @@ -1,3 +1,3 @@ Changed ~~~~~~~ -* Updated the glossary section in the documentation. (by @Apgomeznext) +* Updated the glossary section in the documentation. (by @Apgomeznext in #266) diff --git a/changelog.d/20250326_104238_bryann.valderrama_add_changelog_entries.rst b/changelog.d/20250326_104238_bryann.valderrama_add_changelog_entries.rst index a8ae8a9f..f5f520f1 100644 --- a/changelog.d/20250326_104238_bryann.valderrama_add_changelog_entries.rst +++ b/changelog.d/20250326_104238_bryann.valderrama_add_changelog_entries.rst @@ -1,3 +1,3 @@ Changed ~~~~~~~ -* Improved how-to guides including updates to filters, samples, and formatting. (by @mariajgrimaldi) +* Improved how-to guides including updates to filters, samples, and formatting. (by @mariajgrimaldi in #260) diff --git a/changelog.d/20250326_110813_bryann.valderrama_add_changelog_entries.rst b/changelog.d/20250326_110813_bryann.valderrama_add_changelog_entries.rst index 18d5dec8..aabfc96c 100644 --- a/changelog.d/20250326_110813_bryann.valderrama_add_changelog_entries.rst +++ b/changelog.d/20250326_110813_bryann.valderrama_add_changelog_entries.rst @@ -1,3 +1,3 @@ Changed ~~~~~~~ -* Updated edX RTD link to Open edX RTD. (by @sarina) +* Updated edX RTD link to Open edX RTD. (by @sarina in #269) diff --git a/changelog.d/20250326_111322_bryann.valderrama_add_changelog_entries.rst b/changelog.d/20250326_111322_bryann.valderrama_add_changelog_entries.rst index cba26a0b..5629749f 100644 --- a/changelog.d/20250326_111322_bryann.valderrama_add_changelog_entries.rst +++ b/changelog.d/20250326_111322_bryann.valderrama_add_changelog_entries.rst @@ -1,3 +1,3 @@ Changed ~~~~~~~ -* Replaced the deprecated ``pydocstyle`` library with ``ruff``. (by @bryanttv) +* Replaced the deprecated ``pydocstyle`` library with ``ruff``. (by @bryanttv in #270) diff --git a/changelog.d/20250326_111517_bryann.valderrama_add_changelog_entries.rst b/changelog.d/20250326_111517_bryann.valderrama_add_changelog_entries.rst index 397249f3..bdf27671 100644 --- a/changelog.d/20250326_111517_bryann.valderrama_add_changelog_entries.rst +++ b/changelog.d/20250326_111517_bryann.valderrama_add_changelog_entries.rst @@ -1,3 +1,3 @@ Added ~~~~~ -* Migrate to ``scriv`` for manage changelog. (by @bryanttv) +* Migrate to ``scriv`` for manage changelog. (by @bryanttv in #268) diff --git a/changelog.d/20250401_114730_bryann.valderrama_add_config_formats_docs.rst b/changelog.d/20250401_114730_bryann.valderrama_add_config_formats_docs.rst index 190cdbf7..66dd4d59 100644 --- a/changelog.d/20250401_114730_bryann.valderrama_add_config_formats_docs.rst +++ b/changelog.d/20250401_114730_bryann.valderrama_add_config_formats_docs.rst @@ -1,3 +1,3 @@ Changed ~~~~~~~ -* Improved documentation of filter configuration including details on configuration formats. (by @bryanttv) +* Improved documentation of filter configuration including details on configuration formats. (by @bryanttv in #302) diff --git a/changelog.d/scriv/new_fragment.rst.j2 b/changelog.d/scriv/new_fragment.rst.j2 index ca8d581e..caedcc97 100644 --- a/changelog.d/scriv/new_fragment.rst.j2 +++ b/changelog.d/scriv/new_fragment.rst.j2 @@ -2,9 +2,11 @@ .. Please respect the following instructions: .. * Add a new bullet item for the category that best describes the change. -.. * You may optionally append "(by @)" at the end of the bullet item, -.. where @ is the GitHub username of the author of the change. These -.. affiliations will be displayed in the release notes for every release. +.. * You may optionally append "(by @ in #)" at the end of +.. the bullet item. This will be used to credit the PR author in the bullet +.. item, where is the GitHub username of the author of the change +.. and is the PR number of the change. These affiliations will +.. be displayed in the release notes for every release. .. * The accepted categories are: Added, Changed, Deprecated, Removed, Fixed, .. and Security. .. * Indicate breaking changes with a "**BREAKING CHANGE:**" prefix in the @@ -15,29 +17,29 @@ .. Added .. ~~~~~ .. * Added new ``CourseAccessFilter`` for controlling course content access. -.. * Added support for asynchronous filter execution. (by @developer) +.. * Added support for asynchronous filter execution. (by @developer in #1) .. Changed .. ~~~~~~~ .. * Improved filter pipeline performance. -.. * **BREAKING CHANGE:** Restructured filter response format for better consistency. (by @developer) +.. * **BREAKING CHANGE:** Restructured filter response format for better consistency. (by @developer in #2) .. Deprecated .. ~~~~~~~~~~ .. * Deprecated legacy filter registration method. -.. * Deprecated old filter pipeline format. (by @developer) +.. * Deprecated old filter pipeline format. (by @developer in #3) .. Removed .. ~~~~~~~ .. * Removed deprecated v1 filter interfaces. -.. * Removed support for synchronous-only filters. (by @developer) +.. * Removed support for synchronous-only filters. (by @developer in #4) .. Fixed .. ~~~~~ .. * Fixed memory leak in long-running filter chains. -.. * Fixed incorrect exception handling in filter pipeline. (by @developer) +.. * Fixed incorrect exception handling in filter pipeline. (by @developer in #5) .. Security .. ~~~~~~~~ .. * Enhanced filter input validation. -.. * Updated filter execution permissions model. (by @developer) +.. * Updated filter execution permissions model. (by @developer in #6) diff --git a/pyproject.toml b/pyproject.toml index 4bd8988f..12772c1c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [tool.bumpversion] -current_version = "2.0.1" +current_version = "2.1.0" tag = false commit = false diff --git a/requirements/base.txt b/requirements/base.txt index a3de3807..73e66e58 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,9 +4,9 @@ # # make upgrade # -asgiref==3.10.0 +asgiref==3.11.0 # via django -django==4.2.25 +django==5.2.8 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in @@ -14,11 +14,11 @@ dnspython==2.8.0 # via pymongo edx-opaque-keys[django]==3.0.0 # via -r requirements/base.in -pymongo==4.15.2 +pymongo==4.15.4 # via edx-opaque-keys -sqlparse==0.5.3 +sqlparse==0.5.4 # via django -stevedore==5.5.0 +stevedore==5.6.0 # via edx-opaque-keys typing-extensions==4.15.0 # via edx-opaque-keys diff --git a/requirements/ci.txt b/requirements/ci.txt index e53d1c71..735409a6 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,7 +4,7 @@ # # make upgrade # -cachetools==6.2.0 +cachetools==6.2.2 # via tox chardet==5.2.0 # via tox @@ -12,7 +12,7 @@ colorama==0.4.6 # via tox distlib==0.4.0 # via virtualenv -filelock==3.19.1 +filelock==3.20.0 # via # tox # virtualenv @@ -20,15 +20,15 @@ packaging==25.0 # via # pyproject-api # tox -platformdirs==4.4.0 +platformdirs==4.5.0 # via # tox # virtualenv pluggy==1.6.0 # via tox -pyproject-api==1.9.1 +pyproject-api==1.10.0 # via tox -tox==4.30.3 +tox==4.32.0 # via -r requirements/ci.in -virtualenv==20.34.0 +virtualenv==20.35.4 # via tox diff --git a/requirements/constraints.txt b/requirements/constraints.txt index d91704bb..82705b6d 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -10,3 +10,7 @@ # Common constraints for edx repos -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + +# bump-my-version 1.2.4 requires click<8.2.2 +# This constraint allows us to use the latest version of bump-my-version +click<8.2.2 diff --git a/requirements/dev.in b/requirements/dev.in index 4c73e330..7d5b84aa 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -7,3 +7,4 @@ diff-cover # Changeset diff test coverage scriv # Changelog management tool +bump-my-version # Version management tool diff --git a/requirements/dev.txt b/requirements/dev.txt index c4a6f0d7..3dfc690c 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,7 +4,11 @@ # # make upgrade # -asgiref==3.10.0 +annotated-types==0.7.0 + # via pydantic +anyio==4.11.0 + # via httpx +asgiref==3.11.0 # via # -r requirements/quality.txt # django @@ -13,23 +17,29 @@ astroid==3.3.11 # -r requirements/quality.txt # pylint # pylint-celery -attrs==25.3.0 +attrs==25.4.0 # via scriv backports-tarfile==1.2.0 # via # -r requirements/quality.txt # jaraco-context +bracex==2.6 + # via wcmatch build==1.3.0 # via # -r requirements/pip-tools.txt # pip-tools -cachetools==6.2.0 +bump-my-version==1.2.4 + # via -r requirements/dev.in +cachetools==6.2.2 # via # -r requirements/ci.txt # tox -certifi==2025.10.5 +certifi==2025.11.12 # via # -r requirements/quality.txt + # httpcore + # httpx # requests cffi==2.0.0 # via @@ -40,18 +50,21 @@ chardet==5.2.0 # -r requirements/ci.txt # diff-cover # tox -charset-normalizer==3.4.3 +charset-normalizer==3.4.4 # via # -r requirements/quality.txt # requests -click==8.3.0 +click==8.2.1 # via + # -c requirements/constraints.txt # -r requirements/pip-tools.txt # -r requirements/quality.txt + # bump-my-version # click-log # code-annotations # edx-lint # pip-tools + # rich-click # scriv click-log==0.4.0 # via @@ -66,17 +79,17 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.10.7 +coverage[toml]==7.12.0 # via # -r requirements/quality.txt # pytest-cov -cryptography==46.0.2 +cryptography==46.0.3 # via # -r requirements/quality.txt # secretstorage ddt==1.7.2 # via -r requirements/quality.txt -diff-cover==9.7.1 +diff-cover==9.7.2 # via -r requirements/dev.in dill==0.4.0 # via @@ -86,15 +99,15 @@ distlib==0.4.0 # via # -r requirements/ci.txt # virtualenv -django==4.2.25 +django==5.2.8 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt # django-stubs # django-stubs-ext -django-stubs==5.2.6 +django-stubs==5.2.7 # via -r requirements/quality.txt -django-stubs-ext==5.2.6 +django-stubs-ext==5.2.7 # via # -r requirements/quality.txt # django-stubs @@ -102,7 +115,7 @@ dnspython==2.8.0 # via # -r requirements/quality.txt # pymongo -docutils==0.22.2 +docutils==0.22.3 # via # -r requirements/quality.txt # readme-renderer @@ -110,24 +123,32 @@ edx-lint==5.6.0 # via -r requirements/quality.txt edx-opaque-keys[django]==3.0.0 # via -r requirements/quality.txt -filelock==3.19.1 +filelock==3.20.0 # via # -r requirements/ci.txt # tox # virtualenv +h11==0.16.0 + # via httpcore +httpcore==1.0.9 + # via httpx +httpx==0.28.1 + # via bump-my-version id==1.5.0 # via # -r requirements/quality.txt # twine -idna==3.10 +idna==3.11 # via # -r requirements/quality.txt + # anyio + # httpx # requests importlib-metadata==8.7.0 # via # -r requirements/quality.txt # keyring -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/quality.txt # pytest @@ -158,10 +179,14 @@ jinja2==3.1.6 # code-annotations # diff-cover # scriv -keyring==25.6.0 +keyring==25.7.0 # via # -r requirements/quality.txt # twine +librt==0.6.2 + # via + # -r requirements/quality.txt + # mypy markdown-it-py==4.0.0 # via # -r requirements/quality.txt @@ -184,13 +209,13 @@ more-itertools==10.8.0 # -r requirements/quality.txt # jaraco-classes # jaraco-functools -mypy==1.18.2 +mypy==1.19.0 # via -r requirements/quality.txt mypy-extensions==1.1.0 # via # -r requirements/quality.txt # mypy -nh3==0.3.0 +nh3==0.3.2 # via # -r requirements/quality.txt # readme-renderer @@ -208,9 +233,9 @@ pathspec==0.12.1 # via # -r requirements/quality.txt # mypy -pip-tools==7.5.1 +pip-tools==7.5.2 # via -r requirements/pip-tools.txt -platformdirs==4.4.0 +platformdirs==4.5.0 # via # -r requirements/ci.txt # -r requirements/quality.txt @@ -225,12 +250,22 @@ pluggy==1.6.0 # pytest # pytest-cov # tox +prompt-toolkit==3.0.52 + # via questionary pycodestyle==2.14.0 # via -r requirements/quality.txt pycparser==2.23 # via # -r requirements/quality.txt # cffi +pydantic==2.12.5 + # via + # bump-my-version + # pydantic-settings +pydantic-core==2.41.5 + # via pydantic +pydantic-settings==2.12.0 + # via bump-my-version pygments==2.19.2 # via # -r requirements/quality.txt @@ -258,11 +293,11 @@ pylint-plugin-utils==0.9.0 # -r requirements/quality.txt # pylint-celery # pylint-django -pymongo==4.15.2 +pymongo==4.15.4 # via # -r requirements/quality.txt # edx-opaque-keys -pyproject-api==1.9.1 +pyproject-api==1.10.0 # via # -r requirements/ci.txt # tox @@ -271,7 +306,7 @@ pyproject-hooks==1.2.0 # -r requirements/pip-tools.txt # build # pip-tools -pytest==8.4.2 +pytest==9.0.1 # via # -r requirements/quality.txt # pytest-cov @@ -280,6 +315,8 @@ pytest-cov==7.0.0 # via -r requirements/quality.txt pytest-django==4.11.1 # via -r requirements/quality.txt +python-dotenv==1.2.1 + # via pydantic-settings python-slugify==8.0.4 # via # -r requirements/quality.txt @@ -288,6 +325,8 @@ pyyaml==6.0.3 # via # -r requirements/quality.txt # code-annotations +questionary==2.1.1 + # via bump-my-version readme-renderer==44.0 # via # -r requirements/quality.txt @@ -307,15 +346,19 @@ rfc3986==2.0.0 # via # -r requirements/quality.txt # twine -rich==14.1.0 +rich==14.2.0 # via # -r requirements/quality.txt + # bump-my-version + # rich-click # twine -ruff==0.13.3 +rich-click==1.9.4 + # via bump-my-version +ruff==0.14.6 # via -r requirements/quality.txt scriv==1.7.0 # via -r requirements/dev.in -secretstorage==3.4.0 +secretstorage==3.5.0 # via # -r requirements/quality.txt # keyring @@ -323,11 +366,13 @@ six==1.17.0 # via # -r requirements/quality.txt # edx-lint -sqlparse==0.5.3 +sniffio==1.3.1 + # via anyio +sqlparse==0.5.4 # via # -r requirements/quality.txt # django -stevedore==5.5.0 +stevedore==5.6.0 # via # -r requirements/quality.txt # code-annotations @@ -339,8 +384,9 @@ text-unidecode==1.3 tomlkit==0.13.3 # via # -r requirements/quality.txt + # bump-my-version # pylint -tox==4.30.3 +tox==4.32.0 # via -r requirements/ci.txt twine==6.2.0 # via -r requirements/quality.txt @@ -351,19 +397,31 @@ types-pyyaml==6.0.12.20250915 typing-extensions==4.15.0 # via # -r requirements/quality.txt + # anyio # django-stubs # django-stubs-ext # edx-opaque-keys # mypy + # pydantic + # pydantic-core + # typing-inspection +typing-inspection==0.4.2 + # via + # pydantic + # pydantic-settings urllib3==2.5.0 # via # -r requirements/quality.txt # requests # twine -virtualenv==20.34.0 +virtualenv==20.35.4 # via # -r requirements/ci.txt # tox +wcmatch==10.1 + # via bump-my-version +wcwidth==0.2.14 + # via prompt-toolkit wheel==0.45.1 # via # -r requirements/pip-tools.txt diff --git a/requirements/doc.txt b/requirements/doc.txt index 382c0a81..dded4bb0 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -12,7 +12,7 @@ anyio==4.11.0 # via # starlette # watchfiles -asgiref==3.10.0 +asgiref==3.11.0 # via # -r requirements/test.txt # django @@ -26,14 +26,15 @@ beautifulsoup4==4.14.2 # via pydata-sphinx-theme build==1.3.0 # via -r requirements/doc.in -certifi==2025.10.5 +certifi==2025.11.12 # via requests cffi==2.0.0 # via cryptography -charset-normalizer==3.4.3 +charset-normalizer==3.4.4 # via requests -click==8.3.0 +click==8.2.1 # via + # -c requirements/constraints.txt # -r requirements/test.txt # code-annotations # uvicorn @@ -41,23 +42,23 @@ code-annotations==2.3.0 # via -r requirements/test.txt colorama==0.4.6 # via sphinx-autobuild -coverage[toml]==7.10.7 +coverage[toml]==7.12.0 # via # -r requirements/test.txt # pytest-cov -cryptography==46.0.2 +cryptography==46.0.3 # via secretstorage ddt==1.7.2 # via -r requirements/test.txt -django==4.2.25 +django==5.2.8 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-stubs # django-stubs-ext -django-stubs==5.2.6 +django-stubs==5.2.7 # via -r requirements/test.txt -django-stubs-ext==5.2.6 +django-stubs-ext==5.2.7 # via # -r requirements/test.txt # django-stubs @@ -80,7 +81,7 @@ h11==0.16.0 # via uvicorn id==1.5.0 # via twine -idna==3.10 +idna==3.11 # via # anyio # requests @@ -88,7 +89,7 @@ imagesize==1.4.1 # via sphinx importlib-metadata==8.7.0 # via keyring -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/test.txt # pytest @@ -107,8 +108,12 @@ jinja2==3.1.6 # -r requirements/test.txt # code-annotations # sphinx -keyring==25.6.0 +keyring==25.7.0 # via twine +librt==0.6.2 + # via + # -r requirements/test.txt + # mypy markdown-it-py==4.0.0 # via rich markupsafe==3.0.3 @@ -121,13 +126,13 @@ more-itertools==10.8.0 # via # jaraco-classes # jaraco-functools -mypy==1.18.2 +mypy==1.19.0 # via -r requirements/test.txt mypy-extensions==1.1.0 # via # -r requirements/test.txt # mypy -nh3==0.3.0 +nh3==0.3.2 # via readme-renderer packaging==25.0 # via @@ -160,13 +165,13 @@ pygments==2.19.2 # readme-renderer # rich # sphinx -pymongo==4.15.2 +pymongo==4.15.4 # via # -r requirements/test.txt # edx-opaque-keys pyproject-hooks==1.2.0 # via build -pytest==8.4.2 +pytest==9.0.1 # via # -r requirements/test.txt # pytest-cov @@ -194,15 +199,15 @@ requests==2.32.5 # twine requests-toolbelt==1.0.0 # via twine -restructuredtext-lint==1.4.0 +restructuredtext-lint==2.0.2 # via doc8 rfc3986==2.0.0 # via twine -rich==14.1.0 +rich==14.2.0 # via twine roman-numerals-py==3.1.0 # via sphinx -secretstorage==3.4.0 +secretstorage==3.5.0 # via keyring sniffio==1.3.1 # via anyio @@ -235,19 +240,19 @@ sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-mermaid==1.0.0 +sphinxcontrib-mermaid==1.2.3 # via -r requirements/doc.in sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlparse==0.5.3 +sqlparse==0.5.4 # via # -r requirements/test.txt # django -starlette==0.48.0 +starlette==0.50.0 # via sphinx-autobuild -stevedore==5.5.0 +stevedore==5.6.0 # via # -r requirements/test.txt # code-annotations @@ -278,9 +283,9 @@ urllib3==2.5.0 # via # requests # twine -uvicorn==0.37.0 +uvicorn==0.38.0 # via sphinx-autobuild -watchfiles==1.1.0 +watchfiles==1.1.1 # via sphinx-autobuild websockets==15.0.1 # via sphinx-autobuild diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index e97cb1b3..13435bb2 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -6,11 +6,13 @@ # build==1.3.0 # via pip-tools -click==8.3.0 - # via pip-tools +click==8.2.1 + # via + # -c requirements/constraints.txt + # pip-tools packaging==25.0 # via build -pip-tools==7.5.1 +pip-tools==7.5.2 # via -r requirements/pip-tools.in pyproject-hooks==1.2.0 # via diff --git a/requirements/pip.txt b/requirements/pip.txt index dec15874..172b7cce 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -9,6 +9,8 @@ wheel==0.45.1 # The following packages are considered to be unsafe in a requirements file: pip==25.2 - # via -r requirements/pip.in + # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -r requirements/pip.in setuptools==80.9.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 6b643e95..38582c31 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -4,7 +4,7 @@ # # make upgrade # -asgiref==3.10.0 +asgiref==3.11.0 # via # -r requirements/test.txt # django @@ -14,14 +14,15 @@ astroid==3.3.11 # pylint-celery backports-tarfile==1.2.0 # via jaraco-context -certifi==2025.10.5 +certifi==2025.11.12 # via requests cffi==2.0.0 # via cryptography -charset-normalizer==3.4.3 +charset-normalizer==3.4.4 # via requests -click==8.3.0 +click==8.2.1 # via + # -c requirements/constraints.txt # -r requirements/test.txt # click-log # code-annotations @@ -32,25 +33,25 @@ code-annotations==2.3.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.10.7 +coverage[toml]==7.12.0 # via # -r requirements/test.txt # pytest-cov -cryptography==46.0.2 +cryptography==46.0.3 # via secretstorage ddt==1.7.2 # via -r requirements/test.txt dill==0.4.0 # via pylint -django==4.2.25 +django==5.2.8 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-stubs # django-stubs-ext -django-stubs==5.2.6 +django-stubs==5.2.7 # via -r requirements/test.txt -django-stubs-ext==5.2.6 +django-stubs-ext==5.2.7 # via # -r requirements/test.txt # django-stubs @@ -58,7 +59,7 @@ dnspython==2.8.0 # via # -r requirements/test.txt # pymongo -docutils==0.22.2 +docutils==0.22.3 # via readme-renderer edx-lint==5.6.0 # via -r requirements/quality.in @@ -66,11 +67,11 @@ edx-opaque-keys[django]==3.0.0 # via -r requirements/test.txt id==1.5.0 # via twine -idna==3.10 +idna==3.11 # via requests importlib-metadata==8.7.0 # via keyring -iniconfig==2.1.0 +iniconfig==2.3.0 # via # -r requirements/test.txt # pytest @@ -92,8 +93,12 @@ jinja2==3.1.6 # via # -r requirements/test.txt # code-annotations -keyring==25.6.0 +keyring==25.7.0 # via twine +librt==0.6.2 + # via + # -r requirements/test.txt + # mypy markdown-it-py==4.0.0 # via rich markupsafe==3.0.3 @@ -108,7 +113,7 @@ more-itertools==10.8.0 # via # jaraco-classes # jaraco-functools -mypy==1.18.2 +mypy==1.19.0 # via # -r requirements/quality.in # -r requirements/test.txt @@ -116,7 +121,7 @@ mypy-extensions==1.1.0 # via # -r requirements/test.txt # mypy -nh3==0.3.0 +nh3==0.3.2 # via readme-renderer packaging==25.0 # via @@ -127,7 +132,7 @@ pathspec==0.12.1 # via # -r requirements/test.txt # mypy -platformdirs==4.4.0 +platformdirs==4.5.0 # via pylint pluggy==1.6.0 # via @@ -158,11 +163,11 @@ pylint-plugin-utils==0.9.0 # via # pylint-celery # pylint-django -pymongo==4.15.2 +pymongo==4.15.4 # via # -r requirements/test.txt # edx-opaque-keys -pytest==8.4.2 +pytest==9.0.1 # via # -r requirements/test.txt # pytest-cov @@ -190,19 +195,19 @@ requests-toolbelt==1.0.0 # via twine rfc3986==2.0.0 # via twine -rich==14.1.0 +rich==14.2.0 # via twine -ruff==0.13.3 +ruff==0.14.6 # via -r requirements/quality.in -secretstorage==3.4.0 +secretstorage==3.5.0 # via keyring six==1.17.0 # via edx-lint -sqlparse==0.5.3 +sqlparse==0.5.4 # via # -r requirements/test.txt # django -stevedore==5.5.0 +stevedore==5.6.0 # via # -r requirements/test.txt # code-annotations diff --git a/requirements/test.txt b/requirements/test.txt index 46d4d469..b53384d2 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,15 +4,17 @@ # # make upgrade # -asgiref==3.10.0 +asgiref==3.11.0 # via # -r requirements/base.txt # django -click==8.3.0 - # via code-annotations +click==8.2.1 + # via + # -c requirements/constraints.txt + # code-annotations code-annotations==2.3.0 # via -r requirements/test.in -coverage[toml]==7.10.7 +coverage[toml]==7.12.0 # via pytest-cov ddt==1.7.2 # via -r requirements/test.in @@ -21,9 +23,9 @@ ddt==1.7.2 # -r requirements/base.txt # django-stubs # django-stubs-ext -django-stubs==5.2.6 +django-stubs==5.2.7 # via -r requirements/test.in -django-stubs-ext==5.2.6 +django-stubs-ext==5.2.7 # via django-stubs dnspython==2.8.0 # via @@ -31,13 +33,15 @@ dnspython==2.8.0 # pymongo edx-opaque-keys[django]==3.0.0 # via -r requirements/base.txt -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest jinja2==3.1.6 # via code-annotations +librt==0.6.2 + # via mypy markupsafe==3.0.3 # via jinja2 -mypy==1.18.2 +mypy==1.19.0 # via -r requirements/test.in mypy-extensions==1.1.0 # via mypy @@ -51,11 +55,11 @@ pluggy==1.6.0 # pytest-cov pygments==2.19.2 # via pytest -pymongo==4.15.2 +pymongo==4.15.4 # via # -r requirements/base.txt # edx-opaque-keys -pytest==8.4.2 +pytest==9.0.1 # via # pytest-cov # pytest-django @@ -67,11 +71,11 @@ python-slugify==8.0.4 # via code-annotations pyyaml==6.0.3 # via code-annotations -sqlparse==0.5.3 +sqlparse==0.5.4 # via # -r requirements/base.txt # django -stevedore==5.5.0 +stevedore==5.6.0 # via # -r requirements/base.txt # code-annotations