> On 22.12.2021 17:21, Andrew Schulman via Cygwin-apps wrote: > > Please add me as maintainer of two new unison packages: > > > > unison2.51+4.04.2 > > unison2.51+4.10.0 > > > > These will obsolete the current unison2.51 package. > > > > Thanks, Andrew > > > > added.
Thanks. > Question: why Unison need all these versions ? > > $ grep "unison" cygwin-pkg-maint > unison2.27 Andrew Schulman > unison2.32 Andrew Schulman > unison2.40 Andrew Schulman > unison2.45 Andrew Schulman > unison2.48 Andrew Schulman > unison2.48+4.04.2 Andrew Schulman > unison2.48+4.08.1 Andrew Schulman > unison2.49 Andrew Schulman > unison2.51 Andrew Schulman > unison2.51+4.04.2 Andrew Schulman > unison2.51+4.10.0 Andrew Schulman Yeah. It's too complicated. The problem is that different versions of unison are only compatible with each other if the first two numbers of the Unison version are the same, AND they were compiled with compatible versions of OCaml. The underlying problem is that both Unison and OCaml have changed their "marshaling" or data serialization format over time. If the marshaling formats are different, data could be corrupted. To prevent that, Unison will quit if it connects to an incompatible version on the other end. So this is a headache for packagers. We don't know what version might be running on the other end, so we have to provide a bunch of different versions, so users are likely to have one that works for them. The Unison README.Cygwin file has more information. This problem has been discussed a lot recently on the Unison lists. The Unison devs are aware of it and are working towards a future release that will start to preserve backwards compatibility if the marshaling format changes again in the future. Andrew