Skip to content

Repository and source code structure

Repositories are split between the following namespaces:

The intention is to align our repository structure in GitLab with our names in the code base.

Tip

This text uses Maven terminology: Group means the namespace we are working in and the Artifact the concrete repository.

Definitions

Group is the path in GitLab under root, skipping the first "secata" root folder (https://gitlab.com/secata).

Artifact is the project name in GitLab. The exceptions to this rule are project names that include the project group's name. To avoid having numerous GitLab projects named e.g. service, the project's group name can be prepended: companjon-service. The artifact for companjon/companjon-service should just be service.

Default strategy

Java

Root namespace is com.partisia or com.secata.

  • Maven pom files: groupid = <Root>.<Group>, artifactid = Artifact
  • Java package path: <Root>.<Group>.<Artifact>

JAR deployment artifact names are derived from the POM.

TypeScript

Root is partisia or secata

  • package.json: name = @Root/Group-Artifact
  • npm package path: none

Package file names are derived from the name in package.json.

Rust

Cargo.toml: [package].name = Artifact

Root groups in secata

Some groups should be seen as root groups, these are:

Group is the path in GitLab under root, skipping the first secata/* root folder.

PBC exception

https://gitlab.com/secata/pbc is a notable exception from default behaviour. Here the root is either com.partisia or com.partisiablockchain depending on there is an open source equivalent. Regardless the maven pom root is always com.partisia (to distinguish from the open source variant with root com.partisiablockchain.)

Java

Package root is: com.partisia

  • Maven pom files: groupid = com.partisia.blockchain.<Group>, artifactid = <Artifact>
  • Java package path: com.partisiablockchain.<Artifact>

Core

For https://gitlab.com/secata/pbc/core we ignore the core suffix in packages:

  • Java package path: com.partisiablockchain.<Artifact>