Skip to content

Commit 7fb3f36

Browse files
committed
chore(docs): fix documentation accuracy issues
- Remove references to non-existent docs/COMMIT_CONVENTION.md - Update CLAUDE.md: add Ruby runtime, fix test count (160+), add update/request commands, add manifest/migration packages - Update CLAUDE.md: add comprehensive CI/CD workflows documentation - Update CONTRIBUTING.md: add ruby to code organization - Update .commitlintrc.yml: fix helpUrl to conventionalcommits.org
1 parent 4e2b438 commit 7fb3f36

3 files changed

Lines changed: 49 additions & 27 deletions

File tree

.claude/CLAUDE.md

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,15 @@ gh api repos/dtvem/dtvem/issues/<number>/dependencies/blocked_by/<blocker_id> -X
9393
| Attribute | Value |
9494
|-----------|-------|
9595
| Version | dev (pre-1.0) |
96-
| Runtimes | Python, Node.js |
97-
| Tests | 230+ passing |
96+
| Runtimes | Python, Node.js, Ruby |
97+
| Tests | 160+ passing |
9898
| Style | Google Go Style Guide |
9999

100100
**Key Concept**: Shims are Go executables that intercept runtime commands (like `python`, `node`), resolve versions, and execute the appropriate binary.
101101

102102
### Available Commands
103103

104-
`init`, `install`, `uninstall`, `list`, `list-all`, `global`, `local`, `current`, `freeze`, `migrate`, `reshim`, `which`, `where`, `version`, `help`
104+
`init`, `install`, `uninstall`, `list`, `list-all`, `global`, `local`, `current`, `freeze`, `migrate`, `reshim`, `which`, `where`, `update`, `request`, `version`, `help`
105105

106106
---
107107

@@ -152,10 +152,12 @@ Maps to runtime provider → Resolves version
152152
| `internal/ui/` | Colored output, prompts, verbose/debug logging |
153153
| `internal/tui/` | Table formatting and styles |
154154
| `internal/download/` | File downloads with progress |
155+
| `internal/manifest/` | Version manifest fetching and caching |
156+
| `internal/migration/` | Migration detection and helpers |
155157
| `internal/testutil/` | Shared test utility functions |
156158
| `internal/constants/` | Platform constants |
157159
| `src/cmd/` | CLI commands (one file per command) |
158-
| `src/runtimes/` | Runtime providers (node/, python/) |
160+
| `src/runtimes/` | Runtime providers (node/, python/, ruby/) |
159161

160162
---
161163

@@ -173,6 +175,7 @@ func init() {
173175
import (
174176
_ "github.com/dtvem/dtvem/src/runtimes/node"
175177
_ "github.com/dtvem/dtvem/src/runtimes/python"
178+
_ "github.com/dtvem/dtvem/src/runtimes/ruby"
176179
)
177180
```
178181

@@ -273,7 +276,7 @@ cd src && go test -cover ./... # With coverage
273276

274277
### Provider Test Harness
275278

276-
`internal/runtime/provider_test_harness.go` validates all Provider implementations consistently. Used by node and python providers.
279+
`internal/runtime/provider_test_harness.go` validates all Provider implementations consistently. Used by node, python, and ruby providers.
277280

278281
### Import Cycle Avoidance
279282

@@ -285,22 +288,40 @@ cd src && go test -cover ./... # With coverage
285288

286289
## CI/CD
287290

288-
### Build Workflow (`.github/workflows/build.yml`)
289-
290-
1. **golangci-lint** - Linting (errcheck, govet, unused, misspell, etc.)
291-
2. **go-mod** - Verify go.mod/go.sum are tidy
292-
3. **build** - Matrix build/test on Windows, macOS, Linux
293-
294-
PRs get automatic coverage reports posted as comments.
295-
296-
### Release Workflow (`.github/workflows/release.yml`)
297-
298-
Triggered manually via workflow dispatch:
299-
300-
1. **validate** - Check build passed, version format valid
301-
2. **build** - Matrix build for 5 platforms
302-
3. **release** - Create tag, GitHub Release with artifacts
303-
4. **notify** - Post to GitHub Discussions and BlueSky
291+
### Workflows in This Repo (`.github/workflows/`)
292+
293+
| Workflow | Trigger | Purpose |
294+
|----------|---------|---------|
295+
| `build.yml` | PR, push to main | Lint, build, test on Windows/macOS/Linux. Posts coverage reports on PRs |
296+
| `release.yml` | Manual dispatch | Full release: validate, build 5 platforms, create GitHub Release, notify |
297+
| `commit-lint.yml` | PR | Validate PR titles follow conventional commits |
298+
| `script-lint.yml` | PR (install scripts) | Lint install.sh and install.ps1 with shellcheck/PSScriptAnalyzer |
299+
| `contributors.yml` | Push to main | Auto-update contributors section in README |
300+
| `preview-changelog.yml` | PR | Preview release notes for PRs |
301+
| `integration-test.yml` | Manual dispatch | Full integration test suite (runtimes + migrations) |
302+
| `integration-test-runtimes.yml` | Manual dispatch | Runtime install/uninstall tests only |
303+
| `integration-test-migrations.yml` | Manual dispatch | Migration tests only (all platforms/managers) |
304+
| `generate-manifests-from-r2.yml` | Manual/scheduled | Generate version manifests from R2 mirror |
305+
| `deploy-manifests.yml` | Push to main (manifests/) | Deploy manifest files to R2 |
306+
| `mirror-all.yml` | Manual dispatch | Mirror all runtime binaries to R2 |
307+
| `mirror-sync.yml` | Scheduled | Sync new versions to R2 mirror |
308+
309+
### Reusable Workflows (from `dtvem/.github` repo)
310+
311+
Integration tests and changelog generation use reusable workflows stored in the separate `dtvem/.github` repository:
312+
313+
**Runtime Tests:**
314+
- `integration-test-node.yml` - Node.js install/global/local/uninstall
315+
- `integration-test-python.yml` - Python install/global/local/uninstall
316+
- `integration-test-ruby.yml` - Ruby install/global/local/uninstall
317+
318+
**Migration Tests** (per runtime × platform × version manager):
319+
- `integration-test-migrate-{runtime}-{platform}-{manager}.yml`
320+
- Platforms: ubuntu, macos, windows
321+
- Managers: system, nvm, fnm, pyenv, rbenv, uru
322+
323+
**Utilities:**
324+
- `generate-changelog.yml` - Generate release notes from commits
304325

305326
Version injected at build time; main branch always shows `Version = "dev"`.
306327

@@ -312,12 +333,12 @@ Version injected at build time; main branch always shows `Version = "dev"`.
312333

313334
**Unix:**
314335
```bash
315-
curl -fsSL https://github.com/dtvem/dtvem/releases/latest/download/install.sh | bash
336+
curl -fsSL dtvem.io/install.sh | bash
316337
```
317338

318339
**Windows:**
319340
```powershell
320-
irm https://github.com/dtvem/dtvem/releases/latest/download/install.ps1 | iex
341+
irm dtvem.io/install.ps1 | iex
321342
```
322343

323344
Features: Auto platform detection, PATH configuration, runs `dtvem init`.

.commitlintrc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,4 @@ rules:
7777
- 100
7878

7979
# Help URL shown in error messages
80-
helpUrl: 'https://github.com/dtvem/dtvem/blob/main/docs/COMMIT_CONVENTION.md'
80+
helpUrl: 'https://www.conventionalcommits.org/'

CONTRIBUTING.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Enhancement suggestions are tracked as GitHub issues. When creating an enhanceme
3535
4. **Use a conventional commit format for your PR title** (e.g., `feat(node): add version caching`)
3636
5. Submit your pull request!
3737

38-
**Note:** We use squash merges, so your PR title becomes the commit message on main. Make sure it follows the [commit convention](docs/COMMIT_CONVENTION.md).
38+
**Note:** We use squash merges, so your PR title becomes the commit message on main. Make sure it follows the [Conventional Commits](https://www.conventionalcommits.org/) specification.
3939

4040
## Development Setup
4141

@@ -172,8 +172,9 @@ src/
172172
│ ├── runtime/ # Core plugin system
173173
│ └── shim/ # Shim management
174174
└── runtimes/ # Runtime provider implementations
175+
├── node/
175176
├── python/
176-
└── node/
177+
└── ruby/
177178
```
178179

179180
### Commit Messages
@@ -196,7 +197,7 @@ test(migrate): add tests for package preservation
196197

197198
**Common scopes:** `node`, `python`, `cli`, `install`, `migrate`, `shim`, `config`, `path`, `ui`, `test`, `docs`
198199

199-
For detailed guidelines and examples, see [Commit Convention Guide](docs/COMMIT_CONVENTION.md).
200+
For detailed guidelines, see the [Conventional Commits specification](https://www.conventionalcommits.org/).
200201

201202
**Note:** PR titles are automatically validated for conventional commit compliance. Non-conforming titles will fail CI checks. Since we use squash merges, your PR title becomes the final commit message.
202203

0 commit comments

Comments
 (0)