mtg_python_deckbuilder/docs/releases/v3.0.0.md
matt 454269daab
Some checks are pending
CI / build (push) Waiting to run
chore: prepare release v3.0.0
2025-10-19 09:24:25 -07:00

3.2 KiB

MTG Python Deckbuilder v3.0.0

Release Date: October 19, 2025

Summary

Major infrastructure upgrade: migrated to Parquet data format with comprehensive performance improvements, combo tag support, simplified data management, and instant setup via GitHub downloads.

What's New

  • Instant Setup - Download pre-tagged card database from GitHub instead of 15-20 minute initial build
  • Parquet Migration - Unified all_cards.parquet replaces multiple CSV files for faster, more efficient card storage
  • Combo Tags - 226 cards now tagged with combo-enabling abilities for better synergy detection
  • Parallel Tagging - Optional 4.2x speedup for card tagging (22s → 5.2s)
  • Automatic Deduplication - No more duplicate card printings cluttering your deck options
  • Built-in Commander Filtering - Instant identification of 2,751 commanders and 31 backgrounds

Improvements

  • First-Run Experience - Auto-downloads pre-tagged data on first run (seconds vs. 15-20 minutes)
  • Faster Startup - Binary columnar format loads significantly faster than text parsing
  • Smaller File Sizes - Single Parquet file is more compact than multiple CSVs
  • Better Data Quality - Automatic validation, deduplication, and type checking
  • Cleaner Organization - Single source of truth for all 29,857 cards
  • Web Performance - Card browser, commander catalog, and owned cards all benefit from faster data access
  • Weekly Updates - Pre-tagged data refreshed weekly via GitHub Actions

For Users

Everything works the same or better! Main visible differences:

  • First-time users: Setup completes in seconds (auto-downloads pre-tagged data)
  • Faster load times and data operations
  • Better card recommendations with combo tag support
  • More reliable data handling
  • Web UI includes manual "Download from GitHub" button for instant refresh

Technical Details

  • Data stored in card_files/processed/all_cards.parquet
  • Boolean flags (isCommander, isBackground) replace separate CSV files
  • CLI execution: python -m code.main
  • Headless execution: python -m code.headless_runner --config <path>
  • GitHub Actions and Docker builds updated for Parquet workflow

Breaking Changes

  • MAJOR: CSV-based card data deprecated in favor of Parquet format
  • Existing CSV workflows require migration to use processed Parquet files
  • Module imports updated - use python -m code.main for CLI execution
  • Some internal APIs changed to support unified data source

Migration Guide

For existing users:

  1. Pull latest code: git pull
  2. Delete old CSV files (optional): rm csv_files/*.csv
  3. Let auto-download fetch pre-tagged data OR run manual setup
  4. Existing decks and configs remain compatible

For Docker users:

  1. Pull new image: docker pull mwisnowski/mtg-python-deckbuilder:v3.0.0
  2. Use updated docker-compose files (included)
  3. Volume mounts work the same

Full Changelog

See CHANGELOG.md for complete details.

Known Issues

  • None at release time

Acknowledgments

This release represents a significant architectural improvement to support better performance and maintainability going forward. Thank you to all contributors and users who provided feedback!