Documentation on migrating from v3 to v4
Thank you for the hard work on v4 @Schamper. We were wondering if some documentation could be produced which highlights the changes between v3 and v4, in particular breaking changes and removed/new features. A how-to 'migrating from v3 to v4' would be awesome.
What do you think of a compatibility shim that can be imported to ease the transition to v4?
There was a small booboo with merging/tagging, apologies for that!
The transition from v3 -> v4 should be fairly minimal for most use-cases. It's functionally backwards compatible, the major changes are required in type hints and custom types. A few words of explanation on this are indeed planned, but we'll also migrate all public dissect.* projects before releasing a new dissect.cstruct.
As for a compatibility shim, this will be a little tough for type-hints (ideally you'd print a deprecation warning upon usage, which I don't think is possible in this scenario). It may be possible for basic custom types, but since you can make those as crazy as you want, it wouldn't be a silver bullet and bring its own set of issues.