Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
976bcef
feat: add pyproject.toml deps, dependency-groups, and uv.lock (uv mig…
Jul 1, 2026
8398493
fix: pin social-auth-core<5.0.0, matching current test suite expectat…
Jul 2, 2026
3951ef3
feat: cut over Makefile, tox.ini, and CI to uv (uv migration 2/5)
Jul 1, 2026
3ba6641
fix: correct uv sync/export flags that silently dropped project deps
Jul 2, 2026
f3aad4d
fix: refresh compat exports after social-auth-core constraint fix
Jul 2, 2026
e438c12
feat: migrate codejail sandbox to its own uv project (uv migration 3/5)
Jul 1, 2026
599b970
feat: migrate standalone scripts to their own uv projects (uv migrati…
Jul 1, 2026
ed5f8a5
chore: remove now-unused pip-compile machinery (uv migration 5/5)
Jul 1, 2026
138aafa
fix: regenerate requirements/edx/{base,development}.txt with newer uv
Jul 21, 2026
e495a60
fix: pin lxml==5.3.2 in scripts/user_retirement
Jul 21, 2026
d3f85f9
chore: migrate .coveragerc into pyproject.toml, add enable-cache to r…
Jul 21, 2026
ed31316
docs: link the repo-tools fix PR for find_python_dependencies
Jul 21, 2026
9777414
fix: drop dead tox quality env and unneeded venv PATH export
Jul 27, 2026
362c94b
fix: bump edx-enterprise constraint to 8.7.0, matching master
Jul 27, 2026
6d4d18a
fix: restore bundled/core dep split, drop tox duplication, rename doc…
Jul 27, 2026
a1d3ea1
fix: rename bundled/dev dependency-groups per review feedback
Jul 28, 2026
1ac90a6
Merge remote-tracking branch 'origin/master' into irfanuddinahmad/uv-…
Jul 28, 2026
4ab40db
fix: bump edx-enterprise to 8.7.2, matching master
Jul 28, 2026
afdcc75
fix: restore 'bundled' dependency-group name per reviewer feedback
Jul 29, 2026
196f97c
fix: scope static-assets dependency installs, fix stale Makefile refe…
Jul 31, 2026
1c592ea
fix: address remaining review comments (transitional comment, pinned …
Aug 3, 2026
9824895
fix: drop redundant actions/setup-python, bump setup-uv to v9
Aug 3, 2026
4326dfd
fix: correct setup-uv version reference (v9 doesn't exist, only v9.0.0)
Aug 3, 2026
91d8156
Merge remote-tracking branch 'origin/master' into irfanuddinahmad/uv-…
Aug 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 0 additions & 53 deletions .coveragerc

This file was deleted.

17 changes: 15 additions & 2 deletions .github/workflows/check-consistent-dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,26 @@ jobs:
git fetch origin "$BASE_SHA"

# The ^"? is because git may quote weird file paths
if git diff --name-only "$BASE_SHA" | grep -P '^"?((requirements/)|(scripts/.*?/requirements/))'; then
#
# This still watches requirements/ because requirements/edx-sandbox
# (its own uv project) and the requirements/edx/*.txt compatibility
# exports still live there. A planned follow-up will remove the
# requirements/ folder entirely (see public-engineering#543), at
# which point this pattern will need updating again.
if git diff --name-only "$BASE_SHA" | grep -P '^"?((requirements/)|(scripts/.*?/requirements/)|(scripts/[^/]+/pyproject\.toml)|(scripts/[^/]+/uv\.lock)|(pyproject\.toml)|(uv\.lock))'; then

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should add a comment here, as this doesn’t seem to be a permanent solution. In the upcoming follow-up PRs, we plan to remove the requirements folder, so this will need to be updated again.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a comment explaining this is transitional (requirements/edx-sandbox + the compat .txt exports still live under requirements/, but a planned follow-up per public-engineering#543 removes the folder entirely, at which point this pattern needs updating again). See 1c592ea.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should add a comment here, as this doesn’t seem to be a permanent solution. In the upcoming follow-up PRs, we plan to remove the requirements folder, so this will need to be updated again.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same fix applies here (duplicate thread) -- see 1c592ea.

echo "RELEVANT=true" >> "$GITHUB_ENV"
fi

- uses: actions/setup-python@v6
- name: install system requirements
if: ${{ env.RELEVANT == 'true' }}
run: |
sudo apt-get update && sudo apt-get install libmysqlclient-dev libxmlsec1-dev

Comment thread
farhan marked this conversation as resolved.
- name: Install uv
if: ${{ env.RELEVANT == 'true' }}
uses: astral-sh/setup-uv@v9.0.0
with:
enable-cache: true
python-version: '3.12'

- name: "Recompile requirements"
Expand Down
12 changes: 10 additions & 2 deletions .github/workflows/check_python_dependencies.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
# Temporarily disabled: `find_python_dependencies` (from edx-repo-tools) only
# knows how to scan pip-compile's requirements/edx/{base,testing}.txt for
# undocumented git-hosted dependencies. Those files were removed when this
# repo switched to pyproject.toml + uv (see
# https://github.com/openedx/public-engineering/issues/543). Re-enable once
# edx-repo-tools can scan pyproject.toml/uv.lock instead — tracked at
# https://github.com/openedx/repo-tools/issues/725, fix proposed in
# https://github.com/openedx/repo-tools/pull/735.
name: Check Python Dependencies

on:
pull_request:
merge_group:
workflow_dispatch:

jobs:
check_dependencies:
runs-on: ubuntu-latest
if: false

strategy:
matrix:
Expand Down
25 changes: 7 additions & 18 deletions .github/workflows/ci-static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,20 @@ jobs:

steps:
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install system requirements
run: sudo apt update && sudo apt install -y libxmlsec1-dev

- name: Install pip
run: make pre-requirements

- name: Get pip cache dir
id: pip-cache-dir
run: echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

- name: Cache pip dependencies
id: cache-dependencies
uses: actions/cache@v6
- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
with:
path: ${{ steps.pip-cache-dir.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/edx/development.txt') }}
restore-keys: ${{ runner.os }}-pip-
enable-cache: true
Comment thread
farhan marked this conversation as resolved.
python-version: ${{ matrix.python-version }}

- name: Install python dependencies
run: make dev-requirements
run: |
make dev-requirements
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"

- name: Static code analysis
run: make check-types
17 changes: 14 additions & 3 deletions .github/workflows/compile-python-requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,14 @@ jobs:
with:
ref: "${{ inputs.branch }}"

- name: Set up Python environment
uses: actions/setup-python@v6
- name: install system requirements
run: |
sudo apt-get update && sudo apt-get install libmysqlclient-dev libxmlsec1-dev

- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
with:
enable-cache: true
python-version: "3.12"

- name: Run make compile-requirements
Expand All @@ -48,7 +53,13 @@ jobs:
with:
branch: "${{ github.triggering_actor }}/compile-python-deps"
branch-suffix: short-commit-hash
add-paths: requirements
add-paths: |
requirements
scripts/**/pyproject.toml
scripts/**/uv.lock
scripts/**/requirements*
Comment thread
irfanuddinahmad marked this conversation as resolved.
pyproject.toml
uv.lock
commit-message: |
feat: Recompile Python dependencies

Expand Down
19 changes: 4 additions & 15 deletions .github/workflows/js-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,27 +43,16 @@ jobs:
- name: Install Required System Packages
run: sudo apt-get update && sudo apt-get install libxmlsec1-dev ubuntu-restricted-extras xvfb

- name: Setup Python
uses: actions/setup-python@v6
- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
with:
enable-cache: true
python-version: ${{ matrix.python-version }}

- name: Get pip cache dir
id: pip-cache-dir
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

- name: Cache pip dependencies
id: cache-dependencies
uses: actions/cache@v6
with:
path: ${{ steps.pip-cache-dir.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/edx/base.txt') }}
restore-keys: ${{ runner.os }}-pip-

- name: Install Required Python Dependencies
run: |
make base-requirements
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"

- name: Install npm
run: npm ci
Expand Down
26 changes: 7 additions & 19 deletions .github/workflows/lint-imports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,19 @@ jobs:
- name: Check out branch
uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Install system requirements
run: sudo apt update && sudo apt install -y libxmlsec1-dev

- name: Install pip
run: make pre-requirements

- name: Get pip cache dir
id: pip-cache-dir
run: echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

- name: Cache pip dependencies
id: cache-dependencies
uses: actions/cache@v6
- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
with:
path: ${{ steps.pip-cache-dir.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/edx/development.txt') }}
restore-keys: ${{ runner.os }}-pip-
enable-cache: true
python-version: "3.12"

- name: Install python dependencies
run: make dev-requirements
run: |
make dev-requirements
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"

# As long there are sub-projects[1] in openedx-platform, we analyze each
# project separately here, in order to make import-linting errors easier
Expand Down
27 changes: 8 additions & 19 deletions .github/workflows/migrations-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,40 +73,29 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v7

- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install system Packages
run: |
sudo apt-get update
make ubuntu-requirements

- name: Get pip cache dir
id: pip-cache-dir
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

- name: Cache pip dependencies
id: cache-dependencies
uses: actions/cache@v6
- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
with:
path: ${{ steps.pip-cache-dir.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/edx/development.txt') }}
restore-keys: ${{ runner.os }}-pip-
enable-cache: true
python-version: ${{ matrix.python-version }}

- name: Install Python dependencies
run: |
make dev-requirements
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"
if [[ "${{ matrix.django-version }}" != "pinned" ]]; then
pip install "django~=${{ matrix.django-version }}.0"
pip check # fail if this test-reqs/Django combination is broken
uv pip install "django~=${{ matrix.django-version }}.0"
uv pip check # fail if this test-reqs/Django combination is broken
fi

- name: list installed package versions
run: |
sudo pip freeze
uv pip freeze

- name: Run Tests
env:
Expand Down
25 changes: 7 additions & 18 deletions .github/workflows/pylint-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,32 +37,21 @@ jobs:
- name: Install required system packages
run: sudo apt-get update && sudo apt-get install libxmlsec1-dev

- name: Set up Python
uses: actions/setup-python@v6
- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
with:
python-version: 3.12

- name: Get pip cache dir
id: pip-cache-dir
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

- name: Cache pip dependencies
id: cache-dependencies
uses: actions/cache@v6
with:
path: ${{ steps.pip-cache-dir.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/edx/development.txt') }}
restore-keys: ${{ runner.os }}-pip-
enable-cache: true
python-version: "3.12"

- name: Install required Python dependencies
run: |
# dev-requirements is needed because the linter will otherwise
# trip over some dev-only things like django-debug-toolbar
# (import debug_toolbar) that aren't in testing.txt.
# (import debug_toolbar) that aren't in the testing group.
make dev-requirements
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"
# After all requirements are installed, check that they're consistent with each other
pip check
uv pip check

- name: Run quality tests
run: |
Expand Down
27 changes: 5 additions & 22 deletions .github/workflows/quality-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,6 @@ jobs:
- name: Install Required System Packages
run: sudo apt-get update && sudo apt-get install libxmlsec1-dev

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Setup Node
uses: actions/setup-node@v6
with:
Expand All @@ -43,36 +38,24 @@ jobs:
- name: Setup npm
run: npm i -g npm@8.5.x

- name: Get pip cache dir
id: pip-cache-dir
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT

- name: Cache pip dependencies
id: cache-dependencies
uses: actions/cache@v6
- name: Install uv
uses: astral-sh/setup-uv@v9.0.0
with:
path: ${{ steps.pip-cache-dir.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/edx/testing.txt') }}
restore-keys: ${{ runner.os }}-pip-
enable-cache: true
python-version: ${{ matrix.python-version }}

- name: Install Required Python Dependencies
env:
PIP_SRC: ${{ runner.temp }}
run: |
make test-requirements
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"

- name: Install npm
env:
PIP_SRC: ${{ runner.temp }}
run: npm ci

- name: Install python packages
env:
PIP_SRC: ${{ runner.temp }}
run: |
pip install -e .

- name: Run Quality Tests
env:
PIP_SRC: ${{ runner.temp }}
Expand Down
Loading
Loading