Repository and source code structure
We have all our repositories in the Secata group in GitLab: https://gitlab.com/secata
There is an additional place for code, which is the secata open source code: https://gitlab.com/secata-public
The intention is to align our repository structure in GitLab with our names in the code base.
In this text we adopt the terminology from https://maven.apache.org/guides/mini/guide-naming-conventions.html where group means the area 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 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:
Incubator: https://gitlab.com/secata/incubator
PBC: https://gitlab.com/secata/pbc
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>