Files
edx-platform/pyproject.toml
Feanil Patel 0db54143f9 feat: migrate CMS Django app entry points to pyproject.toml
Migrates 14 cms.djangoapp entry points from setup.py. Preserves
important comment explaining why discussion app (from LMS) is
imported into Studio process.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-03 10:46:16 -05:00

136 lines
7.2 KiB
TOML

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "openedx-platform"
version = "0.13"
requires-python = ">=3.11"
dependencies = ["setuptools"]
[tool.setuptools]
packages = ["cms", "common", "lms", "openedx", "xmodule"]
[tool.setuptools.package-data]
xmodule = ["js/module/*"]
[project.entry-points."xblock.v1"]
about = "xmodule.html_block:AboutBlock"
book = "xmodule.template_block:TranslateCustomTagBlock"
annotatable = "xmodule.annotatable_block:AnnotatableBlock"
chapter = "xmodule.seq_block:SectionBlock"
conditional = "xmodule.conditional_block:ConditionalBlock"
course = "xmodule.course_block:CourseBlock"
course_info = "xmodule.html_block:CourseInfoBlock"
customtag = "xmodule.template_block:CustomTagBlock"
custom_tag_template = "xmodule.template_block:CustomTagTemplateBlock"
discuss = "xmodule.template_block:TranslateCustomTagBlock"
discussion = "xmodule.discussion_block:DiscussionXBlock"
error = "xmodule.error_block:ErrorBlock"
hidden = "xmodule.hidden_block:HiddenBlock"
html = "xmodule.html_block:HtmlBlock"
itembank = "xmodule.item_bank_block:ItemBankBlock"
image = "xmodule.template_block:TranslateCustomTagBlock"
library = "xmodule.library_root_xblock:LibraryRoot"
library_content = "xmodule.library_content_block:LegacyLibraryContentBlock"
lti = "xmodule.lti_block:LTIBlock"
poll_question = "xmodule.poll_block:PollBlock"
problem = "xmodule.capa_block:ProblemBlock"
randomize = "xmodule.randomize_block:RandomizeBlock"
sequential = "xmodule.seq_block:SequenceBlock"
slides = "xmodule.template_block:TranslateCustomTagBlock"
split_test = "xmodule.split_test_block:SplitTestBlock"
static_tab = "xmodule.html_block:StaticTabBlock"
unit = "xmodule.unit_block:UnitBlock"
vertical = "xmodule.vertical_block:VerticalBlock"
video = "xmodule.video_block:VideoBlock"
videoalpha = "xmodule.video_block:VideoBlock"
videodev = "xmodule.template_block:TranslateCustomTagBlock"
word_cloud = "xmodule.word_cloud_block:WordCloudBlock"
wrapper = "xmodule.wrapper_block:WrapperBlock"
[project.entry-points."xblock_asides.v1"]
tagging_aside = "cms.lib.xblock.tagging:StructuredTagsAside"
[project.entry-points."openedx.course_tab"]
ccx = "lms.djangoapps.ccx.plugins:CcxCourseTab"
courseware = "lms.djangoapps.courseware.tabs:CoursewareTab"
dates = "lms.djangoapps.courseware.tabs:DatesTab"
discussion = "lms.djangoapps.discussion.plugins:DiscussionTab"
edxnotes = "lms.djangoapps.edxnotes.plugins:EdxNotesTab"
external_discussion = "lms.djangoapps.courseware.tabs:ExternalDiscussionCourseTab"
external_link = "lms.djangoapps.courseware.tabs:ExternalLinkCourseTab"
html_textbooks = "lms.djangoapps.courseware.tabs:HtmlTextbookTabs"
instructor = "lms.djangoapps.instructor.views.instructor_dashboard:InstructorDashboardTab"
lti_discussion = "openedx.features.lti_course_tab.tab:DiscussionLtiCourseTab"
lti_live = "openedx.core.djangoapps.course_live.tab:CourseLiveTab"
lti_tab = "openedx.features.lti_course_tab.tab:LtiCourseTab"
pdf_textbooks = "lms.djangoapps.courseware.tabs:PDFTextbookTabs"
progress = "lms.djangoapps.courseware.tabs:ProgressTab"
static_tab = "xmodule.tabs:StaticTab"
syllabus = "lms.djangoapps.courseware.tabs:SyllabusTab"
teams = "lms.djangoapps.teams.plugins:TeamsTab"
textbooks = "lms.djangoapps.courseware.tabs:TextbookTabs"
wiki = "lms.djangoapps.course_wiki.tab:WikiTab"
[project.entry-points."openedx.course_app"]
calculator = "lms.djangoapps.courseware.plugins:CalculatorCourseApp"
custom_pages = "lms.djangoapps.courseware.plugins:CustomPagesCourseApp"
dates = "lms.djangoapps.courseware.plugins:DatesCourseApp"
discussion = "openedx.core.djangoapps.discussions.plugins:DiscussionCourseApp"
edxnotes = "lms.djangoapps.edxnotes.plugins:EdxNotesCourseApp"
live = "openedx.core.djangoapps.course_live.plugins:LiveCourseApp"
ora_settings = "lms.djangoapps.courseware.plugins:ORASettingsApp"
proctoring = "lms.djangoapps.courseware.plugins:ProctoringCourseApp"
progress = "lms.djangoapps.courseware.plugins:ProgressCourseApp"
teams = "lms.djangoapps.teams.plugins:TeamsCourseApp"
textbooks = "lms.djangoapps.courseware.plugins:TextbooksCourseApp"
wiki = "lms.djangoapps.course_wiki.plugins.course_app:WikiCourseApp"
[project.entry-points."openedx.course_tool"]
calendar_sync_toggle = "openedx.features.calendar_sync.plugins:CalendarSyncToggleTool"
course_bookmarks = "openedx.features.course_bookmarks.plugins:CourseBookmarksTool"
course_updates = "openedx.features.course_experience.plugins:CourseUpdatesTool"
financial_assistance = "lms.djangoapps.courseware.course_tools:FinancialAssistanceTool"
[project.entry-points."lms.djangoapp"]
ace_common = "openedx.core.djangoapps.ace_common.apps:AceCommonConfig"
content_libraries = "openedx.core.djangoapps.content_libraries.apps:ContentLibrariesConfig"
course_apps = "openedx.core.djangoapps.course_apps.apps:CourseAppsConfig"
course_live = "openedx.core.djangoapps.course_live.apps:CourseLiveConfig"
courseware_api = "openedx.core.djangoapps.courseware_api.apps:CoursewareAPIConfig"
credentials = "openedx.core.djangoapps.credentials.apps:CredentialsConfig"
discussion = "lms.djangoapps.discussion.apps:DiscussionConfig"
discussions = "openedx.core.djangoapps.discussions.apps:DiscussionsConfig"
grades = "lms.djangoapps.grades.apps:GradesConfig"
plugins = "openedx.core.djangoapps.plugins.apps:PluginsConfig"
theming = "openedx.core.djangoapps.theming.apps:ThemingConfig"
bookmarks = "openedx.core.djangoapps.bookmarks.apps:BookmarksConfig"
zendesk_proxy = "openedx.core.djangoapps.zendesk_proxy.apps:ZendeskProxyConfig"
instructor = "lms.djangoapps.instructor.apps:InstructorConfig"
password_policy = "openedx.core.djangoapps.password_policy.apps:PasswordPolicyConfig"
user_authn = "openedx.core.djangoapps.user_authn.apps:UserAuthnConfig"
program_enrollments = "lms.djangoapps.program_enrollments.apps:ProgramEnrollmentsConfig"
[project.entry-points."cms.djangoapp"]
ace_common = "openedx.core.djangoapps.ace_common.apps:AceCommonConfig"
bookmarks = "openedx.core.djangoapps.bookmarks.apps:BookmarksConfig"
course_live = "openedx.core.djangoapps.course_live.apps:CourseLiveConfig"
content_libraries = "openedx.core.djangoapps.content_libraries.apps:ContentLibrariesConfig"
content_staging = "openedx.core.djangoapps.content_staging.apps:ContentStagingAppConfig"
course_apps = "openedx.core.djangoapps.course_apps.apps:CourseAppsConfig"
# Importing an LMS app into the Studio process is not a good practice.
# We're ignoring this for Discussions here because its placement in LMS
# is a historical artifact. The eventual goal is to consolidate the multiple
# discussions-related Django apps and either put them in the openedx/ dir,
# or in another repo entirely.
discussion = "lms.djangoapps.discussion.apps:DiscussionConfig"
discussions = "openedx.core.djangoapps.discussions.apps:DiscussionsConfig"
instructor = "lms.djangoapps.instructor.apps:InstructorConfig"
olx_rest_api = "openedx.core.djangoapps.olx_rest_api.apps:OlxRestApiAppConfig"
password_policy = "openedx.core.djangoapps.password_policy.apps:PasswordPolicyConfig"
plugins = "openedx.core.djangoapps.plugins.apps:PluginsConfig"
theming = "openedx.core.djangoapps.theming.apps:ThemingConfig"
user_authn = "openedx.core.djangoapps.user_authn.apps:UserAuthnConfig"
zendesk_proxy = "openedx.core.djangoapps.zendesk_proxy.apps:ZendeskProxyConfig"