Skip to content

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.

<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 typePatternExample
Frontendentirius-pwa-<name>entirius-pwa-cms, entirius-pwa-storefront
Backend serviceentirius-service-<name>entirius-service-volkanos
Django moduleentirius-django-<name>entirius-django-pim
Python libraryentirius-py-<name>entirius-py-bievents
Test packageentirius-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.

  • 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-bievents
Package (PyPI): entirius-py-bievents
Module (import): bievents
pip install entirius-py-bievents
import bievents

Django module: django stays in the module (= app_label = DB table prefix):

Repository: entirius-django-pim
Package: entirius-django-pim
Module: 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.

  • Two repositories have no <type> segment: the Docker harness entirius-zeno and 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