This document describes the code, architecture, and lifecycle rules that are obligatory for all ETS components.
-
All public ETS component code repositories have their home at
https://github.com/Galeria-Kaufhof/ets-<name-of-component>
-
All ETS components that release and publish artifacts used by others must follow the Semantic Versioning 2.0.0 guidelines for versioning their releases
-
All public ETS components must ship with a root folder
CHANGELOG.md
file that follows the Keep a Changelog 1.0.0 guidelines -
All public ETS components must be released under The MIT License and must be copyright Galeria Kaufhof GmbH if released by Galeria Kaufhof GmbH employees or contractors
-
The correct spelling of the long form name of ETS is
Galeria Kaufhof eShop Technology Stack
, the correct spelling of the medium form name iseShop Technology Stack
, and the short form isETS
-
ETS Software uses the Java namespace / groupId
de.kaufhof.ets
-
Within this namespace, each component has its own namespace, e.g.
filestorage
, resulting in the fully qualified namespacede.kaufhof.ets.filestorage
-
Within a component's namespace, each subcomponent has its own namespace, e.g.
core
, resulting in the fully qualified namespacede.kaufhof.ets.filestorage.core
-
The artifactId of all artifacts an ETS component releases must start with
ets-
, e.g.ets-filestorage-core
-
If your component is an ETS library or application, then if it has only one subcomponent, its artifactId must end with
-core
, e.g.ets-filestorage-core
; additional subcomponents can have arbitrary artifactId endings, e.g.ets-filestorage-nfs
-
Subcomponents of an ETS component must live in root subfolders which are named like the subcomponent's artifactId, e.g.
/ets-filestorage-core
-
Within a subcomponent's subfolder, create a source code hierarchy following the pattern
src/main/scala/de/kaufhof/ets/<component-name>/<subcomponent-name>
, e.g.src/main/scala/de/kaufhof/ets/filestorage/core
-
Component and subcomponent namespace segments must be one-word all-lowercase UTF-8
[a-z0-9]
strings (e.g.de.kaufhof.ets.filestorage.core
) -
Component artifactIds must be at-least-one-word, possibly multiple-words-concatenated-by-hyphens all-lowercase UTF-8
[a-z0-9]
strings (e.g.ets-filestorage-core
)
The source code for an ETS-compatible filestorage library would live at https://github.com/Galeria-Kaufhof/ets-filestorage
.
Its groupId + artifactId name would be de.kaufhof.ets:ets-filestorage-core
.
The Scala source code tree starts at /ets-filestorage-core/src/main/scala/de/kaufhof/ets/filestorage/core
, with package names starting with de.kaufhof.ets.filestorage.core
.