Projects
This documentation section was written by Claude.
| Project | Upstream | Source | Releases | Continuous |
|---|---|---|---|---|
| moos-ivp | moos-ivp/moos-ivp | uscan | release | no |
| openocean-messages | openocean-software/openocean-messages | git, signed tags | release, beta (v*-alpha.N, -beta.N, -rc.N) |
on each push |
| dccl | GobySoft/dccl | git, signed tags | release, beta (*_alphaN, _betaN, _rcN) |
on each push |
| moos-ivp-helm | GobySoft/moos-ivp, branch ivp-without-moos |
git | none: snapshots only | every 6 hours |
Adding a project
Each project is a directory in projects/, named after its Debian source package:
project.yaml: where the source comes from, and any settings that differ fromdefaults.yaml.debian/: the Debian packaging. Itschangelogversion is what gets released, withtrixieas the distribution.maintainers.yamlandkeys/: the people whose signatures are trusted for this project (see Signing and trust).
A project whose packages build-depend on another project's, or on an external repository's, lists them under build_depends (see Build dependencies). Software a member project needs that isn't packaged elsewhere is a dependency project, in dependencies/.
moos-ivp-helm is the IvP helm libraries built without MOOS (IVP_BUILD_HELM_LIBS_ONLY, from MOOS-IvP master with moos-ivp/moos-ivp#147), installed under /usr/lib/<multiarch>/ivp-helm so they coexist with the libmoos-ivp packages; find_package(IVP CONFIG) finds them with that prefix in CMAKE_PREFIX_PATH. The branch has no tags of its own, so the project is snapshots only.
A project.yaml for a project with signed tags v1.2.0 and prereleases v1.3.0-rc.1:
upstream:
git: https://github.com/example/example.git
# tag_format: "v{version}" # default
# prerelease_separator: "-" # default; Debian "~" becomes this in the tag
source: git
release:
require_signed_tag: true
beta_tags: '^v[0-9]+\.[0-9]+\.[0-9]+-(alpha|beta|rc)\.[0-9]+$'
continuous:
enabled: true
targets:
exclude:
- { distro: ubuntu, dist: jammy } # if a dependency is too old there
install_test:
packages: [cmake, g++, make]
commands:
- example --version
A project that only builds snapshots of a branch sets release.enabled: false (a changelog change releases nothing) and continuous.enabled: true, with continuous.branch if the branch isn't the repository's default. Its pull request checks build the branch head instead of the changelog version. Versions come from the last tag reachable from the head; where none is (a fork without tags, or a branch upstream tags elsewhere), continuous.version_base names the release the snapshots follow.
ci/project-config <project> get <setting> shows the merged settings, and ci/project-config <project> matrix the build targets. To build locally, see the top of the Makefile:
make debian-sbuild OOS_PACKAGE=example DISTRO=ubuntu DIST=resolute
A pull request that adds or changes a project builds and install-tests it on Ubuntu 26.04 (amd64). Once merged, the new debian/changelog releases it (after approval), and continuous builds start with the next poll or push.