matrix-org / matrix-ircd

An IRCd implementation backed by Matrix.
Apache License 2.0
224 stars 41 forks source link

GSOC 2020: Migrate http / matrix implementations to futures 0.3 #67

Closed VanillaBrooks closed 4 years ago

VanillaBrooks commented 4 years ago

This PR swaps the http.rs implementation to use hyper for more readable and reliable http requests. Additionally, the matrix module is also updated to futures 0.3 so that async / await can be used in bridge/mod.rs in a future PR.

VanillaBrooks commented 4 years ago

I have not touched the lock file at all. Every time I pull updates from matrix-org/matrix-ircd to my dev branch there is a merge conflict in the lock file (which previously I have never seen) which eventually leads to a cargo error. I opt to rebuild to lock file when this happens, is this the correct approach?

jplatte commented 4 years ago

Could you try rebasing instead of merging, and recreating the lockfile if there are merge conflicts or it fails with the same error at any step? If you need instructions, ping me on Matrix.

VanillaBrooks commented 4 years ago

I think leaving the PR with build errors is the best thing to do here. The errors in bridge/mod.rs are fixed in the next commit on my async-await branch, but I unfortunately combined to commit with a bunch of IRC module changes. I also had trouble leaving futures::compat code in bridge/mod.rs to correctly build the project, but seeing as this is a development branch I think merging here is fine.

The changes to fix builder errors are also very messy, and depending on how we merge the next PR the mess might be introduced and immediately removed.