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

Release new version on crates.io #202

Open
wiktor-k opened this issue Apr 16, 2024 · 5 comments
Open

Release new version on crates.io #202

wiktor-k opened this issue Apr 16, 2024 · 5 comments

Comments

@wiktor-k
Copy link

Hi folks! 👋

I've noticed that the version on crates.io is super-old: https://crates.io/crates/opcard (opcard = "0.0.0" over 1 year ago).

Would it be possible to release a new version there with cargo publish?

Context: I'm using your crate to test my code against cards in a docker image and currently it involves cloning your repo and hoping the main branch is clean.

Thank you very much! 🙇

@robin-nitrokey
Copy link
Member

We’re tagging releases on GitHub so the preferred way to use it at the moment would be to use the latest tag which should be relatively stable. Publishing to crates.io is planned but unfortunately we require unpublished changes in other crates so the published code would not compile without applying patches. Hopefully we will have a solution to that soon.

@wiktor-k
Copy link
Author

Thanks for the reply @robin-nitrokey ! I took a look at Cargo.toml but didn't spot any "path" dependencies and thought it's just a matter of someone doing cargo publish.

Okay, so I'll use the latest release and in the meantime if you don't mind let's keep this ticket open until all things have been settled.

Thanks for your time!

@robin-nitrokey
Copy link
Member

We’re using patch dependencies instead because it is easier to synchronize over multiple crates:

opcard-rs/Cargo.toml

Lines 93 to 108 in 01329c9

[patch.crates-io]
iso7816 = { git = "https://github.com/Nitrokey/iso7816.git", tag = "v0.1.1-nitrokey.1" }
littlefs2 = { git = "https://github.com/trussed-dev/littlefs2.git", rev = "ebd27e49ca321089d01d8c9b169c4aeb58ceeeca" }
p256-cortex-m4 = { git = "https://github.com/Nitrokey/p256-cortex-m4", tag = "v0.1.0-alpha.6-nitrokey-1" }
trussed = { git = "https://github.com/Nitrokey/trussed" , tag = "v0.1.0-nitrokey.18" }
trussed-auth = { git = "https://github.com/trussed-dev/trussed-auth.git", tag = "v0.3.0"}
trussed-chunked = { git = "https://github.com/trussed-dev/trussed-staging.git", tag = "chunked-v0.1.0" }
trussed-manage = { git = "https://github.com/trussed-dev/trussed-staging.git", tag = "manage-v0.1.0" }
trussed-rsa-alloc = { git = "https://github.com/trussed-dev/trussed-rsa-backend.git", rev = "9732a9a3e98af72112286afdc9b7174c66c2869a" }
trussed-staging = { git = "https://github.com/trussed-dev/trussed-staging.git", tag = "v0.2.0" }
trussed-wrap-key-to-file = { git = "https://github.com/trussed-dev/trussed-staging.git", tag = "wrap-key-to-file-v0.1.0" }
apdu-dispatch = { git = "https://github.com/Nitrokey/apdu-dispatch", tag = "v0.1.2-nitrokey.2" }
trussed-usbip = { git = "https://github.com/Nitrokey/pc-usbip-runner.git", tag = "v0.0.1-nitrokey.1" }
usbd-ccid = { git = "https://github.com/Nitrokey/usbd-ccid", tag = "v0.2.0-nitrokey.1" }
admin-app = { git = "https://github.com/Nitrokey/admin-app.git", tag = "v0.1.0-nitrokey.11" }
ctaphid-dispatch = { git = "https://github.com/trussed-dev/ctaphid-dispatch.git", rev = "57cb3317878a8593847595319aa03ef17c29ec5b" }

@wiktor-k
Copy link
Author

Ahh, that's right! 🤦‍♂️ Given there are quite a few of them I understand the effort is non-insignificant.

@sosthene-nitrokey
Copy link
Collaborator

One of the challenges is that we don't own all of these dependencies so we need to synchronize releases with those upstream, which is why we haven't just published everything regularly.

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

No branches or pull requests

3 participants