-
Notifications
You must be signed in to change notification settings - Fork 483
Open
Labels
⚠️ semver/majorBreaks existing public API.Breaks existing public API.
Description
As part of the current effort to remove all breaking changes from main
to make sure new features and bug fixes are shipped in the next minor release, we've had to walk back several changes done over the past couple of years because they were source-breaking.
Many of them could be done in a non-breaking way slightly differently, but several had to be reverted altogether.
Whenever we decide to release a v2, we should make sure to undo these reverts, as some of them are technically regressions. They are (you can find more details in the discussions on each linked PR):
- The fix to resolve Allow opting-out of CustomDebugStringConvertible to reduce binary size #1245 had to be partially reverted in Add back CustomDebugStringConvertible conformance #1625. cc @dflems - the author of the original PR.
- Some new cases were added (in a breaking way) to public Error enums. We had to get rid of these (in Move new errors to extendable struct-based SwiftProtobufError #1612), but we moved some of them to a new struct-backed-error type,
SwiftProtobufError
. Even though not technically a breaking change, to avoid de facto breaking changes, we decided not to throw these new errors in places were a different error was being thrown, since users may be catching them specifically. Below is a list of the changes we had to revert to throw old errors: we should change these to the new errors when we decide to do a breaking release:-
BinaryEncodingError.tooLarge
,BinaryDecodingError.tooLarge
andBinaryDelimited.Error.tooLarge
, added as part of Enforce the 2GB size limits #1381 -
BinaryDelimited.Error.malformedLength
andBinaryDelimited.Error.noBytesAvailable
, added in Add two new unique delimited error code for better caller handling #1449 -
BinaryEncodingError.anyTypeURLNotRegistered
andJSONEncodingError.anyTypeURLNotRegistered
, introduced in MakeanyTranscodeFailure
more descriptive #1527 (cc original author, @rebello95).
-
rebello95
Metadata
Metadata
Assignees
Labels
⚠️ semver/majorBreaks existing public API.Breaks existing public API.