docs(proxy): tiered reference, basics page, 3.0.0 release mechanics (#93 workstream F) - #100
Merged
Merged
Conversation
…nics ## Summary Workstream F of the v3.0.0 release gate (#93). F1: docs/proxy.yml reorganized into six titled tiers - Essentials (~10 keys), Traffic & routing, Security & access, Performance & observability, Fleet, Proxy container (run) - with a per-key layering table (edge / per-app / both) at the top and the "run.options are docker run options, not kamal-proxy flags" clarification next to the key that needed it. docs/proxy-basics.md mirrors the Essentials tier as a standalone ten-key page. Key order is free to change: validation looks keys up by name. Also: scope_cookie_paths was still in the docs schema after the D4 cut (validating while emitting nothing, same miss class as the leases) - gone. F2: bin/release-dash accepts the three-segment fork grammar (3.0.0, tag dash-v3.0.0; the legacy four-segment form stays for the pre-3.0 line), and the rules docs stop teaching the abandoned grammar - the version.rb sync conflict rule becomes "keep ours: the fork declares its own major". F3: docs/release-notes/3.0.0.md drafts the release notes with the required callouts by name: per-role+destination prune retention, exact accessory tag matching, the R6 readiness warnings, and the one-time digest-convergence fleet reboot on first deploy (zero-downtime where port_holder is on). F4: follow-ups filed as promised - #98 (kamal doctor reports the running proxy's docker socket) and #99 (kamal proxy cache stats/purge CLI); weighted-canary is already tracked and not duplicated. ## Verification - [x] bundle exec rubocop --parallel passes - [x] unit suite passes - the docs file is the validation schema, so the reorder is proven by the suite, not just eyeballed Refs #93
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Workstream F of the v3.0.0 release gate (#93) — docs tiering, release mechanics, bookkeeping. The last PR before G (the release itself, waiting on
kamal-proxy:v1.0.0.1).docs/proxy.ymlreorganized into six titled tiers — 1 Essentials (~10 keys), 2 Traffic & routing, 3 Security & access, 4 Performance & observability, 5 Fleet, 6 Proxy container (run) — with a per-key layering table (edge / per-app / both) at the top and the "run.optionsaredocker runoptions, not kamal-proxy flags" one-liner next to the key it disambiguates.docs/proxy-basics.mdmirrors the Essentials tier as a standalone ten-key page with a "when you need more" map into the tiers. Reordering is free — validation looks keys up by name, and the suite (which drives validation through this file) proves it.bin/release-dashaccepts the three-segment fork grammar (3.0.0→ tagdash-v3.0.0; the legacy four-segment form stays valid for the pre-3.0 patch line)..claude/rules/upstream-sync.md(theversion.rbconflict rule becomes "keep ours — the fork declares its own major"),.claude/rules/git-workflow.mdandCLAUDE.mdstop teaching the abandoned grammar.docs/release-notes/3.0.0.mdwith every required callout by name: per-role+destination prune retention, exact accessory tag matching, the R6 readiness warnings, the renames/cuts table, and the one-time digest-convergence fleet reboot on the first post-upgrade deploy.kamal doctorreports whether the running proxy has the docker socket) and kamal proxy cache CLI: stats and purge #99 (kamal proxy cachestats/purge CLI). Weighted-canary is already tracked (kamal#941 / ROADMAP R5) — not duplicated.Refs #93 (workstream F — G is the release itself)
Test plan
bundle exec rubocop --parallelcleanDeviations & judgment calls
scope_cookie_pathswas still in the docs schema after D4 (validating while emitting nothing — the same miss class as the leases caught in feat(proxy): port_holder handoff, JSON-verified reboots, LB drift detection (#93 workstream E) #97). Cut during the reorder that touched every block anyway.docs/proxy-basics.md(repo docs dir, plain markdown) — not a second schema file, per the "no docs-file split requiring loader changes" out-of-scope rule. The loader still reads exactlydocs/<key>.yml.loggingandexclude_metrics_pathshad no home in the issue's five names, and a seventh section for two keys wasn't worth it.port_holder: trueis set — it's still opt-in (the open default question from feat(proxy): port_holder handoff, JSON-verified reboots, LB drift detection (#93 workstream E) #97). If you flip the default before G, the notes need one sentence changed.bin/release-dashkeeps accepting the four-segment grammar rather than hard-switching — a 2.12.0.x patch release remains possible without reverting the script.