Skip to content

Latest commit

 

History

History
46 lines (22 loc) · 2.84 KB

File metadata and controls

46 lines (22 loc) · 2.84 KB

Rules

This document describes the code, architecture, and lifecycle rules that are obligatory for all ETS components.

General rules

  • 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

Naming and namespacing rules

  • The correct spelling of the long form name of ETS is Galeria Kaufhof eShop Technology Stack, the correct spelling of the medium form name is eShop Technology Stack, and the short form is ETS

  • 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 namespace de.kaufhof.ets.filestorage

  • Within a component's namespace, each subcomponent has its own namespace, e.g. core, resulting in the fully qualified namespace de.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)

Example

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.