Skip to content

Rename ModelKit -> WinML CLI across user-visible surface (Wave 1)#587

Merged
timenick merged 5 commits into
mainfrom
zhiwang/rename-modelkit-wave1
May 12, 2026
Merged

Rename ModelKit -> WinML CLI across user-visible surface (Wave 1)#587
timenick merged 5 commits into
mainfrom
zhiwang/rename-modelkit-wave1

Conversation

@timenick
Copy link
Copy Markdown
Collaborator

@timenick timenick commented May 12, 2026

Closes #583

Summary

Rename the product from "ModelKit" / "WinML ModelKit" to "WinML CLI" everywhere users see the name. CLI binary (winml) and Python module path (winml.modelkit) are unchanged.

90 files, 314 / 316 lines (nearly symmetric — pure rename, near-zero behavior change).

What changed

User-visible (the main goal)

  • CLI --help text + module docstrings (cli.py, __init__.py, __main__.py)
  • All subcommand --help (build, catalog, config, inspect, serve, sys)
  • Serve API titles, console banners, server_info["name"] response
  • Rich UI panel titles (catalog, sys)
  • Runtime rule information messages
  • README, CONTRIBUTING, SUPPORT, docs/Privacy, docs/naming-convention
  • serve/static/index.html (browser title, logo, UI strings, code examples, MCP server identifiers, Claude Code skill filename)
  • scripts/mcp_server.py (FastMCP server name, descriptions, log messages)
  • Stale wmk CLI command examples in model docstrings -> winml

Internal rename for consistency

  • Telemetry event names ModelKit{Heartbeat,Action,Error} -> WinMLCLI{...} (safe: not yet in production use, no dashboard coordination required)
  • Cache filename modelkit.cache -> winmlcli.cache
  • Internal attribute flags _modelkit_* -> _winmlcli_* in telemetry/
  • Env vars MODELKIT_* -> WINMLCLI_*: _RULES_DIR, _SHOW_ALL_WARNINGS, _TIMING_LOG, _TELEMETRY_CACHE_DIR
  • Internal module docstrings (cache/, core/, onnx/, utils/, etc)
  • ModelKitPlugin class identifier in Semantic Kernel example
  • producer_name strings in test fixtures + pattern/base.py

Adjacent fixes pulled in

  • pyproject.toml URLs: github.com/microsoft/ModelKit -> WinML-ModelKit (stale 404 URLs; real repo is microsoft/WinML-ModelKit)
  • Same URL fix in README.md, SUPPORT.md, CONTRIBUTING.md
  • WML abbreviation -> WinML expansion in __author__ and export subsystem docstring (team identity unchanged)
  • Stale duplicate copyright block (Apache-2.0 SPDX) removed from graphpipe/builders test assets — verified original Microsoft code, no Apache use

Naming convention chosen

Per docs/naming-convention.md (3-letter acronyms stay uppercase):

  • PascalCase: WinMLCLI (e.g. event names, class names)
  • ALL_CAPS env: WINMLCLI_* (e.g. WINMLCLI_RULES_DIR)
  • lowercase id: winmlcli (e.g. cache filename, MCP server name)
  • Two-word user-facing: WinML CLI (e.g. docs, help text)

timenick added 2 commits May 12, 2026 10:18
Product name "ModelKit" / "WinML ModelKit" -> "WinML CLI" everywhere users
see the name:

- CLI help text, module docstrings (cli.py, __init__.py, __main__.py)
- All subcommand --help (build, catalog, config, inspect, serve, sys)
- Serve API titles, console banners, server_info["name"] response
- Rich UI panel titles (catalog, sys)
- Runtime rule information messages ("Use the WinML CLI rewrite flag...")
- README, CONTRIBUTING, SUPPORT, docs/Privacy, docs/naming-convention
- serve/static/index.html (browser title, logo, UI strings, code examples,
  MCP server identifiers, Claude Code skill filename)
- scripts/mcp_server.py (FastMCP name, descriptions, log messages)
- Stale wmk CLI command examples in model docstrings -> winml

Internal rename for consistency:

- Telemetry event names ModelKit{Heartbeat,Action,Error} -> WinMLCLI{...}
  (safe: not yet in production use)
- Cache filename modelkit.cache -> winmlcli.cache
- Internal attribute flags _modelkit_* -> _winmlcli_* in telemetry/
- Env vars MODELKIT_* -> WINMLCLI_*: _RULES_DIR, _SHOW_ALL_WARNINGS,
  _TIMING_LOG, _TELEMETRY_CACHE_DIR
- Internal module docstrings (cache/, core/, onnx/, utils/, etc)
- ModelKitPlugin class identifier in Semantic Kernel example
- producer_name strings in test fixtures + pattern/base.py

Adjacent fixes pulled in:

- pyproject.toml URLs: github.com/microsoft/ModelKit -> WinML-ModelKit
  (stale 404 URLs; real repo is microsoft/WinML-ModelKit)
- Same URL fix in README.md, SUPPORT.md, CONTRIBUTING.md
- WML abbreviation -> WinML expansion in __author__ and export subsystem
  docstring (team identity unchanged)
- Stale duplicate copyright block (Apache-2.0 SPDX) removed from
  graphpipe/builders test assets (verified original code, no Apache use)

Out of scope (deferred):

- Python module path winml.modelkit (high churn, low value)
- PyPI package name winml-modelkit (wave 3, needs repo coordination)
- GitHub Actions / Azure Pipelines yaml filenames (wave 2)
- gim-home/ModelKitArtifacts cross-repo asset references
- runtime_checker_query.py workspace marker substring match (behavior code)
- Azure DevOps modelkit-selfhost-pool / Modelkit feed (infra-managed)
- docs/superpowers/* historical design docs (preserve as-is)

Refs #583
@timenick timenick requested a review from a team as a code owner May 12, 2026 02:19
timenick added 2 commits May 12, 2026 10:24
The previous rename commit removed __version__ from analyze/__init__.py per
user direction, but analyzer.py:482 imports it for OutputAggregator metadata.
__author__ stays removed (verified unused).
Previous fix restored __version__ to analyze/__init__.py because
analyzer.py imported it. Per user direction, analyze should not maintain
a separate version — OutputAggregator already has a default analyzer_version
value, so just drop the explicit kwarg.

- analyzer.py: drop `from . import __version__` + `analyzer_version=` kwarg
- analyze/__init__.py: drop __version__ definition + __all__ entry

Tests pass: OutputAggregator default "0.1.0" matches existing assertions.
@timenick timenick merged commit e0a22c8 into main May 12, 2026
9 checks passed
@timenick timenick deleted the zhiwang/rename-modelkit-wave1 branch May 12, 2026 05:58
ssss141414 pushed a commit that referenced this pull request May 15, 2026
Closes #583

## Summary

Rename the product from **"ModelKit"** / **"WinML ModelKit"** to
**"WinML CLI"** everywhere users see the name. CLI binary (`winml`) and
Python module path (`winml.modelkit`) are unchanged.

90 files, 314 / 316 lines (nearly symmetric — pure rename, near-zero
behavior change).

## What changed

### User-visible (the main goal)
- CLI `--help` text + module docstrings (`cli.py`, `__init__.py`,
`__main__.py`)
- All subcommand `--help` (`build`, `catalog`, `config`, `inspect`,
`serve`, `sys`)
- Serve API titles, console banners, `server_info["name"]` response
- Rich UI panel titles (catalog, sys)
- Runtime rule information messages
- README, CONTRIBUTING, SUPPORT, docs/Privacy, docs/naming-convention
- `serve/static/index.html` (browser title, logo, UI strings, code
examples, MCP server identifiers, Claude Code skill filename)
- `scripts/mcp_server.py` (FastMCP server name, descriptions, log
messages)
- Stale `wmk` CLI command examples in model docstrings -> `winml`

### Internal rename for consistency
- Telemetry event names `ModelKit{Heartbeat,Action,Error}` ->
`WinMLCLI{...}` (safe: not yet in production use, no dashboard
coordination required)
- Cache filename `modelkit.cache` -> `winmlcli.cache`
- Internal attribute flags `_modelkit_*` -> `_winmlcli_*` in
`telemetry/`
- Env vars `MODELKIT_*` -> `WINMLCLI_*`: `_RULES_DIR`,
`_SHOW_ALL_WARNINGS`, `_TIMING_LOG`, `_TELEMETRY_CACHE_DIR`
- Internal module docstrings (`cache/`, `core/`, `onnx/`, `utils/`, etc)
- `ModelKitPlugin` class identifier in Semantic Kernel example
- `producer_name` strings in test fixtures + `pattern/base.py`

### Adjacent fixes pulled in
- `pyproject.toml` URLs: `github.com/microsoft/ModelKit` ->
`WinML-ModelKit` (stale 404 URLs; real repo is
`microsoft/WinML-ModelKit`)
- Same URL fix in `README.md`, `SUPPORT.md`, `CONTRIBUTING.md`
- `WML` abbreviation -> `WinML` expansion in `__author__` and export
subsystem docstring (team identity unchanged)
- Stale duplicate copyright block (Apache-2.0 SPDX) removed from
`graphpipe/builders` test assets — verified original Microsoft code, no
Apache use

## Naming convention chosen

Per `docs/naming-convention.md` (3-letter acronyms stay uppercase):
- PascalCase: `WinMLCLI` (e.g. event names, class names)
- ALL_CAPS env: `WINMLCLI_*` (e.g. `WINMLCLI_RULES_DIR`)
- lowercase id: `winmlcli` (e.g. cache filename, MCP server name)
- Two-word user-facing: `WinML CLI` (e.g. docs, help text)
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.

[Rename] ModelKit -> WinML CLI: P0 user-visible strings (Wave 1)

2 participants