Skip to content

Releases: shreyasmene06/pyvm-updater

v2.2.0

15 Jan 14:27

Choose a tag to compare

pyvm v2.2.0 Release Notes

New Features

Virtual Environment Management

New pyvm venv command group for managing virtual environments:

  • pyvm venv create <name> - Create a new virtual environment with optional Python version
  • pyvm venv list - List all managed virtual environments
  • pyvm venv remove <name> - Remove a virtual environment
  • pyvm venv activate <name> - Show activation command

Configuration System

User preferences stored at ~/.config/pyvm/config.toml:

  • pyvm config - View current configuration
  • pyvm config --init - Create default configuration file
  • pyvm config --path - Show configuration file location

CLI Enhancements

  • New --verbose flag for detailed output
  • New --quiet flag to suppress non-essential output

Test Suite

  • 34 comprehensive tests covering history, utils, venv, and version modules

Architecture Changes

Modular Codebase

Complete refactor into src/pyvm_updater/ package with 11 focused modules:

  • cli.py - CLI commands (click)
  • config.py - Configuration management
  • constants.py - Global constants
  • history.py - Installation history tracking
  • installers.py - Platform-specific installers
  • logging_config.py - Logging configuration
  • tui.py - Terminal User Interface (textual)
  • utils.py - Utility functions
  • venv.py - Virtual environment management
  • version.py - Version checking and fetching

Removed

  • Deprecated root level python_version.py
  • Deprecated root level pyvm_tui.py

Installation

pip install --user pyvm-updater

v2.1.0

14 Jan 16:46

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.0.1...2.1.0

v2.0.1

10 Jan 14:45

Choose a tag to compare

pyvm v2.0.1

Hotfix

  • Marked the textual package as a required dependency to ensure the TUI works out of the box

v2.0.0

10 Jan 14:31

Choose a tag to compare

What’s New

New Interactive TUI (pyvm tui)

  • Introduces a dedicated interactive terminal interface launched via pyvm tui
  • Fully redesigned UI with a three-panel layout for installed versions, available releases, and status
  • Supports full keyboard navigation with optional mouse interaction
  • Includes dark and light theme support

Smart Installation System

  • Automatically selects the best available installation method per platform
  • Supports mise, pyenv, system package managers, and official installers
  • Built-in fallback mechanism ensures reliable installation

Unified Python Version Detection

  • Detects Python installations from multiple sources
  • Aggregates mise, pyenv, and system-installed versions into a single unified view

New CLI Commands

  • pyvm list to display available Python versions
  • pyvm install <version> to install a specific Python release

Improved Installation Feedback

  • Displays real-time installation output during Python installs
  • Provides clear visibility into installation progress across platforms

v1.2.3

07 Jan 14:43

Choose a tag to compare

Python Version Targeting and Platform Compatibility Improvements

Version 1.2.3 focuses on making Python updates more flexible, predictable, and compatible across platforms. This release introduces the ability to target a specific Python version during updates, adds a short version flag for quicker CLI access, and enables direct execution on Unix-like systems through proper shebang support.

Platform reliability has been improved with better Windows ARM64 handling and more robust version parsing on macOS. The release also updates the minimum supported Python requirement and modernizes internal print logic for improved readability and maintainability.

In addition, Python 3.13 and 3.14 are now officially supported, and the documentation has been refined with clearer installation steps, updated quickstart examples, and corrected PyPI workflow references. Overall, this release delivers quality of life enhancements, cleaner internals, and broader Python version support.

What's Changed

New Contributors

Full Changelog: 1.2.2...v1.2.3

v1.2.2 – Critical Security Fix (PyPI Re-release)

30 Dec 12:47

Choose a tag to compare

Overview

Version 1.2.2 is a critical security re-release on PyPI. It removes unsafe system-modifying behavior on Linux and ensures pyvm operates strictly as a non-invasive, side-by-side Python installer.

This release is functionally identical to v1.2.1. The version number has been incremented to address PyPI release requirements only.


Critical Security Fix

This update removes code paths that could modify the system default Python interpreter, which posed a risk to system stability and could interfere with package managers, terminals, and desktop environments.


Breaking Changes

  • Removed the pyvm set-default command
  • Removed the --set-default flag
  • pyvm no longer modifies system Python defaults under any circumstances

Key Changes

  • Eliminated all logic that modified the python3 symlink via update-alternatives
  • Removed internal functions that could disrupt:
    • Package managers
    • Terminal environments
    • System GUI and settings tools
  • Added safe, read-only usage instructions focused on virtual environments
  • Updated all documentation with explicit safety warnings and guidance

Notes

  • This release is functionally identical to v1.2.1
  • Version bumped to v1.2.2 for PyPI re-release purposes only

v1.2.1 – Security & Stability Update

30 Dec 12:25
bb75a47

Choose a tag to compare

v1.2.1 – Security and Stability Update

Release Date: 30 November 2025

Overview

Version 1.2.1 addresses unsafe behavior related to modifying system-level Python configurations on Linux. This release removes all functionality that could alter the system default Python interpreter and reinforces pyvm’s design as a safe, non-invasive Python version installer.

Breaking Changes

  • Removed the pyvm set-default command
  • Removed the --set-default flag from the pyvm update command
  • pyvm no longer modifies system Python defaults under any circumstances

Security and Stability Fixes

  • Removed all logic that modified system Python symlinks
  • Eliminated usage of update-alternatives for Python management
  • Prevented issues that could lead to:
    • Terminal and shell failures
    • Package manager corruption
    • Desktop environment and system settings instability

Removed

  • _set_python_default_linux() implementation
  • prompt_set_as_default()
  • _show_access_instructions()
  • pyvm set-default CLI command
  • --set-default update option

Added

  • Read-only Python usage guidance via show_python_usage_instructions()
  • Security documentation in CRITICAL_SECURITY_FIX_v1.2.1.md
  • Clear safety warnings in the README
  • Recommended workflows based on virtual environments

Changed

  • update_python_linux() now performs installation only
  • CLI help text updated to reflect safe behavior
  • Documentation and internal docstrings revised
  • Version updated to 1.2.1

Migration Notes

Users who previously relied on setting a system default should migrate to virtual environments:

python3.12 -m venv myproject
source myproject/bin/activate

For recovery steps or additional context, refer to CRITICAL_SECURITY_FIX_v1.2.1.md.

Full Changelog: v1.2.0...1.2.1