Skip to content

Rename the project from Vár/@oselvar to Varar - #39

Merged
aslakhellesoy merged 14 commits into
mainfrom
rename-to-varar
Jul 19, 2026
Merged

Rename the project from Vár/@oselvar to Varar#39
aslakhellesoy merged 14 commits into
mainfrom
rename-to-varar

Conversation

@aslakhellesoy

Copy link
Copy Markdown
Contributor

Renames the project from Vár (@oselvar/var) to Varar across all five
language ports, tooling, docs, and product tokens. make check (build + test
of every port + commit-lint) is green.

Motivation: a more unique/searchable name, an available domain (varar.dev),
and free namespaces (the @varar npm org is owned). Varar is Old Norse for
oaths — so the goddess Vár (guardian of oaths) becomes a tighter mascot,
not an obsolete one.

What changed

Ecosystem New coordinates
npm @varar/varar (facade) + @varar/{core,config,language,runner,vitest,cli,lsp}; VS Code varar.varar
PyPI varar, varar-core, varar-config, varar-runner, varar-unittest, pytest-varar
Maven dev.varar:{varar,core,config,runner,junit,kotlin,kotest} (Kotlin pkg leaf dev.varar.kotlin)
RubyGems varar, varar-core, …; module Varar::*, load path varar/…
Rust varar, varar-core, … (still publish = false)

Product tokens: varar.config.json, varar.lock.json,
varar.config.schema.json (served from varar.dev); CLI command varar
(LSP bin varar-lsp); varar init scaffolds under varar-examples/.

Directories: package dirs drop the var- prefix too (packages/core, …,
facade packages/varar) — on-disk only; published names are unchanged.

Tooling/brand: release scripts, languages.json, Makefile, CI, badges →
varar.dev; front page + README reframed around varar = oaths (goddess Vár
kept, accent used only for the goddess). Full plan in doc/RENAME-VARAR.md.

Intentionally kept

GitHub org oselvar (this repo will be renamed oselvar/varar separately —
the varar org is squatted), aslak@oselvar.com, Oselvar Ltd in LICENSE,
the Vár 1Password vault, test-data Vár/vár in specs/goldens, and the
dated doc/superpowers + doc/adr history archive.

Before publishing (owner-only, external — tracked in doc/RENAME-VARAR.md)

  • Reserve names on PyPI / RubyGems / crates.io
  • Register Maven dev.varar namespace + DNS-verify on varar.dev
  • Create VS Code Marketplace + Open VSX varar publishers
  • Cloudflare varar.dev zone + Worker route
  • Rename repos oselvar/varoselvar/varar, oselvar/var-examplesoselvar/varar-examples
  • Add npm-varar / pypi-varar tokens to the Vár 1Password vault

🤖 Generated with Claude Code

https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n

Aslak Hellesøy and others added 11 commits July 18, 2026 19:23
Full plan for renaming oselvar/var -> varar across all language ports,
release tooling, docs, and registries. Executed on the rename-to-varar branch.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
Package coordinates change from @oselvar/var* to the @VarAR scope with the
redundant prefix dropped: @varar/varar (facade), @varar/core, @varar/config,
@varar/language, @varar/runner, @varar/vitest, @varar/cli, @varar/lsp. The VS
Code extension becomes varar.varar (publisher varar, display name "Varar").
Subpath exports, the vitest plugin's virtual-module codegen, the init
scaffold, website config, and doc/repo URLs (github.com/oselvar/varar,
varar.dev) update to match.

BREAKING CHANGE: npm packages are renamed from the @oselvar scope to @VarAR.
Update imports: `@oselvar/var` -> `@varar/varar`, `@oselvar/var-vitest` ->
`@varar/vitest`, etc.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
Distributions rename oselvar-var* -> varar* (facade `varar`, plus varar-core,
varar-config, varar-runner, varar-unittest, and the pytest plugin
`pytest-varar`). Import packages become varar, varar_core, varar_config,
varar_runner, varar_unittest, varar_pytest. Homepage -> varar.dev.

BREAKING CHANGE: PyPI distributions are renamed. Install `varar` /
`pytest-varar` instead of `oselvar-var` / `pytest-var`, and import `varar*`
instead of `var*`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
groupId com.oselvar -> dev.varar; artifactIds drop the redundant prefix
(dev.varar:varar facade, plus core, config, runner, junit, kotlin, kotest).
Java packages com.oselvar.var* -> dev.varar.*; the Kotlin leaf
com.oselvar.varkt -> dev.varar.kotlin (and .kotest). SCM/URLs -> oselvar/varar.

BREAKING CHANGE: Maven coordinates change from com.oselvar:var* to
dev.varar:* and package imports from com.oselvar.var* to dev.varar.* (Kotlin:
com.oselvar.varkt -> dev.varar.kotlin).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
Gems rename oselvar-var* -> varar* (facade `varar`, plus varar-core,
varar-config, varar-runner, varar-rspec, varar-minitest). The load path moves
from oselvar/var/** to varar/**, and the module nesting Oselvar::Var::*
collapses to a top-level Varar::*. Homepage -> varar.dev.

BREAKING CHANGE: RubyGems names change from oselvar-var* to varar*; require
paths from 'oselvar/var...' to 'varar...'; and the module namespace from
Oselvar::Var to Varar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
Crate + lib names, workspace members, dependency keys/paths and crate
directories move var* -> varar* (facade `varar`, plus varar-core, varar-config,
varar-runner, varar-cargotest). All crates remain publish=false; the planned
crates.io facade name becomes `varar` (the `var` name was taken).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
Retarget the release scripts at the @VarAR / dev.varar / varar coordinates and
the oselvar/varar-examples sync repo (rubygems dir lookup by gemspec, maven
namespace dev.varar, open-vsx/marketplace varar.varar, 1Password npm-varar /
pypi-varar tokens, 70-varar-examples.sh). Point languages.json, the Makefile,
CI, and the badge generator at the new names and varar.dev. Reframe the front
page and README around "Varar" (Old Norse for *oaths*) while keeping the
goddess Vár; update CLAUDE.md, CONTRIBUTING, ARCHITECTURE, RELEASING, and the
package READMEs. The dated doc/superpowers and doc/adr archive is left as a
historical record.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
…to varar

The project's product tokens follow the rename: the config file
var.config.json -> varar.config.json, the drift baseline var.lock.json ->
varar.lock.json, and the JSON schema var.config.schema.json ->
varar.config.schema.json (served from varar.dev). The command-line tool is now
`varar` (varar run / varar lint / varar init) with the LSP binary varar-lsp,
and `varar init` scaffolds specs under varar-examples/.

BREAKING CHANGE: rename var.config.json -> varar.config.json and
var.lock.json -> varar.lock.json in your project, point "$schema" at
varar.config.schema.json, and invoke the CLI as `varar` instead of `var`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
Rename the package container directories to match the dropped-prefix package
names: <lang>/packages/var -> varar (facade) and var-core -> core, var-config
-> config, var-language -> language, var-runner -> runner, var-vitest ->
vitest, var-cli -> cli, var-lsp -> lsp, var-vscode -> vscode, var-junit ->
junit, var-kotlin -> kotlin, var-kotest -> kotest, var-unittest -> unittest,
var-pytest -> pytest, var-rspec -> rspec, var-minitest -> minitest (Rust
varar-* -> bare too). Only directory names change — published package names,
crate names, gem names, and Maven coordinates are unaffected; workspace
members, path dependencies, module lists, and build configs are updated to
match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018FcUDtbtT4SvX2ySEN5H8n
@aslakhellesoy

Copy link
Copy Markdown
Contributor Author

@copilot resolve the merge conflicts in this pull request

Copilot AI commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Resolved by merging main into this branch in b2b78c7.

Aslak Hellesøy and others added 2 commits July 19, 2026 11:11
# Conflicts:
#	ruby/Gemfile.lock
#	ruby/packages/minitest/varar-minitest.gemspec
#	typescript/knip.json
#	typescript/packages/language/package.json
#	typescript/packages/language/src/index-workspace.ts
#	typescript/packages/language/src/step-defs.ts
#	typescript/packages/vitest/package.json
#	typescript/packages/vitest/src/node-grammar-loader.ts
#	typescript/packages/vitest/src/static-examples.ts
#	typescript/packages/vitest/tests/static-examples.test.ts
#	typescript/pnpm-lock.yaml
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CwhUMqqLLpkZYpS33fuY1d
@aslakhellesoy
aslakhellesoy merged commit 61f1033 into main Jul 19, 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.

2 participants