Open edX Proposals#
OEP (pronounced “oh-epp”) stands for Open edX (Enhancement) Proposal. An OEP is a document that details a specific technology or community decision being made by the Open edX community, in the form of a best practice, architecture design, or process adjustment. An OEP should provide the use cases and rationales that surround that choice. OEPs are not the only way for a change to be made to Open edX, however, the goal is to create a collection of OEP documents as a repository or knowledge archive of large and broadly relevant choices made for the platform.
OEPs#
Processes#
OEPs that relate to processes we want to put in place for the Open edX community.
Best Practices#
OEPs that relate to best practices that you should follow when working with the Open edX Platform. These are guidelines and not requirements. Use them unless you have a good reason not to.
- OEP-17: Feature Toggles
- OEP-18: Python Dependency Management
- OEP-19: Developer Documentation
- OEP-22: Caching in Django
- OEP-37: Dev Data
- OEP-38: Data Modeling Best Practices
- OEP-42: Authentication
- OEP-47: Semantic Versioning
- OEP-49: Django App Patterns
- OEP-51: Conventional Commits
- OEP-66: User Authorization
- OEP-67: Standard Tools and Technologies
Architectural Decisions#
OEPs that capture architectural decisions that impact the entire Open edX Platform. These are decisions that are sufficiently cross-cutting that there is no clear code repository where they should reside.
- OEP-3: Asynchronous Task Management
- OEP-4: Application Authorization (Scopes)
- OEP-15: Course-wide Custom JavaScript
- OEP-26: Real-time Events
- OEP-30: PII Markup and Auditing
- OEP-31: Micro-frontend Internationalization
- OEP-32: Unique Identifier for Users
- OEP-41: Asynchronous Server Event Message Format
- OEP-45: Configuring and Operating Open edX
- OEP-48: Brand Customization
- OEP-50: Hooks extension framework
- OEP-52: Event Bus Architecture
- OEP-58: Translations Management
- OEP-64: Mobile App Codebase Modernization
- OEP-65: Frontend Composability
Archived Proposals#
These are older decisions or documents that are no longer relevant to the project but that we leave here for posterity and as useful reference if we run into similar situations in the future.
- OEP-2: Repository Metadata
- OEP-5: Pre-built Developer Environments
- OEP-6: Context-scoped XBlock Fields
- OEP-7: Migrating to Python 3
- OEP-9: User Authorization (Permissions)
- OEP-11: Front End Technology Standards
- OEP-12: Pluggable User Interfaces
- OEP-13: Open edX web API conventions
- OEP-16: Bootstrap Adoption
- OEP-23: Style Customization
- OEP-25: Incremental Improvements
- OEP-34: Lint Amnesty
- OEP-56: Architectural Advisory Process