Commit eaa165d
authored
docs: release-readiness sweep — spec + populate changelog, refresh guides, future-proof upgrade test (#585)
* docs(changelog): spec a human-readable changelog + populate [Unreleased]
Add specs/release/changelog.spec.yaml (release-changelog): every entry is a
user-facing sentence (>=5 words, no commit-subject prefix), Keep a Changelog
categories, dated version sections, no emoji. Enforced by
packaging/tests/changelog_test.go (source-inspection, AC-01..05), scoped to
the actively-edited [Unreleased] section so history is grandfathered.
Populate [Unreleased] with the post-rc.7 work in that style: Settings
activation (users, notifications, security/SSO), per-host SSH auth/sudo
learning, one-command safe upgrade, airgap + fresh-install fixes, and the
pre-release security-hardening batch (#584).
* docs: refresh hardening + install guides; de-hardcode upgrade test
- SECURITY_HARDENING.md: drop the 'not yet implemented' rate-limit/headers
callout (shipped in #584); document auth rate limiting, CSRF, and security
headers as live; note always-on breach screening; add an outbound-SSH
persistent known-hosts subsection; version line to 0.2.0 rc series.
- install_guide.md: fix the stale DEB version example (rc.5 -> rc.7) and add an
'Upgrading' section documenting the one-command auto-migrate + backup +
fail-safe path and /etc/openwatch/upgrade.conf.
- upgrade-container-test.sh / run-upgrade-container-test.sh: stop hardcoding
migration 34->35 and the host_connection_profile table. The host driver now
derives the head migration's goose version_id and its -- +goose Down SQL and
passes them in; the test reverses exactly the head migration and asserts a
generic prior->head advance, so it survives every future migration.
(CLAUDE.md was also refreshed locally for AI sessions but is intentionally
gitignored per commit 7a73353, so it is not part of this commit.)
* test(packaging): pin upgrade-test driver to the host RPM arch
dist/ can hold a leftover cross-built arm64 RPM (the packaging Go suite
cross-builds it for AC-14), and the rockylinux:9 container runs the host
platform, so the previous `cp dist/openwatch-*-1.*.rpm` swept in both arches
and `rpm -i` collided on /usr/bin/openwatch. Glob a single host-arch RPM.
Validated end-to-end: the container test now passes — real `rpm -U` runs the
%post helper ($1=2), which stops the service, takes a pg_dump restore point,
applies the head migration (35 -> 36), and restarts.1 parent 1f6e72d commit eaa165d
9 files changed
Lines changed: 531 additions & 36 deletions
File tree
- docs
- engineering
- guides
- packaging/tests
- specs/release
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
168 | | - | |
| 168 | + | |
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
175 | | - | |
| 175 | + | |
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
| |||
2867 | 2867 | | |
2868 | 2868 | | |
2869 | 2869 | | |
2870 | | - | |
| 2870 | + | |
2871 | 2871 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
13 | 81 | | |
14 | 82 | | |
15 | 83 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
250 | | - | |
| 250 | + | |
251 | 251 | | |
252 | 252 | | |
253 | 253 | | |
| |||
404 | 404 | | |
405 | 405 | | |
406 | 406 | | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
407 | 464 | | |
408 | 465 | | |
409 | 466 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
65 | 79 | | |
66 | 80 | | |
67 | 81 | | |
| |||
164 | 178 | | |
165 | 179 | | |
166 | 180 | | |
167 | | - | |
| 181 | + | |
168 | 182 | | |
169 | 183 | | |
170 | 184 | | |
| |||
173 | 187 | | |
174 | 188 | | |
175 | 189 | | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
182 | 196 | | |
183 | 197 | | |
184 | 198 | | |
| |||
297 | 311 | | |
298 | 312 | | |
299 | 313 | | |
300 | | - | |
| 314 | + | |
301 | 315 | | |
302 | 316 | | |
303 | 317 | | |
| |||
309 | 323 | | |
310 | 324 | | |
311 | 325 | | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
321 | 342 | | |
322 | 343 | | |
323 | 344 | | |
| |||
0 commit comments