Commit Graph

5 Commits

Author SHA1 Message Date
Alpamys 1718578a1a test: add subprocess CLI tests + cross-platform CI matrix
- Add test_cli_subprocess.py (69 tests): real subprocess execution
  testing entry points, encoding, paths, Unicode, platform regressions
- CI matrix: ubuntu/windows/macos × Python 3.9/3.11/3.12 (9 jobs)
- CI: add coverage reporting with Codecov upload
- Update CLAUDE.md and CONTRIBUTING.md test counts (1022 → 1091)
2026-03-26 10:24:58 +05:00
Alpamys 5de18dc325 Fix CI badge: read test count from testsuite element, not root
pytest junitxml wraps results in <testsuites><testsuite tests="N">,
the count is on the child element, not the root.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 20:01:44 +05:00
Alpamys ee9aefcc55 Add dynamic test count badge via Gist endpoint
CI now parses pytest junitxml output and updates a public Gist with the
exact test count. Shields.io reads the Gist as an endpoint badge.
Requires GIST_TOKEN secret (PAT with gist scope).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 19:36:08 +05:00
Alpamys fe17addf5c Add GitHub Actions workflow for auto-publish to PyPI on tag
Triggers on `git tag v0.2.0 && git push --tags`.
Uses PyPI trusted publisher (OIDC) — no token needed in secrets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 21:07:55 +05:00
Alpamys d6e932a1d3 Initial project setup: CLI skeleton + config + trainer + data pipeline
- Typer CLI: soup init, soup train, soup data inspect/validate
- Pydantic config schema with YAML loader and validation
- Data pipeline: JSONL/JSON/CSV/Parquet + HuggingFace datasets
- Format detection: Alpaca, ShareGPT, ChatML (auto-detect)
- SFT trainer wrapper over transformers + peft + trl
- QLoRA/LoRA support with auto batch size estimation
- GPU detection (CUDA/MPS/CPU) and memory calculation
- Rich live terminal dashboard for training monitoring
- Config templates: chat, code, medical
- Tests (pytest) + GitHub Actions CI
- MIT license

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:14:56 +05:00