Skip to content

docs: link file references to their sources - #715

Merged
frahlg merged 2 commits into
srcfl:masterfrom
HuggeK:docs/clickable-doc-links
Jul 30, 2026
Merged

docs: link file references to their sources#715
frahlg merged 2 commits into
srcfl:masterfrom
HuggeK:docs/clickable-doc-links

Conversation

@HuggeK

@HuggeK HuggeK commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Backticked file, directory and package paths in the README, AGENTS.md, CONTRIBUTING.md and docs/ are now relative markdown links, so each reference opens the thing it names. 14 files changed; every relative link target was verified to exist on the current master.

This is rebased onto the current tree, so it accounts for #712 (driver source moved to srcfl/device-drivers, drivers/*.lua gitignored).

What is intentionally left as a plain code span (not linked)
  • Driver .lua filesdrivers/*.lua, drivers/myuplink.lua, drivers/nibe_local.lua. These are no longer committed here (gitignored, fetched from the pinned device-drivers commit), so a local link would 404. Where the editable source is discussed, srcfl/device-drivers is linked to its GitHub repo instead.
  • Runtime-only files that exist on a deployed host, not in the repo: state.db, cache.db, config.yaml, config.local.yaml, ~/ftw, the legacy docker-compose.yml.
  • Release artifacts and absent tooling: manifest.json (a signed release asset), tools/ftw_download_stats.py (not in-tree).
  • Wire identifiers and non-file names: MQTT topics (forty-two-watts/…), container image names (ghcr.io/srcfl/ftw).
  • Paths inside fenced code blocks (YAML/bash examples), where markdown links cannot render.
Why some lines rewrapped

Adding [label](target) syntax pushed a few lines past the docs' ~80-column wrapping, so those sentences were re-wrapped. No wording changed.

Docs-only change, so no changeset entry is needed (auto-exempt per AGENTS.md).

🤖 Generated with Claude Code

Turn backticked paths in the README, AGENTS.md, CONTRIBUTING.md and docs/
into relative markdown links so each reference opens the file, directory or
package it names. Rebased onto current master: driver source now lives in
srcfl/device-drivers and the in-repo drivers/*.lua tree is gitignored, so
driver .lua references stay plain code spans rather than links that would
404, while srcfl/device-drivers is linked to its GitHub repo. Runtime-only
files (state.db, config.yaml), release artifacts (manifest.json) and wire
identifiers also stay code spans. Every relative link target was verified to
exist.

Co-authored-by: HuggeK <48095810+HuggeK@users.noreply.github.com>
Signed-off-by: Hugo Karlsson <48095810+HuggeK@users.noreply.github.com>
@HuggeK
HuggeK requested a review from frahlg as a code owner July 29, 2026 13:32
frahlg added a commit that referenced this pull request Jul 30, 2026
* ci: decide the changeset allowlist before validating the queue

The gate ran `changeset status` before it worked out whether the PR was
allowlisted. That command errors with "Some packages have been changed but
no changesets were found" for any diff inside a package, and a docs-only PR
is such a diff, so the check failed on exactly the PRs the allowlist exists
to exempt and the exemption step never ran. PR #715 changes markdown only
and fails this way today.

The allowlist verdict now runs first and publishes what it decided. The
Changesets queue validation still runs whenever the PR needs a changeset,
and also when an allowlisted PR carries one anyway: a `.changeset/*.md`
file matches the markdown allowlist, so a changeset-only PR is exempt from
the gate and would otherwise ship its entry unvalidated.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* test: pin the changeset gate's step order instead of one guard string

The workflow-structure test asserted that each Changesets step carried the
label guard by matching the exact concatenation of both short-circuits.
Adding a third condition to a step therefore read as a removed guard. It now
checks the two short-circuits separately, which is as strict about the
property it names and lets a step carry a further guard of its own.

Adds the assertion this change is actually about: the allowlist verdict must
be resolved before Changesets validation runs. Restoring the old order fails
the test, so it guards the regression rather than describing it.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@frahlg
frahlg merged commit ee2b443 into srcfl:master Jul 30, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants