Skip to content

fix(ci): remove banned V-language build from zig-test/e2e workflows#66

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/remove-vlang-ci
May 16, 2026
Merged

fix(ci): remove banned V-language build from zig-test/e2e workflows#66
hyperpolymath merged 1 commit into
mainfrom
fix/remove-vlang-ci

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

V-language is banned estate-wide; the sanctioned connector layer is zig-unified-api-adapter. The boj-server CI still installed and ran V on every push. This PR removes that.

Changes

  • .github/workflows/zig-test.yml: removed the entire v-lang-check ("V-lang Adapter Checks") job. It cloned/built github.com/vlang/v, then ran v check over cartridges/{lsp,dap,bsp}-mcp/adapter/*.v. Those .v adapter files no longer exist in the repo, so the job was already dead weight.
  • .github/workflows/e2e.yml: removed the "Install V" step (cloned/built github.com/vlang/v into /usr/local/bin). The v binary was never invoked anywhere else in the e2e job.

Validation

  • yaml.safe_load passes on both modified workflows ("yaml ok").
  • No .v source files exist anywhere under cartridges/, confirming the removed v-lang-check job was orphaned.

Out of scope (flagged for separate review)

The repo Justfile still carries live V-lang build/run wiring: build-adapter, install-v (clones vlang/v), and legacy run recipes referencing adapter/v/. This is source-level drift beyond this CI-focused fix and is intentionally left untouched here. The Zig FFI files contain only descriptive comments mentioning the former V-lang adapter (no V code).

🤖 Generated with Claude Code

V-language is banned estate-wide; the sanctioned connector layer is
zig-unified-api-adapter. These workflows still installed and ran V on
every push.

- .github/workflows/zig-test.yml: remove the entire "V-lang Adapter
  Checks" job (cloned/built github.com/vlang/v, then ran v check over
  cartridges/{lsp,dap,bsp}-mcp/adapter .v files). Those .v adapter
  files no longer exist in the repo, so the job was already dead.
- .github/workflows/e2e.yml: remove the "Install V" step (cloned/built
  github.com/vlang/v into /usr/local/bin). The v binary was never
  invoked anywhere else in the e2e job.

Both workflows remain valid YAML.

Out of scope (noted for follow-up review, NOT changed here): the
Justfile still carries live V-lang build/run wiring (build-adapter,
install-v cloning vlang/v, legacy run recipes). That is a separate
source-level change outside this CI-focused fix.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@hyperpolymath hyperpolymath merged commit e256fcf into main May 16, 2026
22 checks passed
@hyperpolymath hyperpolymath deleted the fix/remove-vlang-ci branch May 16, 2026 14:52
hyperpolymath added a commit that referenced this pull request May 16, 2026
## Summary

PR #66 (merged) removed only the V-lang **CI jobs**. The repo still had
live dangling V-lang references with no backing source — `adapter/v/`
was deleted in the prior 2026-04-12 V-lang sweep, and the real
REST/gRPC/GraphQL surface is the **Elixir backend** (`elixir/`,
Plug/Cowboy). No V port was ever needed. This PR finishes the
dead-leaf cleanup.

## What was removed / fixed

**Justfile**
- Deleted the `build-adapter` recipe entirely.
- `run` / `serve` / `install` now use only the existing Elixir path; the
  dead V `else` fallback branches were dropped (no new behavior — the
  Elixir branch was already the preferred path). `install` no longer
  copies a non-existent V binary.
- `heal`: removed the `git clone https://github.com/vlang/v` + `make` +
  symlink block.
- `doctor`: dropped `check_optional "V (vlang)"` and the
  `adapter/v/boj-server` artefact check (now checks `elixir/`).
- `matrix` / `tour` / `help-me`: cosmetic V status echoes repointed to
  the Elixir reality. All recipes remain syntactically valid.

**CI**
- `.github/workflows/lsp-dap-bsp.yml`: deleted the `adapter-check` job
  (it ran `v check`; missed by PR #66) and removed it from the
  `completeness` job's `needs:` so the workflow stays valid.
- `.github/workflows/e2e.yml`: deleted the dead `Build V adapter` step
  (`cd adapter/v && v -o boj-server .`).

**scripts / tests / docs**
- `tests/e2e_full.sh`, `tests/federation_multinode.sh`: launch the
  Elixir backend (`cd elixir && mix run --no-halt`) instead of the
  non-existent `adapter/v/boj-server`.
- `tests/aspect_tests.sh`: removed the dead V-lang ABI-contract aspect
  and the V-file SPDX loop; cartridge-completeness check is now ABI+FFI;
  aspects renumbered consistently.
- `scripts/boj-selinux-contexts.sh`: removed the dead V binary fcontext
  rule; renumbered the remaining two steps.
- `docs/RSR_OUTLINE.adoc`, `docs/QUICKSTART.md`,
  `docs/GETTING-STARTED.md`, `docs/outreach/blog-post-draft.md`,
  `docs/wiki/Developer-Guide.md`, `docs/wiki/User-Guide.md`,
  `.github/DISCUSSION_TEMPLATE/cartridge-proposal.yml`, `.gitignore`,
  `0-AI-MANIFEST.a2ml`: dead `adapter/v/` path references and stale
  three-layer-stack wording corrected to the Elixir+Zig reality.

## Why no port was needed

The Elixir backend already exists as the canonical Class-3 REST/gRPC/
GraphQL surface; the V-lang adapter layer was retired estate-wide on
2026-04-10 and its `.v` files removed 2026-04-12. These were dangling
references only.

## Intentionally left untouched

- `CHANGELOG.md`, `ROADMAP.adoc`, `.machine_readable/6a2/*`,
  `.machine_readable/servers/order-ticket.a2ml` — these **document the
  V-lang retirement as history**; not drift.
- `Intentfile` / `Mustfile` Unbreakable-Stack ban-enforcement assets —
  protected estate-rule surface, out of scope.
- Per-cartridge `*_adapter.zig` provenance comments and cartridge
  `README.adoc` adapter-language tables — accurate Zig-replacement
  provenance / a much larger doc surface outside this bounded
  dead-leaf cleanup.

## Validation

```
=== YAML safe_load ===
OK  .github/workflows/lsp-dap-bsp.yml
OK  .github/workflows/e2e.yml
OK  .github/DISCUSSION_TEMPLATE/cartridge-proposal.yml

=== just --list ===
just --list OK (107 lines)   # build-adapter absent, all recipes intact

=== bash -n on edited shell scripts ===
OK  tests/e2e_full.sh
OK  tests/federation_multinode.sh
OK  tests/aspect_tests.sh
OK  scripts/boj-selinux-contexts.sh

=== a2ml sanity ===
0-AI-MANIFEST.a2ml — parens balanced
```

16 files changed, +98 / -248.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: hyperpolymath <hyperpolymath@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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