-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy path.importlinter
More file actions
64 lines (53 loc) · 2.61 KB
/
.importlinter
File metadata and controls
64 lines (53 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# This repo is intended to be a library of apps used across multiple
# projects, and we want to ensure certain dependency relationships. Please
# think through any changes you make to this file carefully, and don't just
# casually modify these linting rules to "fix the build".
[importlinter]
root_packages =
openedx_content
openedx_tagging
openedx_django_lib
openedx_core
# This is layering between our top-level src folders (mostly Django apps).
# This should be updated as new Django apps are added.
# It's possible this might need to grow into multiple rules.
[importlinter:contract:src_layering]
name = "top-level source folders are layered correctly"
type = layers
layers =
# Content is currently the highest-level thing in this repo.
# Over time, we may add apps "above" or "below" this.
openedx_content
# Tagging is very simple & fundamental. Should probably not depend on any other Django apps.
openedx_tagging
# Django utilities. Should not dependend on any of the real apps (above).
openedx_django_lib
# This just an empty shell package, to expose the __version__ number.
# Should not depend on anything.
openedx_core
# This is "applet" layering, within our Content djangoapp.
# Every new applet should be added to this list when it it created.
[importlinter:contract:content_applet_layering]
name = "openedx_content's internal applets are layered correctly"
type = layers
layers=
# The public API is at the top. None of the internal applets should call to it.
openedx_content.api
# The "backup_restore" applet handles the new export and import mechanism.
openedx_content.applets.backup_restore
# The "components" applet is responsible for storing versioned Components,
# which in Open edX Studio terminology maps to things like individual
# Problems, Videos, and blocks of HTML text. This is also the type we would
# associate with a single "leaf" XBlock–one that is not a container type and
# has no child elements.
openedx_content.applets.components
# The "media" applet stores the simplest pieces of binary and text data,
# without versioning information. These belong to a single Learning Package.
openedx_content.applets.media
# The "collections" applet stores arbitrary groupings of PublishableEntities.
# Its only dependency should be the publishing app.
openedx_content.applets.collections
# The lowest layer is "publishing", which holds the basic primitives needed
# to create Learning Packages and manage the draft and publish states for
# various types of content.
openedx_content.applets.publishing