diff --git a/CLAUDE.md b/CLAUDE.md index 900278b..96721d7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -114,24 +114,24 @@ soup train --config soup.yaml - Always run `ruff check soup_cli/ tests/` before committing - Always run `pytest tests/ -v` before committing -## Release Checklist (обязательно при каждой фазе) +## Release Checklist (required for every phase) -При завершении каждой фазы/фичи — выполни **все** пункты по порядку: +Complete **all** steps in order when finishing a phase or feature: -1. **Код:** реализуй фичу, следуя конвенциям проекта -2. **Тесты:** напиши тесты, добавь файл в таблицу тестов ниже -3. **Lint:** `ruff check soup_cli/ tests/` — должен быть clean -4. **Pytest:** `pytest tests/ -v --tb=short` — все тесты должны проходить -5. **Версия:** обнови версию в `pyproject.toml` + `soup_cli/__init__.py` -6. **CLAUDE.md:** обнови Architecture, таблицу тестов, любые новые секции -7. **README.md:** добавь документацию новой фичи, обнови таблицу Features и All Commands -8. **plan.md:** отметь фазу как ✅, обнови счётчик версии/тестов -9. **Commit:** один коммит на фазу с описательным сообщением +1. **Code:** implement the feature following project conventions +2. **Tests:** write tests, add the test file to the test table below +3. **Lint:** `ruff check soup_cli/ tests/` — must be clean +4. **Pytest:** `pytest tests/ -v --tb=short` — all tests must pass +5. **Version:** bump version in `pyproject.toml` + `soup_cli/__init__.py` +6. **CLAUDE.md:** update Architecture, test table, and any new sections +7. **README.md:** add documentation for the new feature, update Features and All Commands tables +8. **plan.md:** mark the phase as complete, update version/test counters +9. **Commit:** one commit per phase with a descriptive message 10. **Push:** `git push origin main` 11. **Tag:** `git tag v0.X.Y && git push origin v0.X.Y` -12. **Release:** `gh release create v0.X.Y` с changelog (What's New, Install/Upgrade) +12. **Release:** `gh release create v0.X.Y` with changelog (What's New, Install/Upgrade) -**Не пропускай пункты.** Каждая фаза = полный цикл от кода до PyPI. +**Do not skip steps.** Every phase = full cycle from code to PyPI. ## Publishing diff --git a/plan.md b/plan.md new file mode 100644 index 0000000..44380de --- /dev/null +++ b/plan.md @@ -0,0 +1,57 @@ +# Soup — Roadmap + +**Repo:** https://github.com/MakazhanAlpamys/Soup +**PyPI:** https://pypi.org/project/soup-cli/ (`pip install soup-cli`) +**Version:** v0.10.0 | 611 tests | CI green + +### How to publish + +```bash +# 1. Bump version in pyproject.toml + soup_cli/__init__.py +# 2. Tag and push +git tag v0.X.0 +git push --tags +# GitHub Actions auto-publishes to PyPI +``` + +--- + +## Completed (v0.1.0 – v0.10.0) + +All core CLI functionality is shipped: + +- **CLI:** init, train, chat, push, merge, export, eval, serve, sweep, diff, doctor, quickstart, ui, version +- **Data:** inspect, validate, convert, merge, dedup, stats, generate +- **Training:** SFT, DPO, GRPO, PPO/RLHF, Reward Model, LoRA/QLoRA, QAT, auto batch size, resume, DeepSpeed, W&B, Unsloth backend +- **Multimodal:** `modality: vision`, LLaVA/ShareGPT4V, LLaMA-Vision/Qwen2-VL/Pixtral +- **Serving:** OpenAI-compatible API, transformers + vLLM backends, SSE streaming, tensor parallelism +- **Tracking:** SQLite experiment tracker, runs list/show/compare/delete +- **Export:** GGUF (Ollama/llama.cpp), LoRA merge +- **Web UI:** Dashboard, New Training, Data Explorer, Model Chat (FastAPI + SPA) +- **UX:** friendly errors, --verbose, confirmation prompts, Rich progress bars +- **Community:** CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, examples/, FUNDING.yml, issue/PR templates, GitHub Discussions +- **Tests:** 611 tests, 40 files, ruff lint, CI on Python 3.9/3.11/3.12 + +--- + +## Next + +- [ ] First post on Reddit (r/LocalLLaMA, r/MachineLearning) +- [ ] Community building, content, marketing + +--- + +## Future (when there's demand) + +- **Cloud Mode (BYOG)** — Modal/RunPod/Vast integration, cost estimator +- **Managed Platform (SaaS)** — app.soup.dev, monetization (when 300+ stars) + +--- + +## Principles + +1. **CLI-first** — everything works from the terminal; UI is a bonus +2. **Zero config by default** — `soup train` with a minimal config just works +3. **Fail fast, fail loud** — bad data or missing GPU = immediate, clear error +4. **Open source core** — CLI is always free; monetize via managed service +5. **Test-driven** — every feature has tests, written alongside the code