Skip to content

Architecture decision records

Significant decisions are recorded as ADRs using the MADR template. An ADR is never edited after acceptance; a new ADR supersedes it instead. Number the next record sequentially and add it to mkdocs.yml.

ID Title Status
0001 Native C++20 with Qt 6 Widgets Accepted
0002 Layered libraries with a Qt-free core Accepted
0003 CMake presets and vcpkg manifest mode Accepted
0004 GPL-3.0 license Accepted
0005 Unsigned distribution through free channels Accepted; Linux formats amended by 0016
0006 Documentation standard Accepted; API reference replaced by 0017
0007 Trunk-based development, Conventional Commits and automated releases Accepted
0008 Testing strategy Accepted
0009 Desktop shell: one main window with dock panels, tested offscreen Accepted
0010 Map view: painted raster tiles with a disk cache Accepted
0011 Track following and log replay as sources with a seekable transport interface Accepted
0012 Log file format: timestamped plain-text sentences Accepted
0013 AIS own-vessel messages encoded in core with an independent decoder in the tests Accepted
0014 Outputs choose an encoding; every encoder lives in core and framing options in io Accepted
0015 Release workflow: one reusable workflow, CPack on every platform, called by Release Please Accepted
0016 Linux packages: AppImage and Flatpak; deb and rpm deferred Accepted
0017 C++ reference generated from Doxygen XML into the MkDocs site Accepted

Template

# NNNN Title

- Status: proposed | accepted | deprecated | superseded by [NNNN](NNNN-title.md)
- Date: YYYY-MM-DD

## Context and problem statement

## Decision drivers

## Considered options

## Decision outcome

### Consequences

## More information