Skip to content

Commit 415707b

Browse files
kdmccormickclaude
andcommitted
feat!: Rename platform-plugin-sample -> (backend-plugin-sample,openedx-plugin-sample)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 31f3ba6 commit 415707b

63 files changed

Lines changed: 212 additions & 208 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/backend-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010

1111
defaults:
1212
run:
13-
working-directory: "./platform-plugin-sample"
13+
working-directory: "./backend-plugin-sample"
1414

1515
jobs:
1616
run_tests:
@@ -46,4 +46,4 @@ jobs:
4646
token: ${{ secrets.CODECOV_TOKEN }}
4747
flags: unittests
4848
fail_ci_if_error: true
49-
working-directory: "./platform-plugin-sample"
49+
working-directory: "./backend-plugin-sample"

.github/workflows/release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,22 @@ jobs:
4444
git_committer_name: "github-actions"
4545
git_committer_email: "actions@users.noreply.github.com"
4646
changelog: "false"
47-
directory: './platform-plugin-sample'
47+
directory: './backend-plugin-sample'
4848

4949
- name: Publish | Upload to GitHub Release Assets
5050
uses: python-semantic-release/publish-action@v10.5.3
5151
if: steps.release.outputs.released == 'true'
5252
with:
5353
github_token: ${{ secrets.OPENEDX_SEMANTIC_RELEASE_GITHUB_TOKEN }}
5454
tag: ${{ steps.release.outputs.tag }}
55-
directory: './platform-plugin-sample'
55+
directory: './backend-plugin-sample'
5656

5757
- name: Upload | Backend Distribution Artifacts
5858
uses: actions/upload-artifact@v4
5959
if: steps.release.outputs.released == 'true'
6060
with:
6161
name: backend-distribution-artifacts
62-
path: platform-plugin-sample/dist
62+
path: backend-plugin-sample/dist
6363
if-no-files-found: error
6464

6565
- name: Build | Tutor Plugin
@@ -102,12 +102,12 @@ jobs:
102102
id: artifact-download
103103
with:
104104
name: backend-distribution-artifacts
105-
path: platform-plugin-sample/dist
105+
path: backend-plugin-sample/dist
106106

107107
- name: Publish to PyPi
108108
uses: pypa/gh-action-pypi-publish@release/v1
109109
with:
110-
packages-dir: platform-plugin-sample/dist
110+
packages-dir: backend-plugin-sample/dist
111111
user: __token__
112112
password: ${{ secrets.PYPI_UPLOAD_TOKEN }}
113113

CLAUDE.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ This is a **sample plugin repository** that demonstrates all major Open edX plug
1313
- **Target Audience**: Developers new to Open edX plugin development
1414

1515
**Repository Structure:**
16-
- `platform-plugin-sample/` - Django app plugin with models, APIs, events, and filters
16+
- `backend-plugin-sample/` - Django app plugin with models, APIs, events, and filters
1717
- `frontend-plugin-sample/` - React component for MFE slot customization
1818
- `tutor-contrib-sample/` - Tutor plugin for easy deployment
1919
- Each directory has comprehensive README.md files with TOCs
@@ -25,21 +25,21 @@ This is a **sample plugin repository** that demonstrates all major Open edX plug
2525
- Keep examples realistic but not overly complex
2626

2727
**Key Files and Their Relationships:**
28-
- `platform-plugin-sample/platform_plugin_sample/apps.py` - Plugin registration and Django integration
29-
- `platform-plugin-sample/platform_plugin_sample/signals.py` - Open edX Events handlers
30-
- `platform-plugin-sample/platform_plugin_sample/pipeline.py` - Open edX Filters implementation
31-
- `platform-plugin-sample/platform_plugin_sample/models.py` - CourseArchiveStatus model (business logic)
32-
- `platform-plugin-sample/platform_plugin_sample/views.py` - REST API endpoints consumed by frontend
28+
- `backend-plugin-sample/openedx_plugin_sample/apps.py` - Plugin registration and Django integration
29+
- `backend-plugin-sample/openedx_plugin_sample/signals.py` - Open edX Events handlers
30+
- `backend-plugin-sample/openedx_plugin_sample/pipeline.py` - Open edX Filters implementation
31+
- `backend-plugin-sample/openedx_plugin_sample/models.py` - CourseArchiveStatus model (business logic)
32+
- `backend-plugin-sample/openedx_plugin_sample/views.py` - REST API endpoints consumed by frontend
3333
- `frontend-plugin-sample/src/plugin.jsx` - React component that replaces course list slot
3434
- `tutor-contrib-sample/tutorsample/plugin.py` - Deployment configuration (currently basic template)
3535

3636
## Build/Lint/Test Commands
3737
- Make sure to set the following so that test output is not too verbose: `export PYTEST_ADDOPTS="--disable-warnings --no-header --tb=short"`
38-
- Backend testing: `cd platform-plugin-sample && pytest` or `cd platform-plugin-sample && make test`
39-
- Run a single test: `cd platform-plugin-sample && pytest tests/test_models.py::test_placeholder`
40-
- Quality checks: `cd platform-plugin-sample && make quality`
41-
- Install requirements: `cd platform-plugin-sample && make requirements`
42-
- Compile requirements: `cd platform-plugin-sample && make compile-requirements`
38+
- Backend testing: `cd backend-plugin-sample && pytest` or `cd backend-plugin-sample && make test`
39+
- Run a single test: `cd backend-plugin-sample && pytest tests/test_models.py::test_placeholder`
40+
- Quality checks: `cd backend-plugin-sample && make quality`
41+
- Install requirements: `cd backend-plugin-sample && make requirements`
42+
- Compile requirements: `cd backend-plugin-sample && make compile-requirements`
4343

4444
## Code Style Guidelines
4545
- Python: Follow PEP 8 with max line length of 120

README.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ This sample plugin showcases the **Open edX Hooks Extension Framework**, which a
2929

3030
| Plugin Type | What It Does | Official Documentation | Sample Code | When To Use |
3131
|-------------|--------------|------------------------|-------------|-------------|
32-
| **Django App Plugin** | Add models, APIs, views, and business logic | [How to create a plugin app](https://docs.openedx.org/projects/edx-django-utils/en/latest/plugins/how_tos/how_to_create_a_plugin_app.html) | [`platform-plugin-sample/`](./platform-plugin-sample/) | Adding new functionality, APIs, or data models |
33-
| **Events (Signals)** | React to platform events | [Open edX Events Guide](https://docs.openedx.org/projects/openedx-events/en/latest/) | [`platform-plugin-sample/platform_plugin_sample/signals.py`](./platform-plugin-sample/platform_plugin_sample/signals.py) | Integrating with external systems, audit logging |
34-
| **Filters** | Modify platform behavior | [Using Open edX Filters](https://docs.openedx.org/projects/openedx-filters/en/latest/how-tos/using-filters.html) | [`platform-plugin-sample/platform_plugin_sample/pipeline.py`](./platform-plugin-sample/platform_plugin_sample/pipeline.py) | Customizing business logic, URL redirects |
32+
| **Django App Plugin** | Add models, APIs, views, and business logic | [How to create a plugin app](https://docs.openedx.org/projects/edx-django-utils/en/latest/plugins/how_tos/how_to_create_a_plugin_app.html) | [`backend-plugin-sample/`](./backend-plugin-sample/) | Adding new functionality, APIs, or data models |
33+
| **Events (Signals)** | React to platform events | [Open edX Events Guide](https://docs.openedx.org/projects/openedx-events/en/latest/) | [`backend-plugin-sample/openedx_plugin_sample/signals.py`](./backend-plugin-sample/openedx_plugin_sample/signals.py) | Integrating with external systems, audit logging |
34+
| **Filters** | Modify platform behavior | [Using Open edX Filters](https://docs.openedx.org/projects/openedx-filters/en/latest/how-tos/using-filters.html) | [`backend-plugin-sample/openedx_plugin_sample/pipeline.py`](./backend-plugin-sample/openedx_plugin_sample/pipeline.py) | Customizing business logic, URL redirects |
3535
| **Frontend Slots** | Customize MFE interfaces | [Frontend Plugin Slots](https://docs.openedx.org/en/latest/site_ops/how-tos/use-frontend-plugin-slots.html) | [`frontend-plugin-sample/`](./frontend-plugin-sample/) | UI customization, adding new components |
3636
| **Brand Packages** | Customize theming | [Open edX Brand Package Interface](https://github.com/openedx/brand-openedx) | [`brand-sample/`](./brand-sample/) | UI theming |
3737
| **Tutor Plugin** | Deploy plugins easily | [Tutor Plugin Development](https://docs.tutor.edly.io/) | [`tutor-contrib-sample/`](./tutor-contrib-sample/) | Simplified deployment and configuration |
@@ -46,9 +46,7 @@ This sample plugin showcases the **Open edX Hooks Extension Framework**, which a
4646

4747
```bash
4848
# Bind-mount backend source into Tutor image and containers.
49-
# Tutor automatically recognizes the `platform-plugin-*` prefix and knows to
50-
# treat it as an openedx-platform plugin.
51-
tutor mounts add "$PWD/platform-plugin-sample"
49+
tutor mounts add "$PWD/backend-plugin-sample"
5250

5351
# Rebuild image, run migrations, reboot containers:
5452
tutor dev launch
@@ -63,7 +61,7 @@ npm start
6361

6462
```bash
6563
# In your edx-platform directory
66-
pip install -e /path/to/sample-plugin/platform-plugin-sample
64+
pip install -e /path/to/sample-plugin/backend-plugin-sample
6765

6866
# Enable Learner Dashboard MFE
6967
# Go to http://localhost:18000/admin/waffle/flag/
@@ -90,9 +88,9 @@ python manage.py lms migrate
9088
Use the table above to identify which type of plugin matches your needs. You can combine multiple types in one plugin.
9189

9290
### 3. Study the Sample Code
93-
- **Backend**: Start with [`platform-plugin-sample/platform_plugin_sample/apps.py`](./platform-plugin-sample/platform_plugin_sample/apps.py) to understand plugin registration
94-
- **Events**: Examine [`platform-plugin-sample/platform_plugin_sample/signals.py`](./platform-plugin-sample/platform_plugin_sample/signals.py) for event handling patterns
95-
- **Filters**: Review [`platform-plugin-sample/platform_plugin_sample/pipeline.py`](./platform-plugin-sample/platform_plugin_sample/pipeline.py) for behavior modification
91+
- **Backend**: Start with [`backend-plugin-sample/openedx_plugin_sample/apps.py`](./backend-plugin-sample/openedx_plugin_sample/apps.py) to understand plugin registration
92+
- **Events**: Examine [`backend-plugin-sample/openedx_plugin_sample/signals.py`](./backend-plugin-sample/openedx_plugin_sample/signals.py) for event handling patterns
93+
- **Filters**: Review [`backend-plugin-sample/openedx_plugin_sample/pipeline.py`](./backend-plugin-sample/openedx_plugin_sample/pipeline.py) for behavior modification
9694
- **Frontend**: Explore [`frontend-plugin-sample/src/plugin.jsx`](./frontend-plugin-sample/src/plugin.jsx) for UI customization
9795

9896
### 4. Run This Sample
@@ -106,9 +104,9 @@ Each directory contains detailed README.md files with adaptation guidance.
106104
```
107105
sample-plugin/
108106
├── README.md # This file - overview and quick start
109-
├── platform-plugin-sample/
107+
├── backend-plugin-sample/
110108
│ ├── README.md # Backend plugin detailed guide
111-
│ ├── platform_plugin_sample/
109+
│ ├── openedx_plugin_sample/
112110
│ │ ├── apps.py # Django plugin configuration
113111
│ │ ├── models.py # Database models example
114112
│ │ ├── views.py # REST API endpoints
@@ -138,10 +136,10 @@ sample-plugin/
138136
- Add API endpoints in `views.py`
139137
- Implement event handlers in `signals.py`
140138
- Create filters in `pipeline.py`
141-
3. **Testing**: `cd platform-plugin-sample && make test`
142-
4. **Quality**: `cd platform-plugin-sample && make quality`
139+
3. **Testing**: `cd backend-plugin-sample && make test`
140+
4. **Quality**: `cd backend-plugin-sample && make quality`
143141

144-
**Detailed Guide**: See [`platform-plugin-sample/README.md`](./platform-plugin-sample/README.md)
142+
**Detailed Guide**: See [`backend-plugin-sample/README.md`](./backend-plugin-sample/README.md)
145143

146144
### Frontend Plugin Development
147145

@@ -167,7 +165,7 @@ This sample shows how backend and frontend plugins work together:
167165
### Backend + Frontend Integration
168166

169167
```python
170-
# platform-plugin-sample/platform_plugin_sample/views.py - Provides API
168+
# backend-plugin-sample/openedx_plugin_sample/views.py - Provides API
171169
class CourseArchiveStatusViewSet(viewsets.ModelViewSet):
172170
# API implementation
173171
```
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)