*sigh*
It looks like the maintainer of the base64 crate broke all code using the rust-bitcoin Core RPC client to run on .

Trivial crates like base64 have a single job: don't change.

@stevenroose 👏 :classiclol: I saw this coming yesterday when I noticed bitwarden_rs had multiple versions of base64 in its dependency tree

how hard is it to make a base64 library people?

@feld
The base64 crate "requires Rust v1.31 or higher". WTF. How can one not have base64 code that works on all versions...

@stevenroose Rust 1.31 fixed usability problems of modules, and the base64 crate chose to use the newer syntax internally.
The oldest Rust version that is officially supported by the Rust team is 1.37.0.

@kornel
Well, that's a big part of the problem. How can a team developing a systems programming language abandon each release after a few months..

@stevenroose The idea is that the compiler is backwards-compatible and automatically updates, so you never have a reason to stay on an old version.
It's exactly the same thinking as the change from the Internet Explorer upgrade model to Chrome upgrade model.

@kornel The flipside is that when your codebase is v1.19-compliant, you get a heckton of warnings printed about all kinds of things being deprecated.
But well, backwards compatibility is of course awesome. But there are reasons to stay on an older release, though: github.com/marshallpierce/rust

@stevenroose Rust ecosystem doesn't support Debian, sorry. You will have *endless* pain if you try to use Debian's unsupported Rust versions. It's rustup-or-nothing.

@stevenroose At Cloudflare we use Debian, but make our own Rust .deb.

@stevenroose @kornel debian trying to be c's package manager: "oh yeah, we give you outdated software, but don't worry about security issues! when we hear of security issues in the upstream project, someone from our team will start editing critical parts of other people's c code until it compiles again, then we'll ship it to everybody. also, two thirds of our package names end with -dbg or -dev, because all software has header files and debug symbols, doesn't it?"

@stevenroose @kornel that's quite narrow minded, as javascript needs nodejs to run an end-user application. The rust packages are only needed for compiling! I think it's actually good to always use the latest upstream stable rust version for compiling binaries that will be shipped by e.g. debian. The end-user does not need a compiler to run software written in rust. Rustup is totally fine for development, as it makes version changing super easy and does not touch your system files.

@stevenroose It definitely tries to follow a successful model. Cargo is very similar to npm. Language's backwards compat + continued evolution is similar to EcmaScript. Rustc release trains are the same as browsers' shipping V8 & SpiderMonkey.

Sign in to participate in the conversation
Fosstodon

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.