feat: add GitHub repo link to CLI output, bump version to v0.17.3

Show GitHub URL in `soup version`, `soup version --full`, `soup doctor`,
and `soup --help` so users can find and star the repo.
Extract URL to GITHUB_URL constant in utils/constants.py.
This commit is contained in:
Alpamys 2026-03-26 15:43:27 +05:00
parent 6687f92682
commit 986f8cb26c
7 changed files with 17 additions and 6 deletions

View File

@ -1,6 +1,6 @@
# Soup CLI — Project CLAUDE.md
Soup is a CLI-first LLM fine-tuning tool (v0.17.2). Python 3.9+, MIT license.
Soup is a CLI-first LLM fine-tuning tool (v0.17.3). Python 3.9+, MIT license.
## Build & Development
@ -16,7 +16,7 @@ ruff check --fix soup_cli/ tests/ # Auto-fix lint issues
```
soup_cli/
cli.py # Entry point, Typer app, all command registration
__init__.py # __version__ = "0.17.1"
__init__.py # __version__ = "0.17.3"
config/
schema.py # Pydantic models (SoupConfig, DataConfig, TrainingConfig, LoraConfig)
loader.py # YAML -> SoupConfig, load_config_from_string()

View File

@ -962,7 +962,7 @@ soup version
# Full system info (useful for bug reports)
soup version --full
# -> soup v0.14.3 | Python 3.11.5 | CUDA 12.1 | extras: serve, data
# -> soup v0.17.3 | Python 3.11.5 | CUDA 12.1 | extras: serve, data
```
## Web UI

View File

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "soup-cli"
version = "0.17.2"
version = "0.17.3"
description = "Fine-tune LLMs in one command. No SSH, no config hell."
readme = "README.md"
license = "MIT"

View File

@ -1,3 +1,3 @@
"""Soup CLI — Fine-tune LLMs in one command."""
__version__ = "0.17.2"
__version__ = "0.17.3"

View File

@ -25,6 +25,7 @@ from soup_cli.commands import (
)
from soup_cli.commands import doctor as doctor_cmd
from soup_cli.commands import quickstart as quickstart_cmd
from soup_cli.utils.constants import GITHUB_URL
console = Console()
@ -33,7 +34,10 @@ _verbose = False
app = typer.Typer(
name="soup",
help="Fine-tune LLMs in one command. No SSH, no config hell.",
help=(
"Fine-tune LLMs in one command. No SSH, no config hell.\n\n"
f"[dim]GitHub: {GITHUB_URL}[/]"
),
no_args_is_help=True,
rich_markup_mode="rich",
)
@ -70,6 +74,7 @@ def version(
"""Show Soup CLI version."""
if not full:
console.print(f"[bold green]soup[/] v{__version__}")
console.print(f"[dim]{GITHUB_URL}[/]")
return
import platform
@ -109,6 +114,7 @@ def version(
parts.append(f"extras: {', '.join(extras)}")
console.print(" | ".join(parts))
console.print(f"[dim]GitHub: [link={GITHUB_URL}]{GITHUB_URL}[/link][/]")
@app.callback(invoke_without_command=True)

View File

@ -7,6 +7,8 @@ from rich.console import Console
from rich.panel import Panel
from rich.table import Table
from soup_cli.utils.constants import GITHUB_URL
console = Console()
# Dependencies to check: (import_name, package_name, min_version, required)
@ -118,6 +120,8 @@ def doctor():
else:
console.print("\n[bold green]All checks passed![/] Your environment is ready.")
console.print(f"\n[dim]GitHub: [link={GITHUB_URL}]{GITHUB_URL}[/link][/]")
def _check_gpu():
"""Check GPU availability and display info."""

View File

@ -4,6 +4,7 @@ APP_NAME = "soup"
CONFIG_FILE = "soup.yaml"
SOUP_DIR = ".soup"
EXPERIMENTS_DB = "experiments.db"
GITHUB_URL = "https://github.com/MakazhanAlpamys/Soup"
DEFAULT_CHAT_TEMPLATE = (
"{% for message in messages %}"