2,068 karma · joined September 28, 2011
For anyone interested, a detailed list of what is blocking or slowing progress can be found here: https://github.com/ruma/ruma/issues/189
Up until very recently we'd been postponing work due to immaturity of both Rust and the Matrix spec. Now that all the Matrix specs have had stable releases, the main blocker is the maturity of async/await and support for it in the library ecosystem. Since Ruma uses nightly Rust currently, we don't need async/await to be stabilized to proceed, but it does need to be far enough along that it has been adopted by all the major components of the Rust HTTP ecosystem. I'm guessing we've got about six months left until this happens.
One thing I'd like to see is a specified practice for versioning projects that "wrap" another project where the "inner" project's version is significant to the user.
For example, a long time ago I wrote a Ruby gem to expose jQuery's templating library to the Rails asset pipeline. My gem had a version, but each version also had the jQuery Templates source code packaged within it, which of course was also versioned. The most useful thing I could do for the gem's version was to have it match the version of JQT that it contained, but if I needed to make a new gem release to change some of the Ruby wrapper without changing the packaged version of JQT, there was no "official" or universally obvious way to denote this. I could add an extra number on the end, but it wasn't obvious that this extra number wasn't part of JQT's version just from looking at the four-part number. I believe some package managers use the name of the system in the "wrapper version" to denote this, e.g. "1.0.0.ubuntu4" but even that is lacking because you really need two represent two different fully semantic versions. I'd be great to see a solution for this specified.
I recall there being an issue on Mozilla's bug tracker where someone brought this up and it was closed as a wontfix. Unless there is something about Firefox's container system that obviates my workflow, I'm still reluctantly sticking with Chrome.
I generally don't think Patreon is a good way to fund software development, but I will be contributing anyway because the work the Matrix team is doing is critical. Open, secure communication on the Internet is one of the most important and relevant issues today.
The Matrix team has been great to work with in developing Ruma. As Matthew mentions in the post, our development has been slowed somewhat by lack of updates to the Matrix spec, but they've had the Ruma team's full support in prioritizing end-to-end encryption in Riot, as it's simply a more urgent priority than enabling independent implementations of the spec. It's been clear to us that the only thing preventing improvements to the spec is the lack of bandwidth on the Matrix team, and in that sense, today's news is actually good news, because now we have a chance to help increase their bandwidth beyond what their parent company could provide.
[0] https://www.ruma.io/docs/matrix/ [1] https://www.ruma.io/docs/matrix/why/
https://twitter.com/jdalton/status/869964222716821504
(continued) https://twitter.com/littlecalculist/status/87035656004781670...
Edit: I think it's a mistake. Reported here: https://github.com/kubernetes/release/issues/358