# Changelog

All notable changes to VenvDrop are documented here.  
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).  
VenvDrop uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

---

## [0.1.0] — 2025-02-27

### Added
- **`venvdrop pack`** — Downloads all pip dependencies as pre-built binary wheels,
  scans source code for hardcoded absolute paths via AST analysis, embeds platform
  metadata (`bundle_meta.json`), generates a SHA-256 integrity manifest, and zips
  everything into a single portable archive.
- **`venvdrop unpack`** — Validates OS, CPU architecture, and Python version parity,
  verifies bundle integrity, creates a fresh virtual environment, bootstraps pip,
  and installs all dependencies entirely offline from the bundled wheel cache.
- **`--from-venv DIR`** (pack) — Reuse an existing virtual environment's pip wheel
  cache instead of re-downloading packages. Uses a flat staging directory to avoid
  Windows MAX_PATH / command-line length limits.
- **`-V / --version`** — Print the installed VenvDrop version and exit.
- AST scanner for hardcoded absolute paths in Python source files.
- sdist detection: warns when `.tar.gz` source distributions are found in the cache
  (they require a C compiler on the target machine).
- Interactive venv collision handler on unpack: Overwrite / Backup / Abort.
- Windows MAX_PATH guard: warns if destination path exceeds 200 characters.
- Windows Python Launcher (`py.exe`) support for auto-discovering mismatched
  Python versions on unpack.
- Post-install checklist for system-level dependencies (CUDA, VC++ Redist,
  OpenSSL, ODBC drivers).
- Zero runtime dependencies — pure Python standard library only.

[0.1.0]: https://github.com/ashtharthasarathi/venvdrop/releases/tag/v0.1.0
