From 6b700806954b4c45eb55e973eed205aea4efdbb6 Mon Sep 17 00:00:00 2001 From: Rafael Richards Date: Sat, 9 May 2026 13:51:09 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20refresh=20org=20landing=20page=20?= =?UTF-8?q?=E2=80=94=20add=20m-test-engine=20+=20m-cli-extras?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The org grew from 7 to 9 repos during the 2026-05-09 self-containment sprint (m-test-engine added in Track A2, m-cli-extras in Track D 6b); the landing page table didn't yet reflect either. - New "Test engine" section describing m-test-engine (the minimal-YDB Docker container that backs `m test` / `m coverage`). - m-cli-extras added under "Toolchain" with its plugin model described. - m-cli row updated to mention `m plugins` and the entry-points plugin system. - m-stdlib-vscode row updated to mention the bundled manifest snapshot landed in Tier 4. - "Getting started" rewritten — the old flow ("clone tree-sitter-m before m-cli; order matters") was the pre-Track-C2 path-dep workflow. Now `uv sync --frozen` pulls the URL-pinned tree-sitter-m wheel from the v0.1.1 GitHub Release, and `make -C m-test-engine up` is the engine flow. - m-cli-extras install hint added. - Licensing summary updated for 9 repos (was 7). Co-Authored-By: Claude Opus 4.7 (1M context) --- profile/README.md | 56 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/profile/README.md b/profile/README.md index 6cc29de..cf06a98 100644 --- a/profile/README.md +++ b/profile/README.md @@ -19,20 +19,27 @@ and editor integrations. Designed to work for both **InterSystems IRIS** and | Repo | What it is | |---|---| -| [`m-cli`](https://github.com/m-dev-tools/m-cli) | The canonical `m ` toolchain: `m fmt`, `m lint`, `m test`, `m coverage`, `m doc`, `m doctor`, `m new`, `m run`, `m build`, `m lsp`, plus modernization rules (M-MOD-001..036, 7 lint profiles). | +| [`m-cli`](https://github.com/m-dev-tools/m-cli) | The canonical `m ` toolchain: `m fmt`, `m lint`, `m test`, `m coverage`, `m doc`, `m doctor`, `m new`, `m run`, `m build`, `m lsp`, `m plugins`, plus modernization rules (M-MOD-001..036, 7 lint profiles) and an entry-points-based plugin system for out-of-tree subcommands. | +| [`m-cli-extras`](https://github.com/m-dev-tools/m-cli-extras) | Out-of-tree m-cli subcommand plugins. First plugin: `m corpus-stats` (file / line / label / parse-error counts across a directory of `.m` files). Pluggable bucket for niche, opinionated, or third-party-flavored utilities. | + +### Test engine + +| Repo | What it is | +|---|---| +| [`m-test-engine`](https://github.com/m-dev-tools/m-test-engine) | Minimal YottaDB Docker container (`yottadb/yottadb-base:latest-master` + tail keep-alive) that backs `m test` and `m coverage` runtime. Bind-mounts `$PWD` as `/work`; `m-cli`'s `DockerEngine` transport dispatches via `docker exec`. Replaces vista-meta as the default engine for non-VistA work. | ### Editor support | Repo | What it is | |---|---| -| [`tree-sitter-m-vscode`](https://github.com/m-dev-tools/tree-sitter-m-vscode) | VS Code extension — syntax highlighting and language support powered by tree-sitter-m compiled to WASM. Recognises `.m`, `.mac`, `.int` files. | -| [`m-stdlib-vscode`](https://github.com/m-dev-tools/m-stdlib-vscode) | VS Code extension — manifest-driven hover docs, goto-definition, and completion for the `m-stdlib` public surface. | +| [`tree-sitter-m-vscode`](https://github.com/m-dev-tools/tree-sitter-m-vscode) | VS Code extension — syntax highlighting and language support powered by tree-sitter-m compiled to WASM. Recognises `.m`, `.mac`, `.int` files. Spawns m-cli's `m lsp` Language Server when m-cli is installed. | +| [`m-stdlib-vscode`](https://github.com/m-dev-tools/m-stdlib-vscode) | VS Code extension — manifest-driven hover docs, goto-definition, and completion for the `m-stdlib` public surface. Ships a bundled `dist/stdlib-manifest.json` snapshot; works on a stock install with no other repo on disk. | ### Validation data | Repo | What it is | |---|---| -| [`m-modern-corpus`](https://github.com/m-dev-tools/m-modern-corpus) | Snapshot collection of modern non-VistA M source from active open-source projects (EWD, mgsql, M-Web-Server, YDBOcto auxiliary, YDBTest). Used as a validation corpus for the parser and lint rules. | +| [`m-modern-corpus`](https://github.com/m-dev-tools/m-modern-corpus) | Snapshot collection of modern non-VistA M source from active open-source projects (EWD, mgsql, M-Web-Server, YDBOcto auxiliary, YDBTest). Default validation corpus for `m lint` rule profiles and parser regression gates. | ## Why this exists @@ -50,31 +57,50 @@ stdlib). ## Getting started -A typical first install: +A typical first install of the `m` toolchain (Linux x86_64; pick the +matching wheel URL from the [tree-sitter-m +v0.1.1](https://github.com/m-dev-tools/tree-sitter-m/releases/tag/v0.1.1) +release for other platforms): ```bash -# Foundation: parser + toolchain -git clone https://github.com/m-dev-tools/tree-sitter-m git clone https://github.com/m-dev-tools/m-cli -pip install ./tree-sitter-m # order matters — m-cli's dep declaration -pip install ./m-cli # needs the tree-sitter-m checkout present +cd m-cli +uv sync --frozen --extra dev # picks up the tree-sitter-m wheel from the + # GitHub release URL pinned in pyproject.toml + # — no sibling tree-sitter-m checkout required # Verify -m doctor -m --help +.venv/bin/m doctor +.venv/bin/m --help +``` + +For the test engine (replaces a host YottaDB install): + +```bash +git clone https://github.com/m-dev-tools/m-test-engine +make -C m-test-engine up # boots the YDB Docker container; m-cli + # auto-detects via DockerEngine ``` For runtime work on YottaDB, also clone [`m-stdlib`](https://github.com/m-dev-tools/m-stdlib). +For extra subcommands beyond core, install +[`m-cli-extras`](https://github.com/m-dev-tools/m-cli-extras) alongside +m-cli — its plugins register via the `m_cli.plugins` entry-point group +and surface as `m ` subcommands. + For VS Code, install the marketplace extensions (currently published under the personal `rafael5` publisher; rebranding to a `m-dev-tools` Marketplace publisher is on the roadmap). ## Licensing -Most repos are **AGPL-3.0**, the two VS Code extensions are **MIT** to -align with the broader extension ecosystem, and `m-modern-corpus` carries -**per-subdirectory upstream licenses** (see its `LICENSES.md`). A migrated -repo's license is the canonical statement; this README is summary only. +Of the nine repos in the org, seven are **AGPL-3.0** (`tree-sitter-m`, +`m-standard`, `m-stdlib`, `m-cli`, `m-cli-extras`, `m-test-engine`, +plus this `.github` org-meta repo); the two VS Code extensions are +**MIT** to align with the broader extension ecosystem; `m-modern-corpus` +carries **per-subdirectory upstream licenses** (see its `LICENSES.md`). +A repo's own LICENSE file is the canonical statement; this README is +summary only. ## Audience