Skip to content

Commit ceb984f

Browse files
committed
build!: Rename the repo and PyPI project to openedx-core
1 parent 33985a5 commit ceb984f

23 files changed

Lines changed: 125 additions & 108 deletions

File tree

.github/workflows/pypi-publish.yml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,28 @@ jobs:
2020
- name: Install pip
2121
run: pip install -r requirements/pip.txt
2222

23-
- name: Build package
23+
- name: Build the package (openedx-core)
2424
run: python setup.py sdist bdist_wheel
2525

26-
- name: Publish to PyPI
26+
- name: Publish openedx-core to PyPI
2727
uses: pypa/gh-action-pypi-publish@release/v1
2828
with:
2929
user: __token__
3030
password: ${{ secrets.PYPI_UPLOAD_TOKEN }}
31+
32+
# TEMPORARY: Build and publish the transitional openedx-learning shell package.
33+
# TODO: Remove after the transition is complete.
34+
# See https://github.com/openedx/openedx-learning/issues/470
35+
36+
- name: Build shell package (openedx-learning)
37+
run: |
38+
cd tmp-openedx-learning
39+
python setup.py sdist bdist_wheel
40+
cd ..
41+
42+
- name: Publish openedx-learning shell to PyPI
43+
uses: pypa/gh-action-pypi-publish@release/v1
44+
with:
45+
user: __token__
46+
password: ${{ secrets.PYPI_UPLOAD_TOKEN }}
47+
packages-dir: tmp-openedx-learning/dist/

CHANGELOG.rst

Lines changed: 0 additions & 28 deletions
This file was deleted.

README.rst

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
Open edX Learning Core (and Tagging)
2-
====================================
1+
Open edX Core: Foundational Teaching & Learning Content Packages
2+
================================================================
33

44
|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
55
|license-badge|
@@ -66,19 +66,19 @@ One Time Setup
6666
.. code-block::
6767
6868
# Clone the repository
69-
git clone git@github.com:ormsbee/openedx-learning.git
70-
cd openedx-learning
69+
git clone git@github.com:ormsbee/openedx-core.git
70+
cd openedx-core
7171
7272
# Set up a virtualenv using virtualenvwrapper with the same name as the repo and activate it
73-
mkvirtualenv -p python3.11 openedx-learning
73+
mkvirtualenv -p python3.11 openedx-core
7474
7575
7676
Every time you develop something in this repo
7777
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7878
.. code-block::
7979
8080
# Activate the virtualenv
81-
workon openedx-learning
81+
workon openedx-core
8282
8383
# Grab the latest code
8484
git checkout master
@@ -147,26 +147,26 @@ For more information about these options, see the `Getting Help`_ page.
147147
.. _community Slack workspace: https://openedx.slack.com/
148148
.. _Getting Help: https://openedx.org/getting-help
149149

150-
.. |pypi-badge| image:: https://img.shields.io/pypi/v/openedx-learning.svg
151-
:target: https://pypi.python.org/pypi/openedx-learning/
150+
.. |pypi-badge| image:: https://img.shields.io/pypi/v/openedx-core.svg
151+
:target: https://pypi.python.org/pypi/openedx-core/
152152
:alt: PyPI
153153

154-
.. |ci-badge| image:: https://github.com/openedx/openedx-learning/workflows/Python%20CI/badge.svg?branch=master
155-
:target: https://github.com/openedx/openedx-learning/actions
154+
.. |ci-badge| image:: https://github.com/openedx/openedx-core/workflows/Python%20CI/badge.svg?branch=master
155+
:target: https://github.com/openedx/openedx-core/actions
156156
:alt: CI
157157

158-
.. |codecov-badge| image:: https://codecov.io/github/edx/openedx-learning/coverage.svg?branch=master
159-
:target: https://codecov.io/github/edx/openedx-learning?branch=master
158+
.. |codecov-badge| image:: https://codecov.io/github/edx/openedx-core/coverage.svg?branch=master
159+
:target: https://codecov.io/github/edx/openedx-core?branch=master
160160
:alt: Codecov
161161

162-
.. |doc-badge| image:: https://readthedocs.org/projects/openedx-learning/badge/?version=latest
163-
:target: https://openedx-learning.readthedocs.io/en/latest/
162+
.. |doc-badge| image:: https://readthedocs.org/projects/openedx-core/badge/?version=latest
163+
:target: https://openedx-core.readthedocs.io/en/latest/
164164
:alt: Documentation
165165

166-
.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/openedx-learning.svg
167-
:target: https://pypi.python.org/pypi/openedx-learning/
166+
.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/openedx-core.svg
167+
:target: https://pypi.python.org/pypi/openedx-core/
168168
:alt: Supported Python versions
169169

170-
.. |license-badge| image:: https://img.shields.io/github/license/edx/openedx-learning.svg
171-
:target: https://github.com/openedx/openedx-learning/blob/master/LICENSE.txt
170+
.. |license-badge| image:: https://img.shields.io/github/license/edx/openedx-core.svg
171+
:target: https://github.com/openedx/openedx-core/blob/master/LICENSE.txt
172172
:alt: License

catalog-info.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: backstage.io/v1alpha1
22
kind: Component
33
metadata:
4-
name: openedx-learning
4+
name: openedx-core
55
spec:
66
type: other
77
lifecycle: unknown

docs/Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ qthelp:
9696
@echo
9797
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
9898
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
99-
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/openedx-learning.qhcp"
99+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/openedx-core.qhcp"
100100
@echo "To view the help file:"
101-
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/openedx-learning.qhc"
101+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/openedx-core.qhc"
102102

103103
.PHONY: applehelp
104104
applehelp:
@@ -115,8 +115,8 @@ devhelp:
115115
@echo
116116
@echo "Build finished."
117117
@echo "To view the help file:"
118-
@echo "# mkdir -p $$HOME/.local/share/devhelp/openedx-learning"
119-
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/openedx-learning"
118+
@echo "# mkdir -p $$HOME/.local/share/devhelp/openedx-core"
119+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/openedx-core"
120120
@echo "# devhelp"
121121

122122
.PHONY: epub

docs/conf.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# pylint: disable=invalid-name
22
"""
3-
openedx-learning documentation build configuration file.
3+
openedx-core documentation build configuration file.
44
55
This file is execfile()d with the current directory set to its
66
containing dir.
@@ -89,7 +89,7 @@ def get_version(*file_paths):
8989
top_level_doc = 'index'
9090

9191
# General information about the project.
92-
project = 'openedx-learning'
92+
project = 'openedx-core'
9393
copyright = f'{datetime.now().year}, edX Inc.' # pylint: disable=redefined-builtin
9494
author = 'edX Inc.'
9595
project_title = 'Open edX Learning Core'
@@ -169,7 +169,7 @@ def get_version(*file_paths):
169169
# documentation.
170170
#
171171
html_theme_options = {
172-
"repository_url": "https://github.com/openedx/openedx-learning",
172+
"repository_url": "https://github.com/openedx/openedx-core",
173173
"repository_branch": "main",
174174
"path_to_docs": "docs/",
175175
"home_page_in_toc": True,
@@ -206,7 +206,7 @@ def get_version(*file_paths):
206206
# The name for this set of Sphinx documents.
207207
# "<project> v<release> documentation" by default.
208208
#
209-
# html_title = 'openedx-learning v0.1.0'
209+
# html_title = 'openedx-core v0.1.0'
210210

211211
# A shorter title for the navigation bar. Default is the same as html_title.
212212
#

docs/decisions/0001-purpose-of-this-repo.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ The code that operates on learning content in Open edX primarily resides in edx-
1212
Decision
1313
--------
1414

15-
The openedx-learning repository was created to provide a new place for certain core learning concepts, data models, and APIs to be implemented. These concepts will be more granular and composable than the courses we have today.
15+
The openedx-core repository was created to provide a new place for certain core learning concepts, data models, and APIs to be implemented. These concepts will be more granular and composable than the courses we have today.
1616

1717
This would have two long term goals:
1818

@@ -24,7 +24,7 @@ This repo will first be piloted with the use case of unit composition in service
2424
Consequences
2525
------------
2626

27-
The edx-platform repo will eventually have openedx-learning as a dependency. As functionality is implemented in openedx-learning (e.g. unit composition for content libraries), edx-platform will make use of it.
27+
The edx-platform repo will eventually have openedx-core as a dependency. As functionality is implemented in openedx-core (e.g. unit composition for content libraries), edx-platform will make use of it.
2828

2929
Over time, plugin apps should be able to make use of stable APIs in this repo instead of having to call into edx-platform's Modulestore or Block Transformers. This will serve as a third leg of the new in-process extension mechanisms, where openedx-events provides event notification, openedx-filters provides the ability to intercept and modify the workflow of existing views, and this repo will allow content querying capability.
3030

docs/decisions/0003-content-extensibility.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Learning Core data models will be built with extensibility in mind, with the fol
3535
#. It will be possible to migrate existing content data over time, as new plugin apps become available.
3636
#. All content and versions of content will have UUIDs to allow for stable references across services.
3737

38-
This layering of related models will add complexity to the data model, but we accept that tradeoff to decouple plugin models from the core application and from other plugins. To make this easier to deal with, openedx-learning should provide abstract models for common use cases, and expose those via a ``models_api.py`` module. This will lower the barrier to entry for developers, and allow us to more easily enforce conventions like setting ``primary_key=True`` with our ``OneToOneField`` relationships.
38+
This layering of related models will add complexity to the data model, but we accept that tradeoff to decouple plugin models from the core application and from other plugins. To make this easier to deal with, openedx-core should provide abstract models for common use cases, and expose those via a ``models_api.py`` module. This will lower the barrier to entry for developers, and allow us to more easily enforce conventions like setting ``primary_key=True`` with our ``OneToOneField`` relationships.
3939

4040
Rejected Alternatives
4141
---------------------

docs/decisions/0007-tagging-app.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Context
55
-------
66

7-
We want the openedx_tagging app to be useful in different Django projects outside of just openedx-learning and edx-platform.
7+
We want the openedx_tagging app to be useful in different Django projects outside of just openedx-core and edx-platform.
88

99

1010
Decisions

docs/decisions/0015-serving-static-assets.rst

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ Both Studio and the LMS need to serve course team authored static assets as part
88

99
This ADR is the synthesis of various ideas that were discussed across a handful of pull requests and issues. These links are provided for extra context, but they are not required to understand this ADR:
1010

11-
* `File uploads + Experimental Media Server #31 <https://github.com/openedx/openedx-learning/pull/31>`_
12-
* `File Uploads + media_server app #33 <https://github.com/openedx/openedx-learning/pull/33>`_
13-
* `Modeling Files and File Dependencies #70 <https://github.com/openedx/openedx-learning/issues/70>`_
14-
* `Serving static assets (disorganized thoughts) #108 <https://github.com/openedx/openedx-learning/issues/108>`_
11+
* `File uploads + Experimental Media Server #31 <https://github.com/openedx/openedx-core/pull/31>`_
12+
* `File Uploads + media_server app #33 <https://github.com/openedx/openedx-core/pull/33>`_
13+
* `Modeling Files and File Dependencies #70 <https://github.com/openedx/openedx-core/issues/70>`_
14+
* `Serving static assets (disorganized thoughts) #108 <https://github.com/openedx/openedx-core/issues/108>`_
1515

1616
Data Storage Implementation
1717
~~~~~~~~~~~~~~~~~~~~~~~~~~~
1818

19-
The underlying data models live in the openedx-learning repo. The most relevant models are:
19+
The underlying data models live in the openedx-core repo. The most relevant models are:
2020

21-
* `Content in contents/models.py <https://github.com/openedx/openedx-learning/blob/main/openedx_learning/core/contents/models.py>`_
22-
* `Component and ComponentVersion in components/models.py <https://github.com/openedx/openedx-learning/blob/main/openedx_learning/core/components/models.py>`_
21+
* `Content in contents/models.py <https://github.com/openedx/openedx-core/blob/main/openedx_learning/core/contents/models.py>`_
22+
* `Component and ComponentVersion in components/models.py <https://github.com/openedx/openedx-core/blob/main/openedx_learning/core/components/models.py>`_
2323

2424
Key takeaways about how this data is stored:
2525

@@ -60,7 +60,7 @@ Security Requirements
6060
**Assets should enforce more granular permissions at the individual Component level.**
6161
An important distinction between ContentStore and v2 Content Library assets is that the latter can be directly associated with a Component. As a long term goal, we should be able to make permissions check on per-Component basis. So if a student does not have permission to view a Component for whatever reason (wrong content group, exam hasn't started, etc.), then they should also not have permission to see static assets associated with that component.
6262

63-
The further implication of this requirement is that *permissions checking must be extensible*. The openedx-learning repo will implement the details of how to serve an asset, but it will not have the necessary models and logic to determine whether it is allowed to.
63+
The further implication of this requirement is that *permissions checking must be extensible*. The openedx-core repo will implement the details of how to serve an asset, but it will not have the necessary models and logic to determine whether it is allowed to.
6464

6565
**Assets must be served from an entirely different domain than the LMS and Studio instances.**
6666
To reduce our chance of maliciously uploaded JavaScript compromising LMS and Studio users, user-uploaded assets must live on an entirely different domain from LMS and Studio (i.e. not just another subdomain). So if our LMS is located at ``sandbox.openedx.org``, the files should be accessed at a URL like ``assets.sandbox.openedx.io``.

0 commit comments

Comments
 (0)