Skip to content

build: ship VKS-only public binary (exclude vServer via build tag)#39

Merged
vks-team merged 1 commit into
mainfrom
feat/vks-only-public-release
Jul 7, 2026
Merged

build: ship VKS-only public binary (exclude vServer via build tag)#39
vks-team merged 1 commit into
mainfrom
feat/vks-only-public-release

Conversation

@vks-team

@vks-team vks-team commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Problem

The public release needs to ship VKS only — vServer is still under development and shouldn't be exposed to users — but grn is a single binary that mounts every product, and the team must keep developing vServer on main.

Solution

A build tag separates "what ships" from "what's on main":

  • Binary: vServer's blank-imports move to go/cmd/register_vserver.go behind //go:build !vks_only. Default builds (dev + CI) still compile and test vServer; the release build (release.yml) now passes -tags vks_only, so the published binary contains VKS only — grn vserver returns "unknown command".
  • Docs (soft-hide): removed the "vServer Commands" nav block from mkdocs.yml. The docs/commands/vserver/ pages stay for dev reference (not shown in the published nav; note: still reachable by direct URL under non-strict build — say the word for a hard exclude).
  • Bonus fix: stale nav entry set-auto-upgrade-configconfig-auto-upgrade (renamed back in v1.4.0), which was warning on docs build.

Verified

  • Default build: grn --help shows vks + vserver.
  • -tags vks_only build: shows vks only; grn vserver → unknown command.
  • go vet + full go test ./... pass (vServer still tested in the default build).

Ordering / re-enabling

  • Merge this before the release PR (chore(main): release 1.7.0 #37) so v1.7.0 ships VKS-only.
  • When vServer is ready: remove -tags vks_only from release.yml, delete the build tag from register_vserver.go (fold back into register.go), and restore the vServer nav block.

vServer is still in development, so keep it out of the public release while
letting the team keep building it on main:
- Move the vServer blank-imports into register_vserver.go behind //go:build
  !vks_only. Default (dev/CI) builds still include and test vServer; the release
  build passes -tags vks_only so the shipped binary has VKS only (`grn vserver`
  is not present).
- Soft-hide the vServer docs: drop the "vServer Commands" nav block from
  mkdocs.yml (the pages stay for dev reference).
- Fix a stale nav entry: set-auto-upgrade-config -> config-auto-upgrade.

Verified: default build has vks+vserver; `-tags vks_only` build has vks only
(vserver -> unknown command); full test suite + vet pass.
@vks-team vks-team merged commit 89a7486 into main Jul 7, 2026
6 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.

1 participant