Skip to content

docs: site updates and license attribution#524

Merged
skevetter merged 3 commits into
mainfrom
slippery-bear
Jun 24, 2026
Merged

docs: site updates and license attribution#524
skevetter merged 3 commits into
mainfrom
slippery-bear

Conversation

@skevetter

@skevetter skevetter commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Three related pieces of cleanup for the docs site and build tooling.

Docs repositioning & navigation

  • Refresh the docs voice toward organizations scaling engineering operations (what-is-devsy, what-are-workspaces, inactivity-timeout).
  • Collapse the six per-IDE Quick Start pages (browser, vscode, jetbrains, ssh, vim, cli) into a single quickstart.mdx and flatten the sidebar entry.
  • Fix sidebar section spacing so every category renders consistently (the old :nth-child(-n+7) rule skipped later sections); remove the now-orphaned separator styling.

Automated third-party license attribution

  • New hack/licenses Go tool (go run ./hack/licenses) generates THIRD_PARTY_LICENSES.md from the module graph via go-licence-detector, enforcing a license allowlist.
  • The file is bundled into release archives (.goreleaser.yml) so attribution ships with the binary — satisfying the MIT/BSD/Apache notice-retention requirement.
  • A licenses PR check (task cli:licenses:check) enforces the allowlist and keeps the committed file in sync; copyleft licenses (GPL/LGPL/AGPL) are excluded by design.
  • Replaces the hand-maintained docs licenses page, which is removed.

prek migration

  • Switch the devcontainer feature from pre-commit to prek and update the devcontainer build smoke test to match, consistent with the prek-action already used in pr-ci.

Notes

  • go list -m all attributes test/tooling modules (e.g. staticcheck) that aren't linked into the shipped binary. This is intentional over-attribution; it can be narrowed to the binary's package graph later if desired.
  • The deleted Quick Start URLs will 404 if the site is live — redirects can be added in a follow-up if needed.

Summary by CodeRabbit

  • New Features

    • Added a consolidated Quick Start guide for getting up and running with Devsy.
    • Added third-party license tracking and packaging so releases include license information.
  • Bug Fixes

    • Updated workspace and inactivity-timeout guidance for clearer, more accurate behavior.
    • Refined navigation and menu styling for a more consistent docs experience.
  • Documentation

    • Rewrote overview content for clearer explanations of Devsy workspaces and development environments.
    • Removed several older quickstart pages in favor of the new unified guide.

@netlify

netlify Bot commented Jun 24, 2026

Copy link
Copy Markdown

Deploy Preview for devsydev ready!

Name Link
🔨 Latest commit af14ef6
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6a3bd9888d405d000919374d
😎 Deploy Preview https://deploy-preview-524--devsydev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@skevetter, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 26 minutes and 27 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: cc3d15d2-fe1f-4cae-b334-9921c89e5980

📥 Commits

Reviewing files that changed from the base of the PR and between 38c919b and af14ef6.

📒 Files selected for processing (23)
  • .devcontainer/devcontainer.json
  • .github/workflows/devcontainer.yml
  • .github/workflows/pr-ci.yml
  • .goreleaser.yml
  • THIRD_PARTY_LICENSES.md
  • Taskfile.yml
  • hack/licenses/main.go
  • hack/licenses/overrides.ndjson
  • hack/licenses/rules.json
  • hack/licenses/third-party-licenses.md.tmpl
  • sites/docs-devsy-sh/pages/developing-in-workspaces/inactivity-timeout.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/what-are-workspaces.mdx
  • sites/docs-devsy-sh/pages/licenses/devsy.mdx
  • sites/docs-devsy-sh/pages/quickstart/browser.mdx
  • sites/docs-devsy-sh/pages/quickstart/devsy-cli.mdx
  • sites/docs-devsy-sh/pages/quickstart/jetbrains.mdx
  • sites/docs-devsy-sh/pages/quickstart/quickstart.mdx
  • sites/docs-devsy-sh/pages/quickstart/ssh.mdx
  • sites/docs-devsy-sh/pages/quickstart/vim.mdx
  • sites/docs-devsy-sh/pages/quickstart/vscode.mdx
  • sites/docs-devsy-sh/pages/what-is-devsy.mdx
  • sites/docs-devsy-sh/sidebars.js
  • sites/docs-devsy-sh/src/css/custom.css
📝 Walkthrough

Walkthrough

This PR introduces a Go-based hack/licenses tool that generates and verifies THIRD_PARTY_LICENSES.md from dependency metadata, wired into Taskfile tasks, a new PR CI job, goreleaser archives, and the devcontainer (switching from pre-commit to prek). Separately, the docs site consolidates six quickstart pages into one unified page, rewrites several content pages, and updates sidebar navigation and menu CSS.

Changes

Third-Party License Tooling

Layer / File(s) Summary
License generator implementation
hack/licenses/main.go, hack/licenses/rules.json, hack/licenses/third-party-licenses.md.tmpl
Adds the hack/licenses Go tool: collects deps via go list across OS/arch targets, feeds JSON to go-licence-detector with rules.json allowlist and the markdown template, normalizes trailing newlines, and implements --check mode that diffs the current file against a fresh regeneration.
CI, task, and release integration
Taskfile.yml, .github/workflows/pr-ci.yml, .goreleaser.yml, .devcontainer/devcontainer.json, .github/workflows/devcontainer.yml
Adds cli:licenses and cli:licenses:check tasks; extends the go paths filter in PR CI and adds a licenses job running --check; adds THIRD_PARTY_LICENSES.md to goreleaser archive files; switches devcontainer feature from pre-commit:2 to prek:1 and updates the default runCmd accordingly.
Generated license manifest
THIRD_PARTY_LICENSES.md
Initial generated output of the new tool: full direct-dependency license table.

Documentation Restructure

Layer / File(s) Summary
Quickstart page consolidation and sidebar
sites/docs-devsy-sh/pages/quickstart/quickstart.mdx, sites/docs-devsy-sh/pages/quickstart/... (removed), sites/docs-devsy-sh/sidebars.js
Adds a single quickstart.mdx covering Desktop and CLI paths (provider setup, IDE selection, SSH/Vim connection); removes the six per-IDE quickstart pages (browser, vscode, jetbrains, ssh, vim, devsy-cli); collapses sidebar from a multi-doc category to one entry and removes licenses/devsy.
Content rewrites and menu CSS
sites/docs-devsy-sh/pages/what-is-devsy.mdx, sites/docs-devsy-sh/pages/developing-in-workspaces/what-are-workspaces.mdx, sites/docs-devsy-sh/pages/developing-in-workspaces/inactivity-timeout.mdx, sites/docs-devsy-sh/src/css/custom.css
Rewrites the what-is-devsy product description and benefits list; clarifies workspace and inactivity-timeout wording; broadens menu CSS from a :nth-child(-n+7) selector to all top-level items, removing the last-child special-case rule.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • devsy-org/devsy#332: Also modifies .github/workflows/pr-ci.yml's paths-filter go output and adds downstream jobs gated on it, directly overlapping with the new licenses job wiring in this PR.
  • devsy-org/devsy#3: Touches the same Devsy CLI documentation that is removed/consolidated in this PR's quickstart restructure.

Suggested labels

size/l

🚥 Pre-merge checks | ✅ 4 | ❌ 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 (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and captures the main themes: docs site updates and new license attribution automation.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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


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.

@netlify

netlify Bot commented Jun 24, 2026

Copy link
Copy Markdown

Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit af14ef6
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6a3bd9882cfad70008d4c6df

@skevetter skevetter changed the title docs: reposition site + automate Go license attribution docs: site updates and Go license attribution Jun 24, 2026
@skevetter skevetter changed the title docs: site updates and Go license attribution docs: site updates and license attribution Jun 24, 2026
@skevetter
skevetter force-pushed the slippery-bear branch 3 times, most recently from caa1d2a to 38c919b Compare June 24, 2026 11:56
@skevetter
skevetter marked this pull request as ready for review June 24, 2026 12:46

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/pr-ci.yml:
- Around line 121-135: The new licenses job is not part of the final CI gate, so
its failure won’t block merges. Update the ci-success job in the workflow to
include licenses in its needs list and failure condition, using the existing job
names like licenses and ci-success so the final gate waits on this policy check
before succeeding.
- Around line 121-135: Harden the licenses job by removing the floating major
action references in the licenses workflow job and pinning the checkout and Go
setup steps to fixed versions, while also tightening the job’s security
defaults. In the licenses job, add a job-level permissions block with contents:
read, and update the actions/checkout step to disable credential persistence via
persist-credentials: false; keep the existing job structure and step names so
the changes are localized and easy to find.

In `@hack/licenses/main.go`:
- Around line 186-187: The module classification is being overwritten in the
license generation flow, which collapses the direct/indirect split. Update the
logic in the code that builds `modules` around `m.Indirect` so it preserves the
value already computed by the module metadata instead of forcing it to false.
Keep the existing direct vs indirect grouping behavior intact when populating
`modules[m.Path]` in the license processing path.
- Around line 124-129: The goModule struct used by the licenses processing flow
is missing the Version field, causing version data to be dropped from the JSON
stream and rendered as placeholders in THIRD_PARTY_LICENSES.md. Update goModule
to include Version and make sure the code path that unmarshals or emits goModule
values in the licenses pipeline preserves and propagates that field through the
existing module handling logic.

In `@sites/docs-devsy-sh/pages/quickstart/quickstart.mdx`:
- Around line 50-58: The quickstart SSH examples use two different workspace
placeholders, which is confusing for readers copying the command. Update the SSH
command text in the quickstart content to use one consistent placeholder
throughout, and make sure both the opening command and the later reference in
the Vim/Neovim section match the same symbol used in this document’s SSH
guidance.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dd678d1a-b336-4489-b341-d634dc136575

📥 Commits

Reviewing files that changed from the base of the PR and between 5f33047 and 38c919b.

📒 Files selected for processing (23)
  • .devcontainer/devcontainer.json
  • .github/workflows/devcontainer.yml
  • .github/workflows/pr-ci.yml
  • .goreleaser.yml
  • THIRD_PARTY_LICENSES.md
  • Taskfile.yml
  • hack/licenses/main.go
  • hack/licenses/overrides.ndjson
  • hack/licenses/rules.json
  • hack/licenses/third-party-licenses.md.tmpl
  • sites/docs-devsy-sh/pages/developing-in-workspaces/inactivity-timeout.mdx
  • sites/docs-devsy-sh/pages/developing-in-workspaces/what-are-workspaces.mdx
  • sites/docs-devsy-sh/pages/licenses/devsy.mdx
  • sites/docs-devsy-sh/pages/quickstart/browser.mdx
  • sites/docs-devsy-sh/pages/quickstart/devsy-cli.mdx
  • sites/docs-devsy-sh/pages/quickstart/jetbrains.mdx
  • sites/docs-devsy-sh/pages/quickstart/quickstart.mdx
  • sites/docs-devsy-sh/pages/quickstart/ssh.mdx
  • sites/docs-devsy-sh/pages/quickstart/vim.mdx
  • sites/docs-devsy-sh/pages/quickstart/vscode.mdx
  • sites/docs-devsy-sh/pages/what-is-devsy.mdx
  • sites/docs-devsy-sh/sidebars.js
  • sites/docs-devsy-sh/src/css/custom.css
💤 Files with no reviewable changes (7)
  • sites/docs-devsy-sh/pages/quickstart/ssh.mdx
  • sites/docs-devsy-sh/pages/licenses/devsy.mdx
  • sites/docs-devsy-sh/pages/quickstart/vim.mdx
  • sites/docs-devsy-sh/pages/quickstart/jetbrains.mdx
  • sites/docs-devsy-sh/pages/quickstart/browser.mdx
  • sites/docs-devsy-sh/pages/quickstart/devsy-cli.mdx
  • sites/docs-devsy-sh/pages/quickstart/vscode.mdx

Comment thread .github/workflows/pr-ci.yml
Comment thread hack/licenses/main.go
Comment thread hack/licenses/main.go Outdated
Comment thread sites/docs-devsy-sh/pages/quickstart/quickstart.mdx Outdated
Refresh the docs voice toward organizations scaling engineering
operations, collapse the six per-IDE Quick Start pages into a single
guide, and fix sidebar section spacing so every category renders
consistently.

Signed-off-by: Samuel K <skevetter@pm.me>
Generate THIRD_PARTY_LICENSES.md from the modules actually compiled into
the CLI (the union of build dependencies across every released OS/arch)
via go-licence-detector, and bundle it into release archives so
attribution ships with the binary. Deriving the set from the import
graph rather than the full module graph keeps the output deterministic
across machines, Go versions, and module-cache state.

A PR check enforces the license allowlist and keeps the committed file
in sync, and the ci-success gate depends on it. Replaces the
hand-maintained docs licenses page.

Run with 'task cli:licenses' / 'task cli:licenses:check'.

Signed-off-by: Samuel K <skevetter@pm.me>
Switch the devcontainer feature to prek and update the devcontainer
build smoke test to verify prek instead of pre-commit, matching the
prek-action already used in pr-ci.

Signed-off-by: Samuel K <skevetter@pm.me>
@skevetter
skevetter merged commit 77cf634 into main Jun 24, 2026
60 checks passed
@skevetter
skevetter deleted the slippery-bear branch June 24, 2026 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant