tag:github.com,2008:https://github.com/GoodRequest/GoodNetworking/releases Release notes from GoodNetworking 2026-02-06T22:48:40Z tag:github.com,2008:Repository/593148968/4.5.0 2026-02-06T22:49:21Z 4.5.0 <h2>What's Changed</h2> <ul> <li>fix: Log error message without network response by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3664472449" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/58" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/58/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/58">#58</a></li> <li>feat: Access raw HTTP response as new <code>NetworkRespose</code> type</li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.4.2...4.5.0"><tt>4.4.2...4.5.0</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.4.2 2025-11-13T11:25:34Z 4.4.2 <h2>What's Changed</h2> <ul> <li>feat: Allow any HeaderConvertible in EndpointBuilder by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3620794800" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/57" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/57/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/57">#57</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.4.1...4.4.2"><tt>4.4.1...4.4.2</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.4.1 2025-11-05T12:24:05Z 4.4.1 <h2>What's Changed</h2> <ul> <li>fix: Sendable CertificateDisposition for Xcode 16 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3590641951" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/56" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/56/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/56">#56</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.4.0...4.4.1"><tt>4.4.0...4.4.1</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.4.0 2025-11-04T10:43:07Z 4.4.0 <h2>What's Changed</h2> <ul> <li>feat: Authenticate with custom SSL/TLS certificate by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3575051091" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/55" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/55/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/55">#55</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.3.2...4.4.0"><tt>4.3.2...4.4.0</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.3.2 2025-10-16T12:03:10Z 4.3.2 <h2>What's Changed</h2> <ul> <li>fix: Fix actor isolation crashes and data races by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3521536502" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/54" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/54/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/54">#54</a></li> <li>feat: Optimized logging by response MIME type</li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.3.1...4.3.2"><tt>4.3.1...4.3.2</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.3.1 2025-09-30T10:11:42Z 4.3.1 <h2>What's Changed</h2> <ul> <li>Log decoding errors by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3468167866" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/53" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/53/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/53">#53</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.3.0...4.3.1"><tt>4.3.0...4.3.1</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.3.0 2025-09-25T12:44:10Z 4.3.0 <h2>What's Changed</h2> <ul> <li>feat: Remove dependency on JSONPath (Sextant) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3453429216" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/52" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/52/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/52">#52</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.2.0...4.3.0"><tt>4.2.0...4.3.0</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.2.0 2025-09-03T12:43:07Z 4.2.0 <h2>What's Changed</h2> <ul> <li>Composite adapter+retrier by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3379668283" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/51" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/51/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/51">#51</a></li> <li>Bug fixes</li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.1.0...4.2.0"><tt>4.1.0...4.2.0</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.1.0 2025-08-25T09:57:13Z 4.1.0 <h2>What's Changed</h2> <ul> <li>Support for optionals in URL and Data resolution by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3341035270" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/48" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/48/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/48">#48</a></li> <li>Small documentation improvements by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3331363988" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/47" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/47/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/47">#47</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/4.0.0...4.1.0"><tt>4.0.0...4.1.0</tt></a></p> plajdo tag:github.com,2008:Repository/593148968/4.0.0 2025-08-26T07:50:10Z 4.0.0 <h2>What's Changed</h2> <ul> <li>Swift 6.2 &amp; GoodNetworking 4.0 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/plajdo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/plajdo">@plajdo</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3196133995" data-permission-text="Title is private" data-url="https://github.com/GoodRequest/GoodNetworking/issues/42" data-hovercard-type="pull_request" data-hovercard-url="/GoodRequest/GoodNetworking/pull/42/hovercard" href="https://github.com/GoodRequest/GoodNetworking/pull/42">#42</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/GoodRequest/GoodNetworking/compare/3.3.1...4.0.0"><tt>3.3.1...4.0.0</tt></a></p> <h2>Migration guide</h2> <ul> <li>Remove<code>import Alamofire</code> and <code>@preconcurrency import Alamofire</code></li> <li>Replace <code>BaseUrlProvider</code> with <code>URLConvertible</code></li> <li>Replace <code>func resolveBaseUrl() async -&gt; String?</code> -&gt; <code>func resolveUrl() async -&gt; URL?</code> (in URL providers)</li> <li>Replace <code>func url(on baseUrl: String) throws -&gt; URL</code> in Endpoints with <code>func url(on baseUrl: any URLConvertible) async -&gt; URL?</code> or remove the function completely where default implementation is sufficient. Replace <code>throw</code>-s with <code>return nil</code>.</li> <li>Replace <code>var path: String {</code> with <code>var path: URLConvertible {</code> and <code>import GoodNetworking</code> where required. Take care not to replace unrelated implementations.</li> <li>Wrap string return values returning URLs in <code>URL(string:)</code> or <code>URL(_:)</code> (if optionals are accepted).</li> <li>Replace Alamofire implementation of <code>AuthenticatorInterceptor</code>s with new, simpler <code>Authenticator</code> protocol</li> <li>Adapters, Retriers and Interceptors are now from local package (API is similar, but will require manual migration)</li> <li>Simplified error handling to only 3 cases in <code>NetworkError</code>: <code>local</code> (network failure), <code>remote</code> (Invalid HTTP status code, server errors) and <code>decoding</code> (decoding failures).</li> <li>GoodLogger dependency removed and replaced with local logging protocol</li> </ul> plajdo