Skip to content

0.4.0

Choose a tag to compare

@ALERTua ALERTua released this 22 Feb 15:57
· 77 commits to main since this release
cc242ea

What's New

  • Major Refactoring: CLI with Typer, Parallel Downloads, and Config Overhaul by @ALERTua in #4

🚀 New CLI Interface

UpdateChecker now has a modern command-line interface built with Typer. New CLI options:

Option Description
--config, -c Path to config file
--async/--no-async Enable/disable parallel processing
--threads, -t Number of threads for parallel processing
--entries, -e Process specific entries only
--force Force re-download, skip HEAD/MD5 checks
--verbose, -v Enable verbose output
--gh-token GitHub token for API requests

⚡ Parallel Chunked Downloads

Large files (≥10MB) are now downloaded in parallel chunks for faster transfers. The downloader automatically:

  • Detects file size via HEAD request
  • Checks if server supports HTTP Range requests
  • Falls back to single connection if chunked download isn't supported

Progress shows download speed in human-readable format (KB/s, MB/s, etc.).

🔧 Configuration Improvements

  • GitHub Token Support: Add github_token at the top level of your config to avoid rate limits
  • Chunked Download Control: New chunked_download option per entry (true, false, or null for auto)
  • Content-Length Check: New use_content_length_check option to avoid re-downloads when file size matches

📝 Other Improvements

  • Enhanced logger with byte size formatting and download speed display
  • Cleaner code organization with separate downloader module
  • PyCharm run configurations included

Breaking Changes

  • Entry point changed: Run with uv run updatechecker (automatically uses new CLI)
  • Dynaconf removed: Config is now pure YAML - no special syntax required

Upgrading

No config changes required for existing users. The new options are optional and have sensible defaults.

If you were using environment variables or custom entry points, note that the internal module structure has changed:

  • Main module renamed from __main__.py to updatechecker.py
  • Entry point is now cli:cli instead of __main__:main

Full Changelog: 0.3.0...0.4.0