Release engineering is exhausting so here's cargo-dist

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • cargo-dist

    📦 shippable application packaging

  • Just to elaborate on this a bit: as discussed in the Concepts section of the docs[0] the core of cargo-dist absolutely supports workspaces with multiple binaries, and will chunk them out into their own distinct logical applications and provide builds/metadata for all them.

    However this isn't fully supported by the actual github CI integration yet[1], as I haven't implemented proper support for detecting that you're only trying to publish a new version of one of the applications (or none of them!), and it doesn't properly merge the release notes if you're trying to publish multiple ones at once.

    I never build workspaces like that so I'm waiting for someone who does to chime in with the behaviour they want (since there's lots of defensible choices and I only have so many waking hours to implement stuff).

    [0]: https://github.com/axodotdev/cargo-dist/#concepts

  • act

    Run your GitHub Actions locally 🚀

  • Seconding this; act has a lot of potential but misses a number of features such as support for deployment environment variables (eg `${{ var.DEPLOY_SPECIFIC_ENV_VAR }}`) and only recently added support for reusable workflows (https://github.com/nektos/act/issues/826). It looks like fine software and the maintainers deserve praise for their work but it's not yet a drop-in replacement for GitHub Actions.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • cargo-install-favorites

    Use the `cargo` command install our favorite crates

  • Awesome thank you. I'm adding it now to the awesome list here: https://github.com/sixarm/cargo-install-favorites

  • sgr

    sgr (command line client for Splitgraph) and the splitgraph Python library

  • I wrote up the details of this in a PR [0] where I last dealt with it.

    [0] https://github.com/splitgraph/sgr/pull/656

  • goreleaser

    Deliver Go binaries as fast and easily as possible

  • i really enjoy goreleaser https://github.com/goreleaser/goreleaser/ and use it with rust https://github.com/chmouel/snazy/blob/main/.goreleaser.yaml#... combined with build matrix https://github.com/chmouel/snazy/blob/main/.github/workflows...

  • snazy

    a snazzy json log viewer (with one z)

  • i really enjoy goreleaser https://github.com/goreleaser/goreleaser/ and use it with rust https://github.com/chmouel/snazy/blob/main/.goreleaser.yaml#... combined with build matrix https://github.com/chmouel/snazy/blob/main/.github/workflows...

  • release-plz

    Publish Rust crates from CI with a Release PR.

  • How does this tool differ from release-plz?: https://github.com/marcoIeni/release-plz

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • ideas4

    An Additional 100 Ideas for Computing https://samsquire.github.io/ideas4/

  • Thanks for remembering me :-)

    I would like things to run locally by default and then deployed to the cloud where they run.

    Should be easier to debug problems if I can get the code to my machine and investigate issues with tools that my computer has such as "strace", "perf" and debug logging that I liberally apply to the build script.

    In production we would have log aggregation and log search (such as ELK stack) and it is a good habit to get into the perspective of debugging production via tooling.

    But CICD feels before that tooling in the pipeline. You could wire up your CICD to log to ELK but I would prefer local deployable software.

    I think my focus on automating things means I want to be capable of seeing how the thing works without relying on a deployed black box in the cloud and using assumptions of how it works rather than direct investigation.

    One of my journal entries is almost a lamentation of all the things that need to be done to release and use software.

    This is that entry:

    https://github.com/samsquire/ideas4#5-permanent-softwareplat...

    I wonder if software could be deployed more like a URL that has all the information to configure a virtual machine. Docker over URL or something.

  • cargo-binstall

    Binary installation for rust projects

  • If you happen to install a lot of things with cargo, check out cargo-binstall: https://github.com/cargo-bins/cargo-binstall

    It'll fetch the binary release from the repo so you don't have to compile it yourself.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts