<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-documentation.git/docs/conf.py, branch rolling</title>
<subtitle>VyOS readthedocs (mirror of https://github.com/vyos/vyos-documentation.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-documentation.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-documentation.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/'/>
<updated>2026-05-11T11:20:07+00:00</updated>
<entry>
<title>Fix recursive _build directory nesting error</title>
<updated>2026-05-11T11:20:07+00:00</updated>
<author>
<name>Quill Cronwall</name>
<email>quilljazz@gmail.com</email>
</author>
<published>2026-05-11T11:12:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=ec6f33f3c256e839b443bb2baac14bff32132811'/>
<id>urn:sha1:ec6f33f3c256e839b443bb2baac14bff32132811</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: drop stray terraformvyos.rst and remove .rst from source_suffix</title>
<updated>2026-05-10T15:55:55+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-10T15:55:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=863640ef172929f003d53d41087005485887e29c'/>
<id>urn:sha1:863640ef172929f003d53d41087005485887e29c</id>
<content type='text'>
The .md equivalent already exists alongside it; with both present and
`source_suffix = ['.rst', '.md']`, Sphinx silently preferred the .rst.
Deletion removes the shadowing and the only active .rst left in tree
(legacy is archived under docs/_rst_legacy/).

Restricting source_suffix to ['.md'] prevents future stray .rst files
from being picked up, and is what external indexers (e.g. context7)
look at when classifying the source format of the docs.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>chore: remove RST swap mechanism, archive rst-*.rst under docs/_rst_legacy/</title>
<updated>2026-05-10T14:19:31+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-10T14:19:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=3fd1787d50dda76619647dd95ea6e1d421204734'/>
<id>urn:sha1:3fd1787d50dda76619647dd95ea6e1d421204734</id>
<content type='text'>
The swap mechanism (RST-as-fallback for migrated MD pages) is dormant —
docs/_rst_overrides.txt has been empty since the MyST flip trio
(#1899/#1900/#1901) landed in May 2026. The mechanism's surface area
(scripts/swap_sources.py, its 245-line test, RTD pre/post hooks,
Makefile glue, conf.py dynamic loader) is dead weight, and the
rst-*.rst shadows scattered across the source tree cause Context7's
parser to misclassify the project as RST.

Changes:
- Move 253 rst-*.rst shadow files into docs/_rst_legacy/ preserving
  subdirectory structure. They remain in the repo for reference; Sphinx
  excludes the folder via exclude_patterns; Context7 excludes it via
  excludeFolders.
- Strip swap_sources.py invocation from docs/Makefile (swap/restore
  targets, : swap deps, trap chains).
- Strip jobs: pre_build/post_build block from .readthedocs.yml.
- Strip rst-*.rst exclude entry and the _md_exclude.txt loader from
  docs/conf.py; replace with a single _rst_legacy exclude.
- Delete scripts/swap_sources.py, tests/test_swap_sources.py,
  docs/_rst_overrides.txt.
- Update context7.json: add docs/_rst_legacy to excludeFolders;
  fix stale "Branch current tracks…" rule to "Branch rolling tracks…"
  (default branch was renamed 2026-05-10).
- Update AGENTS.md: drop the "RST override mechanism" section and the
  test-runner snippet for the deleted test; describe _rst_legacy as
  archive only.

Verified: sphinx-build -b html with --keep-going produces identical
warning set (68 unique), identical sitemap entry count (257), identical
llms.txt entry count (22), zero rst-* URLs in any artifact.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>ci/docs: drop current branch references after rename to rolling</title>
<updated>2026-05-10T12:33:32+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-10T12:33:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=8dbf8b052075b0fb7af38b7b505260e4f673a998'/>
<id>urn:sha1:8dbf8b052075b0fb7af38b7b505260e4f673a998</id>
<content type='text'>
Cleanup PR following the current→rolling default-branch rename. Drops
the now-stale current branch from workflow triggers, flips remaining
defaults, and updates documentation/templates.

Workflows:
- pr-mirror-repo-sync.yml: branches narrowed to [rolling]; workflow_dispatch
  default and choice list now rolling-only; sync_branch fallback flipped
  from 'current' to 'rolling'.
- check-open-prs-conflict.yml: dropped current from push.branches.
- update-version-tags.yml: dropped current from push.branches and from
  the case statement (now bare 'rolling) TAG=rolling').
- submodules.yml: renamed update_current job, branch
  update-dependencies-current, and the related commit/title strings to
  rolling.
- update-translations.yml: PR branch update-translations-current renamed
  to update-translations-rolling.
- ai-validation.yml: prompt example updated.

Docs/templates:
- docs/conf.py: READTHEDOCS_GIT_IDENTIFIER fallback flipped to 'rolling';
  comment block updated to describe the rolling branch (the user-facing
  "(current)" suffix is release-channel terminology and remains).
- README.md: branching-scheme section now describes rolling as the
  default branch, with a note about the rename date.
- .github/PULL_REQUEST_TEMPLATE.md: CONTRIBUTING link points at
  blob/rolling.

External @current refs to vyos/.github and vyos/vyos-cla-signatures are
left untouched — they reference those repos' default branches and are
unaffected by this repo's rename.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>feat(docs): move Cookiebot CBID to COOKIEBOT_ID env var</title>
<updated>2026-05-07T15:23:25+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T14:53:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=53eda167df8f0f983ee34fd33e90524dcecb08de'/>
<id>urn:sha1:53eda167df8f0f983ee34fd33e90524dcecb08de</id>
<content type='text'>
Read COOKIEBOT_ID from the environment via conf.py html_context,
replacing the hardcoded data-cbid value in layout.html.
Guards tightened to {% if gtm_id and cookiebot_id %} so neither
GTM nor Cookiebot loads unless both IDs are present.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>feat(docs): read GTM_ID from environment instead of hardcoding</title>
<updated>2026-05-07T15:23:25+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T14:19:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=4d8581c0e709848a601384addf3026fb405345fc'/>
<id>urn:sha1:4d8581c0e709848a601384addf3026fb405345fc</id>
<content type='text'>
Move the Google Tag Manager container ID out of the template and into
conf.py via os.environ.get('GTM_ID', ''), exposed to Jinja via
html_context. Set GTM_ID in the RTD project environment variables.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(conf.py): fix stale .html reference in fail-fast comment</title>
<updated>2026-05-07T06:48:06+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:48:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=04541bda8a3d04ecb9824f92d344ec8bd7aa2523'/>
<id>urn:sha1:04541bda8a3d04ecb9824f92d344ec8bd7aa2523</id>
<content type='text'>
Last residual `.html` reference in the `_write_llms_txt` hook
comments — the html_baseurl-empty failure-path comment said
"rendering /quick-start.html etc." but the template now emits
`.md` URLs. Update the example to `/quick-start.md` to match
the actual output.

Comment-only change. Same fix applied symmetrically across [#1874](https://github.com/vyos/vyos-documentation/pull/1874),
[#1876](https://github.com/vyos/vyos-documentation/pull/1876), and [#1903](https://github.com/vyos/vyos-documentation/pull/1903).

Addresses Copilot review feedback on PR #1903.

\xf0\x9f\xa4\x96 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(llms.txt): update dirhtml-skip rationale after .md pivot</title>
<updated>2026-05-07T06:40:47+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:40:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=ef515553402b9ad86399e0a845f2fccb51aa9b55'/>
<id>urn:sha1:ef515553402b9ad86399e0a845f2fccb51aa9b55</id>
<content type='text'>
The previous comment on `_write_llms_txt` (and on the LLM-Facing Files
section in CLAUDE.md) justified the `dirhtml` skip by claiming the
template's `.html` URLs wouldn't resolve under `dirhtml` output. That
became stale after [#1874@5fe7f9ad](https://github.com/vyos/vyos-documentation/pull/1874/commits/5fe7f9ad) (and parity commits on
[#1876](https://github.com/vyos/vyos-documentation/pull/1876)/[#1903](https://github.com/vyos/vyos-documentation/pull/1903)) pivoted the curated template to `.md` URLs —
`_copy_md_sources` puts `.md` files at their source-relative paths
regardless of builder, so the rendered llms.txt would actually resolve
fine under `dirhtml` now.

The real reason we skip `dirhtml` is simpler: production publishes
only via the `html`/`readthedocs` builders, and we don't render
llms.txt for builds we don't ship. Local `make dirhtml` is a developer
convenience, not a publish target.

Reword the conf.py comment and the CLAUDE.md section to say that
plainly. No code-behavior change.

Addresses Copilot review feedback on PR #1874 (3 threads on docs/conf.py,
docs/_templates/llms.txt.j2, and CLAUDE.md flagging the inconsistency).

\xf0\x9f\xa4\x96 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(conf.py): set Jinja autoescape=False explicitly for llms.txt template</title>
<updated>2026-05-07T06:25:54+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:25:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=8a7e96d6fa25a1098c134146883d4f577ab229ca'/>
<id>urn:sha1:8a7e96d6fa25a1098c134146883d4f577ab229ca</id>
<content type='text'>
The llms.txt template renders plain text (markdown), not HTML, so the
HTML autoescape rules that bandit/ruff S701 flags don't apply.
Explicit `autoescape=False` silences the lint while documenting the
intent — there's no HTML context to escape into here.

Behavior unchanged (Jinja's default `autoescape=False` was already in
effect); this just makes it visible.

Same change applied symmetrically across [#1874](https://github.com/vyos/vyos-documentation/pull/1874) (current),
[#1876](https://github.com/vyos/vyos-documentation/pull/1876) (sagitta), and [#1903](https://github.com/vyos/vyos-documentation/pull/1903) (circinus).

Addresses CodeRabbit review feedback (S701) on PR #1876.

\xf0\x9f\xa4\x96 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>docs(conf.py): use FileSystemLoader/get_template for better tracebacks</title>
<updated>2026-05-07T06:16:23+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-07T06:16:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-documentation.git/commit/?id=28ed24cc1b97a8861db6963233f6496134827611'/>
<id>urn:sha1:28ed24cc1b97a8861db6963233f6496134827611</id>
<content type='text'>
Switch from `Environment.from_string(tpl_path.read_text(...))` to
`Environment(loader=FileSystemLoader(...)).get_template('llms.txt.j2')`.

When `StrictUndefined` raises on a typo in `llms.txt.j2` (e.g.
`{{ relase }}`), the traceback now references the real template
filename and line number instead of an anonymous in-memory template.
That makes debugging template typos materially easier without changing
any other behavior — same fail-fast guard, same trailing-newline
handling, same rendered output.

Same change applied symmetrically across [#1874](https://github.com/vyos/vyos-documentation/pull/1874) (current),
[#1876](https://github.com/vyos/vyos-documentation/pull/1876) (sagitta), and [#1903](https://github.com/vyos/vyos-documentation/pull/1903) (circinus) so the hook
stays identical across branches.

Addresses CodeRabbit/Copilot review feedback on PR #1903.

\xf0\x9f\xa4\x96 Generated by [robots](https://vyos.io)
</content>
</entry>
</feed>
