Replace dead pup.pt short links with docs.openvoxproject.org URLs - #279
Conversation
The pup.pt redirector no longer resolves slugs; every one of them now bounces to a parked lander page, and the hostname is on the resale market. Point the links at full URLs under the domain we control instead of standing up a replacement short domain. This matches the convention README.md and CONTRIBUTING.md already use. Covers all 59 actionable references, in lib/, guides/, and schemas/. CHANGELOG.md and HISTORY.md are left alone, since they are historical release records. The schema JSON is regenerated from the OPTIONS hashes rather than edited by hand. Also in guides/links.yaml, which is what `bolt guide links` prints: replace bolt.guide, slack.puppet.com, and the puppetlabs/bolt repo with their OpenVox equivalents, and put each URL on its own line so the output still fits an 80-column terminal. One reference had no mapping. lib/bolt/analytics.rb pointed at an analytics opt-out page that does not exist in the OpenBolt docs. Analytics are force-disabled in this fork and the message was unreachable, so the block is removed. The sample Puppetfile in openvox-docs carries the same comment, but it comes from lib/bolt/module_installer/puppetfile.rb, so a docs regen picks this up. Reported by Yury Bushmelev. Fixes OpenVoxProject#277 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Michael Harp <mike@mikeharp.com>
|
@tuxmea You're right, and I've fixed it in 340ccdd — thanks for catching it. One correction on the form, though: per openvox-docs CONTRIBUTING § Linking, links within a versioned collection should be bare The dividing line I've landed on is whether a given string is ever rendered as a docs page. Relative — rendered into the collectionThe option descriptions in I used the # Rewrite relative .md cross-reference links to .html so Jekyll serves
.gsub(/(\]\([^):]*?)\.md((?:#[^)]*)?)\)/, '\1.html\2)')Note that regex excludes anything containing The awkward case —
|
Fixes #277
The
pup.ptredirector no longer resolves slugs. Every one of them bounces to a parked lander page:The hostname is also on the resale market, so whoever buys it inherits URLs that OpenBolt prints in CLI help text, JSON schemas, generated Puppetfile comments, and error messages.
This replaces all 59 actionable references with full
https://docs.openvoxproject.org/openbolt/latest/URLs — the conventionREADME.mdandCONTRIBUTING.mdalready use. The 12 hits inCHANGELOG.mdandHISTORY.mdare left alone as historical release records.lib/bolt/bolt_option_parser.rbguides/*.yamllib/bolt/**(other)schemas/*.jsonRather than a replacement short domain: the indirection is what failed here. A third-party redirector disappeared and took 59 links with it, silently, with no way for CI to notice. A new domain would add a renewal obligation and a redirect map to maintain, for the sake of URL length in help text.
Notes for review
OPTIONShashes inlib/bolt/config/options.rbandlib/bolt/inventory/options.rb;rake schemas:allreproduces the committed output exactly.guides/links.yamlis whatbolt guide linksprints. Beyond itspup.ptentries it still advertisedbolt.guide,slack.puppet.com, andpuppetlabs/bolt, so those are updated to their OpenVox equivalents in the same pass. The replacement URLs are too long for its two-column layout, so each URL now sits on its own line to keep the output inside 80 columns. Same reason for a one-line reflow inguides/transports.yaml.bolt-referencesplits by context. Intransports.yamlit documents transport options, so it points atbolt_transports_reference.html. Inlinks.yamlit was a generic "Reference Documentation" entry; pointing it at the docs root would duplicate the entry above it, so it became "Configuration Reference" →configuring_bolt.html.lib/bolt/analytics.rbhad no valid target. It pointed at an analytics opt-out page that does not exist in the OpenBolt docs. Analytics are force-disabled in this fork (config = { 'disabled' => true }) and the message sat insideunless ENV['BOLT_DISABLE_ANALYTICS'] || true, so it was unreachable. The block is removed rather than repointed. Flagging in case anyone wants it kept.lib/bolt/module_installer/puppetfile.rb, so a docs regen picks this up. No companion PR needed.Verification
#modulepath,#specify-a-transport,#transport-configuration) — were checked against the rendered heading IDs.rake schemas:allproduces no diff beyond the committed change.rubocopclean.rspec spec/unit: 1804 examples, 5 failures. All 5 are inplugin_spec.rb/puppet_library_spec.rband fail identically on unmodifiedmain, so they are pre-existing and unrelated.bolt guide linksandbolt guide transportsrender correctly.Follow-up worth its own issue
Nothing prevents this from recurring the same silent way. A periodic link check over
lib/,guides/, andschemas/in CI would have caught it.Reported by Yury Bushmelev.
AI usage disclosure
Per the Vox Pupuli and OpenVox AI Usage Policy: I used Claude Code for this patch — the substitution across all 59 call sites, the live verification of each target URL and anchor, the rubocop/rspec/schema-regen checks reported above, and a first draft of this description. The commit carries a
Co-Authored-Bytrailer.The two spots that most warrant a human eye are called out under "Notes for review": the
bolt-referencecontext split, and the analytics block removal, which is the only behavior change here.