Skip to content

Releases: docdyhr/versiontracker

v1.0.0 — Production/Stable Release

01 Apr 11:15
fe2fa67

Choose a tag to compare

VersionTracker 1.0.0

First stable production release.

What's included

  • Full Homebrew cask integration (list, recommend, outdated check)
  • Async batch version checking via formulae.brew.sh API
  • Fuzzy app→cask name matching with configurable threshold
  • Auto-update detection for self-updating casks
  • JSON/CSV export
  • macOS notifications and launchd service support
  • Plugin system for extensibility
  • AI/ML optional modules for smart recommendations

Changes since 0.9.0

  • Lazy config singleton initialization for faster startup
  • Narrowed broad except clauses for cleaner error handling
  • 37 new tests covering previously-uncovered handler branches
  • Fixed thread-unsafe patch("builtins.print") in concurrent integration test (prevented stdout fd corruption)
  • Unskipped 12 previously-skipped UI tests
  • Test suite: 2194 passing, 3 skipped

Installation

pip install macversiontracker==1.0.0

Or via Homebrew tap (auto-updated):

brew tap docdyhr/homebrew-tap
brew install versiontracker

v0.9.0 — Coverage + Async Homebrew

25 Feb 23:42
aa52569

Choose a tag to compare

What's New

Async Homebrew for Update Candidates (P10)

  • check_brew_update_candidates() now routes through async Homebrew API by default
  • Fixed deadlock bug in async_check_brew_update_candidates (was calling @async_to_sync from inside @async_to_sync context)
  • Automatic sync fallback on error — no manual intervention needed
  • Configurable via VERSIONTRACKER_ASYNC_BREW=0 env var or async_homebrew.enabled: false in config

Test Coverage Push (P17)

  • 77 new handler + utility tests
  • Coverage: 61% → 78%+ overall
  • 1,977 tests passing, 16 skipped

Config Architecture (P9)

  • New ConfigLoader class: extracted file I/O, env-var loading, and brew detection from Config
  • Config simplified to data container + accessors (backward-compatible)

Module Migration Complete

  • Deleted version_legacy.py (-2,110 lines) and app_finder.py (-1,579 lines)
  • All functions migrated to versiontracker/version/ and versiontracker/apps/ subpackages

Security

  • Fixed 15 CodeQL security alerts (3 high, 12 medium)
  • Updated filelock and virtualenv constraints for CVE fixes

Other

  • Consolidated CLI to argparse only (removed Click dependency)
  • ML module gracefully handles missing dependencies
  • Quick Start section added to README
  • Development Status upgraded from Alpha to Beta

Install

pip install macversiontracker==0.9.0

Full Changelog: v0.8.2...v0.9.0

v0.8.2 - Cache Corruption Fix

09 Jan 11:34
d024f81

Choose a tag to compare

Release v0.8.2

This patch release fixes a cache corruption bug that caused JSON parse errors.

Fixed

  • Cache Corruption Bug: Fixed JSON cache file corruption in brew_installable.json
    • Implemented atomic file writes using temporary file + rename pattern
    • Prevents corruption from interrupted writes or concurrent access
    • Cache files now always contain complete, valid JSON

Technical Details

The write_cache() function now uses a two-step atomic write:

  1. Write to a temporary file first (tempfile.mkstemp)
  2. Atomically rename it to the target file (os.replace)

This ensures the cache file is never in a partially-written state.

Installation

pip install macversiontracker==0.8.2

Or upgrade from a previous version:

pip install --upgrade macversiontracker

Full Changelog

See CHANGELOG.md for complete details.

v0.8.1 - Bug Fixes and CI/CD Improvements

29 Oct 03:47

Choose a tag to compare

Release v0.8.1

This patch release includes critical bug fixes for test failures and CI/CD pipeline stability improvements.

Fixed

Critical Test Failures

  • Fixed 4 failing integration tests in end-to-end test suite
    • Corrected function references (find_applicationsget_applications)
    • Fixed module import paths for get_homebrew_casks
    • Resolved RecursionError in signal handling mock
    • All 1,136 tests now passing successfully

CI/CD Pipeline Stability

  • Resolved pytest-timeout cleanup hang issue
    • Switched from signal-based to thread-based timeout method
    • Prevents KeyboardInterrupt during test cleanup phase
    • Added pytest.ini with thread-based timeout configuration
    • Improved Ubuntu CI timeout handling (300s → 600s with retry logic)

Security Analysis Workflow

  • Fixed workflow to run on all pull requests
    • Removed path filters that prevented required status checks

Changed

Dependency Updates

Merged 7 Dependabot security updates:

  • pytest-cov updated from <7.0.0 to <8.0.0
  • actions/setup-python updated from v5 to v6
  • actions/github-script updated from v7 to v8
  • actions/download-artifact updated from v4 to v5
  • github/codeql-action updated from v3 to v4

Documentation

  • Cleaned up README badge presentation
  • Removed Package & Distribution section
  • Updated test count badge: 962 → 1,136 passing tests

CI/CD Improvements

  • Enhanced timeout handling with intelligent retry logic
  • Disabled conflicting branch-protection workflow (using repository rules instead)
  • All 11 CI/CD workflows now passing consistently
  • Fixed Security Analysis workflow to run on all PRs

Installation

pip install homebrew-versiontracker==0.8.1

Or upgrade from a previous version:

pip install --upgrade homebrew-versiontracker

Full Changelog

See CHANGELOG.md for complete details.

v0.8.0 - AI-Powered VersionTracker Platform

27 Oct 11:20

Choose a tag to compare

🚀 VersionTracker v0.8.0 - AI-Powered Platform

Major AI/ML Transformation Complete

VersionTracker v0.8.0 represents a complete transformation into an AI-powered application management platform with advanced analytics, machine learning capabilities, and an extensible plugin architecture.

🎉 Highlights

  • 🤖 AI-Powered Recommendations: Intelligent application suggestions using natural language processing
  • 📊 Analytics Platform: Comprehensive insights with visualization and reporting
  • 🧩 Plugin System: Flexible extensible architecture for custom integrations
  • 🖥️ SwiftUI GUI Prototype: Modern native macOS interface
  • ⚠️ 93 Structured Error Codes: Enhanced error handling with detailed context
  • 🧪 1,230 Tests: 70.88% coverage with comprehensive test suite
  • 🔒 Zero Vulnerabilities: All security scans passing
  • 📚 Enhanced Documentation: Complete API docs and guides

📦 Installation

# PyPI (recommended)
pip install homebrew-versiontracker

# Homebrew (coming soon)
brew tap docdyhr/versiontracker
brew install versiontracker

# Verify installation
versiontracker --version  # Should show 0.8.0

🆕 What's New

AI & Machine Learning

  • AI recommendations engine with NLP
  • ML version prediction and pattern analysis
  • Advanced analytics platform
  • Sentiment analysis for application reviews

Architecture & Extensibility

  • Plugin system for custom integrations
  • Modular command pattern
  • Async/await support for network operations
  • SwiftUI native macOS GUI prototype

Quality & Testing

  • 1,230 tests (up from 962)
  • 70.88% coverage maintained
  • 100% type safety with MyPy
  • 11 CI/CD workflows comprehensive automation

Documentation

  • Complete API documentation
  • Enhanced user guides
  • Developer contribution guides
  • Comprehensive project review

📚 Documentation

🙏 Acknowledgments

Special thanks to all contributors and the open-source community!

Full Changelog: v0.7.2...v0.8.0

Release v0.7.2

02 Sep 00:23

Choose a tag to compare

VersionTracker v0.7.2

🔧 Technical Improvements

CI/CD & Build System

  • pytest-asyncio Integration: Fixed async test support and configuration
  • Pre-commit Hooks: Updated mypy and linting configurations
  • Code Quality: Resolved all linting errors and mypy strict mode issues
  • Release Workflow: Improved build and release automation

Code Quality Fixes

  • Fixed E501 line length violations
  • Resolved mypy unused-ignore comments
  • Eliminated redundant type casts
  • Improved exception handling and type safety

Security & Compliance

  • ✅ All security scans passing
  • ✅ Code quality checks passing
  • ✅ Dependency vulnerability scans clean

🍺 Homebrew Integration

  • Automated Formula: Published at homebrew-versiontracker
  • Auto-Updates: GitHub Actions automatically update formula on releases
  • Installation: brew tap docdyhr/versiontracker && brew install versiontracker

📊 Project Status

  • Tests: 1,208 tests (15% coverage by design - extensive mocking strategy)
  • Python: 3.10-3.13 support
  • Performance: Baseline metrics established, async optimization planned
  • Architecture: Clean modular design ready for future enhancements

🚀 What's Next

  • Version 0.8.0 planning (async Homebrew operations)
  • Performance optimization implementation
  • Enhanced documentation and guides

Note: This release was completed with manual merge due to CI test environment issues. All critical code quality, security, and linting checks pass.

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

v0.7.1 - CI/CD Fixes and Compatibility Improvements

20 Aug 10:23

Choose a tag to compare

What's Changed in v0.7.1

Fixed

  • BREAKING: Fixed PyPI package naming conflict by changing from versiontracker to macos-versiontracker
  • Fixed CI/CD release workflow version mismatch issue
  • Corrected package version in __init__.py to allow for new releases
  • Resolved Python version compatibility issues in release pipeline
  • Fixed Homebrew formula repository reference

Changed

  • BREAKING: Package name changed from versiontracker to macos-versiontracker on PyPI
  • Updated installation command: pip install macos-versiontracker
  • Added both versiontracker and macos-versiontracker CLI commands for compatibility
  • Updated version from 0.7.0 to 0.7.1 to resolve PyPI publishing conflicts
  • Improved release workflow error handling and validation
  • Enhanced Python version compatibility (now supports Python 3.9+)
  • Updated CI pipeline to test across Python 3.9-3.13

Migration Guide

  • Old installation: pip install versiontracker (conflicts with existing package)
  • New installation: pip install macos-versiontracker
  • CLI commands remain the same: versiontracker or use new macos-versiontracker
  • No configuration changes required

Installation

PyPI (Recommended)

pip install macos-versiontracker==0.7.1

Homebrew (After tap update)

brew tap docdyhr/versiontracker
brew install versiontracker

Compatibility

  • Python: 3.9+ (improved from previous 3.13+ requirement)
  • Operating System: macOS
  • Architecture: x86_64, arm64 (Apple Silicon)

Full Changelog: View Changes

v0.7.0 - Async Prototype, Blocklist Migration & Security Fixes

14 Aug 18:44
7f8c0e4

Choose a tag to compare

🚀 Major Features

Async Homebrew Prototype

  • New Async Client: Introduced experimental AsyncHomebrewClient with batch operations and caching
  • Feature Flag: Gated by VERSIONTRACKER_ASYNC_BREW environment variable for early adopters
  • Performance Focus: Prepares for future async optimization of Homebrew operations bottleneck
  • Compatibility: No breaking changes to existing synchronous workflows

Terminology Migration: Blacklist → Blocklist

  • New CLI Options: --blocklist and --blocklist-auto-updates replace legacy terms
  • Deprecation Warnings: Legacy flags retained with graceful deprecation notices
  • Backward Compatible: Existing scripts continue to work without changes
  • Internal Updates: All handlers now use modern blocklist terminology

🧪 Testing & Quality

Integration Test Framework

  • Test Plan: Added comprehensive integration test strategy (INT-001 through INT-020)
  • Coverage Target: Planned increase from ~11% to 25-30% with meaningful integration tests
  • Parity Testing: Async/sync output equivalence validation framework
  • Phase Approach: Systematic rollout of integration test suites

Python 3.13 Compatibility

  • Full Support: All tests now pass on Python 3.13
  • CI Integration: Automated testing across Python 3.10-3.13
  • Mock Improvements: Enhanced test isolation and Mock object handling

🔧 Bug Fixes & Improvements

Security Workflow Fixes

  • pip-audit Format: Resolved format compatibility issues in security analysis
  • Safety Command: Fixed output parsing problems in dependency scanning
  • CI Stability: All security checks now pass reliably

Test Suite Reliability

  • Mock Handling: Fixed isinstance() checks for Mock objects in CLI tests
  • Type Safety: Added proper type validation for string operations
  • Terminology Sync: Updated all test assertions to match new blocklist terms

📋 Homebrew Formula Ready

  • Python 3.13: Updated formula to use latest Python requirements
  • Dependencies: Complete resource stubs for all dependencies
  • Audit Ready: Prepared for brew audit --strict compliance
  • Distribution: Ready for tap repository publication

🔄 Migration Guide

For Users

  • Start using --blocklist instead of --blacklist (old flags still work)
  • Consider enabling async prototype with VERSIONTRACKER_ASYNC_BREW=1 for testing
  • No configuration changes required - full backward compatibility maintained

For Developers

  • Integration test framework available for contributions
  • Async prototype APIs available for experimentation
  • Deprecation framework provides clear migration patterns

Full Changelog: v0.6.0...v0.7.0

Note: This release focuses on infrastructure modernization and testing improvements while maintaining complete backward compatibility. All existing workflows continue to function unchanged.

v0.6.5

08 Aug 13:08
3c8ec73

Choose a tag to compare

What's Changed

  • Fix version parsing and optional imports by @docdyhr in #1
  • chore(deps): update termcolor requirement from <3.0.0,>=2.0.1 to >=2.0.1,<4.0.0 by @dependabot[bot] in #8
  • chore(deps): update pytest-cov requirement from <6.0.0,>=4.0.0 to >=4.0.0,<7.0.0 by @dependabot[bot] in #7
  • ci(deps): bump codecov/codecov-action from 4 to 5 by @dependabot[bot] in #2
  • chore(deps): update types-setuptools requirement from <70.0.0,>=68.0.0 to >=68.0.0,<81.0.0 by @dependabot[bot] in #4
  • chore(deps): update packaging requirement from <24.0,>=21.0 to >=21.0,<26.0 by @dependabot[bot] in #3
  • chore(deps): update black requirement from <25.0.0,>=24.0.0 to >=24.0.0,<26.0.0 by @dependabot[bot] in #6
  • chore(deps): update psutil requirement from <7.0.0,>=6.1.0 to >=6.1.0,<8.0.0 by @dependabot[bot] in #13
  • chore(deps): update build requirement from <1.0.0,>=0.10.0 to >=0.10.0,<2.0.0 by @dependabot[bot] in #12
  • chore(deps): update sphinx-rtd-theme requirement from <2.0.0,>=1.3.0 to >=1.3.0,<4.0.0 by @dependabot[bot] in #11
  • chore(deps): update pytest-asyncio requirement from <1.0.0,>=0.21.0 to >=0.21.0,<2.0.0 by @dependabot[bot] in #10
  • chore(deps): update twine requirement from <5.0.0,>=4.0.2 to >=4.0.2,<7.0.0 by @dependabot[bot] in #9
  • deps(deps): update pre-commit requirement from <4.0.0,>=3.5.0 to >=3.5.0,<5.0.0 by @dependabot[bot] in #15
  • deps(deps): update sphinx requirement from <8.0.0,>=7.0.0 to >=7.0.0,<9.0.0 by @dependabot[bot] in #16
  • ci(deps): bump trufflesecurity/trufflehog from 3.63.2 to 3.89.2 by @dependabot[bot] in #18
  • feat: comprehensive infrastructure improvements by @docdyhr in #20
  • ci(deps): bump trufflesecurity/trufflehog from 3.90.1 to 3.90.2 by @dependabot[bot] in #21
  • feat: Complete Phase 1-3 Development Initiative - Stabilization, Documentation, and Performance Benchmarking by @docdyhr in #24

New Contributors

Full Changelog: v0.5.1...v0.6.5