on master help sign in
typeable/req/CHANGELOG.md
247 lines 7.8 kB history raw
1## Req 3.13.4
3* Fixed empty ciphersuite list when compiling against `tls < 2.0.6`
4 (see [PR 175](https://github.com/mrkkrp/req/pull/175)). As a side effect, now
5 compatible with older versions of `crypton-connection` (>= 0.3).
7## Req 3.13.3
9* Works with `crypton-connection-0.4` and newer.
11## Req 3.13.2
13* Disable the problematic `httpbin-tests` test suite by default. Only enable
14 it when the `dev` flag is enabled. In that case it is expected that an
15 httpbin server is run locally at `localhost:1234`.
17## Req 3.13.1
19* Switched the non-pure test suite to use https://httpbun.org instead of
20 https://httpbin.org since the latter proved to be highly unreliable
21 lately.
23* Switched from `connection` to `crypton-connection`.
25* Builds with GHC 9.6.1.
27## Req 3.13.0
29* Add `headerRedacted` function to add header fields, which will be with
30 redacted values on print.
32## Req 3.12.0
34* Add `isStatusCodeException` function.
35* Add `instance HttpResponse (Network.HTTP.Client.Response ())`.
37## Req 3.11.0
39* Add the `queryParamToList` method to the `QueryParam` type class.
40* Add the `formToQuery` function. [Issue 126](https://github.com/mrkkrp/req/issues/126).
41* Add `FromForm` instances (in the `Web.FormUrlEncoded` module) to the
42 `Option` and `FormUrlEncodedParam` types.
44## Req 3.10.0
46* Add `MonadHttp` instances for `transformers` types.
48## Req 3.9.2
50* The test suite works with `aeson-2.x.x.x`.
52## Req 3.9.1
54* Builds with GHC 9.0.
56## Req 3.9.0
58* The `useHttpURI` and `useHttpsURI` functions now preserve trailing
59 slashes.
61## Req 3.8.0
63* Adjusted the value of the `httpConfigRetryJudgeException` field of
64 `defaultHttpConfig` to retry on response timeouts and connection timeouts.
66## Req 3.7.0
68* Added `reqCb`, a function that allows you to modify the `Request` object
69 but otherwise performs the requst for you.
71* Derived `MonadThrow`, `MonadCatch`, and `MonadMask` for the `Req` monad.
73## Req 3.6.0
75* Added the `httpConfigBodyPreviewLength` configuration parameter to
76 `HttpConfig`.
78## Req 3.5.0
80* Made `Req` an instance of `MonadUnliftIO`. [Issue
81 100](https://github.com/mrkkrp/req/issues/100).
83## Req 3.4.0
85* Requests using `DELETE` method can now have a body. [Issue
86 89](https://github.com/mrkkrp/req/issues/89).
88* Added the `httpConfigRetryJudgeException` field to `HttpConfig` so that
89 requests that result in exceptions can be retried. [Issue
90 93](https://github.com/mrkkrp/req/issues/93).
92* Added the function `renderUrl`. [Issue
93 83](https://github.com/mrkkrp/req/issues/83).
95## Req 3.3.0
97* Derived `Show` instances for response types `IgnoreResponse`,
98 `JsonResponse`, `BsResponse`, and `LbsResponse`.
100## Req 3.2.0
102* Made the tests pass with `http-client-0.7` and later.
104* Added a quasiquoter for URL creation, `urlQ`.
106## Req 3.1.0
108* Changed signature of `httpConfigRetryPolicy` to `RetryPolicyM IO`.
110## Req 3.0.0
112* Dropped functions `parseUrlHttp`, `parseUrlHttps`, and `parseUrl`. Instead
113 we now have `useHttpURI`, `useHttpsURI`, and `useURI` take `URI`s from
114 `modern-uri` as their argument. You first parse your URL with the
115 `modern-uri` package and then pass it to those functions. This allows us
116 to work with typed URI representations and seamlessly convert them to
117 something `req` can work with. As a side effect basic auth from the `URI`s
118 is now taken into consideration. In the future we may also start to
119 respect fragments if `http-client` starts to support this.
121* Dropped support for GHC 8.2 and older.
123## Req 2.1.0
125* Dropped support for GHC 7.10.
127* Added the new `acceptHeader` method to the `HttpResponse` type class.
128 Notably, the `jsonResponse` method now sets `"Accept"` header to
129 `"application/json"`.
131## Req 2.0.1
133* Fixed the `httpbin` tests (they changed something on the server again).
135## Req 2.0.0
137* Got rid of `data-default-class` dependency, now we export
138 `defaultHttpConfig` instead.
140## Req 1.2.1
142* Fixed a typo in the type signature of `parseUrl`.
144## Req 1.2.0
146* Added the `parseUrl` function.
148## Req 1.1.0
150* Added `customAuth` and `attachHeader` to facilitate creation of custom
151 authentication options.
153* Added `basicProxyAuth` authentication option.
155## Req 1.0.0
157* Added the `reqBr` function allowing to consume `Response BodyReader`
158 without using a pre-defined instance of `HttpResponse`, in a custom way.
160* Now streaming of response body does not happen until we've checked headers
161 and status code with `httpConfigCheckResponse`. It also doesn't happen on
162 every retry. Streaming and obtaining of final response value happens only
163 once when we're happy with everything.
165 Previously we first tried to consume and interpret response body before
166 checking status code and determining whether we should retry the request.
167 This was not good, because we could expect a JSON response but get a
168 response with status code 500, and then still we would try to parse it as
169 JSON first before letting `httpConfigCheckResponse` throw an exception.
171 The corrected behavior should also make retrying more efficient.
173* Changed signatures of several fields of `HttpConfig`:
174 `httpConfigCheckResponse`, `httpConfigRetryPolicy`, and
175 `httpConfigRetryJudge` in order to eliminate redundant `IO` and prevent
176 the possibility that these functions could start consuming `BodyReader`.
178* Removed the `makeResponsePreview` method from the `HttpResponse` type
179 class. Preview business is handled by the library automatically on a lower
180 level now. Users do not need to concern themselves with such stuff.
182* Changed the type signature of the `getHttpResponse` method of the
183 `HttpResponse` type class. Previously it left too much freedom (and
184 responsibility) to implementers of the method. In fact, we now limit what
185 `getHttpResponse` does to just consuming and interpreting `Response
186 BodyReader`, so we can properly control details of connection
187 opening/closing etc., for the user.
189* Dropped support for GHC 7.8.
191* Minor documentation improvements.
193## Req 0.5.0
195* Changed the signature of the `makeResponseBodyPreview` from `response ->
196 IO ByteString` to `response -> ByteString`.
198* Minor documentation improvements.
200## Req 0.4.0
202* Added the `Req` monad and `runReq` function to run it. This allows to use
203 `req` without defining new (orphan) instances.
205## Req 0.3.1
207* Added `basicAuthUnsafe`.
209## Req 0.3.0
211* Made URL parsing functions `parseUrlHttp` and `parseUrlHttps` recognize
212 port numbers.
214* Added `req'` function that allows to perform requests via a callback that
215 receives pre-constructed request and manager.
217* Removed the `ReturnRequest` HTTP response implementation as it was not
218 quite safe and was not going to work with retrying. Use `req'` instead for
219 “pure” testing.
221* Changed the type of `httpConfigCheckResponse`, so the second argument can
222 be any instance of `HttpResponse`.
224* Added built-in automatic retrying. See `httpConfigRetryPolicy` and
225 `httpConfigRetryJudge` in `HttpConfig`. The default configuration retries
226 5 times on request timeouts.
228* Added the `makeResponseBodyPreview` method to the `HttpResponse` type
229 class that allows to specify how to build a “preview” of response body for
230 inclusion into exceptions.
232* Improved wording in the documentation and `README.md`.
234## Req 0.2.0
236* Added support for multipart form data in the form of `ReqBodyMultipart`
237 body option and `reqBodyMultipart` helper function. This also required a
238 change in the type signature of `getRequestContentType`, which now takes
239 `body`, not `Proxy body` because we need to extract boundary from `body`
240 and put it into `Content-Type` header. This change, however, shouldn't be
241 too dangerous for end-users.
243* Added support for OAuth 1.0 authentication via `oAuth1` option.
245## Req 0.1.0
247* Initial release.