Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .github/workflows/pypi-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:
python-version: 3.12

- name: Install pip
run: pip install -r requirements/pip.txt
run: pip install -r requirements/pip.txt build

- name: Build the package (openedx-core)
run: python setup.py sdist bdist_wheel
run: python -m build

- name: Publish openedx-core to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
Expand Down
1 change: 0 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
include CHANGELOG.rst
include LICENSE.txt
include README.rst
include requirements/base.in
recursive-include src *.html *.png *.gif *.js *.css *.jpg *.jpeg *.svg *.py *.yaml *.json *.csv
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ compile-requirements: ## update the requirements/*.txt files with the latest pac
$(PIP_COMPILE) -o requirements/pip-tools.txt requirements/pip-tools.in
pip install -qr requirements/pip.txt
pip install -qr requirements/pip-tools.txt
$(PIP_COMPILE) -o requirements/base.txt requirements/base.in
$(PIP_COMPILE) -o requirements/base.txt -c requirements/constraints.txt pyproject.toml
$(PIP_COMPILE) -o requirements/test.txt requirements/test.in
$(PIP_COMPILE) -o requirements/doc.txt requirements/doc.in
$(PIP_COMPILE) -o requirements/quality.txt requirements/quality.in
Expand Down
53 changes: 53 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "openedx-core"
description = "Open edX Core: Foundational Packages for a Teaching & Learning Platform"
authors = [{name = "David Ormsbee", email = "dave@axim.org"}]
readme = {file = "README.rst", content-type = "text/x-rst"}
license = "AGPL-3.0-only"
license-files = ["LICENSE.txt"]
requires-python = ">=3.12"
keywords = ["Python", "edx"]
classifiers = [
"Development Status :: 4 - Beta",
"Framework :: Django",
"Framework :: Django :: 5.2",
"Intended Audience :: Developers",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
]
dependencies = [
"attrs", # Reduces boilerplate code involving class attributes
"celery", # Asynchronous task execution library
"Django", # Web application framework
"djangorestframework<4.0", # REST API
"edx-drf-extensions", # Extensions to the Django REST Framework used by Open edX
"openedx-events", # For sending events to the openedx event bus
"rules<4.0", # Django extension for rules-based authorization checks
"tomlkit", # Parses and writes TOML configuration files
"edx-organizations", # Implements the "Organization" model that CatalogCourse/CourseRun key to
]
dynamic = ["version"]

[project.urls]
Homepage = "https://github.com/openedx/openedx-core"

[tool.setuptools]
zip-safe = false
include-package-data = true

[tool.setuptools.dynamic]
version = {attr = "openedx_core.__version__"}

[tool.setuptools.packages.find]
where = ["src"]

[tool.isort]
include_trailing_comma = true
indent = " "
line_length = 120
multi_line_output = 3
19 changes: 0 additions & 19 deletions requirements/base.in

This file was deleted.

18 changes: 9 additions & 9 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ asgiref==3.11.1
# via django
attrs==26.1.0
# via
# -r requirements/base.in
# openedx-core (pyproject.toml)
# openedx-events
billiard==4.2.4
# via celery
celery==5.6.3
# via -r requirements/base.in
# via openedx-core (pyproject.toml)
certifi==2026.4.22
# via requests
cffi==2.0.0
Expand All @@ -42,7 +42,6 @@ cryptography==48.0.0
django==5.2.14
# via
# -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
# -r requirements/base.in
# django-crum
# django-model-utils
# django-simple-history
Expand All @@ -52,6 +51,7 @@ django==5.2.14
# edx-django-utils
# edx-drf-extensions
# edx-organizations
# openedx-core (pyproject.toml)
# openedx-events
django-crum==0.7.9
# via edx-django-utils
Expand All @@ -65,10 +65,10 @@ django-waffle==5.0.0
# edx-drf-extensions
djangorestframework==3.17.1
# via
# -r requirements/base.in
# drf-jwt
# edx-drf-extensions
# edx-organizations
# openedx-core (pyproject.toml)
dnspython==2.8.0
# via pymongo
drf-jwt==1.19.2
Expand All @@ -81,24 +81,24 @@ edx-django-utils==8.0.1
# openedx-events
edx-drf-extensions==10.6.0
# via
# -r requirements/base.in
# edx-organizations
# openedx-core (pyproject.toml)
edx-opaque-keys[django]==4.0.0
# via
# edx-ccx-keys
# edx-drf-extensions
# edx-organizations
# openedx-events
edx-organizations==8.0.0
# via -r requirements/base.in
# via openedx-core (pyproject.toml)
fastavro==1.12.2
# via openedx-events
idna==3.15
# via requests
kombu==5.6.2
# via celery
openedx-events==11.2.0
# via -r requirements/base.in
# via openedx-core (pyproject.toml)
packaging==26.2
# via kombu
pillow==12.2.0
Expand All @@ -122,7 +122,7 @@ python-dateutil==2.9.0.post0
requests==2.34.2
# via edx-drf-extensions
rules==3.5
# via -r requirements/base.in
# via openedx-core (pyproject.toml)
semantic-version==2.10.0
# via edx-drf-extensions
six==1.17.0
Expand All @@ -136,7 +136,7 @@ stevedore==5.7.0
# edx-django-utils
# edx-opaque-keys
tomlkit==0.15.0
# via -r requirements/base.in
# via openedx-core (pyproject.toml)
typing-extensions==4.15.0
# via edx-opaque-keys
tzdata==2026.2
Expand Down
8 changes: 0 additions & 8 deletions setup.cfg

This file was deleted.

91 changes: 0 additions & 91 deletions setup.py

This file was deleted.

8 changes: 4 additions & 4 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ commands =
rm -f docs/modules.rst
make -e -C docs clean
make -e -C docs html
python setup.py check --restructuredtext --strict
python -m readme_renderer README.rst -o /dev/null

[testenv:quality]
usedevelop = True # install -e .
Expand All @@ -79,11 +79,11 @@ deps =
setuptools
-r{toxinidir}/requirements/quality.txt
commands =
pylint src tests test_utils setup.py manage.py test_settings.py mysql_test_settings.py
pylint src tests test_utils manage.py test_settings.py mysql_test_settings.py
mypy --show-traceback
pycodestyle src tests test_utils setup.py manage.py test_settings.py mysql_test_settings.py
pycodestyle src tests test_utils manage.py test_settings.py mysql_test_settings.py
pydocstyle src # don't need to lint docs for tests & utils
isort --check-only --diff src tests test_utils setup.py manage.py test_settings.py mysql_test_settings.py
isort --check-only --diff src tests test_utils manage.py test_settings.py mysql_test_settings.py
make selfcheck

[testenv:pii_check]
Expand Down