Releases: basnijholt/dotbins
v2.3.0
What’s Changed
- Exit with 1 if anything failed (#114) @basnijholt
- Skip coverage (#112) @marcellaholm
v2.2.1
What’s Changed
- BUG: Fix extension on Windows in README generation (#111) @basnijholt
- Fix
eza
alias in example config (#109) @basnijholt - ⬆️ Update astral-sh/setup-uv action to v6 (#106) @renovate[bot]
v2.2.0
What’s Changed
- Prefer i686 over even more ancient i386 (i.e., create
linux/i686/bin/tool
instead oflinux/386/bin/tool
) (#108) @basnijholt - Rely on Keychain being released in examples (#107) @basnijholt
Previous release notes:
dotbins v2.0.0 Release Notes 🎉
This is a major release for dotbins
, introducing significant improvements to version tracking, reproducibility, and internal consistency. The core changes revolve around a more robust manifest system and the ability to pin tool installations precisely to your manifest file.
💥 Breaking Changes
-
versions.json
Renamed tomanifest.json
:- The file used to track installed tool versions, previously named
versions.json
, has been renamed tomanifest.json
. This name better reflects its purpose and aligns with common terminology. - Migration:
dotbins
v2.0.0 will automatically detect an existingversions.json
on the first run and convert it to the newmanifest.json
format, deleting the old file. - Impact: If you were manually interacting with
versions.json
or tracking it in Git, you will need to update your workflows to usemanifest.json
. Please commit the newmanifest.json
after the first run. Due to the automatic conversion and internal changes, the first sync after upgrading might result in some tools being re-downloaded.
- The file used to track installed tool versions, previously named
-
Internal Version Tracking Changed to Store Full "Tag":
- Previously, the manifest stored a normalized version string, often removing the leading
v
(e.g.,1.2.3
). It now stores the exact Git tag as it appears on GitHub (e.g.,v1.2.3
or1.2.3
) under the keytag
. - Reason: This change is essential for ensuring
dotbins
can reliably re-download the exact same release specified by the tag. GitHub release tags are not always consistent (some use av
prefix, others don't). Storing the precise tag allowsdotbins
to request the correct release from the GitHub API, which is crucial for features likesync --pin-to-manifest
and when using thetag
parameter in yourdotbins.yaml
. - Impact: While display commands like
dotbins status
will often still show a normalized version number for readability, the underlying data inmanifest.json
has changed. If you were parsing the manifest file directly, you'll need to adjust to use thetag
key and expect the full tag string (potentially including thev
).
- Previously, the manifest stored a normalized version string, often removing the leading
✨ New Features
- Pinning to Manifest with
dotbins sync --pin-to-manifest
:- A new
--pin-to-manifest
flag has been added to thesync
command. - When used,
dotbins sync
will ignore the latest release information from GitHub and anytag
specified in yourdotbins.yaml
. Instead, it will install the exact tag recorded for each tool in yourmanifest.json
file. - Use Case: This is incredibly useful for ensuring reproducibility across environments or CI/CD pipelines. By committing your
manifest.json
to version control, you can guarantee thatdotbins sync --pin-to-manifest
always installs the same tool versions everywhere, regardless of newer releases on GitHub. - Example:
# Ensure installed tools match the versions in manifest.json exactly dotbins sync --pin-to-manifest
- A new
⬆️ Migration
- Run any
dotbins
command (e.g.,dotbins sync
,dotbins status
) with v2.0.0 installed. - The tool will automatically detect
versions.json
, log a warning about the conversion, createmanifest.json
with the updated format, and deleteversions.json
. - If you track your
~/.dotbins
directory (or your customtools_dir
) in Git, commit the newmanifest.json
file. - Review the output of your first
dotbins sync
run after upgrading, as some tools might be re-downloaded due to the manifest format changes.
PR list
- fix(nushell): Correct integration script generation for compatibility (#104) @basnijholt
- Add
--pin-to-manifest
(#103) @basnijholt - Store URL in
manifest.json
(#101) @basnijholt - Feat: Store exact tags in Manifest for reproducibility and support {tag} pattern (#98) @basnijholt
I believe these changes make dotbins
a more robust and predictable tool for managing your CLI binaries within your dotfiles workflow. Thank you for using dotbins
! Please report any issues or provide feedback on the GitHub repository.
v2.1.0
v2.1.0
What’s Changed
- Allow
dotbins sync --current
even for unconfigured systems (#105) @basnijholt
Previous release notes:
dotbins v2.0.0 Release Notes 🎉
This is a major release for dotbins
, introducing significant improvements to version tracking, reproducibility, and internal consistency. The core changes revolve around a more robust manifest system and the ability to pin tool installations precisely to your manifest file.
💥 Breaking Changes
-
versions.json
Renamed tomanifest.json
:- The file used to track installed tool versions, previously named
versions.json
, has been renamed tomanifest.json
. This name better reflects its purpose and aligns with common terminology. - Migration:
dotbins
v2.0.0 will automatically detect an existingversions.json
on the first run and convert it to the newmanifest.json
format, deleting the old file. - Impact: If you were manually interacting with
versions.json
or tracking it in Git, you will need to update your workflows to usemanifest.json
. Please commit the newmanifest.json
after the first run. Due to the automatic conversion and internal changes, the first sync after upgrading might result in some tools being re-downloaded.
- The file used to track installed tool versions, previously named
-
Internal Version Tracking Changed to Store Full "Tag":
- Previously, the manifest stored a normalized version string, often removing the leading
v
(e.g.,1.2.3
). It now stores the exact Git tag as it appears on GitHub (e.g.,v1.2.3
or1.2.3
) under the keytag
. - Reason: This change is essential for ensuring
dotbins
can reliably re-download the exact same release specified by the tag. GitHub release tags are not always consistent (some use av
prefix, others don't). Storing the precise tag allowsdotbins
to request the correct release from the GitHub API, which is crucial for features likesync --pin-to-manifest
and when using thetag
parameter in yourdotbins.yaml
. - Impact: While display commands like
dotbins status
will often still show a normalized version number for readability, the underlying data inmanifest.json
has changed. If you were parsing the manifest file directly, you'll need to adjust to use thetag
key and expect the full tag string (potentially including thev
).
- Previously, the manifest stored a normalized version string, often removing the leading
✨ New Features
- Pinning to Manifest with
dotbins sync --pin-to-manifest
:- A new
--pin-to-manifest
flag has been added to thesync
command. - When used,
dotbins sync
will ignore the latest release information from GitHub and anytag
specified in yourdotbins.yaml
. Instead, it will install the exact tag recorded for each tool in yourmanifest.json
file. - Use Case: This is incredibly useful for ensuring reproducibility across environments or CI/CD pipelines. By committing your
manifest.json
to version control, you can guarantee thatdotbins sync --pin-to-manifest
always installs the same tool versions everywhere, regardless of newer releases on GitHub. - Example:
# Ensure installed tools match the versions in manifest.json exactly dotbins sync --pin-to-manifest
- A new
⬆️ Migration
- Run any
dotbins
command (e.g.,dotbins sync
,dotbins status
) with v2.0.0 installed. - The tool will automatically detect
versions.json
, log a warning about the conversion, createmanifest.json
with the updated format, and deleteversions.json
. - If you track your
~/.dotbins
directory (or your customtools_dir
) in Git, commit the newmanifest.json
file. - Review the output of your first
dotbins sync
run after upgrading, as some tools might be re-downloaded due to the manifest format changes.
PR list
- fix(nushell): Correct integration script generation for compatibility (#104) @basnijholt
- Add
--pin-to-manifest
(#103) @basnijholt - Store URL in
manifest.json
(#101) @basnijholt - Feat: Store exact tags in Manifest for reproducibility and support {tag} pattern (#98) @basnijholt
I believe these changes make dotbins
a more robust and predictable tool for managing your CLI binaries within your dotfiles workflow. Thank you for using dotbins
! Please report any issues or provide feedback on the GitHub repository.
v2.0.0
dotbins v2.0.0 Release Notes 🎉
This is a major release for dotbins
, introducing significant improvements to version tracking, reproducibility, and internal consistency. The core changes revolve around a more robust manifest system and the ability to pin tool installations precisely to your manifest file.
💥 Breaking Changes
-
versions.json
Renamed tomanifest.json
:- The file used to track installed tool versions, previously named
versions.json
, has been renamed tomanifest.json
. This name better reflects its purpose and aligns with common terminology. - Migration:
dotbins
v2.0.0 will automatically detect an existingversions.json
on the first run and convert it to the newmanifest.json
format, deleting the old file. - Impact: If you were manually interacting with
versions.json
or tracking it in Git, you will need to update your workflows to usemanifest.json
. Please commit the newmanifest.json
after the first run. Due to the automatic conversion and internal changes, the first sync after upgrading might result in some tools being re-downloaded.
- The file used to track installed tool versions, previously named
-
Internal Version Tracking Changed to Store Full "Tag":
- Previously, the manifest stored a normalized version string, often removing the leading
v
(e.g.,1.2.3
). It now stores the exact Git tag as it appears on GitHub (e.g.,v1.2.3
or1.2.3
) under the keytag
. - Reason: This change is essential for ensuring
dotbins
can reliably re-download the exact same release specified by the tag. GitHub release tags are not always consistent (some use av
prefix, others don't). Storing the precise tag allowsdotbins
to request the correct release from the GitHub API, which is crucial for features likesync --pin-to-manifest
and when using thetag
parameter in yourdotbins.yaml
. - Impact: While display commands like
dotbins status
will often still show a normalized version number for readability, the underlying data inmanifest.json
has changed. If you were parsing the manifest file directly, you'll need to adjust to use thetag
key and expect the full tag string (potentially including thev
).
- Previously, the manifest stored a normalized version string, often removing the leading
✨ New Features
- Pinning to Manifest with
dotbins sync --pin-to-manifest
:- A new
--pin-to-manifest
flag has been added to thesync
command. - When used,
dotbins sync
will ignore the latest release information from GitHub and anytag
specified in yourdotbins.yaml
. Instead, it will install the exact tag recorded for each tool in yourmanifest.json
file. - Use Case: This is incredibly useful for ensuring reproducibility across environments or CI/CD pipelines. By committing your
manifest.json
to version control, you can guarantee thatdotbins sync --pin-to-manifest
always installs the same tool versions everywhere, regardless of newer releases on GitHub. - Example:
# Ensure installed tools match the versions in manifest.json exactly dotbins sync --pin-to-manifest
- A new
⬆️ Migration
- Run any
dotbins
command (e.g.,dotbins sync
,dotbins status
) with v2.0.0 installed. - The tool will automatically detect
versions.json
, log a warning about the conversion, createmanifest.json
with the updated format, and deleteversions.json
. - If you track your
~/.dotbins
directory (or your customtools_dir
) in Git, commit the newmanifest.json
file. - Review the output of your first
dotbins sync
run after upgrading, as some tools might be re-downloaded due to the manifest format changes.
PR list
- fix(nushell): Correct integration script generation for compatibility (#104) @basnijholt
- Add
--pin-to-manifest
(#103) @basnijholt - Store URL in
manifest.json
(#101) @basnijholt - Feat: Store exact tags in Manifest for reproducibility and support {tag} pattern (#98) @basnijholt
I believe these changes make dotbins
a more robust and predictable tool for managing your CLI binaries within your dotfiles workflow. Thank you for using dotbins
! Please report any issues or provide feedback on the GitHub repository.
v1.5.0
v1.4.0
What’s Changed
- Allow
dotbins get --tag
(#96) @basnijholt
v1.3.1
What’s Changed
- fix: Prevent race condition with identical asset downloads (#95) @basnijholt
v1.3.0
What’s Changed
- feat: Enhance
shell_code
configuration with comma-separated keys and__DOTBINS_SHELL__
placeholder (#94) @basnijholt - Add logo to
README.md
(#93) @basnijholt
v1.2.0
What’s Changed
- Make tag
latest
special (#92) @basnijholt - Document
tag
parameter (#91) @basnijholt - Add support to specify the version/release tag (#90) @basnijholt