github basnijholt/dotbins v1.0.0

latest releases: v1.3.0, v1.2.0, v1.1.1...
4 days ago

dotbins v1.0.0 Release Notes

Release Date: April 1, 2025

This release marks a significant milestone for dotbins: the transition to version 1.0.0. After a period of rapid initial development, encompassing over 50 releases and substantial feature refinement within a short timeframe, dotbins is now considered to have a stable public API.

What v1.0.0 Means

Adopting version 1.0.0 signifies our commitment to API stability and adherence to Semantic Versioning 2.0.0.

  1. Stable Public API: The core commands (sync, get, init, list, status, readme, version), their arguments, and the structure of the dotbins.yaml configuration file are now considered stable.
  2. Backward Compatibility: Going forward, any changes introduced in minor (1.x.0) or patch (1.0.x) releases will be backward-compatible. Breaking changes will necessitate a major version increment (e.g., 2.0.0).
  3. Maturity: This release indicates that the primary features are well-defined and the package is suitable for general use in managing CLI tools within dotfiles repositories.

Users can now integrate dotbins into their workflows with increased confidence in the stability and predictability of future updates.

Key Features Reaching Stability in v1.0.0

The core functionality established during the 0.x releases is now formalized under the v1.0.0 stable release:

  • Cross-Platform Binary Management: Download and manage CLI tool binaries from GitHub Releases across macOS, Linux, and Windows.
  • Dotfiles Integration: Designed specifically for managing tools within a version-controlled dotfiles repository (optionally using Git LFS).
  • Configuration-Driven Updates: Use dotbins sync with a dotbins.yaml file to define, install, and update multiple tools across configured platforms and architectures.
  • Direct Installation: Use dotbins get for quick, configuration-free installation of single tools or tools from a remote configuration file.
  • Automated Shell Integration: Automatically generates shell scripts (bash, zsh, fish, nushell, powershell) to add binaries to the PATH and apply tool-specific configurations defined via shell_code in the config file.
  • Flexible Configuration: Supports auto-detection of assets and binary paths, custom asset patterns with variables ({version}, {platform}, {arch}), platform/architecture mapping, and preferences for asset types (e.g., musl vs glibc, AppImage, Windows ABI).
  • Version Tracking: Maintains a versions.json file to track installed tool versions and update timestamps.

Changes in this Release

The primary change in v1.0.0 is the formal declaration of API stability and the adoption of Semantic Versioning principles for future development. There are no breaking functional changes compared to the latest 0.x releases. This version consolidates the features and fixes introduced over the previous 50+ releases into a stable base.

Looking Ahead

With the 1.0.0 release establishing a stable foundation, future development will focus on:

  • Maintaining adherence to Semantic Versioning.
  • Improving reliability and addressing bugs (patch releases).
  • Potentially adding new, backward-compatible features (minor releases).
  • Responding to community feedback and contributions.

Installation / Upgrade

To install or upgrade to dotbins v1.0.0:

Using uv:

# Install globally
uv tool install dotbins --upgrade

# Or run directly
uvx dotbins --version

Using pip:

pip install --upgrade dotbins

I thank the early users and community members whose usage and feedback (implicitly through GitHub stars and issue tracking) have helped shape dotbins into its current form. Please continue to report issues or suggest features via the GitHub repository.

Don't miss a new dotbins release

NewReleases is sending notifications on new releases.