Skip to content

v21.0.0

Choose a tag to compare

@eriktelepovsky eriktelepovsky released this 08 Jan 18:34
· 34 commits to master since this release
8b70131

Summary

Major refactoring of Mantis CLI with migration to Typer framework, improved command chaining, and comprehensive testing infrastructure.

CLI Framework Migration

  • Migrated from argparse to Typer for better CLI experience
  • Rich help panels with organized command groups
  • Command shortcuts (e.g., b for build, d for deploy)
  • Auto-completion support

Command Chaining with + Separator

  • New syntax for chaining commands: mantis -e prod build + push + deploy
  • Commands with arguments work correctly: mantis -e prod build web api + push + deploy
  • Clean separation between commands using + separator

Project Structure

  • Split commands into submodules (commands/core.py, commands/images.py, etc.)
  • Custom @command decorator with shortcut and panel support
  • Pydantic-based config validation (schema.py, config.py)
  • Replaced os.path with pathlib throughout

New Features

  • rolling-update command for one-by-one container updates
  • rename command for container renaming
  • Deployment rollback if zero-downtime container is not healthy
  • Auto-select config file
  • support for single connection
  • Environment shortcut resolution
  • Parallel build support
  • colorful tables
  • command doesn't proceed when no mantis config found
  • Dry-run mode (-n / --dry-run)

Testing & CI

  • Added pytest test suite for command-line parsing
  • GitHub Actions workflow for automated testing (Python 3.9-3.12)

Documentation

  • Updated README with new -e flag syntax
  • Updated examples to use + separator for chaining