Project setup

TODO Merge with repositories.md

Repository structure of hexatomic/hexatomic:

  • Root directory
    • main POM
    • .travis.yml (Travis CI config)
    • Meta files (.gitignore, README.md, LICENSE, CONTRIBUTING.md, CODE_OF_CONDUCT.md, etc.)
  • bundles
    • plug-in sub-projects
  • features
    • feature sub-projects
  • docs
    • source files for user and developer/maintainer documentation
  • releng
    • configuration and release engineering files

Setup details

The Hexatomic project in the hexatomic/hexatomic repository is set up generally along the lines of Eclipse Tycho for building plug-ins, OSGi bundles and Eclipse applications - Tutorial by Lars Vogel and Simon Scholz, Version 13.03.2019, and Eclipse RCP (Rich Client Platform) - Tutorial by Lars Vogel, Version 10.12.2018.

This means that

  1. It is built using Eclipse Tycho, a plugin for the Maven build system.
  2. Plug-ins, i.e., units that encapsulate well-defined functionality, are located in the bundles directory.
  3. Features, i.e., units that integrate one or more plug-ins, are located in the features directory.
  4. Configuration and release engineering-related files are located in the releng directory. This includes:
    • Project configuration (for packaging, target platform configuration, etc.)
    • Product definition; in the Eclipse world, products are units that in turn integrate one or more features to define a deliverable software.
    • Target platform definition; the target platform defines the features and plug-ins that Hexatomic is built on top of (against).
    • Update site definition; Hexatomic's features and plug-ins are provided
      1. through a repository in the p2 repository format, from which Hexatomic can be updated automatically and manually from within the application; and
      2. As deployable units, i.e., the actual zip files that users will download in order to get Hexatomic.
    • Miscellanea, e.g., shell scripts for deploying artifacts, etc.
  5. It uses pomless builds, i.e., not every single plug-in or feature needs its own build definition XML file (pom.xml), which saves a lot of manual labour.

Project parent / root POM

Hexatomic has a root POM, i.e., to build the entire project, a single Maven command, e.g., mvn clean install, in the root folder is enough.

Target platform

tpd

Documentation

All folders that are parent folders shall contain a README.md file that explains the contents of the folder.

TODO FIXME BELOW

Other than that, cf. section on documentation!

TODO FIXME ABOVE