alanvardy / tod

An unofficial Todoist command line client written in Rust
MIT License
104 stars 9 forks source link

Compile binary releases automatically #748

Open stacksjb opened 6 months ago

stacksjb commented 6 months ago

(I can take and investigate this as appropriate - @alanvardy feel free to assign to me)

Currently the bundles are provided via crates (rust package manager) which works great for devs, but is not as familiar for non-rust familiar end users.

On Mac, I'd like to bundle it to publish to Homebrew and manage the package there (It looks like I can automate this using some sort of cloud function, i.e. https://federicoterzi.com/blog/how-to-publish-your-rust-project-on-homebrew/ or GItHub Functions)

This would significantly simplify installation and management, and allow me to publish my workflow without relying on external python scripts to install software manually.

Another option would be to provide full binaries, using something such as https://github.com/japaric/trust/ or https://github.com/volks73/cargo-wix (for windows)

stacksjb commented 6 months ago

I've done some investigation of this as I'd like to push to Homebrew (this will allow me to automatically manage the installation and dependencies when people are using my Alfred Workflow instead of installing dependencies manually).

The requirement for homebrew includes the following: 1) A link to the binary/release. Currently your .tar.gz looks like it's for a specific target platform; probably need to compile for multiple platforms and label as such (this can even be done with Github actions to happen automatically) 2) A brew formula (https://docs.brew.sh/Formula-Cookbook) and a repo (this can be the same repo or a separate one) 3) releases tagged as "stable" or similar tag that can be followed

The others already exist (i.e. a URL/homepage, a license, a versioning scheme, etc).

Have you looked into using a tool such as cargo-release or similar to automate releases for platforms?

alanvardy commented 6 months ago

Homebrew support would be amazing

Homebrew support would help a lot more people get started.

Currently your .tar.gz looks like it's for a specific target platform; probably need to compile for multiple platforms and label as such (this can even be done with Github actions to happen automatically)

I am running on Linux and am currently just building a release for the Arch User Repository (AUR) and of course crates.io. I'd definitely like to automate my process for releasing and support more platforms.

Have you looked into using a tool such as cargo-release or similar to automate releases for platforms?

I haven't heard of this one! Looks great, I'm going to create a separate ticket to see about automating what I am already doing.

A brew formula (docs.brew.sh/Formula-Cookbook) and a repo (this can be the same repo or a separate one)

I'm happy to support it in this repo.

stacksjb commented 5 months ago

The other main Rust CLI Todoist APP (https://github.com/chaosteil/doist/, which is nowhere near as good as this one 😈) logged an issue to add Homebrew back in February, but hasn't yet. Lets' beat them to market 🤓