oknozor / toml-bombadil

A dotfile manager with templating
MIT License
233 stars 24 forks source link

[FEATURE] Publish binaries for multiple platforms with every release #251

Closed BatmanAoD closed 1 month ago

BatmanAoD commented 1 year ago

Is your feature request related to a problem? Please describe. I am comparing toml-bombadil to other dotfile managers such as chezmoi and yadm, and one primary requirement for me is the ability to easily and reliably use the tool on a new machine without taking too long to install. yadm provides this by being written in Bash, while chezmoi provides binaries for most target platforms directly on GitHub, plus scripts in bash and powershell to detect the platform, download the correct binary, checksum it, and run it.

Conversely, toml-bombadil seems to require either building from source (which is slow, and by poor luck I immediately encountered a bug) or using one of the supported packages managers.

Describe the solution you'd like Ideally, toml-bombadil would have a solution like chezmoi's, allowing users to quickly install the software on any machine using a short and reasonably memorable shell command.

However, even without providing scripts like this, it would be valuable for standalone executables for a variety of platforms to be included in the assets for each GitHub release.

Describe alternatives you've considered If executables are available on GitHub, then a Cargo-binstall configuration file could also be provided, which would enable quickly installing toml-bombadil. This is not much better than building from source, though, because it still requires installing Rust, Cargo, and binistall itself.

Additional context I realize there are some complications and expense involved in setting up the necessary CI to build executables for multiple platforms (especially Apple OSes), so I understand that this is not a trivial request!

oknozor commented 1 month ago

Build for arm, x86, and macos are now available (see: https://github.com/oknozor/toml-bombadil/releases/tag/4.0.0). A PR to add a cargo binstall configuration is welcome :)