Repository Naming
A repository name says what the component is and which stack it is built on, so a list of repositories can be filtered by type.
The Pattern
Section titled “The Pattern”<project>-<type>-<name><project>: product identifier (entirius), lowercase, mandatory prefix.<type>: simplified type/technology identifier from the table below.<name>: descriptive component name, kebab-case.
Component Types
Section titled “Component Types”| Component type | Pattern | Example |
|---|---|---|
| Frontend | entirius-pwa-<name> | entirius-pwa-cms, entirius-pwa-storefront |
| Backend service | entirius-service-<name> | entirius-service-volkanos |
| Django module | entirius-django-<name> | entirius-django-pim |
| Python library | entirius-py-<name> | entirius-py-bievents |
| Test package | entirius-test-package-<name> | entirius-test-package-emporium |
A component of a new type (an application, a library in another language) gets its row in this table together
with its first repository, in the same entirius-<type>-<name> form.
Naming Rules
Section titled “Naming Rules”- Lowercase and kebab-case only (words separated by
-). No_, no CamelCase. - Descriptive but concise: the repo name is self-describing.
- Short type segments (
py,django,pwa), not verbose ones (lib-python,module-django). - The
<project>prefix is always present.
Python Packages: Repository, Package, Module
Section titled “Python Packages: Repository, Package, Module”The repo/distribution name (brand + category) and the module name (importable identity) are
separate. The repo gets the entirius-<type>- prefix; the module is a short, stable name.
Python library: entirius and the py category live only in the repo/dist:
Repository: entirius-py-bieventsPackage (PyPI): entirius-py-bieventsModule (import): bievents
pip install entirius-py-bieventsimport bieventsDjango module: django stays in the module (= app_label = DB table prefix):
Repository: entirius-django-pimPackage: entirius-django-pimModule: django_pim
INSTALLED_APPS = ['django_pim']The module is a short importable identity, stable across repo renames. The entirius-
brand and the py category are distribution-level; the django framework prefix stays
in the module because it is the app_label and DB table prefix. Standard OSS idiom
(djangorestframework is imported as rest_framework). Renaming a distribution never changes the module name:
The Schema Contract.
Special Cases
Section titled “Special Cases”- Two repositories have no
<type>segment: the Docker harnessentirius-zenoand the organisation’s community files in.github. - A module that connects another module to an external platform names both in
<name>:entirius-django-pim-export-to-magento-api. - Test package:
<name>is the theme of the dataset. The repository holds the demo data and the tests that run on it, because the tests assert on that data. Test kinds (BDD, end-to-end) are targets and tags inside the repository, not separate repositories.
Language Policy: English in code, docs, git and API