javadoc markdown in code. plus we build source jar. no javadoc site
es
jsdoc in code. no jsdoc site
markdown documents in repo root src/main/resources. this is also the home of fossil
repository layout
promontory does not conform to standard, see blueprint for that
additional layer above promontory-dev, need place for parent poms
naming top modules vs sub modules. eg. provisioning -> provisioning-common
testing
single test module, no tests in individual modules (test dependencies are not transitive, etc.)
default timeout of 30 seconds
junit concurrent tests
paralell at surefire/jvm level https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html
parallel at junit level https://docs.junit.org/6.0.1/user-guide/index.html#writing-tests-parallel-execution
we use junit, but tests must opt in using @Execution(ExecutionMode.CONCURRENT)
provisioning
naming
in dev repo: provisioning module
in ops repo: ops module
built zip: installer
password protected: update
install
runbooks
unversions, versioned + idempotent
builtin props
provisioning_dir
runbook_name / runbook_version (resolved during step queue creation, otherwise we can't do it due to nested runbooks, slots, etc.)
lockfiles
installer
include provisioning jar in installer instead of reusing server jar. easier handling, makes versio in ops independent of provisioning module but adds some size
./install.sh my_runbook
toolDir, etc. not known to framework-provisioning
root script mechanism. some commands like systemd-creds need to be run in PID 1