Hi,

On 06/06/2020 14:07, Frank Crawford wrote:
> On Thu, 2020-06-04 at 09:44 -0400, Derek Atkins wrote:
>> So long as there isn't a client-server wire-format incompatiblity
>> with
>> older 2.x versions, I don't care!  (I want to ensure we never make
>> that
>> same mistake again of a wire incompatibility due to a change in
>> underlying tooling).

Just to be clear: we will break interfaces also in the future but we
will do our best (but also not more) to break them across 3 versions
instead of only 2, giving you one middle version to do your migration.

Telling you anything else would be a promise to obsolete rdiff-backup.

> And the only way to do that is to move to your own protocol over the
> wire instead of using something that is tied to low-level python primitives.

I slightly disagree with this statement: with a concept of client/server
protocol version mapped to a pickle protocol version [1] we could
probably avoid the issue.

Actually, while writing this e-mail, I checked the code and noticed that
it's enforcing pickle version 1 so the issue isn't the pickle protocol,
the issue is solely the bytes vs. str vs. unicode change between python
2 and 3. There is not much we could have done about it IMHO.

> Saying that, doubt that pickles will cause issues in the near future,
> and so it is more likely to break due to change in function names
> within rdiff-backup.

We could enforce protocol 5 to infuriate our users but we won't do this
;-) Seriously, we should move to protocol 3 or 4 (known since Python 3.4
so no issue with incompatibility), it should improve speed and resilience.

KR, Eric

Reply via email to