-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cargo-smart-release
feature request: some way to make it easier to make linux distro packages
#7
Comments
Thanks for the suggestion, here is my thoughts.
This is seems like it's absolutely out of scope for a tool that helps with publishing Rust crates. However, providing more support seems viable, as is also suggested.
It seems easy to implement collecting some data about the would-be or actually-performed operations and output them as JSON for scripts to pick up. Maybe this is just a less desirable version of 3) depending on the use-case.
Even though it would be possible to have shell scripts hook into the release process quite trivially, additional discussion would be needed to learn how these would want to interact and possibly affect the ongoing We could discuss this more to see what minimally intrusive options there would be to get you what you need, so a PR would be viable. As |
I'm leaning towards lifecycle hooks being the best option, because I think it would allow for the most amount of flexibility on both the smart-release side and the user side, while still being fairly self contained as a feature. I'm thinking:
There's also the slight problem of cross platform compatibility (with windows specifically). I'd like to take a stab at implementing this, but I won't be able to start it for a little while. |
Great, I liked that one too.
Here I would love if hooks would be enabled by specifying a
Yes, even though I think it should only be a problem for shell scripts. Maybe it's OK to assume these are executables and all we do here is to append
Lovely, take your time. |
Ok, so it's been a couple It could be made simpler if it was split up into a 2 phase process: a "prepare" phase and a "release" phase.
IDK how difficult that would be to implement though. |
Indeed, this is already implemented and "prepare" can be achieved by adding the various Then one can repeat the release without the |
Ok, I just tried doing a release like that and I got
More specifically,
Is there a way to get it to push the tags and do the publishes or do I have to do those myself? |
Oh, I see. I think the first line should also be For a general understanding, it uses git tags to know what changed since the last release of a package. |
steamguard-cli
is a binary crate. During my release process, I package up the artifacts in a.deb
for ubuntu/debian, and update PKGBUILD for releasing on the AUR.I've attempted to automate most of it, with mild success: https://github.com/dyc3/steamguard-cli/blob/master/scripts/full-release.sh
Obviously, its preferable to have the whole process automated. The problem with my current approach is that it relies on grabbing the version from the output of the built binary, which is pretty brittle, and desynchronizes easily with smart-release when doing a dry-run. This could be remedied if smart-release could output the version number somewhere, but I think it would be pretty great to integrate packaging into smart-release. If not, maybe release lifecycle hooks?
Potential solutions:
The text was updated successfully, but these errors were encountered: