Skip to content

Conversation

amotl
Copy link
Member

@amotl amotl commented Sep 29, 2025

About

https://docs.docker.com/ did a reorg, so a few resources and links have changed. After fixing those, a few more cycles of maintenance were added in the same area.

Copy link

coderabbitai bot commented Sep 29, 2025

Walkthrough

Documentation updates adjust several external links (Docker, O’Reilly) and refine driver wording. Sphinx configuration adds new URL patterns to linkcheck_ignore. No code or API changes; all edits are confined to docs and build configuration comments.

Changes

Cohort / File(s) Summary of Changes
Docker docs links refresh
docs/install/container/docker.rst
Updated multiple Docker documentation URLs: CLI/docker, default bridge network, healthchecks, memory and CPU resource constraints.
Sphinx link checker ignores
docs/conf.py
Added CrateDB 3.3 docs and Docker docs URLs to linkcheck_ignore with dated comments; retains handling for 403/Forbidden cases.
Driver wording tweaks
docs/connect/drivers.md
Expanded Npgsql description to include Visual Basic and F#; escaped ADO.NET with a literal dot; text-only changes.
Timeseries REPL link update
docs/topic/timeseries/generate/node.md
Replaced archived O’Reilly link with current non-archived page; no logic changes.

Sequence Diagram(s)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

maintenance

Suggested reviewers

  • bmunkholm
  • kneth
  • hlcianfagna

Poem

I nudge my links with gentle hops,
From docks to docs, the bunny stops.
A nibble here, a tweak so neat—
No code disturbed, just tidied feet.
The carrots point to fresher trails,
Our docs now sail with truer sails. 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
Title Check ✅ Passed The title succinctly identifies the chore of fixing broken links, which is the primary purpose of the pull request, and follows common commit conventions; the appended date, while optional, does not obscure the intent and maintains context without introducing noise.
Description Check ✅ Passed The pull request description clearly references the reorganization of docs.docker.com and the need to update broken links as a result, which directly corresponds to the URL fixes applied throughout the documentation files.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-broken-links-20250929

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@amotl amotl force-pushed the fix-broken-links-20250929 branch from 8eba908 to 100cace Compare September 29, 2025 09:06
@amotl amotl requested review from bmunkholm and surister September 29, 2025 09:15
@amotl amotl marked this pull request as ready for review September 29, 2025 09:15
Copy link
Contributor

@bmunkholm bmunkholm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be nice if we can fix the build failure so we can trust it again.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/conf.py (1)

81-81: Optional: make the regex more precise by escaping the dot in 3.3.

Sphinx uses re.search, so the current pattern works. Escaping the dot avoids unintended matches like en/343/. Up to you.

-    r"https://cratedb.com/docs/crate/reference/en/3.3/",
+    r"https://cratedb.com/docs/crate/reference/en/3\.3/",
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 100cace and 2f42bc1.

📒 Files selected for processing (1)
  • docs/conf.py (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: bmunkholm
PR: crate/cratedb-guide#340
File: docs/home/index.md:84-97
Timestamp: 2025-09-25T19:31:54.320Z
Learning: In the CrateDB Guide docs (MyST), the CrateDB Cloud card on the homepage should link to `getting-started` using `:link-type: ref` instead of the previous `cloud:index` intersphinx target. This change was implemented in PR #340 to direct users to the getting started section rather than directly to the Cloud documentation.
Learnt from: amotl
PR: crate/cratedb-guide#241
File: docs/integrate/azure-functions/index.md:31-36
Timestamp: 2025-08-10T17:09:32.616Z
Learning: In the CrateDB Guide documentation, RST files (`.rst`) use reStructuredText anchor syntax `.. _anchor-name:` while Markdown files (`.md`) use MyST syntax `(anchor-name)=`. Cross-references between MyST Markdown and reStructuredText files work correctly - a MyST `:link:` directive can reference an RST anchor and vice versa.
Learnt from: amotl
PR: crate/cratedb-guide#235
File: docs/start/going-further.md:20-38
Timestamp: 2025-08-23T04:22:52.597Z
Learning: In the CrateDB Guide repository, the prefix `crate-reference:` in documentation links (like `crate-reference:index`) is an intersphinx reference that points to external content in the CrateDB Reference Manual documentation. These references are intentionally not pointing to local files within the repository.
Learnt from: amotl
PR: crate/cratedb-guide#236
File: docs/index.md:312-316
Timestamp: 2025-08-09T11:00:03.578Z
Learning: In the CrateDB Guide documentation, locally stale references (such as `(reference-architectures)=`, `(domain)=`, and similar anchor labels) should be retained even when they appear unused within the repository, as external projects might still reference them. This ensures backward compatibility for external documentation and projects.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build docs

@amotl amotl force-pushed the fix-broken-links-20250929 branch from df51a8d to 5e9de15 Compare September 29, 2025 16:07
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
docs/home/index.md (1)

88-89: Restore the CrateDB Cloud card link to the internal getting-started ref

This change replaces the internal getting-started ref (added in PR #340) with an external Cloud docs URL, undoing the agreed navigation that keeps users inside the guide’s onboarding flow. Please keep the card pointing to getting-started with :link-type: ref, unless we have a new consensus to relocate that entry point. Based on learnings.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 865e97f and df51a8d.

📒 Files selected for processing (1)
  • docs/home/index.md (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: bmunkholm
PR: crate/cratedb-guide#340
File: docs/home/index.md:84-97
Timestamp: 2025-09-25T19:31:54.320Z
Learning: In the CrateDB Guide docs (MyST), the CrateDB Cloud card on the homepage should link to `getting-started` using `:link-type: ref` instead of the previous `cloud:index` intersphinx target. This change was implemented in PR #340 to direct users to the getting started section rather than directly to the Cloud documentation.
Learnt from: amotl
PR: crate/cratedb-guide#235
File: docs/start/going-further.md:20-38
Timestamp: 2025-08-23T04:22:52.597Z
Learning: In the CrateDB Guide repository, the prefix `crate-reference:` in documentation links (like `crate-reference:index`) is an intersphinx reference that points to external content in the CrateDB Reference Manual documentation. These references are intentionally not pointing to local files within the repository.
Learnt from: amotl
PR: crate/cratedb-guide#241
File: docs/integrate/azure-functions/index.md:31-36
Timestamp: 2025-08-10T17:09:32.616Z
Learning: In the CrateDB Guide documentation, RST files (`.rst`) use reStructuredText anchor syntax `.. _anchor-name:` while Markdown files (`.md`) use MyST syntax `(anchor-name)=`. Cross-references between MyST Markdown and reStructuredText files work correctly - a MyST `:link:` directive can reference an RST anchor and vice versa.
Learnt from: amotl
PR: crate/cratedb-guide#236
File: docs/index.md:312-316
Timestamp: 2025-08-09T11:00:03.578Z
Learning: In the CrateDB Guide documentation, locally stale references (such as `(reference-architectures)=`, `(domain)=`, and similar anchor labels) should be retained even when they appear unused within the repository, as external projects might still reference them. This ensures backward compatibility for external documentation and projects.
Learnt from: amotl
PR: crate/cratedb-guide#204
File: docs/integrate/mcp/community.md:22-33
Timestamp: 2025-05-18T12:50:36.393Z
Learning: In the CrateDB Guide repository, the prefix `ctk:` in documentation links (like `ctk:query/mcp/server`) is an intersphinx reference that points to external content in the CrateDB Toolkit documentation at https://cratedb-toolkit.readthedocs.io/. These references are intentionally not pointing to local files within the repository.
Learnt from: amotl
PR: crate/cratedb-guide#204
File: docs/integrate/mcp/community.md:8-20
Timestamp: 2025-05-18T12:50:38.681Z
Learning: In the CrateDB guide repository, references with the `ctk:` prefix (like `ctk:query/mcp/landscape`) are intersphinx references that link to resources in the cratedb-toolkit repository (https://github.com/crate/cratedb-toolkit/tree/main/doc), which are rendered at https://cratedb-toolkit.readthedocs.io/. These are valid cross-references between separate Sphinx documentation sets, not local file references.
Learnt from: amotl
PR: crate/cratedb-guide#279
File: docs/integrate/airflow/data-retention-hot-cold.md:14-14
Timestamp: 2025-09-22T22:05:05.734Z
Learning: When searching for labels in the CrateDB Guide documentation, remember that reStructuredText files (.rst) use the syntax `.. _label:` while MyST Markdown files (.md) use the syntax `(label)=`. Cross-references work between formats, so {ref}`label` in MyST can reference an RST label defined with `.. _label:`.
📚 Learning: 2025-09-25T19:31:54.320Z
Learnt from: bmunkholm
PR: crate/cratedb-guide#340
File: docs/home/index.md:84-97
Timestamp: 2025-09-25T19:31:54.320Z
Learning: In the CrateDB Guide docs (MyST), the CrateDB Cloud card on the homepage should link to `getting-started` using `:link-type: ref` instead of the previous `cloud:index` intersphinx target. This change was implemented in PR #340 to direct users to the getting started section rather than directly to the Cloud documentation.

Applied to files:

  • docs/home/index.md
📚 Learning: 2025-08-23T04:22:52.597Z
Learnt from: amotl
PR: crate/cratedb-guide#235
File: docs/start/going-further.md:20-38
Timestamp: 2025-08-23T04:22:52.597Z
Learning: In the CrateDB Guide repository, the prefix `crate-reference:` in documentation links (like `crate-reference:index`) is an intersphinx reference that points to external content in the CrateDB Reference Manual documentation. These references are intentionally not pointing to local files within the repository.

Applied to files:

  • docs/home/index.md
🪛 markdownlint-cli2 (0.18.1)
docs/home/index.md

88-88: Bare URL used

(MD034, no-bare-urls)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between df51a8d and 5e9de15.

📒 Files selected for processing (4)
  • docs/conf.py (1 hunks)
  • docs/connect/drivers.md (1 hunks)
  • docs/install/container/docker.rst (2 hunks)
  • docs/topic/timeseries/generate/node.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/connect/drivers.md
  • docs/topic/timeseries/generate/node.md
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: bmunkholm
PR: crate/cratedb-guide#340
File: docs/home/index.md:84-97
Timestamp: 2025-09-25T19:31:54.320Z
Learning: In the CrateDB Guide docs (MyST), the CrateDB Cloud card on the homepage should link to `getting-started` using `:link-type: ref` instead of the previous `cloud:index` intersphinx target. This change was implemented in PR #340 to direct users to the getting started section rather than directly to the Cloud documentation.
📚 Learning: 2025-08-14T19:02:43.308Z
Learnt from: amotl
PR: crate/cratedb-guide#253
File: docs/integrate/mindsdb/index.md:21-33
Timestamp: 2025-08-14T19:02:43.308Z
Learning: In CrateDB integration documentation examples, default connection parameters (user="crate", password="", host="127.0.0.1") are intentionally used to provide working out-of-the-box examples for users with local CrateDB instances, rather than using placeholder values that require customization.

Applied to files:

  • docs/install/container/docker.rst
📚 Learning: 2025-08-14T12:52:11.962Z
Learnt from: amotl
PR: crate/cratedb-guide#248
File: docs/conf.py:64-66
Timestamp: 2025-08-14T12:52:11.962Z
Learning: In documentation repositories, avoid over-engineering simple solutions like linkcheck ignore patterns. Simple, working patterns are often preferable to comprehensive regex patterns that handle all edge cases, especially when the simpler version is already functioning correctly.

Applied to files:

  • docs/conf.py
📚 Learning: 2025-09-25T19:31:54.320Z
Learnt from: bmunkholm
PR: crate/cratedb-guide#340
File: docs/home/index.md:84-97
Timestamp: 2025-09-25T19:31:54.320Z
Learning: In the CrateDB Guide docs (MyST), the CrateDB Cloud card on the homepage should link to `getting-started` using `:link-type: ref` instead of the previous `cloud:index` intersphinx target. This change was implemented in PR #340 to direct users to the getting started section rather than directly to the Cloud documentation.

Applied to files:

  • docs/conf.py
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build docs

Comment on lines +82 to +83
# 403 Client Error: Forbidden for url
r"https://docs.docker.com/",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Scope the Docker docs ignore more narrowly. Ignoring the entire docs.docker.com domain disables linkcheck coverage for working pages like the CLI reference, so future regressions there would slip through. The 403s we’ve observed are confined to specific sections (for example engine/containers/... and compose/...). Let’s keep the pattern focused on those hot spots and keep the rest of the domain under linkcheck.

-    # 403 Client Error: Forbidden for url
-    r"https://docs.docker.com/",
+    # 403 Client Error: Forbidden for url (engine container docs & compose manuals)
+    r"https://docs.docker.com/engine/containers/.*",
+    r"https://docs.docker.com/compose/.*",

Based on learnings

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# 403 Client Error: Forbidden for url
r"https://docs.docker.com/",
# 403 Client Error: Forbidden for url (engine container docs & compose manuals)
r"https://docs.docker.com/engine/containers/.*",
r"https://docs.docker.com/compose/.*",
🤖 Prompt for AI Agents
In docs/conf.py around lines 82 to 83, the current ignore pattern excludes the
entire docs.docker.com domain; narrow it to only the problematic paths (e.g.
engine/containers and compose) so other pages remain linkchecked. Replace the
broad entry with one or more specific regexes that match those sections (for
example patterns that include docs.docker.com/.*/engine/containers/ and
docs.docker.com/.*/compose/) or otherwise add path-specific entries to the
linkcheck_ignore list to target only the known 403 hotspots.

@amotl amotl force-pushed the fix-broken-links-20250929 branch from 8475f13 to 19f72a2 Compare September 29, 2025 16:14
@amotl amotl changed the title Chore: Fix broken links after reorg on docs.docker.com Chore: Fix broken links 20250929 Sep 29, 2025
@amotl amotl linked an issue Sep 29, 2025 that may be closed by this pull request
@amotl amotl merged commit 0d6d981 into main Sep 29, 2025
3 checks passed
@amotl amotl deleted the fix-broken-links-20250929 branch September 29, 2025 16:33
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.

Link checker fails on home/index: line 93 at first-steps

3 participants