Internals
Release process
Practical checklist for preparing and tagging a deeplo release.
Use this checklist before tagging a release. It is intentionally short and biased toward the checks that catch real release regressions.
v0.1.0 checklist
1. Clean verification
From the repo root:
go test -count=1 ./...
make build
make check
make docs-build
make releaseWhat this should prove:
- unit and package tests pass from a cold test run
- the binary builds locally
- the example config still validates
- cross-compiled release artifacts are produced with the expected names
2. Docs verification
From the repo root:
make docs-buildWhat this should prove:
- the docs site still builds cleanly
- navigation/content changes did not break the static documentation surface
If Next reports that another build is already running, clear the stale generated lock from website/.next/lock and rerun the build.
3. CLI smoke checks
From the repo root:
./bin/deeplo version
./bin/deeplo --help
./bin/deeplo daemon --help
./bin/deeplo check --config examples/config/example.ymlCheck manually:
versionprints the expected release version when built withVERSION=v0.1.0- help text matches the documented command set and wording
- the example config still validates successfully
4. Release artifact sanity
Verify bin/ contains:
deeplo_linux_amd64
deeplo_linux_arm64
deeplo_darwin_amd64
deeplo_darwin_arm64Optional quick checks:
- run
file bin/deeplo_linux_amd64to confirm it is a static ELF binary - run one built binary locally to confirm it starts and prints help/version
5. Documentation sanity
Check these surfaces before tagging:
README.md- Installation guide
- Bootstrap config guide
- Triggers guide
- Configuration reference
- CLI reference
- State reference
- v0.1.0 release notes draft
Confirm:
- the native (systemd) and Docker install paths are both clearly documented
- advanced features such as git-managed config and
CONFIG_WATCHare clearly secondary - docs match current code and command output
- no stale names or removed config shapes remain
Useful repo-root grep:
rg -n "deeplod" README.md website/content/docsNo hits should remain outside of intentional legacy-migration context.
6. Optional runtime smoke test
If you have a disposable host or local test environment:
- Start the daemon:
deeplo daemon(or via systemd/Docker). - Run
deeplo check --probe-hostsagainst a real config. - Confirm
/healthzreturns200 ok. - If using webhooks, send one real or test GitHub delivery and confirm it reaches the daemon.
7. Tag and release
Build with the intended version:
make build VERSION=v0.1.0
make release VERSION=v0.1.0Then:
- Commit final docs/release-note changes.
- Tag the release:
git tag v0.1.0 - Push the tag.
- Publish release artifacts and release notes.
Notes
deeplo versionprintsdevunless the binary is built with theVERSION=...make variable or equivalent linker flags.deeplo refreshis an observed runtime snapshot only. It should not be used as evidence that deployment history was rebuilt.- Poll mode dispatches a branch-tip SHA once. A failed deploy of the same SHA is not retried automatically on the next poll cycle.