Skip to content
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

chore: switch to cargo dist for releases #2085

Merged
merged 10 commits into from
Jun 5, 2024
Merged

chore: switch to cargo dist for releases #2085

merged 10 commits into from
Jun 5, 2024

Conversation

ellie
Copy link
Member

@ellie ellie commented Jun 4, 2024

I'd like to see how CI behaves here before merging anything.

From https://axo.dev

cargo-dist handles building releases far better than we can, and do so
for several large projects now.

We will need to change our install script to use the cargo-dist
installer. To start off, I think it would make sense to use this as a fallback instead of using cargo install

Historically, we have used the system package manager wherever possible.
Once 100% switched to the new installer, this will no longer be the case. If
the user wishes to use their package manager, and Atuin is maintained
there, then they can choose to do so.

This way, we can ensure that users are running a known build, can easily
uninstall (just delete the atuin dir), easily update, etc. Builds will
use our lockfile, and can have their checksum verified. Later, I'd like
to introduce build signing.

As Axo are focused on release engineering, they will likely have
resolved many more issues than we have - libc versions, etc.

I'm not particularly happy with our response of "just use your package
manager", as many users seem to have difficulty there. It's unclear what
our installer has done, as this behaviour varies massively across
systems. It's also unclear how some package maintainers may have patched
things

I'm hoping that some better release tooling will lead to more confidence
in the process, and therefore more frequent releases.

Uninstall clarity: #111, #372, #640, #1485, #1546, #2049, #1529

From https://axo.dev

cargo-dist handles building releases far better than we can, and do so
for several large projects now.

We will need to change our install script to use the cargo-dist
installer.

Historically, we have used the system package manager wherever possible.
Once switched to the new installer, this will no longer be the case. If
the user wishes to use their package manager, and Atuin is maintained
there, then they can choose to do so.

This way, we can ensure that users are running a known build, can easily
uninstall (just delete the atuin dir), easily update, etc. Builds will
use our lockfile, and can have their checksum verified. Later, I'd like
to introduce build signing.

As Axo are focused on release engineering, they will likely have
resolved many more issues than we have - libc versions, etc.

I'm not particularly happy with our response of "just use your package
manager", as many users seem to have difficulty there. It's unclear what
our installer has done, as this behaviour varies massively across
systems. It's also unclear how some package maintainers may have patched
things

I'm hoping that some better release tooling will lead to more confidence
in the process, and therefore more frequent releases.

Uninstall clarity: #111, #372, #640, #1485, #1546, #2049, #1529
@ellie ellie mentioned this pull request Jun 5, 2024
@ellie
Copy link
Member Author

ellie commented Jun 5, 2024

I'd like to figure out how to update nix, but min rust versions can be dealt with elsewhere

I'm going to merge this, and use it to ship a pre-release. We already have weekly releases, so this would be a pretty nice replacement for that

Wrt the install script, after some thought I'd rather not totally replace it immediately. To begin with, we can use the cargo-dist installer as a fallback instead of cargo-install

@atuin-bot
Copy link

This pull request has been mentioned on Atuin Community. There might be relevant details there:

https://forum.atuin.sh/t/packaging-changes-for-18-3-0/354/1

@ellie ellie marked this pull request as ready for review June 5, 2024 12:12
@ellie ellie merged commit 7ec002b into main Jun 5, 2024
24 checks passed
@ellie ellie deleted the ellie/cargo-dist branch June 5, 2024 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants