itsjunetime / tdf

A tui-based PDF viewer
Mozilla Public License 2.0
472 stars 7 forks source link

Create GitHub releases #10

Open orhun opened 3 weeks ago

orhun commented 3 weeks ago

It would be nice to create GitHub releases so that this awesome tool can be packaged for various distributions 🐻 (e.g. Arch Linux)

itsjunetime commented 3 weeks ago

I think this would be useful as well, but I don't have good resources for cross-compiling and I've had difficulty in the past with setting up Github Actions to produce binaries for all platforms for me. If someone would be willing to put up a PR (even if it doesn't necessarily cover all cases, just one that can get us started), I'd be happy to look over and merge it :)

alerque commented 3 weeks ago

You don't have to cross compile anything, and you don't even have to create binaries. That's not what makes a release. They are bonuses useful for some use cases, but don't think you need that stuff to start.

For a good distro package the repository should at a minimum be handled something like this...

  1. Should be in a working state, e.g. builds and works.
  2. Set a release number in the Cargo.toml file, then cargo build to update the lock file, then commit the matching manifest and lock file.
  3. Add a Git tag (X.Y.Z or vX.Y.Z, your choice) matching the release number you saved in the Cargo manifest.
  4. Push the tag to the Git repo with git push --tags.

As an optional easy next step from there, also cargo publish --locked to push the release out to crates.io which is useful for people to be able to easily cargo install tdf to their user space.

orhun commented 3 weeks ago

Yup, just create a release on GitHub/crates.io and YOLO :)

I'm happy to help with publishing pre-built binaries if you're interested though 🐻