Changelog

Note

Until the Python API has stabilised, venvstacks is using ZeroVer (starting from 0.1.0).

Refer to Version Numbering for additional details on the way releases are versioned.

Unreleased

See the fragment files in the changelog.d directory.

0.3.0 — 2025-03-28

Added

  • The build and lock subcommands accept a new --reset-lock CLI option. This multi-use option requests that any previously created layer lock file be removed before locking the selected layers (thus ignoring any previous version pins or artifact hashes). This option uses the same wildcard pattern matching as the --include option. Only layers that are locked by the given command will have their previous lock files removed, as excluded layers will be excluded from both locking and having their lock files reset (added in #22).

  • "win_arm64" and "linux_aarch64" are now accepted as target platforms. ARM64/Aarch64 refer to the same CPU architecture, but Python reports it differently depending on the OS, and this is reflected in their respective platform tags (added in #107).

Changed

  • A Python API instability FutureWarning is now emitted at runtime (added while resolving #22).

  • The previous BuildEnvironment.get_unmatched_patterns() method has been replaced by the new BuildEnvironment.filter_layers() method, which returns both the matching layer names and the unmatched patterns (changed in #22).

  • BuildEnvironment.select_layers() now accepts an iterable of environment names rather than an iterable of filter patterns to be matched (changed in #22).

Fixed

  • --only-binary ":all:" is now passed when locking the layers in addition to being passed when creating the layer environments. This avoids emitting requirements that can’t be installed (resolved in #102).

  • Remove directories from /bin when building layers (resolved in PR #103)

0.2.1 — 2024-12-05

Fixed

  • Fix Typer 0.14.0+ incompatibility when setting app name (reported by Rugved Somwanshi in #96).

0.2.0 — 2024-11-14

Added

  • Setting versioned = True in a layer definition will now append a lock version number to the layer name that automatically increments each time the locked requirements change for that layer (layer@1, layer@2, etc). Refer to Layer names and versioning for details on when the versioned and unversioned layer names are used (implemented in #24).

  • Added documentation for the Environment Stack File Formats (part of #78).

  • Added python_implementation to the published layer metadata (part of #78).

  • Added bound_to_implementation to the published layer metadata (part of #78).

Changed

  • Enabled rendered previews for documentation PRs (requested in #43).

  • Enabled link validity checks when rendering documentation (requested in #62).

  • Renamed EnvironmentExportRequest to LayerExportRequest (part of #33).

  • Exposed LayerSpecBase, LayeredSpecBase as public classes (part of #33).

  • Exposed LayerEnvBase, LayeredEnvBase as public classes (part of #33).

  • Added leading underscores to several private functions and methods (part of #33).

  • Added docstrings to all remaining public functions and methods (part of #33).

  • Updated docs to actively discourage using @ in layers names (part of #78).

  • Renamed fully_versioned_name runtime layer specification field to python_implementation (part of #78).

  • Renamed runtime_name to runtime_layer in the layer metadata (to align with the required_layers field), and simplified it to always refer to the runtime layer’s install target name (part of #78).

Fixed

  • Post-installation scripts for layered environments now work correctly even when run with a Python installation other than the expected base runtime (resolved in #66)

0.1.1 — 2024-11-01

Changed

  • Update docs URL to https://venvstacks.lmstudio.ai

  • Add OpenGraph metadata to docs landing page

  • Resolved several broken links in the documentation

  • Documentation is now marked as being unversioned (it is published directly from the main branch)

0.1.0 — 2024-10-31

Changed

  • Further documentation fixes and improvements

0.1.0rc1.post0 — 2024-10-30

Changed

  • Included project URLs in project metadata

  • Added installation instructions to README.md

  • Linked to main documentation from README.md

  • Improved the content split between the project overview page and the top level docs landing page

0.1.0rc1 — 2024-10-29

Added

  • Initial export of venvstacks from Project Amphibian.

  • Adopted scriv for CHANGELOG management.