Skip to content

docs: Reduce git LFS bandwidth - #421

Merged
ilyabo merged 3 commits into
mainfrom
docs--Reduce-git-lfs-bandwidth
Mar 9, 2026
Merged

ilyabo merged 3 commits into
mainfrom
docs--Reduce-git-lfs-bandwidth

Conversation

@ilyabo

@ilyabo ilyabo commented Mar 9, 2026 •

Copy link
Copy Markdown
Collaborator

This PR moves docs media to docs/public/media and keeps it tracked with Git LFS, so the docs site can serve stable /media/... URLs without relying on VitePress’s hashed asset filenames. That lets us keep videos and images on sqlrooms.org while avoiding GitHub repo-relative LFS links in the main repository README.

It also standardizes media references by using relative /media/... paths in the actual docs source, while keeping absolute https://sqlrooms.org/media/... URLs in standalone example READMEs and the generated root README.md. This preserves good local/docs behavior and reduces the chance of unnecessary Git LFS bandwidth usage from GitHub-hosted media rendering.

Summary by CodeRabbit

  • Documentation

    • Updated README and example READMEs: image/video links switched to absolute HTTPS URLs and overview text refined for clearer messaging.
  • Chores

    • Aligned media publishing paths and CI documentation workflows to the new public media location; updated scripts that rewrite media links to the public CDN path.

ilyabo added 2 commits March 9, 2026 13:28
Signed-off-by: Ilya Boyandin <[email protected]>
Signed-off-by: Ilya Boyandin <[email protected]>
@coderabbitai

coderabbitai Bot commented Mar 9, 2026 •

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6d5e4ca9-c3b7-48eb-92fd-e5a356957113

📥 Commits

Reviewing files that changed from the base of the PR and between 72feaed and 4566dc4.

📒 Files selected for processing (1)
  • .github/workflows/sync-examples.yml

📝 Walkthrough

Walkthrough

Updated references to media from docs/media/ to docs/public/media/, converted many README image/video links to absolute HTTPS URLs pointing to sqlrooms.org, and adjusted workflows and the README-update script to rewrite paths accordingly.

Changes

Cohort / File(s) Summary
Configuration & LFS Tracking
\.gitattributes, CLAUDE.md
Changed Git LFS tracked path from docs/media/** to docs/public/media/**.
Workflow Scripts
.github/workflows/deploy-docs.yml, .github/workflows/sync-examples.yml
Updated verification and copy steps to use docs/public/media (disk usage and sync source paths).
Main Documentation
README.md
Rewrote image/video and some anchor URLs from relative paths to absolute https://sqlrooms.org/...; updated docs/media LFS reference and adjusted prose in Overview/Why sections.
Example READMEs
examples/*/README.md (ai-rag, ai, app-builder, cosmos-embedding, cosmos, deckgl-discuss, deckgl-mosaic, deckgl, kepler, mosaic, multi-room, nextjs, query-motherduck, query)
Replaced local relative media references with absolute https://sqlrooms.org/media/... URLs (images/videos) across example READMEs.
Build Script
scripts/update-readme.mjs
Updated path-rewriting logic to emit https://sqlrooms.org/media/... instead of docs/media/... and normalize links to https://sqlrooms.org/.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I hopped through files with nimble paws,

Changed paths and URLs without a pause,
Media now public, bright and neat,
HTTPS steps with steady beat,
Docs now travel on a faster cause. 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main objective of the PR: moving docs media to docs/public/media and adjusting Git LFS tracking to reduce bandwidth usage from GitHub-hosted media rendering.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs--Reduce-git-lfs-bandwidth

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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)
.github/workflows/sync-examples.yml (1)

67-68: Using ./. instead of /* prevents edge-case failures if the media directory becomes empty.

Line 68 uses *, which remains a literal glob if source/docs/public/media/examples/ becomes empty, causing cp to fail. Copying source/docs/public/media/examples/. instead handles both populated and empty directories safely and preserves nested files. While the directory currently has files, this defensive change guards against future states where media content might not exist.

Suggested fix
-          if [ -d "source/docs/public/media/examples" ]; then
-            cp -r source/docs/public/media/examples/* target/media/examples/
+          if [ -d "source/docs/public/media/examples" ]; then
+            cp -r source/docs/public/media/examples/. target/media/examples/
            fi
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/sync-examples.yml around lines 67 - 68, Change the cp
invocation that copies examples to use the directory dot notation instead of a
glob so it works when the source is empty; replace the occurrence of
source/docs/public/media/examples/* in the workflow step with
source/docs/public/media/examples/. (This updates the cp command in the
sync-examples workflow so cp -r source/docs/public/media/examples/.
target/media/examples/ safely handles both populated and empty source
directories.)
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@examples/deckgl-mosaic/README.md`:
- Line 11: Replace the invalid alt attribute on the <video> element with
accessible alternatives: add an aria-label (and/or aria-labelledby) on the same
<video> tag to provide a text description for assistive tech, and include
descriptive fallback text between the <video>...</video> tags so non-supporting
browsers and screen readers can access the description; update the existing
<video
src="https://sqlrooms.org/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4" ...>
element accordingly.

---

Nitpick comments:
In @.github/workflows/sync-examples.yml:
- Around line 67-68: Change the cp invocation that copies examples to use the
directory dot notation instead of a glob so it works when the source is empty;
replace the occurrence of source/docs/public/media/examples/* in the workflow
step with source/docs/public/media/examples/. (This updates the cp command in
the sync-examples workflow so cp -r source/docs/public/media/examples/.
target/media/examples/ safely handles both populated and empty source
directories.)

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ea270e98-4aa2-4401-b40d-fea8a84cb5fa

📥 Commits

Reviewing files that changed from the base of the PR and between bc32e25 and 72feaed.

⛔ Files ignored due to path filters (18)
  • docs/public/media/case-studies/cosmograph-2.0-967px.mp4 is excluded by !**/*.mp4
  • docs/public/media/case-studies/flowmap-city.mp4 is excluded by !**/*.mp4
  • docs/public/media/case-studies/transcality.mp4 is excluded by !**/*.mp4
  • docs/public/media/examples/ai-example-dark.mp4 is excluded by !**/*.mp4
  • docs/public/media/examples/ai-example-light.mp4 is excluded by !**/*.mp4
  • docs/public/media/examples/multi-room.mp4 is excluded by !**/*.mp4
  • docs/public/media/examples/sqlrooms-ai-app-builder-2x.mp4 is excluded by !**/*.mp4
  • docs/public/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4 is excluded by !**/*.mp4
  • docs/public/media/key-concepts/room-shell.png is excluded by !**/*.png
  • docs/public/media/logo-large.png is excluded by !**/*.png
  • docs/public/media/offline/sqlrooms-query-pwa.png is excluded by !**/*.png
  • docs/public/media/overview/architecture.svg is excluded by !**/*.svg
  • docs/public/media/sqlrooms-examples-75.mp4 is excluded by !**/*.mp4
  • docs/public/media/sqlrooms-intro-2.mp4 is excluded by !**/*.mp4
  • docs/public/media/sqlrooms-query.mp4 is excluded by !**/*.mp4
  • docs/public/media/whats-new/commands.mp4 is excluded by !**/*.mp4
  • docs/public/media/whats-new/row-selection.png is excluded by !**/*.png
  • docs/public/media/whats-new/tab-strip-component.mp4 is excluded by !**/*.mp4
📒 Files selected for processing (40)
  • .gitattributes
  • .github/workflows/deploy-docs.yml
  • .github/workflows/sync-examples.yml
  • CLAUDE.md
  • README.md
  • docs/public/media/case-studies/cosmograph.webp
  • docs/public/media/case-studies/flowmap-city.webp
  • docs/public/media/case-studies/fsq-spatial-desktop-earthquakes.webp
  • docs/public/media/case-studies/transcality.webp
  • docs/public/media/examples/ai-example.webp
  • docs/public/media/examples/cosmos-embedding-light.webp
  • docs/public/media/examples/cosmos-embedding.webp
  • docs/public/media/examples/cosmos-graph.webp
  • docs/public/media/examples/deckgl-discuss.webp
  • docs/public/media/examples/deckgl.webp
  • docs/public/media/examples/get-started.webp
  • docs/public/media/examples/kepler.webp
  • docs/public/media/examples/mosaic.webp
  • docs/public/media/examples/motherduck-example.webp
  • docs/public/media/examples/nextjs.webp
  • docs/public/media/examples/old-sqlrooms-ai.webp
  • docs/public/media/examples/rag.webp
  • docs/public/media/examples/sqlrooms-ai-example.webp
  • docs/public/media/examples/sqlrooms-query.webp
  • docs/public/media/overview/collage.webp
  • examples/ai-rag/README.md
  • examples/ai/README.md
  • examples/app-builder/README.md
  • examples/cosmos-embedding/README.md
  • examples/cosmos/README.md
  • examples/deckgl-discuss/README.md
  • examples/deckgl-mosaic/README.md
  • examples/deckgl/README.md
  • examples/kepler/README.md
  • examples/mosaic/README.md
  • examples/multi-room/README.md
  • examples/nextjs/README.md
  • examples/query-motherduck/README.md
  • examples/query/README.md
  • scripts/update-readme.mjs

This example is based on the [original demo app](https://github.com/dzole0311/deckgl-duckdb-geoarrow) by [Gjore Milevski](https://github.com/dzole0311).

<video src="/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4" alt="SQLRooms Deck.gl+Mosaic example app" width="450" controls loop muted></video>
<video src="https://sqlrooms.org/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4" alt="SQLRooms Deck.gl+Mosaic example app" width="450" controls loop muted></video>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

alt does not describe a <video> element.

The new hosted source is fine, but alt is ignored on <video>, so the description never reaches assistive tech. Use aria-label and/or fallback text instead.

♿ Suggested markup fix
-<video src="https://sqlrooms.org/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4" alt="SQLRooms Deck.gl+Mosaic example app" width="450" controls loop muted></video>
+<video
+  src="https://sqlrooms.org/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4"
+  aria-label="SQLRooms Deck.gl+Mosaic example app"
+  width="450"
+  controls
+  loop
+  muted
+>
+  SQLRooms Deck.gl+Mosaic example app preview video.
+</video>
📝 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
<video src="https://sqlrooms.org/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4" alt="SQLRooms Deck.gl+Mosaic example app" width="450" controls loop muted></video>
<video
src="https://sqlrooms.org/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4"
aria-label="SQLRooms Deck.gl+Mosaic example app"
width="450"
controls
loop
muted
>
SQLRooms Deck.gl+Mosaic example app preview video.
</video>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@examples/deckgl-mosaic/README.md` at line 11, Replace the invalid alt
attribute on the <video> element with accessible alternatives: add an aria-label
(and/or aria-labelledby) on the same <video> tag to provide a text description
for assistive tech, and include descriptive fallback text between the
<video>...</video> tags so non-supporting browsers and screen readers can access
the description; update the existing <video
src="https://sqlrooms.org/media/examples/sqlrooms-deckgl-mosaic-1500px.mp4" ...>
element accordingly.

Signed-off-by: Ilya Boyandin <[email protected]>
@ilyabo
ilyabo merged commit 94c02e1 into main Mar 9, 2026
1 of 4 checks passed
@ilyabo
ilyabo deleted the docs--Reduce-git-lfs-bandwidth branch March 9, 2026 13:49
dmitriy-kostianetskiy pushed a commit that referenced this pull request Mar 9, 2026
mihajlo-stojkovic pushed a commit that referenced this pull request Mar 12, 2026
bdjulbic pushed a commit that referenced this pull request Mar 16, 2026
Signed-off-by: Ilya Boyandin <[email protected]>
Signed-off-by: bdjulbic <[email protected]>
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.

1 participant