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 that relate to processes we want to put in place for the Open edX community.
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-2: Repository Metadata
- OEP-9: User Authorization (Permissions)
- OEP-11: Front End Technology Standards
- OEP-13: Open edX web API conventions
- 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
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-6: Context-scoped XBlock Fields
- 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
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.