Skip to content

Modernize Python repo | Core Libraries #516

Open

Description

@salman2013

Description:
In this ticket, we have to modernize the following repos with
1 - Consolidate package metadata into pyproject.toml
2 - Switch dependency management from pip-compile to uv
3 - Add semantic-release

Details for each step can be found on the parent ticket: #506

Activity

  1. self-assigned this
    on Jul 17, 2026
  2. moved this to 🏗 In progress in Aximprovements Teamon Jul 17, 2026
  3. removed their assignment
    on Jul 17, 2026
  4. moved this from 🏗 In progress to 🔖 Ready in Aximprovements Teamon Jul 17, 2026
  5. moved this from 🔖 Ready to 🏗 In progress in Aximprovements Teamon Jul 27, 2026
  6. irfanuddinahmad commented on Jul 27, 2026

    @irfanuddinahmad

    ccx-keys - openedx/ccx-keys#190

    Two items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for edx-ccx-keys (tracked in the consolidated comment on Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml calls the org's shared reusable workflow, which hardcodes add-paths: requirements with no override input — now that requirements/ is deleted, that scheduled job will keep running but silently stop producing real dependency-upgrade PRs. Can't be fixed from this repo alone.

  7. irfanuddinahmad commented on Jul 27, 2026

    @irfanuddinahmad

    openedx-filters - openedx/openedx-filters#381

    Items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for openedx-filters (tracked in the consolidated comment on Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml calls the org's shared reusable workflow, which hardcodes add-paths: requirements with no override input -- now that requirements/ is deleted, that scheduled job will keep running but silently stop producing real dependency-upgrade PRs. Can't be fixed from this repo alone.

    Pre-flight tag check passed: latest git tag v3.8.0 matches the version currently live on PyPI (3.8.0).

    This PR also includes the src/ layout move (openedx_filters/ -> src/openedx_filters/) per the decision on #506.

  8. irfanuddinahmad commented on Jul 27, 2026

    @irfanuddinahmad

    opaque-keys - openedx/opaque-keys#461

    CI fully green (including src/ layout, adopted per the 2026-07-15 decision on #506). Two things noted in the PR that need maintainer action (not code issues):

    1. PyPI OIDC trusted publisher needs configuring for edx-opaque-keys before the first automated release can publish (same pattern as the consolidated comment on Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. This repo's .github/workflows/upgrade-python-requirements.yml calls openedx/.github's shared reusable workflow, which hardcodes add-paths: requirements with no way to override it -- now that requirements/ is deleted, that scheduled job will keep running but silently stop producing real dependency-upgrade PRs. Can't be fixed from this repo; needs a fix in openedx/.github itself.
  9. irfanuddinahmad commented on Jul 27, 2026

    @irfanuddinahmad

    openedx-core: openedx/openedx-core#704

    CI fully green (including `src/` layout — this repo already used `src/openedx_{core,content,tagging,catalog}` and `src/openedx_django_lib` before this PR, so Phase 0 of #506's 2026-07-15 decision required no structural changes here, just verification).

    Two items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for openedx-core (tracked in the consolidated comment on Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml calls the org's shared reusable workflow, which hardcodes add-paths: requirements with no override input -- now that requirements/ is deleted, that scheduled job will keep running but silently stop producing real dependency-upgrade PRs. Can't be fixed from this repo alone.

    Pre-flight tag check passed: latest git tag v1.1.0 matches the version currently live on PyPI (1.1.0).

  10. irfanuddinahmad commented on Jul 27, 2026

    @irfanuddinahmad

    openedx-calc: openedx/openedx-calc#217

    CI fully green (commitlint, py312, quality — including the src/ layout move,
    calc/ → src/calc/, symmath/ → src/symmath/, per the 2026-07-15 decision on
    #506).

    Two items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for openedx-calc before the
      first automated release can publish (tracked in the consolidated comment on Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the
      OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured
      for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml
    calls the org's shared reusable workflow, which hardcodes add-paths: requirements
    with no override input -- now that requirements/ is deleted, that scheduled job
    will keep running but silently stop producing real dependency-upgrade PRs. Can't be
    fixed from this repo alone.

    Pre-flight tag check passed: latest git tag v5.0.0 (via git tag --sort=-v:refname)
    matches the version currently live on PyPI (5.0.0).

    Also caught and fixed a real latent bug while doing this: symmath/formula.py
    imports six directly, but it was never declared in requirements/base.in -- it
    only worked before because some other pinned dependency happened to pull it in
    transitively. Added as an explicit dependency.

  11. irfanuddinahmad commented on Jul 27, 2026

    @irfanuddinahmad

    openedx-chem - openedx/openedx-chem#161

    CI fully green (commitlint, py312, quality, openedx/cla, codecov/patch,
    codecov/project — including the src/ layout move, chem/ → src/chem/, per the
    2026-07-15 decision on #506).

    codecov/project initially reported a -1.90% drop (98.23% → 96.33%) after
    correctly omitting chem/tests/test_all.py from coverage measurement (the old
    .coveragerc had no omit section, so the test file's own self-coverage was
    inflating the package percentage). codecov/patch was 100% and the underlying
    miss/partial-branch counts in production code were unchanged, confirming it wasn't
    a real regression. Added codecov.yml with a 3% project threshold to absorb that
    one-time methodology change, matching the pattern already used by sibling repos in
    this effort (ccx-keys#190, opaque-keys#461, openedx-filters#381,
    openedx-core#704).

    Two items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for the chem PyPI project before
      the first automated release can publish (tracked in the consolidated comment on
      Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the
      OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured
      for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml
    calls the org's shared reusable workflow, which hardcodes add-paths: requirements
    with no override input -- now that requirements/ is deleted, that scheduled job
    will keep running but silently stop producing real dependency-upgrade PRs. Can't be
    fixed from this repo alone.

    Pre-flight tag check passed: latest git tag 2.0.0 (via git tag --sort=-v:refname)
    matches the version currently live on PyPI (2.0.0).

  12. irfanuddinahmad commented on Jul 28, 2026

    @irfanuddinahmad

    edx-rest-api-client - openedx/edx-rest-api-client#462

    CI fully green (commitlint, django42, django52, quality, openedx/cla,
    codecov/patch, codecov/project — including the src/ layout move,
    edx_rest_api_client/ → src/edx_rest_api_client/, per the 2026-07-15 decision on
    #506).

    Two items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for edx-rest-api-client before
      the first automated release can publish (tracked in the consolidated comment on
      Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the
      OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured
      for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml
    calls the org's shared reusable workflow, which hardcodes add-paths: requirements
    with no override input -- now that requirements/ is deleted, that scheduled job
    will keep running but silently stop producing real dependency-upgrade PRs. Can't be
    fixed from this repo alone.

    Pre-flight tag check passed: latest git tag v7.0.0 (via git tag --sort=-v:refname)
    matches the version currently live on PyPI (7.0.0).

    Also deleted .github/workflows/publish_pypi.yml: it published on push: tags using
    a stored PYPI_UPLOAD_TOKEN and an unpinned @release/v1 ref -- superseded by
    release.yml's OIDC-based publish, and would otherwise race it once semantic-release
    starts pushing version tags.

  13. irfanuddinahmad commented on Jul 28, 2026

    @irfanuddinahmad

    auth-backends - openedx/auth-backends#444

    CI fully green (commitlint, django52, quality, check_keywords, openedx/cla, codecov/patch, codecov/project — including the src/ layout move, auth_backends/ → src/auth_backends/, per the 2026-07-15 decision on #506).

    Coverage scope change was small enough here (99% → 98%, from no longer counting test files' own statements) that it stayed within the repo's existing codecov.yml 95% thresholds — no codecov.yml change was needed, unlike some sibling repos in this effort.

    Two items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for edx-auth-backends before the first automated release can publish (tracked in the consolidated comment on Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml calls the org's shared reusable workflow, which hardcodes add-paths: requirements with no override input -- now that requirements/ is deleted, that scheduled job will keep running but silently stop producing real dependency-upgrade PRs. Can't be fixed from this repo alone.

    Pre-flight tag check passed: latest git tag v5.0.0 (via git tag --sort=-v:refname) matches the version currently live on PyPI (5.0.0).

  14. irfanuddinahmad commented on Jul 28, 2026

    @irfanuddinahmad

    openedx-authz - openedx/openedx-authz#371

    Includes the src/ layout move (openedx_authz/ → src/openedx_authz/, per the 2026-07-15 decision on #506).

    Two items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for openedx-authz before the first automated release can publish (tracked in the consolidated comment on Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml calls the org's shared reusable workflow, which hardcodes add-paths: requirements with no override input -- now that requirements/ is deleted, that scheduled job will keep running but silently stop producing real dependency-upgrade PRs. Can't be fixed from this repo alone.

    Pre-flight tag check passed: latest git tag matches the version currently live on PyPI (1.21.1).

    CI in progress, will confirm green once done.

  15. irfanuddinahmad commented on Jul 28, 2026

    @irfanuddinahmad

    xss-utils: openedx/xss-utils#324

    CI fully green on first pass (commitlint, django42, django52, quality, docs, codecov/patch, codecov/project, openedx/cla) -- including the src/ layout move (xss_utils/ -> src/xss_utils/) per the 2026-07-15 decision on #506. No codecov.yml threshold widening was needed: the old .coveragerc didn't measure test files any differently from production code here, so there was no reported % drop from the omit-pattern change.

    Two items flagged in the PR (not code issues, need maintainer action):

    1. PyPI OIDC trusted publisher needs configuring for xss-utils before the first automated release can publish (tracked in the consolidated comment on Modernize Python repos: pyproject.toml + uv + semantic-release #506).
    2. Unable to confirm from outside the org whether the OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN secret used by release.yml is configured for this repo.

    Also noting a known, out-of-scope gap: .github/workflows/upgrade-python-requirements.yml calls the org's shared reusable workflow, which hardcodes add-paths: requirements with no override input -- now that requirements/ is deleted, that scheduled job will keep running but silently stop producing real dependency-upgrade PRs. Can't be fixed from this repo alone.

    Pre-flight tag check passed: latest git tag v1.0.0 (via git tag --sort=-v:refname) matches the version currently live on PyPI (1.0.0).

  16. moved this from 🏗 In progress to 👀 In review in Aximprovements Teamon Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions