Mirror the TVM setup (apache/tvm#18809): a minimal GHA workflow that
runs `uv sync --group lint` plus `pre-commit/action`. Pre-commit is
rewritten around ruff (check + format), replacing the previous
isort/black/mypy/pylint/cmake-format stack, and gains yamllint,
taplo, check-yaml, and check-toml. The corresponding Jenkins Lint
stage, the ci/task/{isort,black,mypy,pylint,clang-format}.sh scripts,
and .pylintrc are removed. pyproject.toml grows a [tool.ruff] section
(select E/F/I/UP/RUF, line-length 100, py39 target) and a
[dependency-groups] lint entry; the stale isort/black/mypy/pylint
tool tables are dropped.
To get the codebase green under the new ruler, existing UP006/UP035/
UP045/E501/RUF001/RUF002/E402/F821 violations are grandfathered via
inline `# noqa`, so new code in those forms is still flagged. Real
issues surfaced by the new rules are fixed directly: E741 renames
(ambiguous `l`/`O`), F841 unused locals, E722 bare `except`, RUF012
ClassVar annotations for mutable class defaults, RUF013 explicit
`Optional[...]`, and RUF005 iterable unpacking.
With pylint and mypy gone from CI, this also strips all `# pylint:
disable/enable` and `# type: ignore` directives from Python sources
(PEP 484 `# type: <expr>` comments and `# fmt: off/on` are
preserved), and runs the resulting files through ruff-format.
Following recent renaming in TVM, we now rename all FP8 dtypes:
* `e4m3_float8` is renamed to `float8_e4m3fn`,
* `e5m2_float8` is renamed to `float8_e5m2`.
This aligns with dtype names in PyTorch and ml_dtypes.
The delivered HuggingFace FP8 model repos might need update as well
to align with the rename.
This PR updates the KV cache interface following a recent refactor
in apache/tvm. We also update the DeepSeek-v2 modeling to use
the new KV cache interface.
This PR renames the mlc_chat pckage to the mlc_llm package
now that this is the new official flow. We also update the necessary
locations that might touch the package.
This PR moves the import of transformers into the function body
of tiktoken tokenizer conversion, so we do not have a force dependency
on transformers.
This PR removes the old C++ based mlc_chat_cli in favor
of the new Python CLI built on top of the SLM pipeline.
- All files related to C++ based CLI is removed
- Docs are updated to point to the new CLI
This PR makes it possible to invoke mlc_chat subcommands directly.
Previously one has to use `python -m` as the prefix to invoke
`mlc_chat`:
```bash
python -m mlc_chat compile \
--model /models/Llama-2-7b-chat-hf \
--quantization q4f16_1 \
--max-sequence-length 4096 \
-o ./llama.so
```
This PR makes is possible to use it without the `python -m` prefix:
```bash
mlc_chat compile \
--model /models/Llama-2-7b-chat-hf \
--quantization q4f16_1 \
--max-sequence-length 4096 \
-o ./llama.so
```