-
Notifications
You must be signed in to change notification settings - Fork 109
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
Change base64 crate to simple-base64 crate #356
Conversation
Standard base64 encode/decode functions have been deprecated and it's clear that the maintainer doesn't care about ergonomics of using the crate[1], so I've forked the crate to be able to get back to a simple format of calling the decode/encode functions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Up to you when to rebase and land this
@@ -14,7 +14,7 @@ spacetimedb-client-api-messages = { path = "../client-api-messages", version = " | |||
|
|||
anyhow.workspace = true | |||
anymap.workspace = true | |||
base64.workspace = true | |||
simple-base64.workspace = true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reorder to alphabetical please.
@@ -26,7 +26,7 @@ spacetimedb-client-api-messages = { path = "../client-api-messages", version = " | |||
anyhow.workspace = true | |||
async-trait.workspace = true | |||
backtrace.workspace = true | |||
base64.workspace = true | |||
simple-base64.workspace = true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I disagree with this. The only reason to move away from the base64 crate seems to be a convenience function, which we could easily define in lib or wherever. I am fairly sure that we would depend on the original base64 crate regardless, even if transitively.
I don't feel strongly. I'll clarify, though, that simple-base64 is a fork of the original base64 and not a wrapper. So there would not be a transitive dependency on it. |
Well, that's my point. Because base64 is the obvious choice for the purpose, it is quite likely to be re-introduced either by us or transitively -- which will just make a future audit of our dependency footprint harder. There are surely reasons to avoid certain crates even if "obvious choice", but then we should ensure that we avoid them entirely (e.g. via I just don't think this is a good reason, because we could solve the perceived nuisance with a wrapper. |
Ahh I understand now, I misunderstood and thought you had the specific objection that the new crate itself transitively depended on it. Yeah. I could see adopting this if other people do, given that? I don't feel as against it as Kim does but certainly see the line of reasoning. |
@drogus any thoughts about the above discussion? |
This has been open for a while with unaddressed feedback. I'm going to close it for the sake of making the release process easier (the fewer PRs to scan the easier). Please reopen it if we need to, with the feedback addressed. |
Description of Changes
Standard base64 encode/decode functions have been deprecated and it's clear that the maintainer doesn't care about ergonomics of using the crate[1], so I've forked the crate to be able to get back to a simple format of calling the decode/encode functions.
API and ABI
If the API is breaking, please state below what will break