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):
As part of the current effort to remove all breaking changes from
mainto 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):
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.tooLargeandBinaryDelimited.Error.tooLarge, added as part of Enforce the 2GB size limits #1381BinaryDelimited.Error.malformedLengthandBinaryDelimited.Error.noBytesAvailable, added in Add two new unique delimited error code for better caller handling #1449BinaryEncodingError.anyTypeURLNotRegisteredandJSONEncodingError.anyTypeURLNotRegistered, introduced in MakeanyTranscodeFailuremore descriptive #1527 (cc original author, @rebello95).