chore: prepare release v3.0.0
Some checks are pending
CI / build (push) Waiting to run

This commit is contained in:
matt 2025-10-19 09:24:25 -07:00
parent 3769ad9186
commit 454269daab
6 changed files with 72 additions and 4 deletions

View file

@ -13,7 +13,7 @@
# HOST=0.0.0.0 # Uvicorn bind host (only when APP_MODE=web). # HOST=0.0.0.0 # Uvicorn bind host (only when APP_MODE=web).
# PORT=8080 # Uvicorn port. # PORT=8080 # Uvicorn port.
# WORKERS=1 # Uvicorn worker count. # WORKERS=1 # Uvicorn worker count.
APP_VERSION=v2.9.1 # Matches dockerhub compose. APP_VERSION=v3.0.0 # Matches dockerhub compose.
############################ ############################
# Theming # Theming

View file

@ -8,6 +8,9 @@ This format follows Keep a Changelog principles and aims for Semantic Versioning
- Link PRs/issues inline when helpful, e.g., (#123) or [#123]. Reference-style links at the bottom are encouraged for readability. - Link PRs/issues inline when helpful, e.g., (#123) or [#123]. Reference-style links at the bottom are encouraged for readability.
## [Unreleased] ## [Unreleased]
_No unreleased changes yet_
## [3.0.0] - 2025-10-19
### Summary ### Summary
Major infrastructure upgrade to Parquet format with comprehensive performance improvements, simplified data management, and instant setup via GitHub downloads. Major infrastructure upgrade to Parquet format with comprehensive performance improvements, simplified data management, and instant setup via GitHub downloads.

View file

@ -123,7 +123,7 @@ services:
# WEB_THEME_FILTER_PREWARM: "0" # WEB_THEME_FILTER_PREWARM: "0"
WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds
WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts
APP_VERSION: "2.9.1" # Displayed version label (set per release/tag) APP_VERSION: "v3.0.0" # Displayed version label (set per release/tag)
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# Misc / Land Selection (Step 7) Environment Tuning # Misc / Land Selection (Step 7) Environment Tuning

View file

@ -125,7 +125,7 @@ services:
# WEB_THEME_FILTER_PREWARM: "0" # WEB_THEME_FILTER_PREWARM: "0"
WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds
WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts
APP_VERSION: "2.9.1" # Displayed version label (set per release/tag) APP_VERSION: "v3.0.0" # Displayed version label (set per release/tag)
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# Misc / Land Selection (Step 7) Environment Tuning # Misc / Land Selection (Step 7) Environment Tuning

65
docs/releases/v3.0.0.md Normal file
View file

@ -0,0 +1,65 @@
# 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](../../CHANGELOG.md#300---2025-10-19) 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!

View file

@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "mtg-deckbuilder" name = "mtg-deckbuilder"
version = "2.9.1" version = "3.0.0"
description = "A command-line tool for building and analyzing Magic: The Gathering decks" description = "A command-line tool for building and analyzing Magic: The Gathering decks"
readme = "README.md" readme = "README.md"
license = {file = "LICENSE"} license = {file = "LICENSE"}