Devolutions / IronRDP

Rust implementation of the Microsoft Remote Desktop Protocol (RDP)
Apache License 2.0
380 stars 49 forks source link

Planning 0.5 release #498

Open elmarco opened 3 months ago

elmarco commented 3 months ago

Hi,

What' s the plan for the next development release? Is there any blocker?

CBenoit commented 3 months ago

Hi! I’ll come up with a detailed roadmap in the next few days and let you know about it. Mainly, I want to adjust a few last things in the public API, but you already helped a lot with the effort of migrating to the new traits.

CBenoit commented 2 months ago

I’m sorry, I didn’t get enough bandwidth to write as much as I wanted, but let me elaborate the major things I absolutely want to get done before publishing a new version.

One of is to get most traits such as Encode / Decode out of ironrdp-pdu and put that into a crate called ironrdp-core. ironrdp-pdu contains lots of code that we don’t actually need in other crates such as the virtual channels. I started this in this branch: https://github.com/Devolutions/IronRDP/tree/7d46aa26e4a8892c0eb17b00c82cea46f9f7d88f/crates/ironrdp-common/src Just moving the traits without changing any API (unlike I did in my branch) would be a good enough first step for ironrdp 0.5.

Then, I wanted to address the limitations I raised in this PR: https://github.com/Devolutions/devolutions-gateway/pull/916

  • RdpServer should implement Send.
  • RdpServer should support multiple listener (bind) addresses.
  • RdpServer should support graceful shutdown.

Of which you already addressed the last one in a previous PR I think.

FYI, I also intend to rework the API of ironrdp-server so that it’s possible to use something else than tokio and a custom main loop, but I’m fine with pushing all of that in a future ironrdp 0.6 version, let’s just publish more frequently!

elmarco commented 4 days ago

@CBenoit are you ok with an initial RC release?

fwiw, cargo workspaces version custom 0.5.0-rc.0 seems handy to update versions and tags, and deps. (alas, cargo nightly has some support for packaging workspaces, but not publishing yet)

cargo release --workspace is not handling rc properly apparently.

It seems it will have to be manual for now.

CBenoit commented 3 days ago

I would be okay with releasing what we have currently as the 0.5 version! I was meaning to give a try to these commands, will do!