Skip to content

Releases: apollographql/apollo-ios

2.0.6

06 Feb 20:24

Choose a tag to compare

Fixed

  • Fix HTTP method selection (#877): The APQ retry logic was overriding the HTTP method selected for all queries. Thank you to @3redrubies for raising the issue.
  • Prevent crashes in Dictionary initialization with duplicate keys (#884): Dictionary initialization using literal elements now uses a safer internal initializer to prevent crashes when duplicate keys are used. In the event that duplicate keys are present, the value associated with the first key will override all other values. Thank you to @adysart for raising the issue.

2.0.5

15 Jan 19:11

Choose a tag to compare

  • Fix data race in AsyncReadWriteLock (#862): This fixes issue #3616. Thank you to @AlexPan1992 for raising the issue.
  • Set URLRequest.cachePolicy on GET requests (#859): Thank you to @samjdurante for the contribution.

2.0.4

03 Dec 20:34

Choose a tag to compare

Fixed

  • Fix infinite loop bug in Test Mocks (#842): Thank you to @AlexPan1992 for raising the issue.
  • Improve error description formatting for validation failure (#846): GraphQL validation errors encountered while running code generation are now formatted to be easier to read in logs. Thank you to @dfed for the contribution.
  • Fix deadlock in AsyncReadWriteLock (#851): When under heavy loads, the AsyncReadWriteLock used by the ApolloStore could cause a deadlock. This is now resolved. Thank you to @marksvend for raising the issue.
  • Fix cancellation error for single response operations (#855): When a single response operation was cancelled, a .noResults error was thrown instead of the expected CancellationError. This is now resolved. Thank you to @3redrubies for raising the issue.
  • Fix multipart parsing error (#852): When a multipart message was received with characters after the closing boundary the multipart parser would emit a cannotParseChunkData parsing error. This is now resolved. Thank you to @ecant for raising the issue.

2.0.3

05 Nov 23:30

Choose a tag to compare

Fixed

  • Percent encode semicolons when using GET (#812): Semicolons were not being correctly encoded into the query string when useGETForQueries was enabled. Thank you to @nevil for the contribution.
  • Include merged fields in selection set equality check (#3602): When a field merged from a child object in a named fragment was merged, it was not being used for equality checks. Equality checks now use the types __fulfilledFragments and collects selections from all of them, instead of just traversing downward from self.__selections. This ensures all expected data is collected from merged fragments. See PR #832. Thank you to @JOyo246 for raising the issue.
  • Fixed compilation of initializers for mock objects with custom scalars (#3599): Default values for custom scalars were not compiling due to SPI usage. See PR #838. _Thank you to @akoslowski for raising the issue.
  • Fixed infinite loop in parsing invalid multipart messages (#3608): When a multipart message did not end with the correct ending delimiter, the parser would loop over the line infinitely. See PR #839. _Thank you to @frehulfd for raising the issue.

1.25.3

05 Nov 23:48

Choose a tag to compare

Fixed

  • Include merged fields in selection set equality check (#3602): When a field merged from a child object in a named fragment was merged, it was not being used for equality checks. Equality checks now use the types __fulfilledFragments and collects selections from all of them, instead of just traversing downward from self.__selections. This ensures all expected data is collected from merged fragments. See PR #832. Thank you to @JOyo246 for raising the issue.
  • Percent encode semicolons when using GET (#812): Semicolons were not being correctly encoded into the query string when useGETForQueries was enabled. Thank you to @nevil for the contribution.

1.25.2

14 Oct 16:43

Choose a tag to compare

This version has no new changes since v1.25.1 and is being created to fix an issue where the previous version was tagged incorrectly.

2.0.2

13 Oct 21:01

Choose a tag to compare

Fixed

  • Fixed SelectionSet equality with @include/@skip fields (#840): When a single field was used in a selection set with an @include/@skip directive, an assertionFailure would crash the program. This is now fixed.

1.25.1

14 Oct 16:09

Choose a tag to compare

Fixed

  • Fixed SelectionSet equality with @include/@skip fields (#840): When a single field was used in a selection set with an @include/@skip directive, an assertionFailure would crash the program. This is now fixed.

1.25.0

10 Oct 00:32

Choose a tag to compare

Fixed

  • Narrowly Scoped SelectionSet Equality (#3579): SelectionSet equality now uses a narrowly scoped algorithm that only compares fields in the underlying data that are relevant to the SelectionSet. This fixes a bug where a fragment read back from the graph doesn't match one created in memory by ensuring that equality checks for a fragment do not consider fields that are not included in the fragment, even if they are present in the data. Previous equality checks would simply compare the underlying DataDict dictionary which was incorrect. See PR #771. Thank you to @potrebic for raising the issue.

Note: This change is fixing a long-standing bug in SelectionSet equality, however it may highlight previously hidden equality issues and appear to be a bug. If you're convinced this new equality behaviour exposes a bug please open a new issue and we can discuss it.

2.0.1

09 Oct 23:22

Choose a tag to compare

Fixed

  • SPM CLI Installation (#795): Fixed CLI installation via Swift Package Manager by standardizing relative path handling.

  • SPI Attributes on Internal Models (#796): Fixed code generation to exclude @_spi attributes from models with internal access modifier, preventing compilation errors.