Changelog
Maintenance branches are merged before each new release. This change log is ordered chronologically, so each release contains all changes described below it.
v1.0.0-M43 (2024-10-30)
What's Changed
http4s-core
- merge v0.23.29 -> main by @samspills in https://github.com/http4s/http4s/pull/7550
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M42...v1.0.0-M43
v0.23.29 (2024-10-23)
This is a maintenance release to fix scalafix processing exceptions in http4s modules.
What's Changed
http4s-core
- Update scala3-library, ... to 3.3.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7531
- Update a bunch of upstream dependencies to align with Scala 2.12.20 and 2.13.15 by @http4s-steward in https://github.com/http4s/http4s/pull/7541
-
Fix for Uri macro with
org
variable by @samspills in https://github.com/http4s/http4s/pull/7537Documentation
-
notes on how to put together a v0.23.xx release by @samspills in https://github.com/http4s/http4s/pull/7519
Behind the scenes
<details>
- Update http4s-circe, http4s-ember-client, ... to 0.23.28 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7521
- Update sbt to 1.10.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7524
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7522
- Update netty-buffer, netty-codec-http to 4.1.114.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7533
- Update sbt-http4s-org to 0.17.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7514
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7525
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7536
- Update case-insensitive, ... to 1.4.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7535
- Update jnr-unixsocket to 0.38.23 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7542
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7544
- Ignore http4s-scalafix-internal updates by @rossabaker in https://github.com/http4s/http4s/pull/7545
- Update sbt-scoverage to 2.2.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7546
- Update sbt to 1.10.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7548
</details>
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.28...v0.23.29
v1.0.0-M42 (2024-10-04)
What's Changed
http4s-core
- Address the Entity model in
CurlConverter.requestToCurlWithBody
by @danicheg in https://github.com/http4s/http4s/pull/7480 - Merge series/0.23 into main by @danicheg in https://github.com/http4s/http4s/pull/7494
-
Merge 0.23.28 -> main by @rossabaker in https://github.com/http4s/http4s/pull/7518
Documentation
-
Tweak the 'versions' page by @danicheg in https://github.com/http4s/http4s/pull/7488
Behind the scenes
- Ignore sbt-scala-native-config-brew updates on main by @danicheg in https://github.com/http4s/http4s/pull/7442
- Ignore
com.earldouglas:xsbt-web-plugin
updates on main by @danicheg in https://github.com/http4s/http4s/pull/7479
New Contributors
- @KristianAN made their first contribution in https://github.com/http4s/http4s/pull/7401
- @Adam-McDevitt made their first contribution in https://github.com/http4s/http4s/pull/7417
- @mcenkar made their first contribution in https://github.com/http4s/http4s/pull/7428
- @henricook made their first contribution in https://github.com/http4s/http4s/pull/7435
- @SallyPerez made their first contribution in https://github.com/http4s/http4s/pull/7372
- @Chingles2404 made their first contribution in https://github.com/http4s/http4s/pull/7452
- @Dichotomia made their first contribution in https://github.com/http4s/http4s/pull/7472
- @dj707chen made their first contribution in https://github.com/http4s/http4s/pull/7469
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M41...v1.0.0-M42
v0.23.28 (2024-09-09)
What's Changed
http4s-core
- Made traits and objects public for Node.js files by @Chingles2404 in https://github.com/http4s/http4s/pull/7452
- Add CustomMetricsOps by @dj707chen in https://github.com/http4s/http4s/pull/7469
- Update to vault-3.6.0, cats-2.11.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7467
- Update ip4s-core, ip4s-test-kit to 3.6.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7455
- Update log4cats-core, log4cats-js-console, ... to 2.7.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7465
- Update keypool to 0.4.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7503
- Update fs2-core, fs2-io to 3.11.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7506
- Minor optimization in ServerResponse by @Chingles2404 in https://github.com/http4s/http4s/pull/7510
-
Fix EmptyCustomLabels and SizedSeq0 singleton creation issue by @dj707chen in https://github.com/http4s/http4s/pull/7511
http4s-client
-
WebSocket client
Reconnect
middleware by @armanbilge in https://github.com/http4s/http4s/pull/7445http4s-ember-client
-
Ember Client : Retry when connection reset on JDK 17+ by @Dichotomia in https://github.com/http4s/http4s/pull/7472
http4s-laws
- Update munit to 1.0.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7462
-
Update munit-cats-effect to 2.0.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7466
http4s-circe
-
Update circe-core, circe-generic, ... to 0.14.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7470
Documentation
-
Adjust the state of Scala 3 on the quick start page by @danicheg in https://github.com/http4s/http4s/pull/7487
Behind the scenes
<details>
- Update munit to 1.0.0-RC1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7438
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7447
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7450
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7453
- Fix bitrotten Nix actions by @rossabaker in https://github.com/http4s/http4s/pull/7454
- Update netty-buffer, netty-codec-http to 4.1.111.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7456
- Update http4s-circe, http4s-ember-client, ... to 0.23.27 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7457
- Update scalafmt-core to 3.8.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7463
- Update sbt to 1.10.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7461
- Update sbt-scoverage to 2.0.12 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7464
- Update scala-library to 2.13.14, sbt-http4s-org to 0.17.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7459
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7471
- Update xsbt-web-plugin to 4.2.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7478
- Update sbt-scoverage to 2.1.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7483
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7482
- Update sbt to 1.10.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7484
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7486
- Update Java-WebSocket to 1.5.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7485
- Update netty-buffer, netty-codec-http to 4.1.112.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7490
- Update sbt-http4s-org to 0.17.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7495
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7496
- Update sbt-native-packager to 1.10.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7497
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7498
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7500
- Update sbt-scoverage to 2.1.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7505
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7507
- Update sbt-scoverage to 2.2.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7516
- Update netty-buffer, netty-codec-http to 4.1.113.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7513
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7509 </details>
New Contributors
- @Chingles2404 made their first contribution in https://github.com/http4s/http4s/pull/7452
- @Dichotomia made their first contribution in https://github.com/http4s/http4s/pull/7472
- @dj707chen made their first contribution in https://github.com/http4s/http4s/pull/7469
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.27...v0.23.28
v0.23.27 (2024-05-03)
This release is binary compatible with the 0.23.x series.
What's Changed
http4s-core
- Move ember H2Keys Http2PriorKnowledge key to core by @hamnis in https://github.com/http4s/http4s/pull/7407
- Handle characters > 0xff in multipart filenames by @rossabaker in https://github.com/http4s/http4s/pull/7419
- feat: suppress stack trace on protocol exceptions by @mcenkar in https://github.com/http4s/http4s/pull/7428
- Replace "Decoded" Part methods with "Bytes" by @rossabaker in https://github.com/http4s/http4s/pull/7436
- RFC: Cookies with
Max-Age=0
should be permitted by @henricook in https://github.com/http4s/http4s/pull/7435 - Update sbt-http4s-org to 0.17.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7437
- Update cats-effect, cats-effect-std, ... to 3.5.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7405
- Update fs2-core, fs2-io to 3.10.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7418
- Update sbt-scalajs, scalajs-compiler, ... to 1.16.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7421
http4s-client
- Small refactor to DefaultClient to remove unsafe calls and repeated code by @Adam-McDevitt in https://github.com/http4s/http4s/pull/7417
-
6521 History client middleware by @SallyPerez in https://github.com/http4s/http4s/pull/7372
http4s-ember-core
-
Ember client drop head body by @hamnis in https://github.com/http4s/http4s/pull/7369
http4s-circe
-
Update circe-core, circe-generic, ... to 0.14.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7441
http4s-laws
- Update scalacheck to 1.17.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7430
-
Update discipline-core to 1.6.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7432
Documentation
- Removed reference to TSec in documentation by @KristianAN in https://github.com/http4s/http4s/pull/7401
- Some tweaks to docs by @danicheg in https://github.com/http4s/http4s/pull/7422
- Documentation form multipart and urlform by @fredshonorio in https://github.com/http4s/http4s/pull/7328
Behind the scenes
- Update http4s-circe, http4s-ember-client, ... to 0.23.26 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7403
- Update sbt-buildinfo to 0.12.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7413
- Update scalafmt-core to 3.8.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7420
- Update netty-buffer, netty-codec-http to 4.1.108.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7414
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7409
- Update sbt-native-packager to 1.10.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7425
- Update munit-cats-effect to 2.0.0-M5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7426
- Update netty-buffer, netty-codec-http to 4.1.109.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7427
- Update sbt-scala-native-config-brew to 0.3.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7440
New Contributors
- @KristianAN made their first contribution in https://github.com/http4s/http4s/pull/7401
- @Adam-McDevitt made their first contribution in https://github.com/http4s/http4s/pull/7417
- @mcenkar made their first contribution in https://github.com/http4s/http4s/pull/7428
- @henricook made their first contribution in https://github.com/http4s/http4s/pull/7435
- @SallyPerez made their first contribution in https://github.com/http4s/http4s/pull/7372
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.26...v0.23.27
v1.0.0-M41 (2024-03-12)
It's been a while since the last milestone release. This release includes numerous features and patches from the 0.23 series. Be sure to check out its release notes! As always within this milestone series, backward compatibility is not guaranteed.
What's Changed
http4s-core
- remove deprecated
comment
parser from CommonRules by @txdv in https://github.com/http4s/http4s/pull/7398 - remove unused deprecated method asMaskBased by @txdv in https://github.com/http4s/http4s/pull/7397
http4s-server
- Delete Jsonp middleware by @froth in https://github.com/http4s/http4s/pull/7286
http4s-client
- expose cookies in the CookieJar middleware by @massimosiani in https://github.com/http4s/http4s/pull/7160
Behind the scenes
- 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/7296
- Merge 0.23 -> main by @rossabaker in https://github.com/http4s/http4s/pull/7387
- Merge 0.23.26 -> main by @rossabaker in https://github.com/http4s/http4s/pull/7404
New Contributors
- @massimosiani made their first contribution in https://github.com/http4s/http4s/pull/7160
- @george-wilson-rea made their first contribution in https://github.com/http4s/http4s/pull/7207
- @lolgab made their first contribution in https://github.com/http4s/http4s/pull/7278
- @grouzen made their first contribution in https://github.com/http4s/http4s/pull/7284
- @morgen-peschke made their first contribution in https://github.com/http4s/http4s/pull/7238
- @plokhotnyuk made their first contribution in https://github.com/http4s/http4s/pull/7228
- @Marcus-Rosti made their first contribution in https://github.com/http4s/http4s/pull/7316
- @LaurenceWarne made their first contribution in https://github.com/http4s/http4s/pull/7265
- @sam-tombury made their first contribution in https://github.com/http4s/http4s/pull/7234
- @rlavolee made their first contribution in https://github.com/http4s/http4s/pull/7329
- @kejifasuyi made their first contribution in https://github.com/http4s/http4s/pull/7357
- @txdv made their first contribution in https://github.com/http4s/http4s/pull/7398
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M40...v1.0.0-M41
v0.23.26 (2024-03-04)
What's Changed
http4s-ember-server
- Log errors in
upgradeSocket
by @froth in https://github.com/http4s/http4s/pull/7363 - Ember: return HTTP 431 when maxHeaderSize is exceeded by @rossabaker in https://github.com/http4s/http4s/pull/7399
Documentation
- Add OptionalMultiQueryParamDecoderMatcher Documentation by @kejifasuyi in https://github.com/http4s/http4s/pull/7357
- Fix the outdated code snippet in the client dsl scaladoc by @danicheg in https://github.com/http4s/http4s/pull/7381
Upgrades
- Update keypool to 0.4.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7364
- Update fs2-core, fs2-io to 3.9.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7367
- Update ip4s-core, ip4s-test-kit to 3.5.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7376
Behind the scenes
- Update http4s-circe, http4s-ember-client, ... to 0.23.25 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7353
- Fix labelling PRs for the
client-testkit
module by @danicheg in https://github.com/http4s/http4s/pull/7354 - Refactor
release.yml
by @danicheg in https://github.com/http4s/http4s/pull/7355 - Update sbt-scalajs, scalajs-compiler, ... to 1.15.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7358
- Update netty-buffer, netty-codec-http to 4.1.105.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7361
- Update cats-effect, cats-effect-std, ... to 3.5.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7360
- Update netty-buffer, netty-codec-http to 4.1.106.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7365
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7368
- Update nscplugin, sbt-scala-native, ... to 0.4.17 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7366
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7371
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7374
- Update Java-WebSocket to 1.5.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7375
- Update munit to 1.0.0-M11 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7373
- Update jnr-unixsocket to 0.38.22 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7380
- Update netty-buffer, netty-codec-http to 4.1.107.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7378
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7377
- Update sbt-scoverage to 2.0.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7379
- Update scalafmt-core to 3.8.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7383
- Update sbt to 1.9.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7384
- Update sbt-scoverage to 2.0.11 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7385
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7392
- Update sbt-http4s-org to 0.16.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7393
- Update scala3-library, ... to 3.3.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7394
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7402
New Contributors
- @kejifasuyi made their first contribution in https://github.com/http4s/http4s/pull/7357
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.25...v0.23.26
v0.23.25 (2024-01-03)
Primarily, this is a maintenance release, binary compatible with the 0.23.x series. Also, it brings an increase in the default value for idleConnectionTime
in ember-client
from 45s
to 60s
. See the PR and related issue for details.
What's Changed
http4s-ember-core
- Align the server and client idle timeouts in Ember by @rlavolee in https://github.com/http4s/http4s/pull/7329
http4s-client-testkit
- Fix handling of connection closure in
WSTestClient
by @armanbilge in https://github.com/http4s/http4s/pull/7334
Documentation
- Add note about cats-parse to 0.23.24 changelog by @armanbilge in https://github.com/http4s/http4s/pull/7322
- Ross is not a moderator by @rossabaker in https://github.com/http4s/http4s/pull/7346
- Push error handling docs through mdoc by @Quafadas in https://github.com/http4s/http4s/pull/7340
Behind the scenes
- Update http4s-circe, http4s-ember-client, ... to 0.23.24 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7323
- Update scalafmt-core to 3.7.17 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7324
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7325
- Update logback-classic to 1.2.13 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7331
- Update sbt-http4s-org to 0.16.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7332
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7333
- Update sbt-jmh to 0.4.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7336
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7337
- Update netty-buffer, netty-codec-http to 4.1.103.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7339
- Update sbt to 1.9.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7341
- Update Java-WebSocket to 1.5.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7344
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7345
- Update netty-buffer, netty-codec-http to 4.1.104.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7342
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7349
New Contributors
- @rlavolee made their first contribution in https://github.com/http4s/http4s/pull/7329
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.24...v0.23.25
v0.23.24 (2023-11-14)
This release upgrades to cats-parse v1.0.0 which may trigger eviction errors in your build. The cats-parse 1.x series is 100% binary-compatible with the cats-parse 0.3.x series, so it is safe to ignore the eviction errors in this case.
What's Changed
http4s-core
- Avoid linking MimeDB in Scala Native by @lolgab in https://github.com/http4s/http4s/pull/7278
- Fixes #7283: make BasicCredentials constructor safe by @grouzen in https://github.com/http4s/http4s/pull/7284
- Model Content-Transfer-Encoding header by @froth in https://github.com/http4s/http4s/pull/7292
- Add asCurlWithBody by @morgen-peschke in https://github.com/http4s/http4s/pull/7238
- Update fs2-core, fs2-io to 3.9.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7311
- Update request cookie parser to handle zero or more spaces between semicolons by @mrdziuban in https://github.com/http4s/http4s/pull/7312
- Update cats-parse to 1.0.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7313
- More efficient working with headers by @plokhotnyuk in https://github.com/http4s/http4s/pull/7228
-
Fix #7262: mulitpart decoder wrapping unwanted errors by @LaurenceWarne in https://github.com/http4s/http4s/pull/7265
http4s-server
- Fix handling of streaming bodies in entity limiter by @armanbilge in https://github.com/http4s/http4s/pull/7264
-
Deprecate Jsonp Middleware by @froth in https://github.com/http4s/http4s/pull/7285
http4s-ember-core
-
Ember-Core: Use optimised fs2 method in write Loop. by @diesalbla in https://github.com/http4s/http4s/pull/7230
http4s-ember-client
-
Add warning logs for misconfigured timeouts by @sgjbryan in https://github.com/http4s/http4s/pull/7234
Documentation
- Add client middleware documentation by @fredshonorio in https://github.com/http4s/http4s/pull/7058
-
Fixes highlighting in error-handling documentation by @Marcus-Rosti in https://github.com/http4s/http4s/pull/7316
Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.23 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7220
- Update netty-buffer, netty-codec-http to 4.1.95.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7221
- Update netty-buffer, netty-codec-http to 4.1.96.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7227
- Update sbt to 1.9.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7223
- Update sbt-scala-native-crossproject to 1.3.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7202
- Update scalafmt-core to 3.7.11 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7226
- Update Java-WebSocket to 1.5.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7222
- Update fs2-core, fs2-io to 3.8.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7229
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7233
- Update scalafmt-core to 3.7.12 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7235
- Update cats-core, cats-laws to 2.10.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7239
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7244
- Update netty-buffer, netty-codec-http to 4.1.97.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7247
- Update sbt to 1.9.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7248
- Update epollcat to 0.1.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7253
- Update scalafmt-core to 3.7.13 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7254
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7255
- Update fs2-core, fs2-io to 3.9.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7258
- Update fs2-core, fs2-io to 3.9.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7259
- Update circe-core, circe-generic, ... to 0.14.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7260
- Update scalafmt-core to 3.7.14 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7263
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7266
- Update nscplugin, sbt-scala-native, ... to 0.4.15 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7267
- Update sbt-jmh to 0.4.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7268
- Update scala3-library, ... to 3.3.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7269
- Update sbt-scoverage to 2.0.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7270
- Update fs2-core, fs2-io to 3.9.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7275
- Update jnr-unixsocket to 0.38.21 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7273
- Update munit to 1.0.0-M10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7280
- Update sbt to 1.9.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7279
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7282
- Update netty-buffer, netty-codec-http to 4.1.98.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7287
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7288
- Update sbt-scalajs, scalajs-compiler, ... to 1.14.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7289
- Update cats-effect, cats-effect-std, ... to 3.5.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7291
- Update netty-buffer, netty-codec-http to 4.1.99.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7293
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7295
- Update to sbt-http4s-org 0.15.3 by @armanbilge in https://github.com/http4s/http4s/pull/7242
- Update scala-library, scala-reflect to 2.13.12 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7272
- Update sbt-http4s-org to 0.15.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7281
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7297
- Update netty-buffer, netty-codec-http to 4.1.100.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7298
- Update nscplugin, sbt-scala-native, ... to 0.4.16 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7299
- Update to sbt-typelevel
0.6.0
with Laika1.0.0
by @jenshalm in https://github.com/http4s/http4s/pull/7290 - Update scodec-bits to 1.1.38 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7303
- Update sbt to 1.9.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7304
- Update scalafmt-core to 3.7.15 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7305
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7307
- Update ip4s-core, ip4s-test-kit to 3.4.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7309
- Update netty-buffer, netty-codec-http to 4.1.101.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7315
- Update munit-cats-effect to 2.0.0-M4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7318
- Update sbt-http4s-org to 0.16.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7319
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7320
New Contributors
- @lolgab made their first contribution in https://github.com/http4s/http4s/pull/7278
- @grouzen made their first contribution in https://github.com/http4s/http4s/pull/7284
- @morgen-peschke made their first contribution in https://github.com/http4s/http4s/pull/7238
- @plokhotnyuk made their first contribution in https://github.com/http4s/http4s/pull/7228
- @Marcus-Rosti made their first contribution in https://github.com/http4s/http4s/pull/7316
- @LaurenceWarne made their first contribution in https://github.com/http4s/http4s/pull/7265
- @sgjbryan made their first contribution in https://github.com/http4s/http4s/pull/7234
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.23...v0.23.24
v0.23.23 (2023-07-19)
This release includes assorted fixes and optimizations for Ember.
What's Changed
http4s-ember-core
- Some micro-optimisations in
ember-core
by @danicheg in https://github.com/http4s/http4s/pull/7154
http4s-ember-server
- Disable Ember server TLS logging more aggressively by @armanbilge in https://github.com/http4s/http4s/pull/7204
- Immediately release invalid connections in
getValidManaged
by @armanbilge in https://github.com/http4s/http4s/pull/7218 - WebSocketHelpers.scala - Use Chunks by @diesalbla in https://github.com/http4s/http4s/pull/7214
http4s-ember-client
- Improve error messages for MissingHost and MissingPort by @george-wilson-rea in https://github.com/http4s/http4s/pull/7207
Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.22 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7192
- Update scalafmt-core to 3.7.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7197
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7200
- Update scalafmt-core to 3.7.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7201
- Update sbt to 1.9.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7203
- Update scalafmt-core to 3.7.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7205
- Update scalafmt-core to 3.7.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7210
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7217
- Update scalafmt-core to 3.7.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7215
New Contributors
- @george-wilson-rea made their first contribution in https://github.com/http4s/http4s/pull/7207
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.22...v0.23.23
v1.0.0-M40 (2023-07-13)
What's Changed
http4s-core
- Fix misleading
EntityBody
mentions in some scaladocs by @danicheg in https://github.com/http4s/http4s/pull/6955 - Tweak performance of
QueryOps#withQueryParam
by @danicheg in https://github.com/http4s/http4s/pull/6864 - Deprecate Entity Apply by @diesalbla in https://github.com/http4s/http4s/pull/6305
- Expunge all unsafe logging by @armanbilge, @iRevive in https://github.com/http4s/http4s/pull/6645, https://github.com/http4s/http4s/pull/7122
- Migrate
Uri.Scheme
andTransferCoding
toCIString
by @froth in https://github.com/http4s/http4s/pull/7164
http4s-server
- More comprehensive support of
Entity
model inJsonp
Middleware by @danicheg in https://github.com/http4s/http4s/pull/6937 - Take account of
Entity
model inBracketRequestResponse
Middleware by @danicheg in https://github.com/http4s/http4s/pull/6957 - Use
Clock
fromCE
instead of one fromjava.time
inCSRF
Middleware by @danicheg in https://github.com/http4s/http4s/pull/7166
http4s-client
- Rectify
Client#fromHttpApp
by @danicheg in https://github.com/http4s/http4s/pull/7148
Documentation
- Fix
Entity
docs by @danicheg in https://github.com/http4s/http4s/pull/7067 - Update adopters.md by @dantb in https://github.com/http4s/http4s/pull/7107
Behind the scenes
- Ignore sbt-jmh updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6952
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/6970 - Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/7025 - Clean up internal package by @danicheg in https://github.com/http4s/http4s/pull/7030
- Ignore crossproject updates on main by @armanbilge in https://github.com/http4s/http4s/pull/7048
- Ignore sbt-revolver updates on main by @armanbilge in https://github.com/http4s/http4s/pull/7052
- Fix semantic merge conflicts following #6305 by @armanbilge in https://github.com/http4s/http4s/pull/7063
- 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/7115
- Use
MonadThrow
instead ofSync
inH2Client.RequestKey#getAddress
by @danicheg in https://github.com/http4s/http4s/pull/7167 - 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/7172
- Clear the internal package of unused/deprecated things by @froth in https://github.com/http4s/http4s/pull/7158
- Ignore
scalac-compat-annotation
updates on main by @danicheg in https://github.com/http4s/http4s/pull/7179 - Cleanup of
org.http4s.internal
by @froth in https://github.com/http4s/http4s/pull/7175 - Merge
v0.23.22
intomain
by @danicheg in https://github.com/http4s/http4s/pull/7211
New Contributors
- @froth made their first contribution in https://github.com/http4s/http4s/pull/7164
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M39...v1.0.0-M40
v0.23.22 (2023-06-28)
This release includes assorted fixes for Ember.
What's Changed
http4s-core
- Fix
QueryOps#setQueryParams
scaladoc by @danicheg in https://github.com/http4s/http4s/pull/7126
http4s-ember-core
- Include query params in http2 :path pseudo header by @ybasket in https://github.com/http4s/http4s/pull/7180
- A bunch of tweaks to
ClientHelpers
' methods by @danicheg in https://github.com/http4s/http4s/pull/7173
http4s-ember-server
- Properly handle
NoSuchElementException
intlsSocket.applicationProtocol
by @arturaz in https://github.com/http4s/http4s/pull/7092 - Allow providing custom error handler when connection establishing fails. by @arturaz in https://github.com/http4s/http4s/pull/7093
Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.21 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7169
- Disable artifact upload by @armanbilge in https://github.com/http4s/http4s/pull/7168
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7099
- Update netty-buffer, netty-codec-http to 4.1.94.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7174
- Update munit to 1.0.0-M8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7145
- Update scalac-compat-annotation to 0.1.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7177
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7181
- Update cats-effect, cats-effect-std, ... to 3.5.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7182
- Update cats-parse to 0.3.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7184
- Update sbt to 1.9.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7185
- Update jawn-parser to 1.5.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7186
- Update scalac-compat-annotation to 0.1.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7187
- Use
Assertions#assume
in tests by @danicheg in https://github.com/http4s/http4s/pull/7183 - flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7188
New Contributors
- @arturaz made their first contribution in https://github.com/http4s/http4s/pull/7092
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.21...v0.23.22
v0.23.21 (2023-06-16)
This release fixes another regression in Ember HTTP/2.
What's Changed
http4s-server
- Use
ClockOps
inResponseTiming
Middleware by @danicheg in https://github.com/http4s/http4s/pull/7163
http4s-ember-core
- Close H2
readBuffer
onheaders.endStream
by @armanbilge in https://github.com/http4s/http4s/pull/7156 - Use
ClockOps
inUtil#readWithTimeout
by @danicheg in https://github.com/http4s/http4s/pull/7162
http4s-ember-server
- Mask errors in Ember server
runConnection
by @armanbilge in https://github.com/http4s/http4s/pull/7157
Behind the scenes
- Update http4s-circe, http4s-ember-client, ... to 0.23.20 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7153
- Simplify type in
H2Server#h2cUpgradeHttpRoute
by @danicheg in https://github.com/http4s/http4s/pull/7159
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.20...v0.23.21
v0.23.20 (2023-06-12)
This release fixes a critical regression in Ember HTTP/2. It also upgrades to Scala 3.3.0 LTS.
What's Changed
http4s-core
- Add missing constructors to
ContextRoutes
by @hamnis in https://github.com/http4s/http4s/pull/7123 - Add
Upgrade-Insecure-Requests
header model by @diogocanut in https://github.com/http4s/http4s/pull/7129 - Update scala3-library, ... to 3.3.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7131
http4s-server
- Add handling for fragmented frames in WebSockets by @mox692 in https://github.com/http4s/http4s/pull/7091
http4s-ember-core
- Close
H2Stream
readBuffer
ondata.endStream
by @armanbilge in https://github.com/http4s/http4s/pull/7147
Documentation
- fixes wrong link in "Server Middleware" page in the docs #7117 by @rsemlal in https://github.com/http4s/http4s/pull/7118
- Added more examples to the doc (shortcut to create Responses) by @walesho in https://github.com/http4s/http4s/pull/7120
Behind the scenes
- Fix release date by @armanbilge in https://github.com/http4s/http4s/pull/7114
- Update http4s-circe, http4s-ember-client, ... to 0.23.19 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7116
- Update netty-buffer, netty-codec-http to 4.1.93.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7124
- Update scalafmt-core to 3.7.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7130
- Update jawn-parser to 1.5.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7132
- Update sbt-scoverage to 2.0.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7134
- Update sbt-jmh to 0.4.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7136
- Update nscplugin, sbt-scala-native, ... to 0.4.14 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7139
- Update epollcat to 0.1.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7140
- Update jnr-unixsocket to 0.38.20 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7141
- Update sbt to 1.9.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7133
- Update sbt-http4s-org to 0.14.13 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7137
- Update scala-library, scala-reflect to 2.12.18 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7143
- Update scala-library, scala-reflect to 2.13.11 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7144
New Contributors
- @rsemlal made their first contribution in https://github.com/http4s/http4s/pull/7118
- @walesho made their first contribution in https://github.com/http4s/http4s/pull/7120
- @diogocanut made their first contribution in https://github.com/http4s/http4s/pull/7129
- @mox692 made their first contribution in https://github.com/http4s/http4s/pull/7091
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.19...v0.23.20
v0.23.19 (2023-05-12)
This release updates to Cats Effect v3.5.0 which includes an important change to the cancelation semantics of the Async#async
and IO.async
methods. Please check the Cats Effect release notes for v3.5.0 for more details. These changes do not affect Ember, but they do affect Blaze (see https://github.com/http4s/blaze/issues/772) and possibly other http4s backends.
What's Changed
http4s-core
- Add X-Content-Type-Options header by @sierikov in https://github.com/http4s/http4s/pull/6981
- Fix base64 parser for http headers Web-Socket-Key and Web-Socket-Accept by @danghieutrung in https://github.com/http4s/http4s/pull/7037
- Add application/graphql media type by @keirlawson in https://github.com/http4s/http4s/pull/7055
- Update log4cats-core, log4cats-noop, ... to 2.6.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7084
- Fix resolving of root / URIs by @armanbilge in https://github.com/http4s/http4s/pull/7064
- Update cats-effect, cats-effect-std, ... to 3.5.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7110
- Update fs2-core, fs2-io to 3.7.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7112
http4s-laws
- Fix Keep Alive property flake test by @kovstas in https://github.com/http4s/http4s/pull/7019
http4s-server
- Tweak the
Router#translate
by @danicheg in https://github.com/http4s/http4s/pull/7083
http4s-client
- Fix
Client.fromHttpApp
does not drain bodies by @kovstas in https://github.com/http4s/http4s/pull/7020
http4s-client-testkit
- add WSTestClient builder from HttpApp by @kovstas in https://github.com/http4s/http4s/pull/7053
http4s-ember-core
- Support ember http/2 over unix sockets by @armanbilge in https://github.com/http4s/http4s/pull/7039
Hpack
optimizations by @armanbilge in https://github.com/http4s/http4s/pull/7086- Use
Channel
for H2readBuffer
by @armanbilge in https://github.com/http4s/http4s/pull/7096 - Encode trailer headers in Ember by @armanbilge in https://github.com/http4s/http4s/pull/6756
Documentation
- Server middleware documentation by @fredshonorio in https://github.com/http4s/http4s/pull/6992
- Fix typo on the quickstart page by @danicheg in https://github.com/http4s/http4s/pull/7026
- Fix a broken link to JDKHttpClient in the docs by @satorg in https://github.com/http4s/http4s/pull/7045
- Document ErrorAction middleware by @Quafadas in https://github.com/http4s/http4s/pull/6953
Behind the scenes
- Don't upload test artifacts by @armanbilge in https://github.com/http4s/http4s/pull/7027
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7032
- Update ip4s-core, ip4s-test-kit to 3.3.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7033
- Update nscplugin, sbt-scala-native, ... to 0.4.12 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7034
- Update logback-classic to 1.2.12 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7035
- Update fs2-core, fs2-io to 3.7.0-RC4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7036
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7040
- Update scalafmt-core to 3.7.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7041
- Tweak
build.sbt
by @danicheg in https://github.com/http4s/http4s/pull/7042 - Update netty-buffer, netty-codec-http to 4.1.91.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7043
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7044
- Update sbt-scala-native-crossproject to 1.3.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7047
- Update sbt-revolver to 0.10.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7051
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7056
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7057
- Adopt scala-native-config-brew by @armanbilge in https://github.com/http4s/http4s/pull/6724
- Update sbt-scala-native-crossproject to 1.3.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7071
- Update cats-effect, cats-effect-std, ... to 3.5.0-RC4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7074
- Ember-Core H2Connection: extract "WriteChunk" auxiliary function. by @diesalbla in https://github.com/http4s/http4s/pull/7069
- Update sbt-http4s-org to 0.14.12 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7076
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7089
- Update netty-buffer, netty-codec-http to 4.1.92.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7090
- Ember-Core H2Stream - Extract "cancelWith" method. by @diesalbla in https://github.com/http4s/http4s/pull/7075
- Update cats-effect, cats-effect-std, ... to 3.5.0-RC5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7094
- Ember-Core State - Extract factory method by @diesalbla in https://github.com/http4s/http4s/pull/7070
- Ember-Core / H2Stream / sendData: for-comp is not tail-recursive. by @diesalbla in https://github.com/http4s/http4s/pull/7079
- Update fs2-core, fs2-io to 3.7.0-RC5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7098
- Update case-insensitive, ... to 1.4.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7109
- Update sbt to 1.8.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7111
New Contributors
- @sierikov made their first contribution in https://github.com/http4s/http4s/pull/6981
- @kovstas made their first contribution in https://github.com/http4s/http4s/pull/7019
- @danghieutrung made their first contribution in https://github.com/http4s/http4s/pull/7037
- @Quafadas made their first contribution in https://github.com/http4s/http4s/pull/6953
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.19-RC3...v0.23.19
v0.23.19-RC3 (2023-03-15)
This release candidate ships several fixes to Ember client and server. It is built against Cats Effect v3.5.0-RC3 and FS2 v3.7.0-RC2.
What's Changed
http4s-core
- Add Deprecation and Sunset Headers by @zan-preston in https://github.com/http4s/http4s/pull/6991
http4s-ember-core
- All received messages in h2 could have trailers by @ChristopherDavenport in https://github.com/http4s/http4s/pull/7021
- Redirect
H2Connection.writeLoop
errors to logger by @armanbilge in https://github.com/http4s/http4s/pull/7016
http4s-ember-client
- Add ability to disable SNI in Ember by @joan38 in https://github.com/http4s/http4s/pull/6990
- Detect terminated
EmberConnection
s in ember client prior to attempting a request by @armanbilge in https://github.com/http4s/http4s/pull/6980
http4s-ember-server
- Handle EndOfStream error in Ember WebSocket server by @zAPFy in https://github.com/http4s/http4s/pull/7008
- Special Case Error Handler For Unparsable Request Line by @isomarcte in https://github.com/http4s/http4s/pull/6934
http4s-circe
- Update circe-core, circe-generic, ... to 0.14.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7012
Behind the scenes
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7007
- Update nix and cachix actions by @armanbilge in https://github.com/http4s/http4s/pull/7011
- Update sbt-http4s-org to 0.14.11 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7013
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7022
- Update netty-buffer, netty-codec-http to 4.1.90.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7023
New Contributors
- @zan-preston made their first contribution in https://github.com/http4s/http4s/pull/6991
- @zAPFy made their first contribution in https://github.com/http4s/http4s/pull/7008
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.19-RC2...v0.23.19-RC3
v0.23.19-RC2 (2023-02-28)
This release candidate updates to Cats Effect v3.5.0-RC3 and FS2 v3.7.0-RC2.
What's Changed
http4s-core
- Update cats-effect, cats-effect-std, ... to 3.5.0-RC3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7004
- Update fs2-core, fs2-io to 3.7.0-RC2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7005
http4s-server
- Use
ByteVector#toHex
inCSRF
Middleware by @danicheg in https://github.com/http4s/http4s/pull/6984 - Use
ByteVector#fromHex
inCSRF
Middleware by @danicheg in https://github.com/http4s/http4s/pull/7002
http4s-client
JavaNetClient
does not needAsync
by @armanbilge in https://github.com/http4s/http4s/pull/6996
Documentation
- Clarify module choices in quickstart docs by @armanbilge in https://github.com/http4s/http4s/pull/6977
Behind the scenes
- Update sbt-native-packager to 1.9.16 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6987
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6988
- Update scalafmt-core to 3.7.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6997
- Update scodec-bits to 1.1.36 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6998
- Update scodec-bits to 1.1.37 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7003
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.19-RC1...v0.23.19-RC2
v0.23.19-RC1 (2023-02-20)
This release candidate updates to Cats Effect v3.5.0-RC2, which brings major changes, as well as FS2 v3.7.0-RC1. Otherwise there are no significant changes in http4s itself.
What's Changed
http4s-core
- Update nscplugin, sbt-scala-native, ... to 0.4.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6946
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6962
- Update scodec-bits to 1.1.35 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6961
- Allow to customize flags for file decoders by @armanbilge in https://github.com/http4s/http4s/pull/6982
- Update to CE v3.5.0-RC2, FS2 v3.7.0-RC1 by @armanbilge in https://github.com/http4s/http4s/pull/6985
http4s-ember-server
- Fix hanging when stream fails by @TimWSpence in https://github.com/http4s/http4s/pull/6930
Documentation
- Phase out the client DSL in the docs by @gringrape in https://github.com/http4s/http4s/pull/6944
- Add section with sbt dependencies to quickstart by @valencik in https://github.com/http4s/http4s/pull/6963
Behind the scenes
- Update sbt-native-packager to 1.9.13 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6928
- Update http4s-circe, http4s-ember-client, ... to 0.23.18 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6929
- Update scalafmt-core to 3.7.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6932
- Update scalafmt-core to 3.7.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6938
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6949
- Refactor
Outcome
usage inBracketRequestResponseSuite
by @danicheg in https://github.com/http4s/http4s/pull/6948 - Update sbt-jmh to 0.4.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6951
- Update cats-effect, cats-effect-std, ... to 3.4.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6956
- Update scala-java-time to 2.5.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6833
- Update locales-minimal-en_us-db to 1.5.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6832
- Update scala3-library, ... to 3.2.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6947
- Update fs2-core, fs2-io to 3.6.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6964
- Update sbt-native-packager to 1.9.14 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6966
- Update fs2-core, fs2-io to 3.6.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6967
- Update sbt-scoverage to 2.0.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6969
- Update netty-buffer, netty-codec-http to 4.1.88.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6971
- Update netty-buffer, netty-codec-http to 4.1.89.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6972
- Update sbt-native-packager to 1.9.15 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6973
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6974
- Update cats-effect, cats-effect-std, ... to 3.4.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6975
- Tweak
MetricsOps#classifierFMethodWithOptionallyExcludedPath
by @danicheg in https://github.com/http4s/http4s/pull/6976 - Update epollcat to 0.1.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6983
New Contributors
- @gringrape made their first contribution in https://github.com/http4s/http4s/pull/6944
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.18...v0.23.19-RC1
v1.0.0-M39 (2023-01-24)
This bugfix release merges forward v0.23.18 and is binary compatible with v1.0.0-M38.
What's Changed
http4s-ember-core
-
Take into account the
Entity
model inH2Server
by @danicheg in https://github.com/http4s/http4s/pull/6936http4s-ember-client
-
Don't drain the body for non-streamed entities in EmberClient by @danicheg in https://github.com/http4s/http4s/pull/6935
Behind the scenes
- Remove nonValidatingCopyConstructor linter by @rossabaker in https://github.com/http4s/http4s/pull/6914
- Merge 0.23.18 -> main by @rossabaker in https://github.com/http4s/http4s/pull/6939
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M38...v1.0.0-M39
v0.23.18 (2023-01-17)
This is a bugfix that addresses a fatal error that affects a small number of people. It also contains some optimizations and important dependency upgrades, including a memory leak in Cats Effect.
What's Changed
http4s-core
- Use
Chunk
builder instead ofBuffer
inChunkWriter
by @danicheg in https://github.com/http4s/http4s/pull/6919 - Fix StackOverflowError initializing CommonRules by @rossabaker in https://github.com/http4s/http4s/pull/6920
- Update cats-effect, cats-effect-std, ... to 3.4.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6924
- Update fs2-core, fs2-io to 3.5.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6925
http4s-ember-core
-
Fix Ember H2 end of stream handling by @valencik, @janilcgarcia in https://github.com/http4s/http4s/pull/6882
http4s-circe
-
Use
Chunk
builder inCirceInstances#streamedJsonArray
by @danicheg in https://github.com/http4s/http4s/pull/6922Behind the scenes
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6898
- Try limiting Node.js heap size to 1GB by @armanbilge in https://github.com/http4s/http4s/pull/6894
- Update sbt to 1.8.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6900
- Update cats-parse to 0.3.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6902
- Post v0.21.34 cleanup by @rossabaker in https://github.com/http4s/http4s/pull/6904
- Update http4s-circe, http4s-ember-client, ... to 0.23.17 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6907
- Post-0.23.17 cleanup by @rossabaker in https://github.com/http4s/http4s/pull/6906
- Update sbt to 1.8.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6909
- Update sbt-http4s-org to 0.14.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6912
- Update netty-buffer, netty-codec-http to 4.1.87.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6918
- Low-hanging Ember optimizations by @armanbilge in https://github.com/http4s/http4s/pull/6753
- Even less memory for Node.js by @armanbilge in https://github.com/http4s/http4s/pull/6921
- Update sbt-native-packager to 1.9.12 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6923
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.17...v0.23.18
v0.23.17 (2023-01-04)
What's Changed
http4s-core
Cross-Origin-Resource-Policy
header model by @samspills in https://github.com/http4s/http4s/pull/6709- Add
Uri.Host.fromString
method by @CraigHammondDexcom in https://github.com/http4s/http4s/pull/6741 - Fix some scaladocs by @danicheg in https://github.com/http4s/http4s/pull/6586
- More efficient string building from
Headers
by @danicheg in https://github.com/http4s/http4s/pull/6776 - Use modeled headers in CORS middleware by @danicheg in https://github.com/http4s/http4s/pull/6790
- Update cats-core, cats-laws to 2.9.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6804
- Deprecate
Query#apply
by @danicheg in https://github.com/http4s/http4s/pull/6817 - Reduce JS size by @armanbilge in https://github.com/http4s/http4s/pull/6835
- Deprecate event stream entity decoder by @armanbilge in https://github.com/http4s/http4s/pull/6843
- Use
Temporal#realTime
in client retry middleware by @armanbilge in https://github.com/http4s/http4s/pull/6834 - Fix for 6851 : Uri.Path.Segment can throw from its equals method by @mattyjbrown in https://github.com/http4s/http4s/pull/6853
- Fixes CVE-2023-22465
- Update sbt-scalajs, scalajs-compiler, ... to 1.11.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6815
- Update epollcat to 0.1.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6841
- Update cats-effect, cats-effect-std, ... to 3.4.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6884
-
Update vault to 3.5.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6892
http4s-server
- Reuse predefined
AuthScheme
values by @danicheg in https://github.com/http4s/http4s/pull/6778 - Update cats-effect, cats-effect-std, ... to 3.4.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6805
- Fixes resourceServiceBuilder to work on Windows by @mabasic in https://github.com/http4s/http4s/pull/6826
-
Tweak body interrupting for better performance of
DefaultHead
Middleware by @danicheg in https://github.com/http4s/http4s/pull/6855http4s-client
- Relax constraints for client gzip middleware by @armanbilge in https://github.com/http4s/http4s/pull/6819
-
Use Node.js 18 in devshell/CI by @armanbilge in https://github.com/http4s/http4s/pull/6828
http4s-ember-core
- Ember-Core H2Stream readBody: extract "pullBuffer" function. by @diesalbla in https://github.com/http4s/http4s/pull/6627
- Special-case
EmptyBody
in request encoder by @armanbilge in https://github.com/http4s/http4s/pull/6752 - Ember-Core: simplify logic for push promises. by @diesalbla in https://github.com/http4s/http4s/pull/6772
- Use Vault#contains to check for PriorKnowledge by @valencik in https://github.com/http4s/http4s/pull/6893
-
Update jnr-unixsocket to 0.38.19 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6810
http4s-ember-server
Shutdown#trackConnection
should never be empty by @armanbilge in https://github.com/http4s/http4s/pull/6781- Add withAdditionalSocketOptions to EmberServerBuilder by @TimWSpence in https://github.com/http4s/http4s/pull/6786
-
Fix resource leaks by @TimWSpence in https://github.com/http4s/http4s/pull/6825
http4s-jawn
-
Update jawn-fs2 to 2.4.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6726
http4s-circe
-
Call Chunk.toByteBuffer directly by @CremboC in https://github.com/http4s/http4s/pull/6716
Documentation
- Clean up client doc a bit by @bplommer in https://github.com/http4s/http4s/pull/6702
- apply syntax highlighting to code blocks in
contributing.md
by @yoshinorin in https://github.com/http4s/http4s/pull/6708 - Added scala k8s to libraries in the adopters page by @hnaderi in https://github.com/http4s/http4s/pull/6714
- Using
mdoc:silent
more liberally throughout docs by @valencik in https://github.com/http4s/http4s/pull/6705 - docs: remove
Future[_]
from presupplied encoders by @yoshinorin in https://github.com/http4s/http4s/pull/6749 - Revamp the integrations page by @armanbilge in https://github.com/http4s/http4s/pull/6801
- Partially Rewrite Client Docs by @valencik in https://github.com/http4s/http4s/pull/6725
- Add http4s-netty to integrations by @hamnis in https://github.com/http4s/http4s/pull/6848
- Add fs2-data to integrations docs page by @ybasket in https://github.com/http4s/http4s/pull/6850
-
Update
Uri.fromString
return type in client docs by @yoshinorin in https://github.com/http4s/http4s/pull/6861Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.16 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6687
- Update scalacheck to 1.17.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6686
- Setup linking paths for OpenSSL on macOS by @armanbilge in https://github.com/http4s/http4s/pull/6691
- Update epollcat to 0.1.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6695
- Update scala-library, scala-reflect to 2.12.17 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6693
- Update sbt-http4s-org to 0.14.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6688
- Update sbt-scoverage to 2.0.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6707
- Use ubuntu-22.04 in ci by @armanbilge in https://github.com/http4s/http4s/pull/6715
- Invoke brew via full path by @armanbilge in https://github.com/http4s/http4s/pull/6722
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6723
- Provide a dev shell per Java version by @rossabaker in https://github.com/http4s/http4s/pull/6728
- Update sbt to 1.7.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6729
- Use Nix for CI by @armanbilge in https://github.com/http4s/http4s/pull/6727
- Update scala3-library, ... to 3.2.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6730
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6731
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6734
- Update sbt-scoverage to 2.0.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6742
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6743
- Update netty-buffer, netty-codec-http to 4.1.84.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6744
- Ember-Core / H2Client / fromSocket: split for comprehension. by @diesalbla in https://github.com/http4s/http4s/pull/6618
- Ember-Core H2Server: Extract "fulfill push promises" procedure. by @diesalbla in https://github.com/http4s/http4s/pull/6624
- H2Stream - changes and code rewrites. by @diesalbla in https://github.com/http4s/http4s/pull/6660
- Make StreamForking resource safe in the face of cancelation by @RafalSumislawski in https://github.com/http4s/http4s/pull/6745
- Ember-Core H2Server: get streamCreationLock from H2Connection by @diesalbla in https://github.com/http4s/http4s/pull/6638
- Update scala-library, scala-reflect to 2.13.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6750
- Update sbt-http4s-org to 0.14.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6748
- Ember-Core: factor to H2Server loops from H2Client, H2Server. by @diesalbla in https://github.com/http4s/http4s/pull/6754
- FS2 Streams: replace "evalMap" with "foreach". by @diesalbla in https://github.com/http4s/http4s/pull/6757
- Update scalafmt-core to 3.6.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6760
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6761
- Update sbt-scoverage to 2.0.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6764
- A bit more efficient string building from
Seq
collections by @danicheg in https://github.com/http4s/http4s/pull/6766 - flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6773
- Don't instantiate redundant
NonEmptyList
inWriter#addList
by @danicheg in https://github.com/http4s/http4s/pull/6777 - Update sbt to 1.7.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6779
- Update scalafmt-core to 3.6.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6782
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6783
- Remove unnecessary native settings by @armanbilge in https://github.com/http4s/http4s/pull/6784
- Fix some typos by @danicheg in https://github.com/http4s/http4s/pull/6785
- Fix the wrong
Http4sClientDsl
location by @danicheg in https://github.com/http4s/http4s/pull/6788 - Scala specific nowarnX annotations by @satorg in https://github.com/http4s/http4s/pull/6751
- Update scala3-library, ... to 3.2.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6792
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6794
- Update sbt to 1.8.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6803
- Update netty-buffer, netty-codec-http to 4.1.85.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6797
- Update to Cats Effect 3.4.0-RC2 by @armanbilge in https://github.com/http4s/http4s/pull/6747
- Rm redundant comments in
Status
by @danicheg in https://github.com/http4s/http4s/pull/6807 - Update sbt-http4s-org to 0.14.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6808
- Update jnr-unixsocket to 0.38.18 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6809
- Update cats-effect, cats-effect-std, ... to 3.4.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6811
- Update locales-minimal-en_us-db to 1.5.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6799
- Update munit to 1.0.0-M7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6813
- Update epollcat to 0.1.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6816
- Fix some deprecation warning messages by @danicheg in https://github.com/http4s/http4s/pull/6818
- Update sbt-http4s-org to 0.14.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6823
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6824
- Update nscplugin, sbt-scala-native, ... to 0.4.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6829
- Delete flake workflow by @armanbilge in https://github.com/http4s/http4s/pull/6836
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6837
- Update cats-effect, cats-effect-std, ... to 3.4.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6838
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6849
- Mark method
CharPredicate.asMaskBased
as deprecated by @danicheg in https://github.com/http4s/http4s/pull/6847 - Update vault to 3.4.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6854
- Use cached value of
Right(())
to avoid allocations by @danicheg in https://github.com/http4s/http4s/pull/6856 - Update netty-buffer, netty-codec-http to 4.1.86.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6858
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6859
- Eliminate redundant conversions to list by @danicheg in https://github.com/http4s/http4s/pull/6865
- Tweak
Accept
usage to avoid variadic construction by @valencik in https://github.com/http4s/http4s/pull/6866 - flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6871
- Update cats-effect, cats-effect-std, ... to 3.4.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6877
- Replace numbered RFC rule objects by @rossabaker in https://github.com/http4s/http4s/pull/6863
- Fix formatting of some scaladocs in core by @danicheg in https://github.com/http4s/http4s/pull/6862
- Tweak stream compiling to hex string in
Logger
by @danicheg in https://github.com/http4s/http4s/pull/6881 - JS-Artifact: set header copyright to 2022 by @diesalbla in https://github.com/http4s/http4s/pull/6887
- Ember server reduce state by @diesalbla in https://github.com/http4s/http4s/pull/6888
- Tweak
UrlForm
constructors' performance by @danicheg in https://github.com/http4s/http4s/pull/6795 - Merge 0.22 -> 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/6891
- Use jdk8 in default devshell by @rossabaker in https://github.com/http4s/http4s/pull/6896
New Contributors
- @yoshinorin made their first contribution in https://github.com/http4s/http4s/pull/6708
- @hnaderi made their first contribution in https://github.com/http4s/http4s/pull/6714
- @samspills made their first contribution in https://github.com/http4s/http4s/pull/6709
- @CraigHammondDexcom made their first contribution in https://github.com/http4s/http4s/pull/6741
- @mabasic made their first contribution in https://github.com/http4s/http4s/pull/6826
- @mattyjbrown made their first contribution in https://github.com/http4s/http4s/pull/6853
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.16...v0.23.17
v0.22.15 (2023-01-04)
What's Changed
http4s-core
- Fixes CVE-2023-22465
Behind the scenes
- Set LoggingHandler in NettyTestServer to the default DEBUG level by @RafalSumislawski in https://github.com/http4s/http4s/pull/6497
Full Changelog: https://github.com/http4s/http4s/compare/v0.22.14...v0.22.15
v0.21.34 (2023-01-04)
What's changed
http4s-core
- Fixes CVE-2023-22465
Behind the scenes
- Don't publish website from 0.21 by @armanbilge in https://github.com/http4s/http4s/pull/6151
Full Changelog: https://github.com/http4s/http4s/compare/v0.21.33...v0.21.34
v1.0.0-M37 (2022-09-20)
This release is the latest milestone in the 1.x series, and is not binary compatible with previous 1.0 milestones. It also includes the changes from v0.23.16, including Scala Native support for all modules.
What's Changed
Documentation
- Add doc for mixing left- and right-associative by @jan0sch in https://github.com/http4s/http4s/pull/6598
Behind the scenes
- Ignore case-insensitive updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6643
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/6664 - Ignore munit-cats-effect updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6669
- Ignore scalacheck updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6684
- Ignore keypool updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6675
- 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6692
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M36...v1.0.0-M37
v0.23.16 (2022-09-15)
This release is binary compatible with the 0.23.x series. This is the first release that supports the Scala Native platform. All modules were cross-built, including:
- core, dsl, and laws
-
server and client, including middlewares
- middlewares relying on cryptography require OpenSSL
-
ember server and client, including support for HTTP/2 and TLS
- requires an I/O-integrated runtime for Cats Effect such as epollcat
- requires s2n-tls for TLS
- jawn and circe
In addition, a new cURL-based client backend is developed in a satellite repo.
What's Changed
- Scala Native by @armanbilge in https://github.com/http4s/http4s/pull/6661
http4s-core
- RFC: Phase out log4s by @armanbilge in https://github.com/http4s/http4s/pull/6614
- Update fs2-core, fs2-io to 3.3.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6670
http4s-server
- Default redactHeadersWhen to include any header with "token" #6186 by @Lasering in https://github.com/http4s/http4s/pull/6649
http4s-client
- Deprecate some methods in
Client
by @danicheg in https://github.com/http4s/http4s/pull/6651 - Default redactHeadersWhen to include any header with "token" #6186 by @Lasering in https://github.com/http4s/http4s/pull/6649
http4s-ember-server
- Expose
Network
constraint in ember builders by @armanbilge in https://github.com/http4s/http4s/pull/6526
http4s-ember-client
- Expose
Network
constraint in ember builders by @armanbilge in https://github.com/http4s/http4s/pull/6526
http4s-circe
- Update circe-core, circe-generic, ... to 0.14.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6679
Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.15 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6635
- Update netty-buffer, netty-codec-http to 4.1.80.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6640
- Update case-insensitive, ... to 1.3.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6642
- Pin slf4j to 1.x and cleanup by @armanbilge in https://github.com/http4s/http4s/pull/6644
- Pin
logback-classic
to the1.2.x
series by @danicheg in https://github.com/http4s/http4s/pull/6647 - Update fs2-core, fs2-io to 3.2.14 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6656
- Update netty-buffer, netty-codec-http to 4.1.81.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6659
- Update to munit 1.0.0-M6 by @armanbilge in https://github.com/http4s/http4s/pull/6657
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6662
- Update netty-buffer, netty-codec-http to 4.1.82.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6663
- Update munit-cats-effect to 2.0.0-M3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6667
- Update ip4s-core, ip4s-test-kit to 3.2.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6666
- Update scalacheck-effect, ... to 2.0.0-M2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6668
- Update keypool to 0.4.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6673
- Update vault to 3.3.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6674
- Update sbt-scoverage to 2.0.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6672
- Update log4cats-core, log4cats-noop, ... to 2.5.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6678
- Update jawn-fs2 to 2.3.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6677
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.15...v0.23.16
v1.0.0-M36 (2022-08-23)
This release is the latest milestone in the 1.x series, and is not binary compatible with previous 1.0 milestones. It also includes the changes from v0.23.15.
What's Changed
http4s-core
- Use
scodec.bits.ByteVector
forEntity.Strict
by @armanbilge in https://github.com/http4s/http4s/pull/6528 - Smite
Seq
inMessage#multiParams
,Uri#multiParams
,Query#multiParams
by @danicheg in https://github.com/http4s/http4s/pull/6524
http4s-server
- Spring cleaning: Remove unneeded temporal constraints and make some cosmetic changes by @FrancescoSerra in https://github.com/http4s/http4s/pull/6491
Documentation
- Remove references to Scala 2.12 in docs by @danicheg in https://github.com/http4s/http4s/pull/6604
- Fix 1.0 version table compatibility with 2.12 & 2.13 by @JackTreble in https://github.com/http4s/http4s/pull/6607
- Tweak the http4s.g8 example on the quick start page by @danicheg in https://github.com/http4s/http4s/pull/6608
Behind the scenes
- Release v1.0.0-M35 by @armanbilge in https://github.com/http4s/http4s/pull/6569
- Pick Sbt Scoverage from 0.23 by @danicheg in https://github.com/http4s/http4s/pull/6574
- Ignore literally updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6584
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/6612 - 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6631
New Contributors
- @JackTreble made their first contribution in https://github.com/http4s/http4s/pull/6607
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M35...v1.0.0-M36
v0.23.15 (2022-08-22)
This release is binary compatible with the 0.23.x series.
What's Changed
http4s-core
- Prettify error messages when parsing by @danicheg in https://github.com/http4s/http4s/pull/6541
- Rewrite hashcode computation for
Uri.Path
by @FrancescoSerra in https://github.com/http4s/http4s/pull/6555 - Simplify type signature for internal logger by @bplommer in https://github.com/http4s/http4s/pull/6628
- Add SourceMap header by @cobr123 in https://github.com/http4s/http4s/pull/6622
- Update fs2-core, fs2-io to 3.2.12 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6603
- Update literally to 1.1.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6583
http4s-server
- WebSocketBuilder2: make constructor public by @gvolpe in https://github.com/http4s/http4s/pull/6575
- Cross-compile
GZip
middlewares for JS by @armanbilge in https://github.com/http4s/http4s/pull/6606
http4s-client
- Fix request logger to log in the case of no request body, when
logBody=true
by @dzanot in https://github.com/http4s/http4s/pull/6535 - Cross-compile
GZip
middlewares for JS by @armanbilge in https://github.com/http4s/http4s/pull/6606
http4s-ember-core
- Set
serverNames
TLS parameter for ember h2 by @armanbilge in https://github.com/http4s/http4s/pull/6579 - Ember H2 - Do not respond to WindowUpdate with Ping by @ChristopherDavenport in https://github.com/http4s/http4s/pull/6593
- Ember H2 Connection Header Compliance by @ChristopherDavenport in https://github.com/http4s/http4s/pull/6600
- Don't backtrack in request/response prelude parsing by @TimWSpence in https://github.com/http4s/http4s/pull/6578
- Ember Core - H2Server - Split for comprehension by @diesalbla in https://github.com/http4s/http4s/pull/6613
http4s-ember-server
- Always respond to client close frame with 1000 "normal closure" by @yurique in https://github.com/http4s/http4s/pull/6594
- Parse all WebSocket frames in a
Chunk
in ember-server by @buntec in https://github.com/http4s/http4s/pull/6587
Documentation
- Fix typo: Add missing comma by @mikela in https://github.com/http4s/http4s/pull/6589
- Tweak client page by @danicheg in https://github.com/http4s/http4s/pull/6605
- Update quickstart guide to include Scala 3 branch by @dsusviela in https://github.com/http4s/http4s/pull/6620
Behind the scenes
- Release v0.23.14 by @armanbilge in https://github.com/http4s/http4s/pull/6568
- Update http4s-circe, http4s-ember-client, ... to 0.23.14 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6570
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6571
- Update sbt-scoverage to 2.0.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6573
- Update sbt-native-packager to 1.9.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6599
- Update sbt-scoverage to 2.0.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6601
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6602
- Update scalafmt-core to 3.5.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6609
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6615
- Update sbt-native-packager to 1.9.11 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6616
New Contributors
- @mikela made their first contribution in https://github.com/http4s/http4s/pull/6589
- @buntec made their first contribution in https://github.com/http4s/http4s/pull/6587
- @dzanot made their first contribution in https://github.com/http4s/http4s/pull/6535
- @TimWSpence made their first contribution in https://github.com/http4s/http4s/pull/6578
- @dsusviela made their first contribution in https://github.com/http4s/http4s/pull/6620
- @cobr123 made their first contribution in https://github.com/http4s/http4s/pull/6622
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.14...v0.23.15
v1.0.0-M35 (2022-07-25)
This release is the latest milestone in the 1.x series, and is not binary compatible with previous 1.0 milestones. It also includes the changes from v0.23.13 and updates fs2 to v3.2.11 which includes a security patch for GHSA-2cpx-6pqp-wf35.
What's Changed
http4s-core
- Remove redundant collection converting in
Query#multiParams
by @danicheg in https://github.com/http4s/http4s/pull/6514 - Remove
BackendBuilder#allocate
by @danicheg in https://github.com/http4s/http4s/pull/6540
Behind the scenes
- 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6551
- 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6563
- 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6565
- 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6567
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M34...v1.0.0-M35
v0.23.14 (2022-07-25)
This release is binary compatible with 0.23.x and updates fs2 to v3.2.11 which includes a security patch for GHSA-2cpx-6pqp-wf35.
What's Changed
http4s-core
- Deprecate
BackendBuilder#allocate
by @danicheg in https://github.com/http4s/http4s/pull/6556 - Don't instantiate redundant
List
inPath#addSegment
by @danicheg in https://github.com/http4s/http4s/pull/6557 - Don't override
endsWithSlash
when adding an emptyPath
segment by @danicheg in https://github.com/http4s/http4s/pull/6564 - Update to fs2 3.2.11 by @armanbilge in https://github.com/http4s/http4s/pull/6566
http4s-server
- fix typo in
Throttle
middlewarehttpAapp->httpApp
by @jbwheatley in https://github.com/http4s/http4s/pull/6501
http4s-ember-core
- Ember-Core: reimplement "combineArrays" by @diesalbla in https://github.com/http4s/http4s/pull/6518
- H2 Settings Acknowledgments do not need to block progress by @ChristopherDavenport in https://github.com/http4s/http4s/pull/6553
http4s-ember-server
- Ember-Server: WebSocketHelper rewrite / optimisation by @diesalbla in https://github.com/http4s/http4s/pull/6388
Documentation
- Release note tweaks for v0.23.13 by @rossabaker in https://github.com/http4s/http4s/pull/6494
- Don't use
Stream
in JSON client example by @armanbilge in https://github.com/http4s/http4s/pull/6511 - Add Hireproof to adopters by @taig in https://github.com/http4s/http4s/pull/6536
- Remove references to
HttpService
intesting.md
by @danicheg in https://github.com/http4s/http4s/pull/6548 - Fix Blaze Doc for Websocket Server by @ChristopherDavenport in https://github.com/http4s/http4s/pull/6560
- Freshen up
Middleware
docs by @danicheg in https://github.com/http4s/http4s/pull/6554
Behind the scenes
- Update http4s-circe, http4s-ember-client, ... to 0.23.13 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6493
- Update sbt-scoverage to 2.0.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6495
- Update sbt-scalajs, scalajs-compiler, ... to 1.10.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6496
- Update locales-minimal-en_us-db to 1.4.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6502
- Update cats-effect, cats-effect-std, ... to 3.3.13 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6503
- Update fs2-core, fs2-io to 3.2.9 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6505
- Create
.git-blame-ignore-revs
by @armanbilge in https://github.com/http4s/http4s/pull/6506 - Custom branch for update flake action by @armanbilge in https://github.com/http4s/http4s/pull/6498
- Smite
Seq
in tests by @danicheg in https://github.com/http4s/http4s/pull/6507 - Update cats-parse to 0.3.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6509
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6510
- Update jawn-parser to 1.4.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6513
- Update fs2-core, fs2-io to 3.2.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6522
- Update sbt to 1.7.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6527
- Update sbt to 1.7.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6530
- Update netty-buffer, netty-codec-http to 4.1.79.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6529
- Update cats-effect, cats-effect-std, ... to 3.3.14 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6532
- Update log4cats-core, log4cats-noop, ... to 2.4.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6534
- Update to update-flake-lock v10 by @armanbilge in https://github.com/http4s/http4s/pull/6531
- Update sbt-http4s-org to 0.14.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6537
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6546
New Contributors
- @jbwheatley made their first contribution in https://github.com/http4s/http4s/pull/6501
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.13...v0.23.14
v1.0.0-M34 (2022-07-05)
This release is the latest milestone in the 1.x series, and is not binary compatible with previous 1.0 milestones. It also includes the changes from v0.23.13.
What's Changed
http4s-core
-
Remove
CollectionCompat
by @danicheg in https://github.com/http4s/http4s/pull/6508http4s-server
- Address the entity model in the server's
RequestLogger
by @danicheg in https://github.com/http4s/http4s/pull/6323 - Fix regression of
Router#define
by @danicheg in https://github.com/http4s/http4s/pull/6371 -
Relax
server.middleware.Caching
constraints by @danicheg in https://github.com/http4s/http4s/pull/6490http4s-client
-
Take into account the
Entity
model in theResponseLogger
by @danicheg in https://github.com/http4s/http4s/pull/6319Behind the scenes
- Merge 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6430
- vault, scala-java-time updates via 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6443
- Ignore cats updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6472
- 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6499
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M33...v1.0.0-M34
v0.23.13 (2022-06-25)
This release is binary compatible with 0.23.x, and additionally includes the fixes in v0.22.14.
What's Changed
http4s-core
- Add
EntityDecoder[EventStream]
by @armanbilge in https://github.com/http4s/http4s/pull/6413 - Update to Vault 3.2.1 by @armanbilge in https://github.com/http4s/http4s/pull/6431
- Update scala-java-time to 2.4.0 by @typelevel-steward in https://github.com/http4s/http4s/pull/6434
- Update scodec-bits to 1.1.34 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6455
- Update fs2-core, fs2-io to 3.2.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6461
- Update cats-core, cats-laws to 2.8.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6471
- Add Ordering for MediaRange by @FrancescoSerra in https://github.com/http4s/http4s/pull/6486
- Add
Host#fromIp4sHost
method by @danicheg in https://github.com/http4s/http4s/pull/6489 -
Make Uri.Path.merge compliant by @FrancescoSerra in https://github.com/http4s/http4s/pull/6481
http4s-server
-
Compose multiple subsequent
Message#putHeaders
calls by @danicheg in https://github.com/http4s/http4s/pull/6459http4s-ember-core
- Encoding of response with empty body by @christiankjaer in https://github.com/http4s/http4s/pull/6444
-
Update log4cats-core, log4cats-noop, ... to 2.3.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6478
Documentation
- Added note on possible circe import error in docs by @cgoldammer in https://github.com/http4s/http4s/pull/6450
- Add Wide Angle Analytics in adopters by @jrozanski in https://github.com/http4s/http4s/pull/6454
- Add sample curl command to quickstart.md by @ajelden in https://github.com/http4s/http4s/pull/6488
-
Release v0.23.13 by @rossabaker in https://github.com/http4s/http4s/pull/6492
Behind the scenes
- Cleanup unnecessary projects by @armanbilge in https://github.com/http4s/http4s/pull/6410
- Update http4s-circe, http4s-ember-client to 0.23.12 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6414
- Ember-Core - H2Client - Rewrite without alternative. by @diesalbla in https://github.com/http4s/http4s/pull/6422
- Merge 0.22 -> 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6429
- Enable Scaladoc Linking Warnings by @isomarcte in https://github.com/http4s/http4s/pull/4027
- Add a Scala Steward workflow by @rossabaker in https://github.com/http4s/http4s/pull/6432
- Delete steward.yml by @rossabaker in https://github.com/http4s/http4s/pull/6438
- Update .mergify.yml by @armanbilge in https://github.com/http4s/http4s/pull/6439
- Update scodec-bits to 1.1.33 by @typelevel-steward in https://github.com/http4s/http4s/pull/6436
- Update scalafmt-core to 3.5.8 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6442
- Workflow to update flake weekly by @rossabaker in https://github.com/http4s/http4s/pull/6437
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6445
- Server Metrics Middleware by @diesalbla in https://github.com/http4s/http4s/pull/6246
- Ember-Core H2Server: replace pull with a recursive function by @diesalbla in https://github.com/http4s/http4s/pull/6424
- Throttle Server middleware: use recursion by @diesalbla in https://github.com/http4s/http4s/pull/6267
- Fix steward name in mergify config by @armanbilge in https://github.com/http4s/http4s/pull/6448
- Update sbt-http4s-org to 0.14.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6447
- MultipartParser: use
Pull.done
instead of Pull.pure. by @diesalbla in https://github.com/http4s/http4s/pull/6449 - Ember-Core H2Server: extract method to send initial request by @diesalbla in https://github.com/http4s/http4s/pull/6425
- Ember-Client: no Alternative by @diesalbla in https://github.com/http4s/http4s/pull/6426
- Backport of
Router#define
test by @danicheg in https://github.com/http4s/http4s/pull/6451 - Update sbt-http4s-org to 0.14.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6452
- Setup scoverage by @armanbilge in https://github.com/http4s/http4s/pull/6456
- Run coverage job for PRs, but don't upload results by @armanbilge in https://github.com/http4s/http4s/pull/6457
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6458
- Update sbt-http4s-org to 0.14.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6463
- series/0.22 -> series/0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6465
- Remove scalafix migrations, plugin cleanup by @http4s-steward in https://github.com/http4s/http4s/pull/6460
- Update scala-library, scala-reflect to 2.12.16 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6462
- Update netty-buffer, netty-codec-http to 4.1.78.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6468
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6466
- flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/6480
- Update scala3-library, ... to 3.1.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/6482
- Test control on time based tests by @FrancescoSerra in https://github.com/http4s/http4s/pull/6469
- Merge 0.22.14 -> 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/6487
New Contributors
- @christiankjaer made their first contribution in https://github.com/http4s/http4s/pull/6444
- @cgoldammer made their first contribution in https://github.com/http4s/http4s/pull/6450
- @jrozanski made their first contribution in https://github.com/http4s/http4s/pull/6454
- @leoniv made their first contribution in https://github.com/http4s/http4s/pull/6473
- @FrancescoSerra made their first contribution in https://github.com/http4s/http4s/pull/6469
- @ajelden made their first contribution in https://github.com/http4s/http4s/pull/6488
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.12...v0.23.13
v0.22.14 (2022-06-23)
This release is binary compatible with 0.22.x series. Routine maintenance has stopped on 0.22.x, but we'll continue to entertain patches from the community. All users are encouraged to upgrade to 0.23 (the latest stable series, on Cats-Effect 3).
What's Changed
http4s-core
- Fix Content-Disposition filename encoding by @leoniv in https://github.com/http4s/http4s/pull/6473
-
Add filename property to Content-Disposition by @rossabaker in https://github.com/http4s/http4s/pull/6485
Documentation
-
Point upgrade docs at scalafix published in series/0.22 by @armanbilge in https://github.com/http4s/http4s/pull/6464
Behind the scenes
- Delete hard-coded Scaladoc url by @armanbilge in https://github.com/http4s/http4s/pull/6402
- Update to sbt-http4s-org 0.13.4 by @armanbilge in https://github.com/http4s/http4s/pull/6428
New Contributors
- @leoniv made their first contribution in https://github.com/http4s/http4s/pull/6473
Full Changelog: https://github.com/http4s/http4s/compare/v0.22.13...v0.22.14
v1.0.0-M33 (2022-05-25)
This is the latest milestone in the 1.x series. It is binary incompatible with http4s-1.0.0-M32.
This is the first 1.x release after "The Great Schism", described in v0.23.12. Because 1.0 isn't stable yet, all ancillary repositories will need to be released for this version. If there is one that you would like to maintain, please look for the "Maintainers wanted!" issue in the repository of interest.
Additional to the below, this release includes all changes in v0.23.12.
What's Changed
http4s-core
- Remove deprecated things by @danicheg in https://github.com/http4s/http4s/pull/6156
- Override
toString
forEntity
by @danicheg in https://github.com/http4s/http4s/pull/6168 - Fix
Request
/Response
scaladoc by @danicheg in https://github.com/http4s/http4s/pull/6171 - Covariant
Message
s: minimum viable PR by @bplommer in https://github.com/http4s/http4s/pull/5712 - Tweak
Message#withEmptyBody
by @danicheg in https://github.com/http4s/http4s/pull/6288 - Remove
http4s.EmptyBody
by @danicheg in https://github.com/http4s/http4s/pull/6296 - Message - Use Strict Entity for string responses by @diesalbla in https://github.com/http4s/http4s/pull/6299
- Make Part and Multipart covariant by @diesalbla in https://github.com/http4s/http4s/pull/6304
- Fix
Request#productElement
andResponse#productElement
by @danicheg in https://github.com/http4s/http4s/pull/6372 - Add info about the entity into the
toString
ofRequest
andResponse
by @danicheg in https://github.com/http4s/http4s/pull/6373 -
Resubmit idempotent requests with only pure entities in
Retry
middleware by @danicheg in https://github.com/http4s/http4s/pull/6379http4s-laws
-
Address the
Entity
model inArbitrary[Entity[*]]
by @danicheg in https://github.com/http4s/http4s/pull/6369http4s-server
- Relax
authentication#challenged
constraints by @danicheg in https://github.com/http4s/http4s/pull/6253 - Use Strict entities where possible by @diesalbla in https://github.com/http4s/http4s/pull/6306
-
Take into account the
Entity
model in theEntityLimiter
by @danicheg in https://github.com/http4s/http4s/pull/6320http4s-client
- Fix
Client
scaladoc by @danicheg in https://github.com/http4s/http4s/pull/6188 -
Remove deprecated
Client.fetch
,DefaultClient.fetch
by @danicheg in https://github.com/http4s/http4s/pull/6187http4s-ember-core
-
ember: Add support for strict entities, look for content-length only once by @wjoel in https://github.com/http4s/http4s/pull/6317
http4s-node-serverless
-
Removed. Serverless integrations are developed in https://github.com/typelevel/feral
Documentation
-
Tweak
Entity
docs by @danicheg in https://github.com/http4s/http4s/pull/6375Behind the scenes
- Release v0.21.33 by @rossabaker in https://github.com/http4s/http4s/pull/6147
- Restore changes to versions page on main by @armanbilge in https://github.com/http4s/http4s/pull/6148
- Remove deprecated execution contexts by @rossabaker in https://github.com/http4s/http4s/pull/6124
- Ignore http4s-crypto updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6217
- Merge 0.23 -> main by @rossabaker in https://github.com/http4s/http4s/pull/6193
- Merge 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6250
- Message - remoteHost: define without OptionT. by @diesalbla in https://github.com/http4s/http4s/pull/6257
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/6282 - Ignore
scala-lang
updates by @danicheg in https://github.com/http4s/http4s/pull/6293 - Tweak
BodyCache#hasNoBody
by @danicheg in https://github.com/http4s/http4s/pull/6289 - Ignore discipline updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6309
- Reduce use of
covary
method. by @diesalbla in https://github.com/http4s/http4s/pull/6230 - Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/6311 - Ignore
okio
updates by @danicheg in https://github.com/http4s/http4s/pull/6315 - Address the entity model in the
DefaultHead
by @danicheg in https://github.com/http4s/http4s/pull/6324 - Address the entity model in the
Client#fromHttpApp
by @danicheg in https://github.com/http4s/http4s/pull/6325 - ignore scodec updates on main by @armanbilge in https://github.com/http4s/http4s/pull/6337
- Ignore
log4cats
updates by @danicheg in https://github.com/http4s/http4s/pull/6341 - Ignore
scalacheck-effect-munit
updates by @danicheg in https://github.com/http4s/http4s/pull/6347 - Ignore updates for all log4cats modules by @danicheg in https://github.com/http4s/http4s/pull/6346
- Merge
0.23
->main
by @danicheg in https://github.com/http4s/http4s/pull/6348 - Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/6378 - Get ip4s updates from series/0.23 by @rossabaker in https://github.com/http4s/http4s/pull/6384
- Ignore
circe
updates by @danicheg in https://github.com/http4s/http4s/pull/6400 - Merge 0.23.12 to main by @rossabaker in https://github.com/http4s/http4s/pull/6416
New Contributors
- @teigen made their first contribution in https://github.com/http4s/http4s/pull/6057
- @takapi327 made their first contribution in https://github.com/http4s/http4s/pull/6166
- @zainab-ali made their first contribution in https://github.com/http4s/http4s/pull/6098
- @dragonfly-ai made their first contribution in https://github.com/http4s/http4s/pull/6203
- @CharlesAHunt made their first contribution in https://github.com/http4s/http4s/pull/6036
- @OnAirEntertainment-Scala made their first contribution in https://github.com/http4s/http4s/pull/6385
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M32...v1.0.0-M33
- Ignore
java-websocket
updates by @danicheg in https://github.com/http4s/http4s/pull/6275 - Merge
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/6278 - Spin off servlet, jetty-server, and tomcat modules by @rossabaker in https://github.com/http4s/http4s/pull/6240
- Update scalacheck to 1.16.0 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6264
- Update discipline-core to 1.5.1 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6303
- Merge
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/6310 - Tweak unused args suppressing by @danicheg in https://github.com/http4s/http4s/pull/6300
- Remove update ignorings in Scala Steward conf for the 0.23 by @danicheg in https://github.com/http4s/http4s/pull/6333
- Update log4cats-core, log4cats-noop, ... to 2.3.0 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6340
- Merge 0.22 -> 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6343
- Update scalacheck-effect, ... to 1.0.4 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6345
- Update scodec-bits to 1.1.31 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6330
- Server - ContextRouter - Simpler Code by @diesalbla in https://github.com/http4s/http4s/pull/6241
- Fix test name by @armanbilge in https://github.com/http4s/http4s/pull/6351
- Use UTC for JS tests, remove tzdb test dep by @armanbilge in https://github.com/http4s/http4s/pull/6350
- Delete servlet and jetty-server srcs by @armanbilge in https://github.com/http4s/http4s/pull/6354
- Bye-bye boopickle by @armanbilge in https://github.com/http4s/http4s/pull/6353
- Actually delete boopickle srcs by @armanbilge in https://github.com/http4s/http4s/pull/6359
- Update log4cats-core, log4cats-noop, ... to 2.3.1 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6362
- Only create scalafix job for 2.13 by @armanbilge in https://github.com/http4s/http4s/pull/6361
- Update scala3-library, ... to 3.1.2 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6291
- Update netty-buffer, netty-codec-http to 4.1.77.Final in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6364
- Ember-Core: merge evalMap blocks in writeLoop by @diesalbla in https://github.com/http4s/http4s/pull/6162
- Ember-Core microptimisation: avoid lists by @diesalbla in https://github.com/http4s/http4s/pull/6161
- Publish internal scalafixes by @armanbilge in https://github.com/http4s/http4s/pull/6268
- Bye-bye scala-xml by @armanbilge in https://github.com/http4s/http4s/pull/6352
- Parallelize some requests in
RetrySuite
by @danicheg in https://github.com/http4s/http4s/pull/6380 - Update ip4s-core, ip4s-test-kit to 3.1.3 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6382
- Promote using of
Headers#contains
by @danicheg in https://github.com/http4s/http4s/pull/6386 - Use
GenTemporal
for proceeding with timeouts by @danicheg in https://github.com/http4s/http4s/pull/6391 - JS refactoring in preparation for client backend schism by @armanbilge in https://github.com/http4s/http4s/pull/6390
- Use
parTraverse
in tests by @danicheg in https://github.com/http4s/http4s/pull/6393 - Update locales-minimal-en_us-db to 1.4.0 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6399
- Update circe-core, circe-generic, ... to 0.14.2 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6398
- Publish
http4s-client-testkit
module by @armanbilge in https://github.com/http4s/http4s/pull/6394 - Make Node.js interop APIs private by @armanbilge in https://github.com/http4s/http4s/pull/6404
- Update cats-effect, cats-effect-laws, ... to 3.3.12 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6406
-
Ember Core: write readLoop without Streams. by @diesalbla in https://github.com/http4s/http4s/pull/6163
http4s-circe
- Update to circe 0.14.2 by @armanbilge in https://github.com/http4s/http4s/pull/6401
New Contributors
- @teigen made their first contribution in https://github.com/http4s/http4s/pull/6057
- @takapi327 made their first contribution in https://github.com/http4s/http4s/pull/6166
- @zainab-ali made their first contribution in https://github.com/http4s/http4s/pull/6098
- @dragonfly-ai made their first contribution in https://github.com/http4s/http4s/pull/6203
- @CharlesAHunt made their first contribution in https://github.com/http4s/http4s/pull/6036
- @OnAirEntertainment-Scala made their first contribution in https://github.com/http4s/http4s/pull/6385
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.11...v0.23.12
v0.22.13 (2022-05-20)
This release is binary compatible with 0.22.x series. Routine maintenance has stopped on 0.22.x, but we'll continue to entertain patches from the community. All users are encouraged to upgrade to 0.23 (the latest stable series, on Cats-Effect 3).
-
http4s-core
- Remove redundant draining of request/response body by @danicheg in https://github.com/http4s/http4s/pull/6128
- Use predefined Close connection header by @danicheg in https://github.com/http4s/http4s/pull/6167
- Fix comment in org.http4s.Message.scala by @takapi327 in https://github.com/http4s/http4s/pull/6166
- Render a trailing newline on multipart close-delimiter by @rossabaker in https://github.com/http4s/http4s/pull/6170
- Add mapK to MetricsOps by @hamnis in https://github.com/http4s/http4s/pull/6172
- Add Random shim for Cats-Effect 2 by @rossabaker in https://github.com/http4s/http4s/pull/6165
- Add Scalafix explicit result type rule by @danicheg in https://github.com/http4s/http4s/pull/6134
- Add withContentLength and toStrict helpers to Message by @rossabaker in https://github.com/http4s/http4s/pull/6176
- Improvements to multipart boundaries by @rossabaker in https://github.com/http4s/http4s/pull/6169
- Update cats-parse to 0.3.7 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6224
- Fix
SelectOpsMultiple#renderString
by @danicheg in https://github.com/http4s/http4s/pull/6307 - Update fs2-core, fs2-io, ... to 2.5.11 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6322
- Update to Cats Effect 2.5.5 by @armanbilge in https://github.com/http4s/http4s/pull/6392
-
http4s-server
- Routing on variable segments by @teigen in https://github.com/http4s/http4s/pull/6057
- Resolve #6068 digestauth challenge redux by @blast-hardcheese in https://github.com/http4s/http4s/pull/6138
- Integrate Random into DigestAuth by @rossabaker in https://github.com/http4s/http4s/pull/6177
- Update scalafmt-core to 3.5.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6223
- Deprecate PushSupport by @rossabaker in https://github.com/http4s/http4s/pull/6247
-
http4s-client
- Clarify connection lifecycle by @rossabaker in https://github.com/http4s/http4s/pull/6313
-
http4s-blaze-core
- Use tryScheduling within IdleTimeoutStage by @hamnis in https://github.com/http4s/http4s/pull/6198
- Remove synchronizations in
TestHead
,QueueTestHead
,SlowTestHead
by @danicheg in https://github.com/http4s/http4s/pull/6249
-
http4s-blaze-server
- Clean up
BlazeServerBuilder
scaladoc by @danicheg in https://github.com/http4s/http4s/pull/6180 - Blaze server enhancements by @danicheg in https://github.com/http4s/http4s/pull/6179
- Clean up
-
http4s-blaze-client
- Fix counting of current allocated connections in the blaze client pool manager by @danicheg in https://github.com/http4s/http4s/pull/6254
- Roll back the #6254 by @danicheg in https://github.com/http4s/http4s/pull/6332
-
http4s-tomcat
- Update tomcat-catalina, tomcat-coyote, ... to 9.0.62 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6214
-
http4s-scala-xml
- Update scala-xml to 2.1.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6234
-
http4s-async-http-client
- Update netty-buffer, netty-codec-http to 4.1.76.Final in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6292
-
Behind the scenes
- Add unidocs project to root aggregate by @armanbilge in https://github.com/http4s/http4s/pull/6129
- Update tomcat-catalina, tomcat-coyote, ... to 9.0.60 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6132
- Update http4s-circe, http4s-ember-client to 0.23.11 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6149
- Merge after 0.21.33 by @rossabaker in https://github.com/http4s/http4s/pull/6153
- Don't override api url by @armanbilge in https://github.com/http4s/http4s/pull/6158
- Fix StatusSpec sanitization property by @rossabaker in https://github.com/http4s/http4s/pull/6184
- Update sbt-doctest to 0.10.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6190
- Update sbt-http4s-org to 0.13.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6197
- Pin http4s-crypto to 0.1.x in 0.22 by @armanbilge in https://github.com/http4s/http4s/pull/6218
- Update jetty-client, jetty-http, ... to 9.4.46.v20220331 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6220
- Update scalafmt-core to 3.5.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6256
- Update sbt-scalafix, scalafix-core, ... to 0.10.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6260
- Update Java-WebSocket to 1.5.3 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6270
- Fix deprecated since versions by @danicheg in https://github.com/http4s/http4s/pull/6279
- Remove ignoring some files for
doctest
by @danicheg in https://github.com/http4s/http4s/pull/6284 - Update sbt-http4s-org to 0.13.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6287
- Update scalafmt-core to 3.5.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6318
- Upgrade jawn-fs2, keypool, log4cats, vault to last CE2 versions by @rossabaker in https://github.com/http4s/http4s/pull/6383
-
New Contributors
- @teigen made their first contribution in https://github.com/http4s/http4s/pull/6057
- @takapi327 made their first contribution in https://github.com/http4s/http4s/pull/6166
Full Changelog: https://github.com/http4s/http4s/compare/v0.22.12...v0.22.13
v0.21.33 (2022-03-18)
This is a courtesy release for the 0.21.x series. This series remains officially unmaintained except for urgent security patches. It is binary compatible with the 0.21.x series.
-
http4s-ember-core
- Support parsing response bodies without Content-Length in ember (0.21) by @wemrysi in https://github.com/http4s/http4s/pull/6136
-
Behind the scenes
- Build tweaks in case there's another 0.21 by @rossabaker in https://github.com/http4s/http4s/pull/6034
Full Changelog: https://github.com/http4s/http4s/compare/v0.21.32...v0.21.33
v1.0.0-M32 (2022-03-18)
This is a milestone release. It is binary incompatible with previous releases. It includes the changes through v0.23.11.
http4s-async-http-client is deprecated, and planned to be removed in the next milestone. Please plan accordingly.
-
http4s-core
- Optimize
EntityDecoder.{collectBinary|collectByteVector|error|void}
by @danicheg in https://github.com/http4s/http4s/pull/6112
- Optimize
-
http4s-server
- Optimize
ResponseLogger
andRequestLogger
by @danicheg in https://github.com/http4s/http4s/pull/6110
- Optimize
-
http4s-blaze-core
- Optimize Http1Writer for cases when the entity is Empty or Strict by @wjoel in https://github.com/http4s/http4s/pull/6080
- Avoid draining body on error/cancel for Entity.Strict and Empty by @wjoel in https://github.com/http4s/http4s/pull/6091
- Collect entity from parser, support Entity.Strict and Empty by @wjoel in https://github.com/http4s/http4s/pull/6090
-
http4s-blaze-client
- Remove deprecated
BlazeClientBuilder
by @danicheg in https://github.com/http4s/http4s/pull/6109
- Remove deprecated
-
http4s-servlet
- Remove redundant draining of response body in
Http4sServlet
by @danicheg in https://github.com/http4s/http4s/pull/6116
- Remove redundant draining of response body in
-
http4s-prometheus
- Update simpleclient, simpleclient_common, ... to 0.15.0 by @scala-steward in https://github.com/http4s/http4s/pull/6007
-
Documentation
- Fresh up the version page by @danicheg in https://github.com/http4s/http4s/pull/6008
-
Behind the scenes
- Scala.js updates come from 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6046
- Update sbt-buildinfo to 0.11.0 by @scala-steward in https://github.com/http4s/http4s/pull/6061
- Merge 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6056
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/6101 - Merge 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/6141
-
New Contributors
- @wjoel made their first contribution in https://github.com/http4s/http4s/pull/6080
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.11...v1.0.0-M32
v0.23.11 (2022-03-18)
This is a maintenance release, binary compatible with the 0.23.x series. It also includes the changes in 0.22.12.
-
http4s-core
- Update sbt-scalajs, scalajs-compiler, ... to 1.9.0 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6045
- Update http4s-crypto to 0.2.2 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6053
- Update fs2-core, fs2-io, ... to 3.2.5 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6065
- Update cats-effect, cats-effect-laws, ... to 3.3.7 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6093
-
http4s-server
- Add Additional ErrorHandling Options by @ChristopherDavenport in https://github.com/http4s/http4s/pull/6047
-
http4s-client
- Make
WSClient
and friends public by @armanbilge in https://github.com/http4s/http4s/pull/6005 - Add OptionT Based Versions Of expectOption* by @isomarcte in https://github.com/http4s/http4s/pull/6135
- Make
-
http4s-ember-core
- Replace npm hpack.js with pure Scala.js hpack by @armanbilge in https://github.com/http4s/http4s/pull/6009
-
http4s-ember-client
- Add scaladocs for EmberClientBuilder by @valencik in https://github.com/http4s/http4s/pull/5999
- Fix ember client cancellation bug by @ChristopherDavenport in https://github.com/http4s/http4s/pull/6085
-
http4s-blaze-core
- Optimize CachingChunkWriter for Chunk.empty case by @wjoel in https://github.com/http4s/http4s/pull/6092
- Add micro-opts for
CachingChunkWriter
by @danicheg in https://github.com/http4s/http4s/pull/6096 - Further reduce ExecutionContexts in blaze by @rossabaker in https://github.com/http4s/http4s/pull/6118
-
http4s-servlet
- Adds the async timeout as a method param by @yuferpegom in https://github.com/http4s/http4s/pull/6037
- Use blocking EC in the
BlockingServletIo
by @danicheg in https://github.com/http4s/http4s/pull/6133
-
Behind the scenes
- Merge Jetty forward from 0.22 by @rossabaker in https://github.com/http4s/http4s/pull/6020
- Merge 0.22 into 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6004
- Merge 0.22 -> 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6031
- Build tweaks in case there's another 0.21 by @rossabaker in https://github.com/http4s/http4s/pull/6034
- Merge 0.22 -> 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6054
- Update cats-effect, cats-effect-laws, ... to 3.3.6 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/6073
- Caching Middleware - Small Rewrites by @diesalbla in https://github.com/http4s/http4s/pull/6066
- Ignore
sbt-buildinfo
updates by @danicheg in https://github.com/http4s/http4s/pull/6084 - Update Scala Steward config by @danicheg in https://github.com/http4s/http4s/pull/6089
- Message: add pipeBodyThrough method by @diesalbla in https://github.com/http4s/http4s/pull/6011
- Merge 0.22 -> 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/6094
- Remove unused ExecutionContexts in blaze-core by @rossabaker in https://github.com/http4s/http4s/pull/6100
- Deprecate internal Trampoline by @rossabaker in https://github.com/http4s/http4s/pull/6119
- Backport mergify config to 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6126
- Merge 0.22 -> 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/6125
- Fix the unidoc artifact by @armanbilge in https://github.com/http4s/http4s/pull/6142
-
New Contributors
- @yuferpegom made their first contribution in https://github.com/http4s/http4s/pull/6037
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.10...v0.23.11
v0.22.12 (2022-03-14)
This is a maintenance release, binary compatible with the 0.22.x series. It also includes all the bugfixes from 0.21.32.
-
http4s-core
- More tolerant cookie parsing by @kailuowang in https://github.com/http4s/http4s/pull/6082
-
http4s-tomcat
- Update tomcat-catalina, tomcat-coyote, ... to 9.0.59 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6075
-
http4s-jetty-server
- Upgrade to jetty-9.4.45.v20220203 on series/0.22 by @rossabaker in https://github.com/http4s/http4s/pull/6023
-
http4s-async-http-client
- Update netty-buffer, netty-codec-http to 4.1.75.Final in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6102
- Deprecate async-http-client by @rossabaker in https://github.com/http4s/http4s/pull/6114
-
Documentation
- docs: remove workarounds for issues in Laika 0.18.0 by @jenshalm in https://github.com/http4s/http4s/pull/6021
- Docs: ember supports websockets by @Daenyth in https://github.com/http4s/http4s/pull/6097
-
Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.10 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6002
- Add convenience methods to
WSConnectionHighLevel
by @armanbilge in https://github.com/http4s/http4s/pull/6001 - Update scalafmt-core to 3.4.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6006
- Update scalafmt-core to 3.4.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6010
- Ignore Jetty HTTP/2 updates by @rossabaker in https://github.com/http4s/http4s/pull/6022
- Update netty-buffer, netty-codec-http to 4.1.74.Final in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6025
- Update sbt-http4s-org to 0.12.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6024
- Update slf4j-api to 1.7.36 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6030
- Build tweaks in case there's another 0.21 by @rossabaker in https://github.com/http4s/http4s/pull/6034
- Update scalafmt-core to 3.4.3 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6038
- Update sbt-native-packager to 1.9.8 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6043
- Update sbt-http4s-org to 0.12.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6052
- Update sbt-native-packager to 1.9.9 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6070
- Update sbt-http4s-org to 0.12.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6081
- Update sbt-buildinfo to 0.11.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6062
- Update logback-classic to 1.2.11 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6088
- Type annotations for public API things by @danicheg in https://github.com/http4s/http4s/pull/5822
- Update metrics-core, metrics-json to 4.2.9 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6099
- Update sbt-http4s-org to 0.13.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/6103
- Merge 0.21 -> 0.22 by @rossabaker in https://github.com/http4s/http4s/pull/6121
- Exclude series/0.21 from release notes by @rossabaker in https://github.com/http4s/http4s/pull/6122
- Simplify website configuration by @armanbilge in https://github.com/http4s/http4s/pull/6087
-
New Contributors
- @Daenyth made their first contribution in https://github.com/http4s/http4s/pull/6097
Full Changelog: https://github.com/http4s/http4s/compare/v0.22.11...v0.22.12
v0.21.32 (2022-02-09)
This is an unplanned bugfix release for the 0.21.x series. This series remains officially unmaintained except for urgent security patches. It plugs a tiny leak on the server backends when a resource is canceled between acquisition and compiling its body.
-
http4s-servlet
- Flush the prelude in non-blocking Servlet IO by @rossabaker in https://github.com/http4s/http4s/pull/6027
- Render continually between response prelude and body by @rossabaker in https://github.com/http4s/http4s/pull/6028
-
http4s-blaze-server
- Render continually between response prelude and body by @rossabaker in https://github.com/http4s/http4s/pull/6028
-
http4s-ember-server
- Render continually between response prelude and body by @rossabaker in https://github.com/http4s/http4s/pull/6028
-
Behind the scenes
- Merge series/0.20 to series/0.21 by @rossabaker in https://github.com/http4s/http4s/pull/5818
Full Changelog: https://github.com/http4s/http4s/compare/v0.21.31...v0.21.32
v1.0.0-M31 (2022-02-04)
This is the latest milestone release in the 1.0 series. It breaks binary compatibility and drops support for Scala 2.12. Scala 2.12 is still supported in the 0.22.x and 0.23.x series.
This merges forward all the changes from 0.22.9, 0.22.10, 0.22.11, 0.23.8, 0.23.9, and 0.23.10.
-
http4s-core
- Minimal slice from #4509 (Entity rethinking) by @bplommer in https://github.com/http4s/http4s/pull/5754
- Add Strict entity by @bplommer in https://github.com/http4s/http4s/pull/5807
- Drop Scala 2.12 from 1.0 by @armanbilge in https://github.com/http4s/http4s/pull/5337
-
http4s-client
- Simplify logger type signatures by @bplommer in https://github.com/http4s/http4s/pull/5805
-
http4s-server
- Simplify logger type signatures by @bplommer in https://github.com/http4s/http4s/pull/5805
-
http4s-scalatags
- Update scalatags to 0.11.1 by @scala-steward in https://github.com/http4s/http4s/pull/5903
-
http4s-prometheus-metrics
- Update simpleclient, simpleclient_common, ... to 0.14.1 by @scala-steward in https://github.com/http4s/http4s/pull/5817
-
Documentation
- Promote http4s.js a bit by @armanbilge in https://github.com/http4s/http4s/pull/5771
- Reword partial unification instructions in readme by @bplommer in https://github.com/http4s/http4s/pull/5894
-
Behind the scenes
- Merge 0.23 to main by @rossabaker in https://github.com/http4s/http4s/pull/5703
- Clean up
build.sbt
by @danicheg in https://github.com/http4s/http4s/pull/5711 - Update sbt to 1.5.6 by @scala-steward in https://github.com/http4s/http4s/pull/5710
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/5719 - Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/5734 - Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/5759 - Convert Entity to an ADT with an empty case by @bplommer in https://github.com/http4s/http4s/pull/5760
- Merge branch
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/5779 - Add Strict entity by @bplommer in https://github.com/http4s/http4s/pull/5804
- Revert "Add Strict entity" pending further review by @bplommer in https://github.com/http4s/http4s/pull/5806
- Set 2022 in the
README
by @danicheg in https://github.com/http4s/http4s/pull/5828 - Scala-steward exclusions in
main
by @bplommer in https://github.com/http4s/http4s/pull/5830 - Merge 0.23 into main by @armanbilge in https://github.com/http4s/http4s/pull/5832
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/5839 - Added SurfsUp app by @manocha-aman in https://github.com/http4s/http4s/pull/5845
- Add scala-java-locales to steward ignores on main by @armanbilge in https://github.com/http4s/http4s/pull/5854
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/5889 - Fix scala-steward.conf syntax by @rossabaker in https://github.com/http4s/http4s/pull/5902
- Merge
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/5925 - Add module labeling to mergify config by @armanbilge in https://github.com/http4s/http4s/pull/5941
- Merge 0.23 into main by @rossabaker in https://github.com/http4s/http4s/pull/5934
- Auto-label docs PRs with mergify by @armanbilge in https://github.com/http4s/http4s/pull/5980
- Merge 0.23 into main by @armanbilge in https://github.com/http4s/http4s/pull/5986
- Merge from 0.23.10 by @rossabaker in https://github.com/http4s/http4s/pull/6000
-
New Contributors
- @manocha-aman made their first contribution in https://github.com/http4s/http4s/pull/5845
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M30...v1.0.0-M31
v0.23.10 (2022-02-03)
This is a maintenance release, binary compatible with 0.23.x. It also includes merges of all the changes in 0.22.10.
-
http4s-ember-core
- Don't force npm onto ember.js users by @armanbilge in https://github.com/http4s/http4s/pull/5992
-
Documentation
- Use ember in docs by @valencik in https://github.com/http4s/http4s/pull/5970
- Update static content docs, fix deprecations by @valencik in https://github.com/http4s/http4s/pull/5973
- Tweak json.md to work on scala 2.13 by @valencik in https://github.com/http4s/http4s/pull/5984
- Mdoc warnings v23 by @valencik in https://github.com/http4s/http4s/pull/5979
- Remove most mdoc nest modifiers by @valencik in https://github.com/http4s/http4s/pull/5977
-
Behind the scenes
- Update scala3-library, ... to 3.1.1 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5985
- Merge 0.22 to 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/5987
- Merge from 0.22 by @rossabaker in https://github.com/http4s/http4s/pull/5995
- Improve the
WSClient
API by @armanbilge in https://github.com/http4s/http4s/pull/5974
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.9...v0.23.10
v0.22.11 (2022-02-02)
This is a bugfix release, binary compatible with the 0.22.x series.
-
http4s-dsl
- Fix regression in routing dsl by @hamnis in https://github.com/http4s/http4s/pull/5991
-
http4s-server
- Respect URI locality in UrlFormLifter by @dfahritdinov in https://github.com/http4s/http4s/pull/5994
-
http4s-dropwizard-metrics
- Update metrics-core, metrics-json to 4.2.8 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5993
-
Behind the scenes
- Update scalafmt-core to 3.4.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5969
- Update http4s-circe, http4s-ember-client to 0.23.9 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5972
- Update sbt-http4s-org to 0.11.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5968
- Update sbt to 1.6.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5976
- Improve
WSClient
API by @armanbilge in https://github.com/http4s/http4s/pull/5975
-
New Contributors
- @dfahritdinov made their first contribution in https://github.com/http4s/http4s/pull/5994
Full Changelog: https://github.com/http4s/http4s/compare/v0.22.10...v0.22.11
v0.23.9 (2022-01-29)
This release is binary compatible with the 0.23.x series. It merges forward the changes of v0.22.10.
The signficant new feature is HTTP/2 support for Ember. Turn it on with a .withHttp2
on either the EmberClientBuilder
or EmberServerBuilder
.
-
http4s-ember-core
- Ember H2 support by @ChristopherDavenport in https://github.com/http4s/http4s/pull/5657
-
Behind the scenes
- Ignore slf4j-api by @rossabaker in https://github.com/http4s/http4s/pull/5949
- Remove janky thread pool from BlazeHttp1ClientSuite by @rossabaker in https://github.com/http4s/http4s/pull/5945
- Clean up Throwables in HTTP/2 by @rossabaker in https://github.com/http4s/http4s/pull/5955
- Fix HTTP/2 warnings and restore compiler settings by @rossabaker in https://github.com/http4s/http4s/pull/5954
- Get http4s upgrades for build from 0.22 by @rossabaker in https://github.com/http4s/http4s/pull/5958
- Merge from 0.22 by @rossabaker in https://github.com/http4s/http4s/pull/5957
- Update cats-effect, cats-effect-laws, ... to 3.3.5 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5967
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.8...v0.23.9
v0.22.10 (2022-01-28)
This release is focused on the client. The blaze-client is substantially refactored internally to improve resource safety. A new internal websocket client is published for implementation across repos. We expect to release this as a public API in the next release.
-
http4s-core
- Update slf4j-api to 1.7.35 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5947
-
http4s-blaze-client
- Resourcify blaze client by @RafalSumislawski in https://github.com/http4s/http4s/pull/5385
- Add withMaxIdleDuration setter to BlazeClientBuilder by @rossabaker in https://github.com/http4s/http4s/pull/5950
-
Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.8 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5952
- Remove mdoc/laika sbt plugins by @armanbilge in https://github.com/http4s/http4s/pull/5963
- Create WebSocket client API by @armanbilge in https://github.com/http4s/http4s/pull/5520
- Privatize web socket client pending concrete implementation by @rossabaker in https://github.com/http4s/http4s/pull/5965
Full Changelog: https://github.com/http4s/http4s/compare/v0.22.9...v0.22.10
v0.23.8 (2022-01-25)
This is a maintenance release, binary compatible with the 0.23.x series. It additionally includes a merge forward of the changes in v0.22.9.
Scala.js users must upgrade to at least 1.8.0 as of this release.
-
http4s-core
- Update sbt-scalajs, scalajs-compiler, ... to 1.8.0 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5716
- Update fs2-core, fs2-io, ... to 3.2.4 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5788
- Update cats-effect, cats-effect-laws, ... to 3.3.4 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5838
- Update locales-minimal-en_us-db to 1.3.0 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5853
-
http4s-server
- cross-platforming server FileService by @yurique in https://github.com/http4s/http4s/pull/5758
- Fix FileService Config linking on JS by @armanbilge in https://github.com/http4s/http4s/pull/5825
- Deprecate the
BracketRequestResponse#exitCaseToOutcome
by @danicheg in https://github.com/http4s/http4s/pull/5875
-
http4s-ember-core
- Support parsing response bodies without Content-Length in ember by @wemrysi in https://github.com/http4s/http4s/pull/5881
-
http4s-ember-server
- Update jnr-unixsocket to 0.38.17 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5827
-
http4s-ember-client
- Remove jvm log4cats dependency in ember client js by @kubukoz in https://github.com/http4s/http4s/pull/5757
-
http4s-jetty-server
- Use blocking thread pool on joining Jetty's thread pool by @danicheg in https://github.com/http4s/http4s/pull/5886
-
http4s-jetty-client
- Use blocking thread pool in the
JettyClient#resource
by @danicheg in https://github.com/http4s/http4s/pull/5897
- Use blocking thread pool in the
-
http4s-jawn
- Update jawn-fs2 to 2.2.0 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5821
-
http4s-prometheus-metrics
- Use blocking thread pool in the Prometheus metrics by @danicheg in https://github.com/http4s/http4s/pull/5887
-
Documentation
- Remove some outdated params in scaladocs by @danicheg in https://github.com/http4s/http4s/pull/5729
- Remove mentioning of
ContextShift
in the AHC scaladoc by @danicheg in https://github.com/http4s/http4s/pull/5885
-
Behind the scenes
- Update jnr-unixsocket to 0.38.15 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5681
- Netty based ServerScaffold (0.23) by @RafalSumislawski in https://github.com/http4s/http4s/pull/5587
- Merge 0.22 to 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5701
- Merge branch
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5718 - Merge
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5730 - Merge
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5753 - Code cleanup (mostly variance-related) by @bplommer in https://github.com/http4s/http4s/pull/5755
- Update cats-effect, cats-effect-laws, ... to 3.3.1 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5770
- Merge branch
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5778 - Update cats-effect, cats-effect-laws, ... to 3.3.2 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5801
- Update cats-effect, cats-effect-laws, ... to 3.3.3 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5803
- Merge series/0.20 to series/0.21 by @rossabaker in https://github.com/http4s/http4s/pull/5818
- Merge
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5833 - Re-enable broken ember client test by @armanbilge in https://github.com/http4s/http4s/pull/5840
- Enable fatal warnings in
lint
/quicklint
commands by @danicheg in https://github.com/http4s/http4s/pull/5843 - FileService Server Middleware: readability by @diesalbla in https://github.com/http4s/http4s/pull/5837
- Merge from v0.22 by @rossabaker in https://github.com/http4s/http4s/pull/5847
- Steward exclusions in 0.23 for dependencies merged forward from 0.22 by @bplommer in https://github.com/http4s/http4s/pull/5856
- Merge series/0.22 into series/0.23 by @bplommer in https://github.com/http4s/http4s/pull/5860
- Auto-select available port for ember suites by @armanbilge in https://github.com/http4s/http4s/pull/5848
- Refactor some
Resource
usage by @danicheg in https://github.com/http4s/http4s/pull/5884 - Merge
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5888 - Update log4cats-noop, log4cats-slf4j, ... to 2.2.0 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5891
- Use
port
syntax by @danicheg in https://github.com/http4s/http4s/pull/5896 - Add sbt-http4s-org to steward ignores by @armanbilge in https://github.com/http4s/http4s/pull/5924
- Non-deadlocking RouterInServletSuite by @rossabaker in https://github.com/http4s/http4s/pull/5928
- Merge scalafmt-core forward from 0.22 by @rossabaker in https://github.com/http4s/http4s/pull/5933
- Merge 0.22 -> 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5926
- Merge from 0.22 by @rossabaker in https://github.com/http4s/http4s/pull/5940
- Delete zombie specs2 code by @rossabaker in https://github.com/http4s/http4s/pull/5943
- Replace our TestExecutionContext by @rossabaker in https://github.com/http4s/http4s/pull/5944
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.7...v0.23.8
v0.22.9 (2022-01-24)
This release is binary compatible with 0.22.x series. The jawn upgrade mitigates CVE-2022-21653 out of the box for http4s-play-json
.
-
http4s-core
- Add
Trailer
header by @danicheg in https://github.com/http4s/http4s/pull/5614 - Model If-Range header by @mcarolan in https://github.com/http4s/http4s/pull/5613
- Make the output of
asCurl
more human-readable by @danicheg in https://github.com/http4s/http4s/pull/5786 - Path info index fix by @RafalSumislawski in https://github.com/http4s/http4s/pull/5793
- Law-driven-design of Path#concat and Path#splitAt by @RafalSumislawski in https://github.com/http4s/http4s/pull/5794
- Add Request#isIdempotent by @rossabaker in https://github.com/http4s/http4s/pull/5859
- Update slf4j-api to 1.7.33 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5869
- Add
EntityEncoder[F, ByteVector]
by @sideeffffect in https://github.com/http4s/http4s/pull/5907
- Add
-
http4s-laws
- Update discipline to 1.4.0 by @rossabaker in https://github.com/http4s/http4s/pull/5696
-
http4s-client
- Add
apply
-builder forHttp4sClientDsl
by @armanbilge in https://github.com/http4s/http4s/pull/5742 - Deprecate client.Connection and client.ConnectionBuilder by @rossabaker in https://github.com/http4s/http4s/pull/5871
- Add
-
http4s-server
- HttpMethodOverrider: simplify by @diesalbla in https://github.com/http4s/http4s/pull/5835
-
http4s-ember-core
- Update log4cats-slf4j, log4cats-testing to 1.5.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5880
-
http4s-ember-client
- Disable logging for Ember client internal retry by @RaasAhsan in https://github.com/http4s/http4s/pull/5496
-
http4s-blaze-core
- Update blaze-http to 0.15.3 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5873
-
http4s-blaze-client
- Fix customDnsResolver in BlazeClientBuilder by @rossabaker in https://github.com/http4s/http4s/pull/5864
- Stale connection mitigation in blaze-client by @rossabaker in https://github.com/http4s/http4s/pull/5861
- maxIdleDuration on blaze connections by @rossabaker in https://github.com/http4s/http4s/pull/5899
-
http4s-tomcat
- Update tomcat-catalina, tomcat-coyote, ... to 9.0.58 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5915
-
http4s-async-http-client
- Update netty-buffer, netty-codec-http to 4.1.73.Final in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5857
-
http4s-jawn
- Update jawn-parser to 1.3.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5815
- Update jawn-fs2 to 1.2.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5820
-
http4s-dropwizard-metrics
- Update metrics-core, metrics-json to 4.2.7 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5763
-
Documentation
- Fix scaladoc references to
io.chrisdavenport.vault
in theseries/0.22
by @danicheg in https://github.com/http4s/http4s/pull/5765 - Fix some scaladoc references to headers by @danicheg in https://github.com/http4s/http4s/pull/5766
- Fix links to the license on the site by @danicheg in https://github.com/http4s/http4s/pull/5829
- Fix some links in the scaladoc by @danicheg in https://github.com/http4s/http4s/pull/5876
- Fix scaladoc references to
-
Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.7 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5693
- Update tomcat-catalina, tomcat-coyote, ... to 9.0.56 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5687
- Configure mergify & release notes by @armanbilge in https://github.com/http4s/http4s/pull/5690
- Update metrics-core, metrics-json to 4.2.5 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5698
- Netty based ServerScaffold (0.22) by @RafalSumislawski in https://github.com/http4s/http4s/pull/5601
- Fix of the #5691 for
series/0.22
by @danicheg in https://github.com/http4s/http4s/pull/5700 - Update netty-buffer, netty-codec-http to 4.1.71.Final in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5705
- Update sbt to 1.5.6 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5713
- Introduce blaze-client connection reuse tests by @RafalSumislawski in https://github.com/http4s/http4s/pull/5319
- Mark the failing tests as flaky because they sometimes pass by @RafalSumislawski in https://github.com/http4s/http4s/pull/5728
- Update laika-sbt to 0.18.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5726
- Speed up shutdown of NioEventLoopGroups by @RafalSumislawski in https://github.com/http4s/http4s/pull/5723
- Update netty-buffer, netty-codec-http to 4.1.72.Final in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5732
- Update logback-classic to 1.2.8 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5738
- Mark one more connection reuse test as flaky by @RafalSumislawski in https://github.com/http4s/http4s/pull/5735
Http1ClientStageSuite
purity by @RafalSumislawski in https://github.com/http4s/http4s/pull/5741- Update sbt to 1.5.7 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5747
- Update logback-classic to 1.2.9 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5751
- Update sbt to 1.5.8 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5768
- Collection micro-opts by @danicheg in https://github.com/http4s/http4s/pull/5767
- Rm
sbt-updates
plugin by @danicheg in https://github.com/http4s/http4s/pull/5777 - Improve ClientTimeoutSuite by @RafalSumislawski in https://github.com/http4s/http4s/pull/5761
- Update logback-classic to 1.2.10 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5781
- Update sbt to 1.6.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5790
- Update sbt to 1.6.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5796
- switch from tut to mdoc for 0.18.x by @niij in https://github.com/http4s/http4s/pull/5808
- Replace deprecated object in the imports by @danicheg in https://github.com/http4s/http4s/pull/5810
- Merge #5808 to 0.20 by @rossabaker in https://github.com/http4s/http4s/pull/5811
- Merge series/0.20 to series/0.21 by @rossabaker in https://github.com/http4s/http4s/pull/5818
- Merge branch 'series/0.21' into series/0.22 by @rossabaker in https://github.com/http4s/http4s/pull/5824
- Refactor some
Http1Connection
methods by @danicheg in https://github.com/http4s/http4s/pull/5789 - Update scalafmt-core to 3.2.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5784
- Update scalafmt-core to 3.3.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5834
- Fix the
lint
command by @danicheg in https://github.com/http4s/http4s/pull/5842 - Update dev shell by @rossabaker in https://github.com/http4s/http4s/pull/5846
- Fix description for pinned CE2 dependencies by @bplommer in https://github.com/http4s/http4s/pull/5855
- Update sbt-scalafix to 0.9.34 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5851
- Upgrade typelevel-nix to pick up Metals by @rossabaker in https://github.com/http4s/http4s/pull/5863
- Use loopback address for Netty scaffold by @armanbilge in https://github.com/http4s/http4s/pull/5901
- Update to sbt-http4s-org 0.10.0 by @armanbilge in https://github.com/http4s/http4s/pull/5900
- Update scalafmt-core to 3.3.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5910
- Enable snapshots for 0.22 by @armanbilge in https://github.com/http4s/http4s/pull/5908
- Revert "Enable snapshots for 0.22" (#5908) by @rossabaker in https://github.com/http4s/http4s/pull/5920
- Add
scalafixInternalRules
to root project by @armanbilge in https://github.com/http4s/http4s/pull/5918 - Update sbt-http4s-org to 0.10.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5922
- Update scalafmt-core to 3.3.3 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5931
- Update sbt-http4s-org to 0.11.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5935
- remove empty excludes from release notes config by @armanbilge in https://github.com/http4s/http4s/pull/5937
- Push behind-the-scenes label down the changelog by @rossabaker in https://github.com/http4s/http4s/pull/5939
-
New Contributors
- @niij made their first contribution in https://github.com/http4s/http4s/pull/5808
- @mcarolan made their first contribution in https://github.com/http4s/http4s/pull/5613
Full Changelog: https://github.com/http4s/http4s/compare/v0.22.8...v0.22.9
v1.0.0-M30 (2021-12-08)
This is the latest milestone of the 1.0 series. It is not binary compatible with any previous version.
This milestone is the first to include Scala 3 support for http4s-scalatags.
-
http4s-core
- Make EntityEncoder covariant in its effect type by @bplommer in https://github.com/http4s/http4s/pull/5229
- Use case object for access-control-allow-credentials by @bplommer in https://github.com/http4s/http4s/pull/5482
-
http4s-scalatags
- Update scalatags to 0.11.0 by @scala-steward in https://github.com/http4s/http4s/pull/5644
- Publish http4s-scalatags for Scala 3 by @rossabaker in https://github.com/http4s/http4s/pull/5648
-
Documentation
- Clarify support levels by @rossabaker in https://github.com/http4s/http4s/pull/5445
- Migrate Website to Laika by @jenshalm in https://github.com/http4s/http4s/pull/5313
- Update website with SJS on 0.23, http4s-dom project by @armanbilge in https://github.com/http4s/http4s/pull/5453
- Fix website logo by @armanbilge in https://github.com/http4s/http4s/pull/5459
- Update all the urls to new http4s-dom site by @armanbilge in https://github.com/http4s/http4s/pull/5507
- Fix markdown in readme by @bplommer in https://github.com/http4s/http4s/pull/5523
- updated getting-help.md to point to discord by @barshirtcliff in https://github.com/http4s/http4s/pull/5513
- EPUB download of the docs by @danicheg in https://github.com/http4s/http4s/pull/5640
- website: add favicon by @jenshalm in https://github.com/http4s/http4s/pull/5656
-
Behind the scenes
- Non-trivial merge to main by @rossabaker in https://github.com/http4s/http4s/pull/5446
- Fix ci on main by @armanbilge in https://github.com/http4s/http4s/pull/5514
- Drop hugo from the Nix shell by @rossabaker in https://github.com/http4s/http4s/pull/5455
- Non-trivial merge to main by @rossabaker in https://github.com/http4s/http4s/pull/5530
- Merge branch
series/0.23
intomain
by @danicheg in https://github.com/http4s/http4s/pull/5664 - Unpin
scalatags
in the Steward config by @danicheg in https://github.com/http4s/http4s/pull/5668 - Merge 0.23 -> main by @armanbilge in https://github.com/http4s/http4s/pull/5673
-
New Contributors
- @jenshalm made their first contribution in https://github.com/http4s/http4s/pull/5313
- @barshirtcliff made their first contribution in https://github.com/http4s/http4s/pull/5513
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M29...v1.0.0-M30
v0.23.7 (2021-12-07)
This is a maintenance release, binary compatible with the 0.23.x series. It additionally includes a merge forward of the changes in v0.22.8.
http4s-server and http4s-ember-server are now cross-built for the Scala.js platform.
Scala 3 users must upgrade to at least Scala 3.1.0 as of this release.
-
http4s-core
- Scala 3.1 and friends by @rossabaker in https://github.com/http4s/http4s/pull/5468
- Implement
Request#remoteHost
viaip4s.Dns
by @armanbilge in https://github.com/http4s/http4s/pull/5473 - (scalajs linking) StaticFile: make staticFileKey a lazy val by @yurique in https://github.com/http4s/http4s/pull/5618
- Update
cats-effect
version to 3.3.0 by @danicheg in https://github.com/http4s/http4s/pull/5619 - Update ip4s-core, ip4s-test-kit to 3.1.2 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5631
- Update scodec-bits to 1.1.30 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5632
- Update fs2-core, fs2-io, ... to 3.2.3 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5670
-
http4s-server
- Cross most of server (but
Server
) for JS on 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/5563 - Cross
Server
and ember server to JS in 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/5663
- Cross most of server (but
-
http4s-ember-server
- Cross
Server
and ember server to JS in 0.23 by @armanbilge in https://github.com/http4s/http4s/pull/5663
- Cross
-
Documentation
- Expand docs on client middlewares by @kubukoz in https://github.com/http4s/http4s/pull/5416
- Port migration of the website to Laika for the
series/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5548 - EPUB download of the docs for the
series/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5642 - Fix scaladoc references to io.chrisdavenport.vault by @MasseGuillaume in https://github.com/http4s/http4s/pull/5622
-
Behind the scenes
- Update http4s-circe, http4s-ember-client to 0.23.6 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5413
- Non-trivial merge to 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5431
- Non-trivial merge to 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5444
- Pin scala-library_sjs1 by @rossabaker in https://github.com/http4s/http4s/pull/5448
- Enable fatal warnings in CI for Scala 3.1 by @armanbilge in https://github.com/http4s/http4s/pull/5474
- Use Scala 3 cross-compatible
@nowarn
by @armanbilge in https://github.com/http4s/http4s/pull/5518 - Non-trivial merge to 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5506
- Non-trivial merge into 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5529
- Add scalafix linter for use of fs2 Sync compiler by @bplommer in https://github.com/ http4s/http4s/pull/5536
- Non-trivial merge to 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5540
- Fix or exclude scalafix warnings by @bplommer in https://github.com/http4s/http4s/pull/5549
- Non-trivial merge into 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5557
- Add sbt check for misplaced sources by @armanbilge in https://github.com/http4s/http4s/pull/5578
- Use
MonadCancel
in theHttp1Writer.write
by @danicheg in https://github.com/http4s/http4s/pull/5600 - Non-trivial merge to 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5602
- Merge branch
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5635 - Update jnr-unixsocket to 0.38.14 in series/0.23 by @scala-steward in https://github.com/http4s/http4s/pull/5639
- relax Client.translate bound on
G[_]
to MonadCancelThrow by @bpholt in https://github.com/http4s/http4s/pull/5634 - EPUB download of the docs for the
series/0.22
by @danicheg in https://github.com/http4s/http4s/pull/5652 - Merge branch
series/0.22
intoseries/0.23
by @danicheg in https://github.com/http4s/http4s/pull/5653 - Merge 0.22 to 0.23 by @rossabaker in https://github.com/http4s/http4s/pull/5669
-
New Contributors
- @yurique made their first contribution in https://github.com/http4s/http4s/pull/5618
- @MasseGuillaume made their first contribution in https://github.com/http4s/http4s/pull/5622
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.6...v0.23.7
v0.22.8 (2021-12-07)
This is a maintenance release, binary compatible with the 0.22.x series.
-
http4s-core
- Update case-insensitive, ... to 1.2.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5434
- Fix Origin parsing on hosts starting with a number by @gaspb in https://github.com/http4s/http4s/pull/5504
- Deprecate
DefaultCharset
, useUTF-8
directly by @bplommer in https://github.com/http4s/http4s/pull/5512 - Access control allow methods by @rcardin in https://github.com/http4s/http4s/pull/5376
- Uri Path Segment Encoder by @zarthross in https://github.com/http4s/http4s/pull/5519
- Update cats-parse to 0.3.6 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5598
- Update cats-core, cats-laws to 2.7.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5625
- Add DefaultQueryParamDecoderMatcher class by @sbly in https://github.com/http4s/http4s/pull/5564
-
http4s-laws
- Update discipline-core to 1.2.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5418
-
Various backends
- Update log4cats-slf4j, log4cats-testing to 1.4.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5638
-
http4s-blaze-server
- Make websocket buffer size configurable by @DeviLab in https://github.com/http4s/http4s/pull/5381
-
http4s-async-http-client
- Update netty-buffer, netty-codec-http to 4.1.70.Final in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5532
-
http4s-okhttp-client
- Update okhttp to 4.9.3 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5605
-
http4s-jawn
- Update jawn-parser to 1.3.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5580
-
http4s-scalatags
- Update scalatags to 0.10.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5441
-
http4s-tomcat
- Update tomcat-catalina, tomcat-coyote, ... to 9.0.55 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5584
-
Scalafixes
- Scalafix for CIString, Header, Headers for 0.22 by @bplommer in https://github.com/http4s/http4s/pull/5387
- Add scalafix for User-Agent header change by @bplommer in https://github.com/http4s/http4s/pull/5388
- Fix the package in the AHC scalafix by @rossabaker in https://github.com/http4s/http4s/pull/5643
-
Documentation
- QueryOps +? -> ++? doctest and migration guide by @zmccoy in https://github.com/http4s/http4s/pull/5379
- Fix
scaladoc
for someHeaders
methods by @danicheg in https://github.com/http4s/http4s/pull/5491 - Clean up Blaze examples: weaken TC constraints, address linter warnings by @bplommer in https://github.com/http4s/http4s/pull/5524
- Port migration of the website to Laika for the
series/0.22
by @danicheg in https://github.com/http4s/http4s/pull/5551 - Fix dead links to RFC by @danicheg in https://github.com/http4s/http4s/pull/5592
- EPUB download of the docs for the
series/0.22
by @danicheg in https://github.com/http4s/http4s/pull/5652 - Add favicon to the
0.22
website and docs by @danicheg in https://github.com/http4s/http4s/pull/5676 - Update nav-docs.html by @rtar in https://github.com/http4s/http4s/pull/5481
-
Behind the scenes
- Update scala3-library to 3.0.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5400
- Update sbt-mdoc to 2.2.24 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5424
- Reproduce deadlocks in PoolManager by @RafalSumislawski in https://github.com/http4s/http4s/pull/5384
- fix MatchError by @RafalSumislawski in https://github.com/http4s/http4s/pull/5383
- Backport to 0.22: Expand docs on client middlewares by @kubukoz in https://github.com/http4s/http4s/pull/5430
- Ember Server connection tests by @RaasAhsan in https://github.com/http4s/http4s/pull/5382
- Pin dependencies for 0.22 by @rossabaker in https://github.com/http4s/http4s/pull/5443
- Update sbt-unidoc to 0.5.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5471
- Mark some test-suites in the
blaze-client
as flaky by @danicheg in https://github.com/http4s/http4s/pull/5485 - Thin ci matrix by @armanbilge in https://github.com/http4s/http4s/pull/5476
- Port #5477 to the series/0.22 by @danicheg in https://github.com/http4s/http4s/pull/5483
- Remove redundant setting in scalafix build by @bplommer in https://github.com/http4s/http4s/pull/5499
- Remove redundant val in the
Header.Raw
constructor by @danicheg in https://github.com/http4s/http4s/pull/5500 - Format sbt files, add command alias for pre-PR linting by @bplommer in https://github.com/http4s/http4s/pull/5498
- Run Scalafix in CI by @bplommer in https://github.com/http4s/http4s/pull/5505
- Use predefined names of headers instead of creating them in the
Headers
by @danicheg in https://github.com/http4s/http4s/pull/5492 - Pin okio to 2.x by @rossabaker in https://github.com/http4s/http4s/pull/5522
- Add custom scalafix rules by @bplommer in https://github.com/http4s/http4s/pull/5521
- Update scalafmt by @bplommer in https://github.com/http4s/http4s/pull/5534
- run scalafmt on series/0.22 by @bplommer in https://github.com/http4s/http4s/pull/5544
- Send multiple chunks when testing chunked requests by @RafalSumislawski in https://github.com/http4s/http4s/pull/5552
- Fix or exclude scalafix warnings by @bplommer in https://github.com/http4s/http4s/pull/5549
- Add further scalafix rules by @bplommer in https://github.com/http4s/http4s/pull/5550
- Update logback-classic to 1.2.7 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5560
- Don't ignore the
Part.covary
test suite in theMultipartSuite
by @danicheg in https://github.com/http4s/http4s/pull/5576 - Clean up
ServerTestRoutes
by @danicheg in https://github.com/http4s/http4s/pull/5575 - Use an instance of
Arbitrary[Year]
from ScalaCheck by @danicheg in https://github.com/http4s/http4s/pull/5577 - Update sbt-native-packager to 1.9.7 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5589
- Use
assertEquals
instead ofassert
by @danicheg in https://github.com/http4s/http4s/pull/5591 - Use
Arbitrary[Uri]
in some tests by @danicheg in https://github.com/http4s/http4s/pull/5586 - Remove redundant isScala3 from build.sbt by @bplommer in https://github.com/http4s/http4s/pull/5595
- Add advice of using
assertEquals()
in the contributing guide by @danicheg in https://github.com/http4s/http4s/pull/5594 - Don't ignore
covary
tests in the MessageSuite by @danicheg in https://github.com/http4s/http4s/pull/5596 - Use
Bracket
in theHttp1Writer.write
by @danicheg in https://github.com/http4s/http4s/pull/5565 - Update scalafmt-core to 3.1.2 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5606
- Update sbt-scalafix, scalafix-testkit to 0.9.33 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5616
- Close some resources in tests by @danicheg in https://github.com/http4s/http4s/pull/5633
- Update scalafmt-core to 3.2.1 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5650
- Pin scalatags to 0.10 by @rossabaker in https://github.com/http4s/http4s/pull/5647
- Update munit-cats-effect-2 to 1.0.7 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5667
- Update sbt-http4s-org to 0.9.0 in series/0.22 by @scala-steward in https://github.com/http4s/http4s/pull/5659
- Add the fast path for
Uri.decode
implementation by @plokhotnyuk in https://github.com/http4s/http4s/pull/5556
-
New Contributors
- @DeviLab made their first contribution in https://github.com/http4s/http4s/pull/5381
- @gaspb made their first contribution in https://github.com/http4s/http4s/pull/5504
- @sbly made their first contribution in https://github.com/http4s/http4s/pull/5564
- @plokhotnyuk made their first contribution in https://github.com/http4s/http4s/pull/5556
v1.0.0-M29 (2021-10-11)
This is the latest development milestone in the 1.x series. It is not binary compatible with previous milestones. It includes all the changes through 0.23.6.
- http4s-server
v0.23.6 (2021-10-12)
This is a routine maintenance release. It is binary compatible with the v0.22.x series and includes the changes in v0.22.7.
-
http4s-core
-
Noteworthy refactorings
- #5340: Replace our internal
decode
with FS2'sdecodeWithCharset
. This only affects non-UTF-8 encodings.
- #5340: Replace our internal
-
Noteworthy refactorings
-
http4s-client
-
Breaking changes
- #5348: Scala.js only: remove
JavaNetClientBuilder
. It already failed to link, and now it will fail to compile.
- #5348: Scala.js only: remove
-
Bug fixes
- #5349: Fix deadlocks in
Retry
andFollowRedirect
middlewares. We no longer attempt to acquire a second connection before releasing the first, potentially starving the connection pool.
- #5349: Fix deadlocks in
-
Breaking changes
-
Dependency updates
- scalajs-1.7.1
v0.22.7 (2021-10-12)
This is a routine maintenance release. It is binary compatible with the v0.22.x series and includes the changes in v0.21.31.
-
http4s-core
-
http4s-server
-
http4s-blaze-client
-
Compatibility
- #5344: Reintroduce deprecated alias for
org.http4s.client.blaze.BlazeClientBuilder
to ease migration from 0.21.x.
- #5344: Reintroduce deprecated alias for
-
Compatibility
-
http4s-blaze-server
-
Compatibility
- #5344: Reintroduce deprecated alias for
org.http4s.server.blaze.BlazeServerBuilder
to ease migration from 0.21.x.
- #5344: Reintroduce deprecated alias for
-
Compatibility
-
http4s-ember-core
-
Semantic change
- #5341: Add
EmberException.ReadTimeout
andEmberException.RequestHeadersTimeout
(unobservable) to distinguish backend timeouts that close the connection from applicationTimeoutExceptions
that can be handled to generate a503
response or similar.
- #5341: Add
-
Semantic change
-
Dependency updates
-
fs2-2.5.10
-
netty-4.1.69.Final
-
scalacheck-effect-1.0.3
v0.21.31 (2021-10-11)
This is a maintenance release. The only changes are to increase forward source compatibility with 0.22. It is binary compatible with the 0.21.x series.
-
http4s-core
-
Compatibility
- #5291: Undeprecate
Headers.apply
. Something similar exists in 0.22.
- #5291: Undeprecate
-
Compatibility
-
http4s-blaze-server
-
Compatibility
- #5291: Add
org.http4s.blaze.server.BlazeServerBuilder
toorg.http4s.server.blaze.BlazeServerBuilder
. In 0.22, the alias becomes the canonical name for consistency with the other backends.
- #5291: Add
-
Compatibility
-
http4s-blaze-client
-
Compatibility
- #5291: Add
org.http4s.blaze.client.BlazeClientBuilder
toorg.http4s.client.blaze.BlazeClientBuilder
. In 0.22, the alias becomes the canonical name for consistency with the other backends.
- #5291: Add
-
Compatibility
v1.0.0-M28 (2021-10-06)
This is the latest development milestone in the 1.x series. It is not binary compatible with previous milestones.
The http4s-dom-core, http4s-dom-fetch-client, and http4s-dom-service-worker modules have been moved to the http4s-dom repo and are now on their own release cycle.
-
Various modules
-
Noteworthy refactoring
- #5303: Many of the changes on the 1.x line were backported to 0.23.x. This resynchronized those branches for continuing merges. Nothing significant should have changed here that isn't already noted in 0.23.5.
-
Noteworthy refactoring
-
http4s-core
-
http4s-client
-
Breaking changes
- #5287: Weaken constraint on
DestinationAttribute
toMonadCancelThrow
. Does not break source compatibility.
- #5287: Weaken constraint on
-
Breaking changes
-
http4s-server
-
Breaking changes
- #5327:
WebSocketBuilder2
is renamed back toWebSocketBuilder
. A deprecated alias is left asWebSocketBuilder
to aid migration.
- #5327:
-
Breaking changes
v0.23.5 (2021-10-06)
This is a maintenance release. It is binary compatible with 0.23.4, and includes the changes in 0.22.6.
Scala.js support is backported for a large subset of the modules present in 1.0. Additional Scala.js-only modules for using http4s in the browser have been spun off as https://github.com/http4s/http4s-dom.
-
http4s-core
-
http4s-laws
-
Cross Builds
- #5298: Add support for Scala.js
-
Cross Builds
-
http4s-client
-
Cross Builds
- #5298: Add support for Scala.js
-
Cross Builds
-
http4s-server
-
Deprecations
- #5226: Migrate to the
fs2.io.file
APIs inFileService
.
- #5226: Migrate to the
-
Deprecations
-
http4s-blaze-server
-
Bug fixes
- #5152: Pass a
WebSocketBuilder
, now namedWebSocketBuilder2
, when adding anHttpApp
. This, combined with the newimapK
method, lets web socket applications vary the local effect. Previously, this threw aClassCastException
.
- #5152: Pass a
-
Bug fixes
-
http4s-blaze-client
-
Enhancements
- #5201: Adds an
BlazeClientBuilder.apply
method that uses theExecutionContext
from theAsync[F]
instance. The old constructor that required an explicitExecutionContext
is now deprecated. Users who need a customExecutionContext
for blaze should callwithExecutionContext
.
- #5201: Adds an
-
Enhancements
-
http4s-ember-core
-
Cross Builds
- #5298: Add support for Scala.js
-
Cross Builds
-
http4s-ember-server
-
Bug fixes
- #5152: Pass a
WebSocketBuilder
, now namedWebSocketBuilder2
, when adding anHttpApp
. This, combined with the newimapK
method, lets web socket applications vary the local effect. Previously, this threw aClassCastException
.
- #5152: Pass a
-
Enhancements
- #5219: Add support for Unix sockets. This works on Linux and Darwin, but not on Windows. Use the new
withUnixSocketConfig
method onEmberServerBuilder
to bind to anfs2.io.net.unixsocket.UnixSocketAddress
.
- #5219: Add support for Unix sockets. This works on Linux and Darwin, but not on Windows. Use the new
-
Bug fixes
-
http4s-ember-client
-
Dependency versions
- fs2-3.1.4
- ip4s-3.0.4
v0.22.6 (2021-10-06)
This is a routine maintenance release. It is binary compatible with v0.22.5 and includes the changes in v0.21.30.
-
http4s-core
- Enhancements
-
Deprecation
- #5260: Deprecate
HttpVersion#copy
, which circumvents validation and could create out-of-bounds HTTP protocol versions. - #5253: Deprecate custom status reason phrases. They are a security risk for something that not all backends support and the spec does not require us to support.
- #5331: Deprecate
Status.apply
, which does not validate the code. UsefromInt
instead.
- #5260: Deprecate
- Notable refactoring
-
http4s-laws
-
Deprecation
- #5274: Deprecate
ArbitraryInstances
, which was redundant with thearbitrary
object. The latter is packaged consistently with Cats' arbitraries.
- #5274: Deprecate
-
Deprecation
-
http4s-server
-
Enhancements
- #5323: In
CORSPolicy
, addwithAllowHeadersStatic
, which supports a static list ofAccess-Control-Allow-Headers
whether theAccess-Control-Request-Headers
values match or not.
- #5323: In
-
Enhancements
-
http4s-blaze-client
-
Semantic change
- #5032: Wrap
EOF
when borrowing a dead connection in ajava.net.SocketException
with information on which host failed.
- #5032: Wrap
-
Semantic change
-
http4s-ember-client
-
http4s-ember-server
-
Semantic change
- #5286: On
requestHeaderTimeout
andidleTimeout
, close the connection without rendering a500 Internal Server Error
response. The HTTP/1.1 spec is not prescrptive on this matter, but this behavior is more consistent with prevaling usage in http4s and a sampling of other servers. Furthermore, an empty response is retriable (assuming request idempotence) by clients, whereas a500 Internal Server Error
is not.
- #5286: On
-
Semantic change
-
Enhancements
- #5271: Eliminate exception allocation on the parser hot path
-
Dependency updates
- ip4s-2.0.4
- jetty-9.4.44.v20210927
- metrics-4.2.4
- munit-cats-effect-1.0.6
- okhttp-4.9.2
- scodec-bits-1.2.29
- tomcat-9.0.54
v1.0.0-M27 (2021-09-21)
This release includes security patches for GHSA-5vcm-3xc3-w7x3 for blaze-client, blaze-server, ember-client, ember-server, and jetty-client. It forward-merges 0.23.4.
-
http4s-dom-fetch-client
-
Enhancements
- #5101: Add a request timeout and new
FetchOptions
to configure the fetch client.
- #5101: Add a request timeout and new
-
Enhancements
-
http4s-dom-service-worker
-
Breaking changes
- #5089: Simplify service worker API and make safe(r). The
ServerWorkerApp
is now replaced by a method that suspends intoSyncIO
.
- #5089: Simplify service worker API and make safe(r). The
-
Breaking changes
v0.23.4 (2021-09-21)
This release includes security patches for GHSA-5vcm-3xc3-w7x3 for blaze-client, blaze-server, ember-client, ember-server, and jetty-client. It is binary compatible with v0.22.4, and forward-merges 0.22.5.
-
http4s-client
-
Enhancements
- #5190: Add an
effect
constructor for calculating effectual classifiers. Note that it is a mistake to consume the request body unless it is cached external to this call.
- #5190: Add an
-
Enhancements
-
Dependency updates
- cats-effect-3.2.8
- fs2-3.1.2
- keypool-0.4.7
v0.22.5 (2021-09-21)
This release includes security patches for GHSA-5vcm-3xc3-w7x3 for blaze-client, blaze-server, ember-client, ember-server, and jetty-client. It is binary compatible with v0.22.4, and forward-merges 0.21.29.
-
http4s-core
- Bug fixes
-
Enhancements
- #5168: Add
Ordering
instance for Oauth1ProtocolParameter
. - #5176: Add model for the
X-Forwarded-Proto
header. - #5195: Restore the
EntityDecoder[F, ByteVector]
. - #5171: Add model for the
Access-Control-Max-Age
header. - #5202: Use concrete types for overridden
Request
andResponse
methods. This should be transparent. - #5175: Introduce a
HeaderCompanion
helper to reduce boilerplate when defining modeled headers.
- #5168: Add
-
http4s-blaze-client
- #5158: Add a
resourceWithState
method to theBlazeClientBuilder
for monitoring the connection pool.
- #5158: Add a
-
http4s-ember-core
-
Enhancements
- #5216: Improve performance of requet and response parsers
-
Enhancements
-
http4s-ember-server
-
Bug fixes
- #5130: Populate
SecureSession
request attribute in ember-server.
- #5130: Populate
-
Bug fixes
-
Dependency updates
- cats-effect-2.5.4
- netty-4.1.68
- scalafix-0.9.31
- tomcat-9.0.53
v0.21.30 (2021-10-06)
This is a bugfix release. Routine maintenance has stopped on 0.21.x, but we'll continue to entertain PRs from the community. It is binary compatible wit hthe 0.21.x series.
-
blaze-client
- Compatibility restorations
-
#5288: Allow
' '
when rendering URI. This is against the spec, but bug-compatible with previous versions and not a security threat. It has come up for users trimming strings from config. Starting in 0.22, such whitespace is encoded properly. -
ember-client
- Bugfixes
-
#5247: Match on
ClosedChannelException
when detecting connections that terminated inside the pool.- Compatibility restorations
-
#5288: Allow
' '
when rendering URI. This is against the spec, but bug-compatible with previous versions and not a security threat. It has come up for users trimming strings from config. Starting in 0.22, such whitespace is encoded properly.
v0.21.29 (2021-09-21)
This release includes security patches for blaze-client, blaze-server, ember-client, ember-server, and jetty-client. It is binary compatible with the 0.21.x series.
-
Various modules
-
GHSA-5vcm-3xc3-w7x3: Patches a vulnerability when unencoded user inputs are rendered in the model. Malicious characters in these inputs can be used in splitting attacks.
- Header values.
\r
,\n
, and\u0000
values are now replaced with spaces. - Header names. Headers with invalid names are now dropped.
- Status reason phrases. Invalid phrases are now omitted.
- URI authority registered names. Requests with invalid reg-names now raise an exception.
- URI paths. Requests with invalid URI paths now raise an exception.
- Header values.
-
GHSA-5vcm-3xc3-w7x3: Patches a vulnerability when unencoded user inputs are rendered in the model. Malicious characters in these inputs can be used in splitting attacks.
v1.0.0-M26 (2021-09-02)
This release is a forward port of all the changes in v0.23.3.
v0.23.3 (2021-09-02)
This is binary compatible with v0.23.3. It includes the fixes in v0.22.2.
-
http4s-ember-server
-
Bugfixes
- #5138: Correctly populate the
SecureSession
response attribute.
- #5138: Correctly populate the
-
Bugfixes
v0.22.4 (2021-09-02)
This is binary compatibile with v0.22.3. It includes the CORS bugfix in v0.21.28.
-
http4s-server
-
Bugfixes
- #5130: Fix the parsing of empty
Origin
headers to be a parse failure instead ofOrigin.Null
.
- #5130: Fix the parsing of empty
-
Bugfixes
-
Enhancements
- #5321: Add
BodyCaching
middleware.
- #5321: Add
-
Dependency updates
- scodec-bits-1.1.28
v0.21.28 (2021-09-02)
This is a bugfix to yesterday's patch. It is not a security issue, but a correctness issue.
This release is binary compatible with 0.21.x.
-
http4s-server
-
Breaking changes
- #5144: In the
CORS
middleware, respond to preflightOPTIONS
requests with a 200 status. It was previously passing through to the wrappedHttp
, most of which won't respond toOPTIONS
. The breaking change is that the constraint is promoted fromFunctor
toApplicative
. TheFunctor
version is left for binary compatibility with a runtime warning.
- #5144: In the
-
Breaking changes
v1.0.0-M25 (2021-09-01)
This is the latest development release. No binary compatibility is promised yet. Includes all changes in v0.23.2.
-
http4s-core
-
Breaking changes
- #5051: Per spec,
Access-Control-Allow-Headers
andAccess-Control-Expose-Headers
can be empty. - #5082: Remodel
Origin
header.Origin.Null
is changed toOrigin.null
. The obsoleteOrigin.HostList
is gone in favor ofOrigin.Host
being anOrigin
. Fixes parsing of an empty header to be an error instead of returningnull
.
- #5051: Per spec,
-
Breaking changes
-
http4s-dom-core
-
Dependency updates
- simpleclient-0.12.0 (Prometheus)
- scalajs-dom-1.2.0
v0.23.2 (2021-09-01)
This release includes a security patch to GHSA-52cf-226f-rhr6, along with all changes in v0.22.3.
This release is binary compatible with the 0.23 series.
-
http4s-core
-
Enhancements
- #5085: Make
EntityEncoder
s forFile
,Path
, andInputStream
implicit. Since 0.23, they no longer require an explicitBlocker
parameter, using Cats-Effect 3's runtime instead.
- #5085: Make
-
Enhancements
-
http4s-blaze-server
-
Bug fixes
- #5118: Don't block the
TickWheelExecutor
on cancellation. In-flight responses are canceled when a connection shuts down. If the response cancellation hangs, it blocks theTickWheelScheduler
thread. When this thread blocks, subsequent scheduled events are not processed, and memory leaks with each newly scheduled event.
- #5118: Don't block the
-
Enhancements
- #4782: Use
Async[F].executionContext
as a defaultExecutionContext
inBlazeServerBuilder
.
- #4782: Use
-
Bug fixes
-
http4s-ember-server
- #5106: Demote noisy
WebSocket connection terminated with exception
message to trace-level logging on broken pipes. This relies on exception message parsing and may not work well in all locales.
- #5106: Demote noisy
-
Dependency updates
- cats-effect-3.2.5
- fs2-3.1.1
v0.22.3 (2021-09-01)
This release includes a security patch to GHSA-52cf-226f-rhr6, along with all changes in 0.21.26 and 0.21.27.
Binary compatible with 0.22.2 series, with the exception of static forwarders in HttpApp.apply
, HttpApp.local
. Unless you are calling HttpApp
from a language other than Scala, you are not affected.
-
http4s-core
-
Binary breaking changes
- #5071: Weakens constraints on
HttpApp.apply
andHttpApp.local
fromSync
toDefer
. This change is technically binary breaking, but will only affect static methods called via interop from a language other than Scala.
- #5071: Weakens constraints on
-
Semantic changes
- #5073:
withEntity
now replaces any existing headers with the same name with the headers from theEntityEncoder
. In v0.21, known single headers were replaced and recurring headers were appended. Beginning in 0.22.0, everything was appended, which commonly resulted in duplicateContent-Type
headers. There is no longer a global registry of headers to infer singleton vs. recurring semantics, but in practice,EntityEncoder
headers are single, so this is more correct and more similar to the pre-0.22 behavior.
- #5073:
- Bugfixes
- Enhancements
-
Documentation
- #5061: Document that the
Allow
header MUST return the allowed methods.
- #5061: Document that the
-
Dependency updates
- blaze-0.15.2
-
Binary breaking changes
-
http4s-client
-
Enhancements
- #5023: Parameterize the signature algorithm in the OAuth 1 middleware. HMAC-SHA256 and HMAC-SHA512 are now supported in addition to HMAC-SHA1.
-
Enhancements
-
http4s-server
-
http4s-blaze-core
-
Bugfixes
- #5126: Upgrades to a Blaze version that uses a monotonic timer in the
TickWheelExecutor
. This will improve scheduling correctness in the presence of an erratic clock.
- #5126: Upgrades to a Blaze version that uses a monotonic timer in the
-
Bugfixes
-
http4s-blaze-server
-
Bugfixes
- #5075: Render the blaze version correctly in the default startup banner
-
Bugfixes
-
http4s-ember-core
-
Bugfixes
- #5043: Fix several bugs where a body stream silenty ends if the peer closes its end of the socket without finishing writing. This now raises an error.
-
Bugfixes
-
http4s-ember-client
-
Bugfixes
- #5041: Don't keep alive HTTP/1.0 connections without a
Connection: keep-alive
header.
- #5041: Don't keep alive HTTP/1.0 connections without a
-
Bugfixes
-
http4s-ember-server
-
Deprecations
- #5040:
maxConcurrency
is renamed tomaxConnections
. The former is now deprecated.
- #5040:
-
Deprecations
-
http4s-dsl
-
Enhancements
- #5063: Added
->>
infix extractor for a resource-oriented view of routing. Use this to define resource paths only once, and generate proper405
responses with a correctAllow
header when the method is not handled.
- #5063: Added
-
Enhancements
-
Dependency updates
- blaze-0.15.2
- netty-4.1.67
v0.21.27 (2021-08-31)
This is a security release. It is binary compatible with the 0.21.x series.
-
http4s-server
-
Security patches GHSA-52cf-226f-rhr6:
- Deprecates
apply
method that takes aCORSConfig
, andhttpRoutes
anadhttpApp
that take no config. The default configuration disables most actual CORS protection, and has several deficiences even when properly configured. See the GHSA for a full discussion. tl;dr: start fromCORS.policy
. - The deprecated implementation now ignores the
allowCredentials
setting whenanyOrigin
is true, and logs a warning. If you insist on using the deprecated version, old behavior can be restored by settinganyOrigin
to false andallowOrigins
toFunction.const(true)
. - No longer renders an
Access-Control-Allow-Credentials: false
headerFor safety, theallowCredentials
setting is now Please see the GHSA for a full discussion. - The replacement implementation, created from the new
CORS.policy
, additionally fixes the following defects: - No longer returns a
403 Forbidden
response when CORS checks fail. The enforcement point of CORS is the user agent. Any failing checks just suppress CORS headers in the http4s response. - Add
Access-Control-Request-Headers
to theVary
header on preflight responses when it can affect the response. This is important for caching. - Validate the
Access-Control-Request-Headers
, and return no CORS headers if any of the headers are disallowed. - Remote
Vary: Access-Control-Request-Method
andAccess-Control-Max-Age
headers from non-preflight responses. These are only relevant in preflight checks.
- Deprecates
-
Security patches GHSA-52cf-226f-rhr6:
-
http4s-blaze-server
-
Bugfixes
- #5125: Upgrade to a blaze that uses monotonic time in the
TickWheelExecutor
. This is unrelated to the GHSA, but guards against a theoretical scheduling problem if the system clock is erratic.
- #5125: Upgrade to a blaze that uses monotonic time in the
-
Bugfixes
-
Dependency updates
- blaze-0.14.18
v0.21.26 (2021-08-12)
The 0.21 series is no longer actively maintained by the team, but we'll continue to entertain binary compatible patches. All users are still encouraged to upgrade to 0.22 (for Cats-Effect 2) or 0.23 (the latest stable series, on Cats-Effect 3).
v1.0.0-M24 (2020-08-07)
This release adds support for Scala.js, including an Ember client and server, serverless apps, a browser client backed by fetch, and browser service worker apps.
This is the first significant divergence from the 0.23 line since it was forked off an earlier 1.0 milestone. It is not binary compatible with 0.23.x or 1.0.0-M23.
Includes all changes through 0.23.1.
-
http4s-core
-
http4s-laws
-
http4s-server
-
http4s-client
-
http4s-ember-core
-
Enhancements
- #4938: Add Scala.js support
-
Enhancements
-
http4s-ember-client
-
Enhancements
- #4938: Add Scala.js support
-
Enhancements
-
http4s-ember-server
-
Enhancements
- #4938: Add Scala.js support
-
Enhancements
-
http4s-node-serverless
-
New module
- #4938: Run
HttpApp
in a serverless environment
- #4938: Run
-
New module
-
http4s-dom-core
-
New module
- #4938: Base library for DOM support. Scala 2 only for now.
-
New module
-
http4s-dom-fetch-client
-
New module
- #4938: http4s-client backend built on browser fetch API. Scala 2 only for now.
-
New module
-
http4s-dom-service-worker * #4938: Run
HttpApp
in a service worker in the browser. Scala 2 only for now. -
http4s-dsl
-
Enhancements
- #4938: Add Scala.js support
-
Enhancements
-
http4s-boopickle
-
Enhancements
- #4938: Add Scala.js support
-
Enhancements
-
http4s-jawn
-
Enhancements
- #4938: Add Scala.js support
-
Enhancements
-
http4s-circe
-
Enhancements
- #4938: Add Scala.js support
-
Enhancements
-
Dependency updates
- circe-0.15.0-M1
- scala-java-locales-1.2.1 (new)
- scala-java-time-2.3.0 (new)
- scala-js-dom-1.1.0 (new)
-
#5064: Add a conservative retry policy for dead connections. Connections can be terminated on the server side while idling in our pool, which does not manifest until we attempt to read the response. This is now raised as a
java.nio.channels.ClosedChannelException
. AretryPolicy
configuration has been added to theEmberClientBuilder
. The default policy handles the error and resubmits the request if:- The request method is idempotent OR has an
Idempotency-Key
header - Less than 2 attempts have been made
- Ember detects that the connection was closed without reading any bytes
- The request method is idempotent OR has an
v0.23.1 (2021-08-06)
Includes all changes through v0.22.2.
-
Dependency updates
- cats-effect-3.2.2
- fs2-3.1.0
- vault-3.0.4
v0.22.2 (2021-08-06)
-
http4s-core
-
Enhancements
- #5011: Add constant for status code
418 I'm a teapot
. #save418 🫖 - #5013: Create
RequestPrelude
andResponsePrelude
views ofRequest
andResponse
, respectively. These projections omit the body and vault attributes, which permit anOrder
andHash
(and thereforeEq
) instance thatRequest
andResponse
do not. These can be useful in logging, metrics, and caching.
- #5011: Add constant for status code
-
Deprecations
- #5015: Deprecate the old
Uri.uri
,MediaType.mediaType
, andQValue.q
literals. Intepolators for each are available viaorg.http4s.implicits._
- #5015: Deprecate the old
-
Enhancements
-
Dependency updates
- cats-effect-2.5.3
- tomcat-9.0.52
v0.23.0 (2021-07-30)
This is the first production release with Cats-Effect 3 support. All subsequent 0.23.x releases will be binary compatible with this.
Includes all changes through v0.22.1.
-
http4s-core
-
Breaking changes
- #4997: Refresh MimeDB from the IANA registry. It shuffles some constants in ways that offend MiMa, but you almost certainly won't notice.
-
Enhancements
- #4915: Add file-based multipart decoder with better resource handling. This deprecates the priod
mixedMultipart
decoder in favor of amixedMultipartResource
, which cleans up temporary storage on release of the resource. Please see the scaladoc for a usage example.
- #4915: Add file-based multipart decoder with better resource handling. This deprecates the priod
-
Breaking changes
-
Various modules
-
Dependency updates
- cats-effect-3.2.0
- fs2-3.0.6
- jawn-fs2-2.1.0
- keypool-0.4.6
v0.22.1 (2021-07-30)
-
http4s-core
-
Documentation * #5012: Document
MatrixVar
support; -
http4s-client
-
Bugfixes
- #4933: Append the
EntityDecoder
'sAccept
headers to any explicit headers instead of replacing them. This was a regression from the 0.21 line.
- #4933: Append the
-
Bugfixes
-
http4s-boopickle
-
Cross builds
- #4991:
http4s-boopickle
is now cross-published for Scala 3
- #4991:
-
Cross builds
-
Dependency updates
- boopickle-1.4.0
- cats-effect-2.5.2
- dropwizard-metrics-4.2.3
- scala-xml-2.0.1
- slf4j-api-1.7.32
v0.22.0
This is the first production release with Scala 3 support, and continues to support Cats-Effect 2. All users of the 0.21 series are encouraged to upgrade to at least this version. Users needing Cats-Effect 3 are invited to upgrade to http4s-0.23.
All subsequent 0.22.x releases will be binary compatible with this.
Includes all changes from v0.21.25.
-
http4s-core
-
http4s-dsl
-
Bugfixes
- #4923: Define
as
as an infix operator in Scala 3
- #4923: Define
-
Bugfixes
-
http4s-blaze-client
-
Documentation
- #4930: Add scaladoc to
BlazeClientBuilder
- #4930: Add scaladoc to
-
Documentation
-
http4s-ember-server
-
Enhancements
- #4803: Add web socket support
-
Enhancements
-
http4s-jetty-server
-
Bugfixes
- #4967: Fix error parsing IPv6 addresses
-
Bugfixes
-
Dependency updates
- jawn-1.2.0
- prometheus-client-0.11.0
v0.21.25 (2021-07-18)
-
http4s-blaze-client
-
Dependency updates
- dropwizard-metrics-4.2.2
- fs2-2.5.9
- jetty-9.4.43
- log4s-1.10.0
- netty-4.1.66
- slf4j-1.7.31
- tomcat-9.0.50
v1.0.0-M23 (2021-05-26)
Functionally equivalent to v0.23.0-RC1. Keeps the 1.0 milestones current as we continue our roadmap. Includes the vulnerability fix to StaticFile.fromUrl
.
v0.23.0-RC1 (2021-05-26)
Includes the changes of v0.22.0-RC1, including the vulnerability fix to StaticFile.fromUrl
.
-
http4s-core
-
Breaking changes
- #4884: Use
Monad
instead ofDefer
constraints onHttpApp
,HttpRoutes
,AuthedRoutes
,ContextRoutes
, and related syntax. This avoids diverging implicits when only aConcurrent
constraint is available in Cats-Effect-3.
- #4884: Use
-
Noteworthy refactoring
- #4773: Refactor the internals of the
Multipart
parser.
- #4773: Refactor the internals of the
-
Breaking changes
-
http4s-ember-client
-
Noteworthy refactoring
- #4882: Use
Network
instead ofNetwork.forAsync
to get the socket group.
- #4882: Use
-
Noteworthy refactoring
-
http4s-ember-server
-
Noteworthy refactoring
- #4882: Use
Network
instead ofNetwork.forAsync
to get the socket group.
- #4882: Use
-
Noteworthy refactoring
v0.22.0-RC1 (2021-05-26)
Includes the changes of 0.21.24, including the vulnerability fix to StaticFile.fromUrl
.
-
http4s-core
-
Breaking changes
- #4787: Various header selection refinements:
Header.Select#toRaw
now takes anF[A]
and returns aNonEmptyList[Header.Raw]
. This is necessary because headers without aSemigroup
(e.g.,Set-Cookie
) can't be combined into a single header value.- The old
Header.Select#toRaw
is renamed totoRaw1
. This version still accepts a single value and returns a single raw header. Header.Select#from
now returns anOption[Ior[NonEmptyList[ParseFailure], NonEmptyList[A]]]
. TheIor
lets us return both a value and "warnings" when a repeating header contains both valid and invalid entries.- Add
Headers#getWithWarnings
to return theIor
result. - #4788: Extend
ServerSentEvent
with comments. Thedata
field is now optional.retry
is changed from aLong
to aFiniteDuration
.data
spanning multiple lines are now rendered as multipledata:
fields per the spec.
-
Bugfixes
- #4873: Catch exceptions in
ParseResult.fromParser
. Don't throw when parsing a media range in theContent-Type
parser.
- #4873: Catch exceptions in
-
Breaking changes
-
Dependency updates
- blaze-0.15.1
- circe-0.14.1
- play-json-2.9.2 (downgrade)
v0.21.24 (2021-05-26)
0.21 is EOL. Bugfixes and community submissions will be considered for discretionary releases, but the development team will now focus on later branches.
Contains a vulnerability fix for StaticFile.fromUrl
.
-
http4s-blaze-core
-
Vulnerability fixes
- GHSA-6h7w-fc84-x7p6: Don't leak the existence of a directory serverside when using
StaticFile.fromUrl
with non-file URLs.
- GHSA-6h7w-fc84-x7p6: Don't leak the existence of a directory serverside when using
-
Enhancements
- #4880: Handle exceptions when the tick wheel executor is shutdown as a warning instead of a stack trace error.
-
Vulnerability fixes
-
http4s-ember-client
-
Enhancements
- #4881: Add
checkEndpointIdentification
flag to Ember. When true, setsHTTPS
as the endpoint validation algorithm. Defaults to true.
- #4881: Add
-
Enhancements
-
Dependency Updates
- blaze-0.14.17
v1.0.0-M22 (2021-05-21)
Functionally equivalent to v0.23.0-M1. Keeps the 1.0 milestones current as we continue our roadmap.
v0.23.0-M1 (2021-05-21)
We are opening an 0.23 series to offer full support for Scala 3 and Cats-Effect 3 while giving ourselves a bit more time to finish our more ambitious goals for 1.0. We will release v0.23.0 with production support as soon as circe-0.14 is out.
This release picks up from v1.0.0-M21 with its Cats-Effect 3 support, and includes all improvements from v0.22.0-M8.
-
Documentation
- #4845: Mention
Client.fromHttpApp
- #4845: Mention
-
Dependency updates
- cats-effect-3.1.0
- fs2-3.0.4
- ip4s-3.0.2
- jawn-fs2-2.0.2
- keypool-0.4.5
- log4cats-2.1.1
- scalacheck-effect-1.0.2
- vault-3.0.3
v0.22.0-M8 (2021-05-21)
Includes the changes of v0.21.23. This is the first release with support for Scala 3.0.0. We will release v0.22.0 with production support as circe-0.14 is out.
There are several package renames in the backends. To help, we've provided a Scalafix:
-
Add to your
projects/plugins.sbt
:addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.28")
-
Run the following:
sbt ";scalafixEnable; scalafix github:http4s/http4s/v0_22"
-
Crossbuilds
- Adds Scala 3
- Drops Scala-3.0.0-RC2
-
http4s-async-http-client
-
Breaking changes
- #48544: Rename package from
org.http4s.client.asynchttpclient
toorg.http4s.asynchttpclient
- #48544: Rename package from
-
Breaking changes
-
http4s-client
-
Breaking changes
- #4747: Move
ConnectionManager
,PoolManager
, andWaitQueueTimeoutException
into blaze-client and make private. It did not prove to be a generally useful connection pool outside blaze.
- #4747: Move
-
Breaking changes
-
http4s-core
-
http4s-blaze-client
-
Breaking changes
- #4838: Rename package from
org.http4s.client.blaze
toorg.http4s.blaze.client
- #4838: Rename package from
-
Breaking changes
-
http4s-blaze-server
-
Breaking changes
- #4847: Rename package from
org.http4s.server.blaze
toorg.http4s.blaze.server
- #4847: Rename package from
-
Breaking changes
-
http4s-jetty-client
-
Breaking changes
- #4743: Rename package from
org.http4s.client.jetty
toorg.http4s.jetty.client
- #4743: Rename package from
-
Breaking changes
-
http4s-jetty-server
-
http4s-server
-
Dependency updates
- blaze-0.15.0
- cats-parse-0.3.4
- case-insensitive-1.1.4
- circe-0.14.0-M7
- ip4s-2.0.3
- jawn-1.1.2
- jawn-fs2-1.1.3
- keypool-0.3.5
- literally-1.0.2
- log4cats-1.3.1
- log4s-1.10.0-M7
- scala-xml-2.0.0
- vault-2.1.13
v0.21.23 (2021-05-16)
This is the final planned release in the 0.21 series. Bugfixes and community submissions will be considered for discretionary releases, but the development team will now focus on later branches.
-
http4s-blaze-client
-
Bugfixes
- #4810: Read from idle blaze-client connections to prevent retaining (and trying to use) half-closed connections.
- #4812: Remove request retry on EOF from blaze-client. This could theoretically resubmit non-idempotent requests. The problem the retry attempted to solve is mitigated by #4810.
- #4815: Fix "
IdleTimeoutStage
isn't connected" errors by waiting for the final write to finish before returning the connection to the pool.
-
Bugfixes
-
http4s-blaze-core
-
Bugfixes
- #4796: Reset the idle timeout after
readRequest
completes, not when it's called. Affects both blaze-server and blaze-client.
- #4796: Reset the idle timeout after
-
Bugfixes
-
http4s-blaze-server
- Bugfixes
-
Enhancements
- #4761: Use the
TickWheelExecutor
to schedule timeouts with less locking. Change how the parser is acquired to reduce lock contention inHttp1ServerStage
. Significant increases in throughput are observed on small requests with many cores.
- #4761: Use the
-
http4s-circe
-
Enhancements
- #4736: Add
streamJsonArrayDecoder
- #4736: Add
-
Enhancements
-
http4s-ember-core
-
Enhancements
- #4735: Simplify message parsing by parsing everything up to the
\r\n
in one pass. The max header size and max prelude size settings should keep memory consumption limited.
- #4735: Simplify message parsing by parsing everything up to the
-
Enhancements
-
http4s-ember-server
-
http4s-jetty
-
Bugfixes
- #4783: Fix bug with shared
ThreadPool
being destroyed. Prefer aResource[F, ThreadPool]
whose lifecycle shares Jetty's. For compatibility, prevent the default from being destroyed.
- #4783: Fix bug with shared
-
Bugfixes
-
http4s-server
-
Enhancements
- #4793: Make use of IPv4 vs. IPv6 as default address explicit. Applies to all backends.
-
Enhancements
-
Dependency updates
- blaze-0.14.16
- cats-2.6.1
- cats-effect-2.5.1
- dropwizard-metrics-4.2.0
- discipline-core-1.1.5
- jackson-databind-2.12.3
- fs2-2.5.6
- scalacheck-1.15.4
- scodec-bits-1.1.27
- tomcat-9.0.46
v1.0.0-M21 (2021-04-10)
Contains all the changes of v0.22.0-M7.
-
Dependency updates
- cats-effect-3.0.1
- jawn-fs2-2.0.1
- keypool-0.4.1
- log4cats-2.0.1
- vault-3.0.1
v0.22.0-M7 (2021-04-10)
Contains all the changes of v0.21.22.
-
Cross builds
- Add Scala-3.0.0-RC2
- Drop Scala-3.0.0-RC1
-
http4s-play-json
- There is not yet an http4s-play-json build for Scala 3.0.0-RC2 because play-json doesn't yet support it. A PR is open upstream, and we will revive it in the next release.
-
Dependency updates
- blaze-0.15.0-M3
- case-insensitive-1.1.2
- cats-parse-0.3.2
- circe-0.14.0-M5
- ip4s-2.0.1
- jawn-1.1.1
- jawn-fs2-1.1.1
- keypool-0.3.3
- log4cats-1.2.2
- log4s-1.10.0-M6
- literally-1.0.0
- scala-xml-2.0.0-RC1
- vault-2.1.9
v0.21.22 (2021-04-06)
-
http4s-blaze-client
-
Enhancements
- #4699: Add custom DNS resolver support to
BlazeClientBuilder
- #4699: Add custom DNS resolver support to
-
Enhancements
-
http4s-ember-server * #4715: Fix regression in SSL handshake resulting in Connection Refused errors
-
Dependency upgrades
- cats-2.5.0
- cats-effect-2.4.1
- fs2-2.5.4
- netty-4.1.63
- scodec-bits-1.1.25
- tomcat-9.0.45
- twirl-1.5.1
v1.0.0-M20 (2021-03-29)
Includes all the changes of v0.21.21 and v0.22.0-M6.
-
Dependency updates
- cats-effect-3.0.0
- fs2-3.0.0
- jawn-fs2-2.0.0
- keypool-0.4.0
- log4cats-2.0.0
- vault-3.0.0
v0.22.0-M6 (2021-03-29)
Includes all the changes of v0.21.21.
-
http4s-core
-
Breaking changes
- #4588: Additional consistency in modeled headers around
.value
(removed in favor of the typeclass) and.parse
(present on the companion) - #4580: Rename
Uri.Path.fromString
toUri.Path.unsafeFromString
. - #4581: Rename
Query.fromString
toQuery.unsafeFromString
. - #4602: Remove
ipv4
andipv6
macros that clash with ip4s'. - #4603: Drop deprecated members of
org.http4s.util
. - #4604: Fix rendering of UTF-8-encoded
Content-Disposition
parameters. Theparameters
map is now keyed by aCIString
. - #4630: Use Typesafe Literally to implement the literal interpolators. This should have zero impact on user code, but does affect binary compatibility.
- #4588: Additional consistency in modeled headers around
-
Breaking changes
-
http4s-dsl
-
Breaking changes
- #4640: Change
apply(Headers.ToRaw*)
syntax toheaders(Headers.Raw)
. The overload from 0.21 was ambiguous with the new header model in 0.22.
- #4640: Change
-
Breaking changes
-
http4s-boopickle
-
Breaking changes
- #4590: Move implicits to
org.http4s.booPickle.implicits._
. The thinking is evolving here, and this is likely to be reverted before 0.22.0 final.
- #4590: Move implicits to
-
Breaking changes
-
http4s-scala-xml
-
Breaking changes
- #4621: Revert the
implicits
decoding back to how it was in 0.21. Set up safer defaults for the defaultSAXParserFactory
, corresponding to what will be in scala-xml-2.0.
- #4621: Revert the
-
Breaking changes
-
Dependency updates
- async-http-client-2.12.3
- case-insensitive-1.1.0
- jackson-databind-2.12.2
- literally-1.0.0-RC1 (new)
- log4cats-1.2.1
- vault-2.1.8
v0.21.21 (2021-03-29)
-
http4s-client
-
http4s-server
-
http4s-ember-client
-
Enhancements
- #4637: Clarify which timeout is firing in the error message
-
Enhancements
-
http4s-ember-server
-
Bugfixes
- #4637: On reused connections, wait for the idle period, not the shorter header timeout, for the next byte.
-
Bugfixes
-
http4s-play-json
-
Enhancements
- #4595: Streamline
Writes[Uri]
andReads[Uri]
instances
- #4595: Streamline
-
Enhancements
-
http4s-scala-xml
-
Dependency updates
- cats-effect-2.4.0
- jetty-9.4.39
- netty-4.1.60
- scalatags-0.9.4
- tomcat-9.0.44
v1.0.0-M19 (2021-03-03)
This is the first 1.0 milestone with Scala 3 support. Scala 3.0.0-RC1 is supported for all modules except http4s-boopickle, http4s-scalatags, and http4s-twirl.
This release contains all the changes of v0.22.0-M5.
v0.22.0-M5 (2021-03-03)
This is the first release with Scala 3 support. Scala 3.0.0-RC1 is supported for all modules except http4s-boopickle, http4s-scalatags, and http4s-twirl.
-
http4s-core
-
Breaking: New header model
This release brings a new model for headers. The model based on subtyping and general type projection used through http4s-0.21 is replaced by a
Header
typeclass.-
There is no longer a
Header.Parsed
. All headers are stored inHeaders
asHeader.Raw
. -
Header.Raw
is no longer a subtype ofHeader
.Header
is now a typeclass. -
New modeled headers can be registered simply by providing an instance of
Header
. The global registry,HttpHeaderParser
, is gone. -
Headers
are created andput
via aHeader.ToRaw
magnet pattern. Instances ofToRaw
includeRaw
, case classes with aHeader
instance,(String, String)
tuples, andFoldable[Header.ToRaw]
. This makes it convenient to create headers from types that don't share a subtyping relationship, and preserves a feel mostly compatible with the oldHeaders.of
. -
HeaderKey
is gone. To retrieve headers from theHeaders
, object, pass the type in[]
instead of()
(e.g.,headers.get[Location]
). -
from
no longer exists on the companion object of modeled headers. Use theget[X]
syntax. -
unapply
no longer exists on most companion objects of modeled headers. This use dto be an alias tofrom
. -
"Parsed" headers are no longer memoized, so calling
headers.get[X]
twice will reparse any header with a name matchingHeader[X].name
a second time. It is not believed that headers were parsed multiple times often in practice. Headers are still not eagerly parsed, so performance is expected to remain about the same. -
The
Header
instance carries a phantom type,Recurring
orSingle
. This information replaces the oldHeaderKey.Recurring
andHeaderKey.Singleton
marker classes, and is used to determine whether we return the first header or search for multiple headers. -
Given
h1: Headers
andh2.Headers
,h1.put(h2)
andh1 ++ h2
now replace all headers inh1
whose key appears inh2
. They previously replaced only singleton headers and appended recurring headers. This behavior was surprising to users, and required the global registry. -
An
add
operation is added, which requires a value with aHeaderKey.Recurring
instance. This operation appends to any existing headers. -
Headers#toList
is gone, butHeaders#headers
returns aList[Header.Raw]
. The name was changed to call attention to the fact that the type changed to raw headers. -
See #4415, #4526, #4536, #4538, #4537, #5430, #4540, #4542, #4543, #4546, #4549, #4551, #4545, #4547, #4552, #4555, #4559, #4556, #4562, #4558, #4563, #4564, #4565, #4566, #4569, #4571, #4570, #4568, #4567, #4537, #4575, #4576.
-
-
Other breaking changes
- #4554: Remove deprecated
DecodeResult
methods
- #4554: Remove deprecated
-
Enhancements
- #4579: Regenerate MimeDB from the IANA registry
-
v1.0.0-M18 (2021-03-02)
Includes changes from v0.22.0-M4.
-
http4s-core
-
Breaking changes
- #4516: Replace
Defer: Applicative
constraint withMonad
inHttpRoutes.of
andContextRoutes.of
. This should be source compatible for nearly all users. Users who can't abide this constraint can use.strict
, at the cost of efficiency in combinining routes.
- #4516: Replace
- Enhancements
-
Breaking changes
-
http4s-blaze-core
-
Enhancements
- #4425: Optimize entity body writer
-
Enhancements
-
http4s-ember-server
-
Dependency updates
- cats-effect-3.0.0-RC2
- fs2-3.0.0-M9
- jawn-fs2-2.0.0-RC3
- ip4s-3.0.0-RC2
- keypool-0.4.0-RC2
- log4cats-2.0.0-RC1
- vault-3.0.0-RC2
# v1.0.0-M17 (2021-03-02)
Missed the forward merges from 0.22.0-M4. Proceed directly to 1.0.0-M18.
v0.22.0-M4 (2021-03-02)
Includes changes from v0.21.19 and v0.21.20.
-
http4s-core
-
Breaking changes
- #4242: Replace internal models of IPv4, IPv6,
java.net.InetAddress
, andjava.net.SocketAddress
with ip4s. This affects the URI authority, various headers, and message attributes that refer to IP addresses and hostnames. - #4352: Remove deprecated
Header.Recurring.GetT
andHeader.get(`Set-Cookie`)
. - #4364: Remove deprecated
AsyncSyntax
andNonEmpyListSyntax
. These were unrelated to HTTP. - #4407: Relax constraint on
EntityEncoder.fileEncoder
fromEffect
toSync
. This is source compatible. - #4519: Drop unused
Sync
constraints onMultipartParser
,Part
, andKleisliSyntax
. This is source compatible.
- #4242: Replace internal models of IPv4, IPv6,
-
Breaking changes
-
http4s-laws
-
Breaking changes
- #4519: Drop unused
Arbitrary
andShrink
constraints onLawAdapter#booleanPropF
. This is source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-server
-
Breaking changes
- #4519: Drop unused
Functor
constraints inHSTS
,Jsonp
,PushSupport
,TranslateUri
, andUriTranslation
middlewares. Drop unusedSync
andContextShift
constraints instaticcontent
package. These are source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-server
-
Breaking changes
- #4519: Drop unused
Async
constraint inServletContainer
. Drop unusedContextShift
inServletContextSyntax
. These are source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-async-http-client
-
Breaking changes
- #4519: Drop unused
Sync
constraint onAsyncHttpClientStats
. This is source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-prometheus
-
Breaking changes
- #4519: Drop unused
Sync
constraint onPrometheusExportService
. This is source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-argonaut
-
Removal
- #4409: http4s-argonaut is no longer published
-
Removal
-
http4s-json4s
-
Removal
- #4410: http4s-json4s, http4s-json4s-native, and http4s-json4s-jackson are no longer published
-
Removal
-
http4s-play-json
-
Breaking changes
- #4371: Replace jawn-play with an internal copy of the facade to work around
withDottyCompat
issues.
- #4371: Replace jawn-play with an internal copy of the facade to work around
-
Breaking changes
-
http4s-scala-xml
-
Breaking changes
- #4380: Move the implicits from the root package to a Cats-like encoding. Suggest replacing
import org.http4s.scalaxml._
withimport org.http4s.scalaxml.implicits._
.
- #4380: Move the implicits from the root package to a Cats-like encoding. Suggest replacing
-
Breaking changes
-
Dependencies
- blaze-0.15.0-M2
- case-insensitive-1.0.0
- cats-parse-0.3.1
- circe-0.14.0-M4
- ip4s-2.0.0-RC1
- jawn-1.1.0
- jawn-play (dropped)
- keypool-0.3.0
- log4cats-1.2.0
- log4s-1.0.0-M5
- play-json-2.10.0-RC2
- scala-xml-2.0.0-M5
- vault-2.1.7
v0.21.20 (2021-03-02)
-
http4s-core
-
http4s-ember-core
-
http4s-servlet
-
Enhancements
- #4544: Remove redundant calculation and insertion of request attributes into the Vault
-
Enhancements
-
Dependency upgrades
- cats-2.4.1
- cats-effect-2.3.2
- dropwizard-metrics-4.1.18
- fs2-2.5.3
- jetty-9.4.38
- json4s-3.6.11
- scalacheck-1.15.3
v0.21.19 (2021-02-13)
-
http4s-core
-
Deprecations
- #4337: Deprecate
Header.Recurring.GetT
, which is unused
- #4337: Deprecate
-
Deprecations
-
http4s-client
-
Bugfixes
- #4403: Remove
Content-Coding
andContent-Length
headers after decompressing in theGZip
middleware.
- #4403: Remove
-
Bugfixes
-
http4s-ember-core
-
Bugfixes
- #4348: Handle partially read bodies in persistent connections when the connection is recycled.
-
Bugfixes
-
http4s-ember-server
-
Enhancements
- #4400: Implement the
ConnectionInfo
andSecureSession
request vault attributes, for parity with the Blaze and Servlet backends
- #4400: Implement the
-
Enhancements
-
http4s-argonaut * #4366: Deprecate http4s-argonaut. It won't be published starting in 0.22.
-
http4s-json4s, http4s-json4s-jackson, http4s-json4s-native
-
Deprecations
- #4370: Deprecate the http4s-json4s modules. They won't be published starting in 0.22.
-
Deprecations
-
http4s-scalatags
-
Enhancements
- #3850: Relax constraint on encoders from
TypedTag[String]
toFrag[_, String]
- #3850: Relax constraint on encoders from
-
Enhancements
-
Dependency updates
- cats-2.4.1
- netty-4.1.59.Final
- okio-2.9.0
- tomcat-9.0.43
v1.0.0-M16 (2021-02-02)
Inherits the fixes of v0.21.18
# v1.0.0-M15 (2021-02-02)
Build failure.
Accidentally published from the 0.21.x series after a series of unfortunate events. Do not use.
v0.22.0-M3 (2021-02-02)
Inherits the fixes of v0.21.18
v0.21.18 (2021-02-02)
-
http4s-blaze-server
-
Bug fixes
- #4337: Pass the
maxConnections
parameter to the blaze infrastructure correctly. ThemaxConnections
value was being passed as theacceptorThreads
, leavingmaxConnections
set to its Blaze default of 512.
- #4337: Pass the
-
Bug fixes
-
http4s-ember-core
-
Bug fixes
- #4335: Don't render an empty body with chunked transfer encoding on response statuses that don't permit a body (e.g.,
204 No Content
).
- #4335: Don't render an empty body with chunked transfer encoding on response statuses that don't permit a body (e.g.,
-
Bug fixes
v1.0.0-M14
-
GHSA-xhv5-w9c5-2r2w: Additionally to the fix in v0.21.17, drops support for NIO2.
-
http4s-okhttp-client
v0.22.0-M2 (2021-02-02)
This release fixes a High Severity vulnerability in blaze-server.
-
http4s-blaze-server
- GHSA-xhv5-w9c5-2r2w: Additionally to the fix in v0.21.17, drops support for NIO2.
-
http4s-core
-
Enhancements
- #4286: Improve performance by using
oneOf
and caching a URI parser. This was an identified new hotspot in v0.22.0-M1.
- #4286: Improve performance by using
- Breaking changes
-
Enhancements
-
http4s-prometheus
-
Breaking changes
- #4273: Change metric names from
_count
to_count_total
to match Prometheus' move to the OpenMetrics standard. Your metrics names will change! See prometheus/client_java#615 for more details from the Prometheus team.
- #4273: Change metric names from
-
Breaking changes
-
Dependency updates
- jawn-fs2-1.0.1
- keypool-0.3.0-RC1 (moved to
org.typelevel
) - play-json-2.10.0-RC1
- simpleclient-0.10.0 (Prometheus)
v0.21.17 (2021-02-02)
This release fixes a High Severity vulnerability in blaze-server.
-
http4s-blaze-server
-
Security patches
- GHSA-xhv5-w9c5-2r2w: blaze-core, a library underlying http4s-blaze-server, accepts connections without bound. Each connection claims a file handle, a scarce resource, leading to a denial of service vector.
BlazeServerBuilder
now has amaxConnections
property, limiting the number of concurrent connections. The cap is not applied to the NIO2 socket server, which is now deprecated.
- GHSA-xhv5-w9c5-2r2w: blaze-core, a library underlying http4s-blaze-server, accepts connections without bound. Each connection claims a file handle, a scarce resource, leading to a denial of service vector.
-
Security patches
-
http4s-ember-core
-
Enhancements
- #4331: Don't render an empty chunked payload if a request has neither a
Content-Length
orTransfer-Encoding
and the method is one ofGET
,DELETE
,CONNECT
, orTRACE
. It is undefined behavior for those methods to send payloads.
- #4331: Don't render an empty chunked payload if a request has neither a
-
Enhancements
-
http4s-ember-server
-
Bugfixes
- #4281: Add backpressure to ember startup, so the server is up before
use
returns.
- #4281: Add backpressure to ember startup, so the server is up before
-
Enhancements
- #4244: Internal refactoring of how the stream of server connections is parallelized and terminated.
- #4287: Replace
onError: Throwable => Response[F]
withwithErrorHandler: PartialFunction[Thrwable, F[Response[F]]
. Error handling is invoked earlier, allowing custom responses to parsing and timeout failures.
-
Bugfixes
-
http4s-ember-client
-
Enhancements
- #4301: Add an
idleConnectionTime
toEmberClientBuilder
. Discard stale connections from the pool and try to acquire a new one.
- #4301: Add an
-
Enhancements
-
http4s-servlet
-
Bugfixes
- #4309: Call
GenericServlet.init
when intializing anHttp4sServlet
. AvoidsNullPointerExceptions
from theServletConfig
.
- #4309: Call
-
Bugfixes
-
Documentation * #4261: Better
@see
links throughout the Scaladoc -
Dependency upgrades
- blaze-0.14.15
- okhttp-4.9.1
v1.0.0-M13 (2021-01-25)
This is the first milestone built on Cats-Effect 3. To track Cats-Effect 2 development, please see the new 0.22.x series. Everything in 0.22.0-M1, including the cats-parse port, is here.
-
http4s-core
-
Breaking changes
-
#3784, #3865: Inexhaustively,
- Many
EntityDecoder
constraints relaxed fromSync
toConcurrent
. - File-related operations require a
Files
constraint. Blocker
arguments are no longer required.ContextShift
constraints are no longer required.- The deprecated, non-HTTP
AsyncSyntax
is removed.
- Many
-
#3886:
- Relax
Sync
toDefer
inHttpApp
constructor. - Relax
Sync
toConcurrent
inLogger
constructors. - Remove
Sync
constraint fromPart
constructors. - Relax
Sync
toFunctor
in various Kleisli syntax.
- Relax
-
#3784, #3865: Inexhaustively,
-
Breaking changes
-
http4s-laws
-
Breaking changes
- #3807: Several arbitraries and cogens now require a
Dispatcher
and aTestContext
.
- #3807: Several arbitraries and cogens now require a
-
Breaking changes
-
http4s-client
-
#3857: Inexhaustively,
Monad: Clock
constraints changed toTemporal
Client.translate
requires anAsync
andMonadCancel
- Removal of
Blocker
fromJavaNetClientBuilder
PoolManager
changed fromConcurrent
toAsync
- Many middlewares changed from
Sync
toAsync
- #4081: Change
Metrics
constraints fromTemporal
toClock: Concurrent
-
#3857: Inexhaustively,
-
http4s-server
-
http4s-async-http-client
-
Breaking changes
- #4149:
ConcurrentEffect
constraint relaxed toAsync
.apply
method changed tofromClient
and returns aResource
to account for theDispatcher
.
- #4149:
-
Breaking changes
-
http4s-blaze-core
-
Breaking changes
- #3894: Most
Effect
constraints relaxed toAsync
.
- #3894: Most
-
Breaking changes
-
http4s-blaze-server
-
http4s-blaze-client
-
Breaking changes
- #4097:
ConcurrentEffect
constraint relaxed toAsync
- #4097:
-
Breaking changes
-
http4s-ember-client
-
Breaking changes
- #4256:
Concurrent: Timer: ContextShift
constraint turned toAsync
- #4256:
-
Breaking changes
-
http4s-ember-server
-
Breaking changes
- #4256:
Concurrent: Timer: ContextShift
constraint turned toAsync
- #4256:
-
Breaking changes
-
http4s-okhttp-client
-
http4s-servlet
-
Breaking changes
- #4175: Servlets naow take a
Dispatcher
. The blocker is removed fromBlockingIo
.ConcurrentEffect
constraint relaxed toAsync
.
- #4175: Servlets naow take a
-
Breaking changes
-
http4s-jetty-client
-
Breaking changes
- #4165:
ConcurrentEffect
constraint relaxed toAsync
- #4165:
-
Breaking changes
-
http4s-jetty
-
Breaking changes
- #4191:
ConcurrentEffect
constraint relaxed toAsync
- #4191:
-
Breaking changes
-
http4s-tomcat
-
Breaking changes
- #4216:
ConcurrentEffect
constraint relaxed toAsync
- #4216:
-
Breaking changes
-
http4s-jawn
-
Breaking changes
- #3871:
Sync
constraints relaxed toConcurrent
- #3871:
-
Breaking changes
-
http4s-argonaut
-
Breaking changes
- #3961:
Sync
constraints relaxed toConcurrent
- #3961:
-
Breaking changes
-
http4s-circe
-
Breaking changes
- #3965:
Sync
constraints relaxed to toConcurrent
.
- #3965:
-
Breaking changes
-
http4s-json4s
-
Breaking changes
- #3885:
Sync
constraints relaxed to toConcurrent
.
- #3885:
-
Breaking changes
-
http4s-play-json
-
Breaking changes
- #3962:
Sync
constraints relaxed to toConcurrent
.
- #3962:
-
Breaking changes
-
http4s-scala-xml
-
Breaking changes
- #4054:
Sync
constraints relaxed to toConcurrent
.
- #4054:
-
Breaking changes
-
http4s-boopickle
-
Breaking changes
- #3871:
Sync
constraints relaxed toConcurrent
- #3871:
-
Breaking changes
-
Dependency updates
- cats-effect-3.0.0-M5
- fs2-3.0.0-M7
- jawn-1.0.3
- jawn-fs2-2.0.0-M2
- keypool-0.4.0-M1 (moved to
org.typelevel
) - log4cats-2.0.0-M1
- vault-3.0.0-M1
# v1.0.0-M12 (2021-01-25)
Build failure
# v1.0.0-M11 (2021-01-25)
Partial publish after build failure
v0.22.0-M1 (2021-01-24)
This is a new series, forked from main before Cats-Effect 3 support was merged. It is binary incompatible with 0.21, but contains several changes that will be necessary for Scala 3 (Dotty) support. It builds on all the changes from v1.0.0-M1 through v1.0.0-M10, which are not echoed here.
The headline change is that all parboiled2 parsers have been replaced with cats-parse.
-
Should I switch?
-
Users who had been tracking the 1.0 series, but are not prepared for Cats Effect 3, should switch to this series.
-
Users who wish to remain on the bleeding edge, including Cats Effect 3, should continue track the 1.0 series.
-
Users who need a stable release should remain on the 0.21 series for now.
-
http4s-core
-
Breaking changes
- #3855: All parboiled2 parsers are replaced by cats-parse. parboiled2 was not part of the public API, nor are our cats-parse parsers. Users may observe a difference in the error messages and subtle semantic changes. We've attempted to minimize them, but this is a significant underlying change. See also: #3897, #3901, #3954, #3958, #3995, #4023, #4001, #4013, #4042, #3982, #4071, #4017, #4132, #4154, #4200, #4202, #4206, #4201, #4208, #4235, #4147, #4238 #4238
- #4070: No longer publish a
scala.annotations.nowarn
annotation in the 2.12 build. This is provided in the standard library in 2.12.13, and isn't necessary at runtime in any version. - #4138: Replace boolean with
Weakness
sum type inEntityTag
model - #4148: Lift
ETag.EntityTag
out of header and into theorg.http4s
package - #4164: Removal of several deprecated interfaces. Most were non-public binary compatibility shims, or explicit cats instances that had been superseded by new implicits. Some exceptions:
- #4145: Port macros in
org.http4s.syntax.literals
to Scala 3. Deprecated macros that were on various companion objects will not be in the Scala 3 releases.
-
Bugfixes
- #4017: Render a final
-
in a byte ranges without an end value
- #4017: Render a final
-
Breaking changes
-
http4s-laws
-
http4s-server
-
Breaking changes
- #4164: Removed deprecated
SSLConfig
,KeyStoreBits
,SSLContextBits
, andSSLBits
.
- #4164: Removed deprecated
-
Breaking changes
-
http4s-testing
-
Breaking changes
- #4164: No longer a publicly published package. All public API was previously deprecated.
-
Breaking changes
-
Dependency upgrades
- async-http-client-2.12.2
- cats-parse-0.3.0
- circe-0.14.0-M3
- jackson-databind-2.12.1
- jawn-1.0.3
- log4cats-1.2.0-RC1 (now under
org.typelevel
) - log4s-1.0.0-M4
- okio-2.10.0
- vault-2.1.0-M14 (now under
org.typelevel
)
-
Dependency removals
- parboiled2
v0.21.16 (2021-01-24)
-
http4s-laws
-
Bugfixes
- #4243: Don't generate ipv6 addresses with only one section shorted by
::
- #4243: Don't generate ipv6 addresses with only one section shorted by
-
Bugfixes
-
http4s-blaze-core
-
Bugfixes
- #4143: Fix race condition that leads to
WritePendingException
. A tradeoff of this change is that some connections that were previously reused must now be closed.
- #4143: Fix race condition that leads to
-
Bugfixes
-
http4s-blaze-client
-
Bugfixes
- #4152: Omit implicit
Content-Length: 0
header when rendering GET, DELETE, CONNECT, and TRACE requests.
- #4152: Omit implicit
-
Bugfixes
-
http4s-ember-client
-
Bugfixes
- #4179: Render requests in "origin form", so the request line contains only the path of the request, and host information is only in the Host header. We were previously rendering the fulll URI on the request line, which the spec mandates all servers to handle, but clients should not send when not speaking to a proxy.
-
Bugfixes
-
http4s-ember-server
-
Enhancements
- #4179: Support a graceful shutdown
-
Enhancements
-
http4s-circe
-
Enhancements
- #4124: Avoid intermediate
ByteBuffer
duplication
- #4124: Avoid intermediate
-
Enhancements
v1.0.0-M10 (2020-12-31)
-
http4s-client
-
Enhancements
- #4051: Add
customized
function toLogger
middleware that takes a function to produce the log string. Add acolored
implementation on that that adds colors to the logs.
- #4051: Add
-
Enhancements
-
Dependency updates
- argonaut-6.3.3
- dropwizard-metrics-4.1.17
- netty-4.1.58.Final
- play-json-29.9.2
- scalatags-0.9.3
v0.21.15 (2020-12-31)
-
http4s-core
-
http4s-server
-
http4s-jetty
-
Enhancements
- #4032: Add an
HttpConfiguration
parameter to the Jetty builder to support deeper configuration than what is otherwise available on the builer. Use it for both HTTP/1 and HTTP/2.
- #4032: Add an
-
Enhancements
-
http4s-jetty-client
-
Enhancements
- #4110: Provide an
SslContextFactory
in the default configuration. Before this, secure requests would throw aNullPointerException
unless a custom JettyHttpClient
was used.
- #4110: Provide an
-
Enhancements
-
Documentation
-
http4s-circe
- #4012: Add sensitive EntityDecoders for circe that filter JSON that couldn't be decoded before logging it.
-
Dependency bumps
- cats-2.3.1
- cats-effect-2.3.1
- discipline-core-1.1.3
- fs2-2.5.0
- jackson-databind-2.11.4
- netty-4.1.56.Final
- scodec-bits-1.1.23
v1.0.0-M9 (2020-12-12)
-
http4s-core
-
Breaking changes
- #3913: Regenerated the
MimeDb
trait from the IANA registry. This shifts a few constants around and is binary breaking, but the vast majority of users won't notice.
- #3913: Regenerated the
-
Breaking changes
-
Dependency updates
-
jackson-databind-2.12.0
v0.21.14 (2020-12-11)
-
http4s-core
-
http4s-server
-
Enhancements
- #3977: Add a
BracketRequestResponse
middleware, to reflect lifecycles between acquiring theF[Response[F]]
and completion of the response bodyStream[F, Byte]
. Introduces a newConcurrentRequests
middleware, and refactorsMaxActiveRequests
on top of it.
- #3977: Add a
-
Enhancements
-
http4s-okhttp-client
-
Bugfixes
- #4006: Set
Content-Length
header on requests where available instead of always chunking
- #4006: Set
-
Bugfixes
-
http4s-metrics
-
Bugfixes
- #3977: Changes from
BracketRequestResponse
middleware may address reported leaks indecreaseActiveRequests
. Corrects a bug inrecordHeadersTime
. Also can now record times for abnormal terminations.
- #3977: Changes from
-
Bugfixes
-
Internals
Should not affect end users, but noted just in case:
-
Dependency bumps
- cats-2.3.0
- cats-effect-2.3.0
- dropwizard-metrics-4.1.16
- scodec-bits-1.1.22
v1.0.0-M8 (2020-11-26)
-
Breaking changes
-
http4s-client
- #3903: Method apply syntax (e.g.,
POST(body, uri)
) returns aRequest[F]
instead ofF[Request[F]]
- #3903: Method apply syntax (e.g.,
-
http4s-client
v0.21.13 (2020-11-25)
-
Bugfixes
-
Most modules
- #3932: Fix
NoClassDefFoundError
regression. An example:
- #3932: Fix
[info] java.lang.NoClassDefFoundError: cats/effect/ResourceLike [info] at org.http4s.client.Client$.$anonfun$fromHttpApp$2(Client.scala:246)
A test dependency upgrade evicted our declared cats-effect-2.2.0 dependency, so we built against a newer version than we advertise in our POM. Fixed by downgrading the test dependency and inspecting the classpath. Tooling will be added to avoid repeat failures.
-
Most modules
v0.21.12 (2020-11-25)
-
Bugfixes
-
http4s-core
- #3911: Support raw query strings. Formerly, all query strings were stored as a vector of key-value pairs, which was lossy in the percent-encoding of sub-delimiter characters (e.g., '+' vs '%2B'). Queries constructed with
.fromString
will be rendered as-is, for APIs that assign special meaning to sub-delimiters. - #3921: Fix rendering of URIs with colons. This was a regression in v0.21.9.
- #3911: Support raw query strings. Formerly, all query strings were stored as a vector of key-value pairs, which was lossy in the percent-encoding of sub-delimiter characters (e.g., '+' vs '%2B'). Queries constructed with
-
http4s-circe
- #3906: Fix streamed encoder for empty stream. It was not rendering the
[F
.
- #3906: Fix streamed encoder for empty stream. It was not rendering the
-
http4s-core
-
Enhancements
-
Dependency upgrades
- fs2-2.4.6
- jetty-9.4.35.v20201120
v1.0.0-M7 (2020-11-20)
-
Breaking changes
-
http4s-dsl
- #3876: Replace
dsl.Http4sDsl.Path
withcore.Uri.Path
. The newPath
in 1.0 is rich enough to support the DSL's routing needs, and this eliminates a conversion between models on every->
extractor. This change is source compatible in typical extractions.
- #3876: Replace
-
http4s-dsl
-
Dependency updates
- argonaut-6.3.2
v0.21.11 (2020-11-20)
-
Enhancements
-
http4s-core
- #3864: Cache a
Right
of the commonHttpVersion
s for itsParseResult
.
- #3864: Cache a
-
http4s-circe
- #3891: Encode JSON streams in their constituent chunks instead of a chunk-per-
Json
. This can significantly reduce the network flushes on most backends.
- #3891: Encode JSON streams in their constituent chunks instead of a chunk-per-
-
http4s-dsl
- #3844: Add
MatrixVar
extractor for Matrix URIs
- #3844: Add
-
http4s-async-http-client
- #3859: Add
AsyncHttpClient.apply
method that takes an already constructed async-http-client. This is useful for keeping a handle on bespoke of the client, such as its stats. Adds a functionalAsyncHttpClientStats
wrapper around the native stats class.
- #3859: Add
-
http4s-core
-
Internals These changes should be transparent, but are mentioned for completeness.
-
Dependency updates
- discipline-1.1.2
- dropwizard-metrics-4.1.15
- jackson-databind-2.11.3
- jawn-1.0.1
- netty-4.1.54.Final
- okio-2.9.0
- tomcat-9.0.40
# v0.21.10 (2020-11-20)
Cursed release, accidentally tagged from main. Proceed directly to 0.21.11.
v1.0.0-M6 (2020-11-11)
- Breaking changes
v0.21.9 (2020-11-11)
-
Bugfixes
- #3757: Restore mixin forwarders in
Http4sDsl
for binary compatibility back to v0.21.0. These were removed in v0.21.6 by #3492, but not caught by an older version of MiMa. - #3752: Fix rendering of absolute
Uri
s with no scheme. They were missing the//
. - #3810: In okhttp-client, render the request body synchronously on an okhttp-managed thread. There was a race condition that could truncate bodies.
- #3757: Restore mixin forwarders in
-
Enhancements
-
Dotty preparations
Dotty support remains in progress, though many http4s features can be used now in compatibility mode.
-
Dependency updates
- blaze-0.14.14
- discipline-specs2-1.1.1
- dropwizard-metrics-4.1.14
- fs2-2.4.5
- jetty-9.4.34.v20201102
- log4s-1.9.0
- scalacheck-1.15.1
v1.0.0-M5 (2020-10-16)
-
Bugfixes
-
Breaking changes
-
Enhancements
-
Dependency updates
- argonaut-6.3.1
v0.21.8 (2020-10-16)
-
Security
- GHSA-8hxh-r6f7-jf45: The version of Netty used by async-http-client is affected by CVE-2020-11612. A server we connect to with http4s-async-http-client could theoretically respond with a large or malicious compressed stream and exhaust memory in the client JVM. This does not affect any release in the 1.x series.
-
Bugfixes
-
Enhancements
- #3605: Improve header parsing in Ember
- #3634: Query parameter codecs for
LocalDate
andZonedDate
- #3659: Make requests to mock client cancelable
- #3701: In
matchHeader
, only parse headers with matching names. This improves parsing laziness. - #3641: Add
FormDataDecoder
to decodeUrlForm
to case classes viaQueryParamDecoder
-
Documentation
- #3693: Fix some typos
- #3703: Fix non-compiling example in streaming.md
- #3670: Add scaladocs for various headers, including RFC links
- #3692: Mention partial unification is no longer needed in Scala 2.13
- #3710: Add docs for
OptionalValidatingQueryParamDecoderMatcher
- #3712: Add integrations.md with feature comparison of backends
-
Miscellaneous
- #3742: Drop JDK14 tests for JDK15
-
Dependency updates
- dropwizard-metrics-4.1.13
- cats-2.2.0
- cats-effect-2.2.0
- fs2-2.4.4
- jetty-9.4.32.v20200930
- json4s-3.6.10
- netty-4.1.53.Final (async-http-client transitive dependency)
- okhttp-4.9.0
- play-json-2.9.1
- scalafix-0.9.21
- scalatags-0.9.2
- tomcat-9.0.39
v1.0.0-M4 (2020-08-09)
This milestone merges the changes in 0.21.7. It is not binary compatible with 1.0.0-M3
-
Breaking changes
- #3577: Add a model of the
Max-Forwards
header. - #3567: Add a model of the
Content-Language
header. - #3555: Support for UTF-8 basic authentication, per RFC7617. Attempt to decode Basic auth credentials as UTF-8, falling back to ISO-8859-1. Provide a charset to
BasicCredentials
that allows encoding with an arbitrary charset, defaulting to UTF-8. - #3583: Allow configuration of
CirceInstances
to permit duplicate keys - #3587: Model
Access-Control-Allow-Headers
header
- #3577: Add a model of the
-
Documentation
- #3571: Fix comments in deprecated
AgentToken
,AgentComment
, andAgentProduct
.
- #3571: Fix comments in deprecated
-
Dependency updates
- dropwizard-metrics-4.1.12
v0.21.7 (2020-08-08)
-
Bugfixes
- #3548: Fixes
IllegalStateException
when a path matches a directory inResourceService
- #3546: In ember, encode headers as ISO-8859-1. Includes performance improvements
- #3550: Don't attempt to decompress empty response bodies in
GZip
client middleware - #3598: Fix connection keep-alives in ember-client
- #3594: Handle
FileNotFoundException
inStaticFile.fromURL
by returning a 404 response - #3625: Close
URLConnection
inStaticFile.fromURL
when the resource is not expired - #3624: Use client with the http4s defaults instead of a the Jetty defaults in
JettyClientBuilder#resource
andJettyClientBuilder#stream
- #3548: Fixes
-
Enhancements
- #3552: Add
liftKleisli
operation toClient.
This is useful for integration with natchez. - #3566: Expose
RetryPolicy.isErrorOrRetriablestatus
- #3558: Add
httpRoutes
andhttpApp
convenience constructors toHSTS
middleware - #3559: Add
httpRoutes
andhttpApp
convenience constructors toHttpsRedirect
middleware - #3623: Add
configure
method to allow more configurations of async-http-client - #3607: Add request key to the connection manager debug logs in blaze-client
- #3602: Support trailer headers in Ember.
- #3603: Enable connection reuse in ember-server.
- #3601: Improve ember-client by adding
keep-alive
, aDate
header if not present, and a configurableUser-Agent
header if not present.
- #3552: Add
-
Refactoring
- #3547: Refactor the ember request parser
-
Documentation
-
Dependency upgrades
- cats-effect-2.1.4
- dropwizard-metrics-4.1.11
- jetty-9.4.31.v20200723
- okhttp-4.8.1
- tomcat-9.0.37
v1.0.0-M3 (2020-06-27)
This milestone merges the changes in 0.21.6. It is binary compatible with 1.0.0-M2.
v0.21.6 (2020-06-27)
-
Bugfixes
- #3538: In ember, fix request and response parser to recognize chunked transfer encoding. In chunked messages, bodies were incorrectly empty.
-
Enhancements
- #3492: Split the request extractors in the server DSL into
org.http4s.dsl.request
. This leaner DSL does not deal with bodies, and does not require anF[_]
parameter. Use of the existinghttp4s-dsl
is unaffected.
- #3492: Split the request extractors in the server DSL into
-
Dependency updates
-
blaze-0.14.13
v1.0.0-M2 (2020-06-25)
This is the first milestone release in the 1.x series. It is not binary compatible with prior releases.
- Where is M1?
Unpublished. The release build from the tag failed, and the fix required a new tag.
-
Breaking changes
- #3174: Drop http4s-prometheus dependency on http4s-dsl
- #2615: Model the
Server
header - #3206: Model the
Content-Location
header - #3264: Remove unused
EntityEncoder
argument inPlayInstances
. - #3257: Make
SameSite
cookie attribute optional - #3291: Remove unused
F[_]
parameter fromServer
- #3241: Port all macros to blackbox in anticipation of Dotty support
- #3323: Drop deprecated
ArbitraryInstances#charsetRangesNoQuality
- #3322: Drop deprecated
getAs
andprepAs
methods fromClient
- #3371: In http4s-metrics, add
rootCause
field toTerminationType.Abnormal
andTerminationType.Error
. AddTerminationType.Canceled
- #3335: Remove unused
Bracket
instance inClient#translate
- #3390: Replace
org.http4s.util.CaseInsensitiveString
withorg.typelevel.ci.CIString
- #3221: Implement a
Uri.Path
type to replace the type alias forString
- #3450: Model
Accept-Patch
header as aNonEmptyList[MediaType]
- #3463: Model
Access-Control-Allow-Credentials
header as a nullary case class. - #3325: Add a WebSocket builder with a
Pipe[F, WebSocketFrame, WebSocketFrame]
to unify sending and receiving. - #3373: Parameterize
ClassLoader
forResourceService
andWebjarService
. Changes theCacheStrategy
'suriPath
argument toUri.Path
. - #3460: Remove deprecated
Service
and related aliases - #3529: Refresh the
MediaType
s constants from the IANA registry. Not source breaking, but shifts constants in a binary breaking way.
-
Enhancements
- #3320: Reimplement
Media#as
withF.rethrow
- #3320: Reimplement
-
Deprecations
-
Documentation
-
Internal refactoring
-
Dependency updates
- argonaut-6.3.0
- async-http-client-2.12.1
- blaze-http-0.14.13
- play-json-2.9.0
- simpleclient-0.9.0 (Prometheus)
# v1.0.0-M1 (2020-06-25)
Did not publish successfully from tag.
v0.21.5 (2020-06-24)
This release is fully backward compatible with 0.21.4.
-
New modules
- #3372:
http4s-scalafix
: starting with this release, we have integrated Scalafix rules into the build. All our Scalafix rules will be published as both snapshots and with core releases. The http4s-scalafix version is equivalent to the output version of the scalafix rules. The scalafix rules are intended to assist migrations with deprecations (within this series) and breaking changes (in the upcoming push to 1.0).
- #3372:
-
Bugfixes
- #3476: Fix crash of
GZip
client middleware on responses toHEAD
requests - #3488: Don't call
toString
on input ofResponseLogger
on cancellation. The input is usually aRequest
. We filter a set of default sensitive headers inRequest#toString
, but custom headers can also be sensitive and could previously be leaked by this middleware. - #3521: In async-http-client, raise errors into response body stream when thrown after we've begun streaming. Previously, these errors were logged, but the response body was truncated with no value indicating failure.
- #3520: When adding a query parameter to a
Uri
with a blank query string (i.e., the URI ends in '?'), don't prepend it with a'&'
character. This is important in OAuth1 signing. - #3518: Fix
Cogen[ContentCoding]
in the testing arbitraries to respect the case-insensitivity of the coding field. - #3501: Explicitly use
Locale.ENGLISH
when comparing twoContentCoding
's coding fields. This only matters if your default locale has different casing semantics than English for HTTP token characters.
- #3476: Fix crash of
-
Deprecations
- #3441: Deprecate
org.http4s.util.threads
, which is not related to HTTP - #3442: Deprecate
org.http4s.util.hashLower
, which is not related to HTTP - #3466: Deprecate
util.decode
, which may loop infinitely on certain malformed input. DeprecateMedia#bodyAsText
andEntityDecoder.decodeString
, which may loop infinitely for charsets other than UTF-8. The latter two methods are replaced byMedia#bodyText
andEntityDecoder.decodeText
. - #3372: Deprecate
Client.fetch(request)(f)
in favor ofClient#run(request).use(f)
. This is to highlight the dangers of usingF.pure
or similar asf
, which gives access to the body after the client may have recycled the connection. For training and code reviewing purposes, it's easier to be careful withResource#use
than convenience methods likefetch
that areuse
in disguise. This change can be fixed with our new http4s-scalafix.
- #3441: Deprecate
-
Enhancements
- #3286: Add
httpRoutes
constructor forAutoslash middleware
- #3382: Use more efficient String compiler in
EntityDecoder[F, String]
- #3439: Add
Hash[Method]
instance. See also #3490. - #3438: Add
PRI
method - #3474: Add
httpApp
andhttpRoutes
constructors forHeaderEcho
middleware - #3473: Add
httpApp
andhttpRoutes
constructors forErrorHandling
middleware - #3472: Add
httpApp
andhttpRoutes
constructors forEntityLimiter
middleware - #3487: Add new
RequestID
middleware. - #3515: Add
httpApp
andhttpRoutes
constructors forErrorAction
middleware - #3513: Add
httpRoutes
constructor forDefaultHead
. Note thathttpApp
is not relevant. - #3497: Add
logBodyText
functions toLogger
middleware to customize the logging of the bodies
- #3286: Add
-
Documentation
-
Internals
- #3478: Refactor
logMessage
in client and server logging middlewares
- #3478: Refactor
-
Dependency updates
- scala-2.13.2
- boopickle-1.3.3
- fs2-2.4.2
- metrics-4.1.9 (Dropwizard)
- jetty-9.4.30
- json4s-3.6.9
- log4cats-1.1.1
- okhttp-4.7.2
- scalafix-0.9.17
- scalatags-0.9.1
- tomcat-9.0.36
v0.21.4 (2020-04-28)
This release is fully backward compatible with 0.21.3.
-
Bugfixes
- #3338: Avoid incorrectly responding with an empty body in http4s-async-http-client
-
Enhancements
-
Deprecation
- #3361: Deprecate the
org.http4s.util.execution
package.
- #3361: Deprecate the
-
Documentation
- #3279: Improve Prometheus middleware usage example
-
Dependency updates
- fs2-2.3.0
- okhttp-4.5.0
- scalafix-0.9.12
- scala-xml-1.3.0
- specs2-4.9.3
v0.20.23 (2020-04-28)
This release restores backward compatibility with the 0.20 series. This is the final planned release in the 0.20 series.
-
Compatibility
- #3362: Restores binary compatibility in http4s-jetty back to 0.20.21.
v0.20.22 (2020-04-28)
This release is backward compatible with 0.20, except for http4s-jetty. This incompatibility will be corrected in 0.20.23.
-
Breaking changes
- #3333: Add Http2c support to jetty-server. This accidentally broke binary compatibility, and will be patched in v0.20.23.
-
Bugfixes
-
Enhancements
-
Deprecations
- #3330: Deprecate
BlazeServerBuilder#apply()
in favor of passing anExecutionContext
explicitly. Formerly,ExecutionContext.global
was referenced by the default builder, and would spin up its thread pool even if the app never used the global execution context. - #3361: Deprecate
org.http4s.util.bug
, which is for internal use only.
- #3330: Deprecate
-
Backports
These appeared in previous releases, but have been backported to 0.20.x
- #2591: Change literal interpolator macros to use unsafe methods to avoid triggering Wartremover's EitherProjectionPartial warning
- #3115: Drop UTF-8 BOM when decoding
- #3148: Add
HttpRoutes.strict
- #3185: In blaze, recover
EOF
onbodyEncoder.write
to close connection - #3196: Add convenience functions to
Caching
middleware
-
Build improvements
- Start testing on JDK14
-
Dependency updates
- blaze-0.14.12
- metrics-4.1.6
- jetty-9.4.28.v20200408
- scala-2.12.11
- tomcat-9.0.34
v0.21.3 (2020-04-02)
This release is fully backward compatible with 0.21.2.
-
Bugfixes
- #3243: Write ember-client request to socket before reading response
-
Enhancements
-
Dependency updates
- cats-2.1.1
- okhttp-4.4.1
v0.20.21 (2020-04-02)
This release is fully backward compatible with 0.20.20.
-
Dependency updates
- argonaut-6.2.5
- jetty-9.4.27.v20200227
- metrics-4.1.5 (Dropwizard)
- tomcat-9.0.33
v0.21.2 (2020-03-24)
This release is fully backward compatible with 0.21.1.
-
Security fixes
- GHSA-66q9-f7ff-mmx6: Fixes a local file inclusion vulnerability in
FileService
,ResourceService
, andWebjarService
. - Request paths with
.
,..
, or empty segments will now return a 400 in all three services. Combinations of these could formerly be used to escape the configured roots and expose arbitrary local resources. - Request path segments are now percent-decoded to support resources with reserved characters in the name.
- GHSA-66q9-f7ff-mmx6: Fixes a local file inclusion vulnerability in
-
Bug fixes
- #3261: In async-http-client, fixed connection release when body isn't run, as well as thread affinity.
-
Enhancements
- #3253: Preparation for Dotty support. Should be invisible to end users, but calling out because it touches a lot.
v0.20.20 (2020-03-24)
This release is fully backward compatible with 0.20.19.
-
Security fixes
- GHSA-66q9-f7ff-mmx6: Fixes a local file inclusion vulnerability in
FileService
,ResourceService
, andWebjarService
. - Request paths with
.
,..
, or empty segments will now return a 400 in all three services. Combinations of these could formerly be used to escape the configured roots and expose arbitrary local resources. - Request path segments are now percent-decoded to support resources with reserved characters in the name.
- GHSA-66q9-f7ff-mmx6: Fixes a local file inclusion vulnerability in
-
Enhancements
- #3167: Add
MetricsOps.classifierFMethodWithOptionallyExcludedPath
.name.
- #3167: Add
v0.18.26 (2020-03-24)
This release is fully backward compatible with 0.18.25.
-
Security fixes
- GHSA-66q9-f7ff-mmx6: Fixes a local file inclusion vulnerability in
FileService
,ResourceService
, andWebjarService
. - Request paths with
.
,..
, or empty segments will now return a 400 in all three services. Combinations of these could formerly be used to escape the configured roots and expose arbitrary local resources. - Request path segments are now percent-decoded to support resources with reserved characters in the name.
- GHSA-66q9-f7ff-mmx6: Fixes a local file inclusion vulnerability in
v0.21.1 (2020-02-13)
This release is fully backward compatible with v0.21.0, and includes all the changes from v0.20.18.
-
Bug fixes
- #3192: Parse
SameSite
cookie attribute and values case insensitively.
- #3192: Parse
-
Enhancements
- #3185: In blaze-server, recover
EOF
to close the connection instead of catching it. This reduces log noise in Cats Effect implementations that wrap uncaught exceptions.
- #3185: In blaze-server, recover
-
Dependency updates
- jawn-fs2-1.0.0: We accidentally released v0.21.0 against an RC of jawn-fs2. This is fully compatible.
v0.20.19 (2020-02-13)
This release is fully backward compatible with 0.20.18.
-
Bugfixes
- #3199: When
Uri#withPath
is called without a slash and an authority is defined, add a slash to separate them.
- #3199: When
-
Enhancements
- #3199:
- New
addSegment
alias forUri#/
- New
Uri#addPath
function, which splits the path segments and adds each, URL-encoded.
v0.20.18 (2020-02-13)
This release is fully backward compatible with 0.20.17.
-
Bugfixes
-
Enhancements
- #3190: Remove reflection from initialization of
HttpHeaderParser
. This allows modeled headers to be parsed when running on Graal. The change is fully transparent on the JVM.
- #3190: Remove reflection from initialization of
-
Dependency updates
- argonaut-6.2.4
- async-http-client-2.10.5
- tomcat-9.0.31
v0.21.0 (2020-02-09)
This release is fully compatible with 0.21.0-RC4. Future releases in the 0.21.x series will maintain binary compatibility with this release. All users on the 0.20.x or earlier are strongly encouraged to upgrade.
- Dependency updates
- argonaut-6.2.4
- circe-0.13.0
v0.21.0-RC5 (2020-02-08)
This release is binary compatible with 0.21.0-RC4.
We announced this as built on circe-0.13.0. That was not correct, but is fixed in 0.21.0.
-
Enhancements
- #3148: Add
HttpRoutes.strict
andContextRoutes.strict
for routes that require only anApplicative
, at the cost of evaluatingcombineK
ed routes strictly.
- #3148: Add
-
Dependency updates
- async-http-client-2.10.5
- cats-effect-2.1.1
- scalatags-0.8.5
v0.21.0-RC4 (2020-02-04)
This release is binary incompatible with 0.21.0-RC2, but is source compatible.
-
Breaking changes
-
Binary
- #3145: Relax constraints from
Effect
toSync
inresourceService
,fileService
, andwebjarService
.
- #3145: Relax constraints from
-
Binary
v0.21.0-RC3 (2020-02-03)
This release is binary incompatible with 0.21.0-RC2, but should be source compatible, with deprecations.
-
Breaking changes
-
Binary
- #3126: Remove unnecessary
Applicative
constraints from http4s-circe - #3124: Relax constraints from
Effect
toSync
inFileService
. - #3136: In
WebSocketBuilder
, addfilterPingPongs
parameter, default true. When false,send
andreceive
will see pings and pongs sent by the client. The server still responds automatically to pings. This change should be transparent to existing users. - #3138: Remove unnecessary
Applicative
constraints onEntityEncoder
instances in several modules.
- #3126: Remove unnecessary
-
Semantic
- #3139: Changes
Router
to find the longest matching prefix by path segments rather than character-by-character. This is arguably a bug fix. The old behavior could cause unexpected matches, is inconsistent with the servlet mappings that inspiredRouter
, and is unlikely to have been intentionally depended on.
- #3139: Changes
-
Deprecation
- #3134: Deprecate
JettyBuilder#withSSLContext
in favor of new methods in favor of newwithSslContext*
methods. - #3132: Deprecate
BlazeServerBuilder#withSSLContext
andBlazeServerBuilder#withSSL
in favor of newwithSslContext*
methods. - #3140: Deprecate
JettyBuilder#withSSL
, to matchBlazeServerBuilder
. It's still necessary in Tomcat, which doesn't take aServletContext
. DeprecateSSLConfig
,KeyStoreBits
, andSSLContextBits
, which had already been removed from public API.
- #3134: Deprecate
-
Binary
-
Bugfixes
- #3140: In
TomcatBuilder
, fix mapping ofSSLClientAuthMode
to Tomcat's connector API.
- #3140: In
-
Enhancements
-
Dependency updates
- cats-effect-2.1.0
- fs2-2.2.2
v0.21.0-RC2 (2020-01-27)
-
Breaking changes
-
Binary and source
- #3110: Change
MessageFailure#toHttpResponse
to return aResponse[F]
instead of anF[Response[F]]
, and relax constraints accordingly. Drops theinHttpResponse
method. - #3107: Add
covary[F[_]]
method toMedia
types. Should not break your source unless you have your ownMedia
subclass, which you shouldn't.
- #3110: Change
-
Binary only
- #3098: Update
MimeDB
from IANA registry.
- #3098: Update
-
Deprecation
- #3087: Deprecate the public http4s-testing module. This was mostly Specs2 matchers, the majority of which block threads. This is not to be confused with http4s-laws, which depends only on Discipline and is still maintained.
-
Binary and source
-
Bugfixes
-
Enhancements
- #3106: Interrupt response body in
DefaultHead
middleware. This optimization saves us from draining a potentially large response body that, becauseHEAD
is a safe method, should not have side effects. - #3095: Add
Request#asCurl
method to render a request as a curl command. Renders the method, URI, and headers, but not yet the body.
- #3106: Interrupt response body in
v0.20.17 (2020-01-25)
This release is fully compatible with 0.20.16.
-
Bugfixes
- #3105: Fix "cannot have more than one pending write request" error in blaze-server web sockets.
-
Dependency updates
- simpleclient-0.8.1 (Prometheus)
v0.18.25 (2020-01-21)
- Bug fixes
v0.21.0-RC1 (2020-01-21)
-
Breaking changes
- #3012: Use
HttpApp
instead ofHttpRoutes
inHttp4sServlet
. The servlet builders themselves retain compatibility. - #3078: Wrap Java exceptions in
ConnectionFailure
when a blaze-client fails to establish a connection. This preserves information about which host could not be connected to. - #3062: http4s' JSON support is now built on jawn-1.0.0, which is a binary break from jawn-0.14.x. This comes with a bump to circe-0.13. Most circe-0.13 modules are binary compatible with circe-0.12, but note that circe-parser is not.
- #3055: Add fs2-io's TLS support to ember-client. The
sslContext: Option[(ExecutionContext, SSLContext)]
argument is replaced by atlsContext: Option[TLSContext]
.`
- #3012: Use
-
Enhancements
- #3004: Add
classloader
argument toStaticFile.fromResource
- #3007: Add
classloader
argument toTomcatBuilder
- #3008: Consistently use
collection.Seq
across Scala versions in DSL - #3031: Relax
Router.apply
constraint fromSync
toMonad
- #2821: Add
Media
supertype ofMessage
andPart
, so multipart parts can useEntityDecoder
s - #3021: Relax
Throttle.apply
constraint fromSync
toMonad
. Add amapK
operation toTokenBucket
. - #3056: Add
streamJsonArrayEncoder*
operations to circe support, to encode aStream
ofA
to a JSON array, given an encoder forA
. - #3053: Remove unneeded
Functor[G]
constraint onHeaderEcho.apply
. - #3054: Add
SameSite
cookie support - #2518: Add
status
methods toClient
that take aString
orUri
- #3069: Add
ContextMiddleware.const
function - #3070: Add
NonEmptyTraverse
instance toContextRequest
- #3060: Stop mixing context bounds and implicits in
CirceInstances
. - #3024: Add
withQueryParams
andwithMultiValueQueryParams
toQueryOps
- #3092: Add TLS support to ember-server via fs2-io.
- #3004: Add
-
Dependency updates
- cats-2.1.0
- circe-0.13.0-RC1
- fs2-2.2.0
- jawn-1.0.0
- jawn-fs2-1.0.0-RC2
- okhttp-4.3.1
- play-json-2.8.1
- scalacheck-1.14.3
- scalatags-0.8.4
- specs2-4.8.3
v0.20.16 (2020-01-21)
-
Bugfixes
- #3086: Fix connection leak in blaze-client pool manager when the next request in the queue is expired.
-
Breaking changes
- #3053: Deprecate
HttpDate.now
, which is not referentially transparent. PreferHttpDate.current
.
- #3053: Deprecate
-
Enhancements
- #3049: Add new
Date
server middleware - #3051: Add
HttpDate.current
convenience constructor, based onClock
. - #3052: Add
Caching
server middleware. - #3065: Add
ErrorAction
server middleware - #3082: Wrap
UnresolvedAddressException
in blaze in anUnresolvedAddressException
subtype that contains the address that could not resolve to aid diagnostics. This is a conservative change. See #3078 for the wrapper forthcoming in http4s-0.21.
- #3049: Add new
-
Documentation
-
Dependency updates
- async-http-client-2.10.4
- jetty-9.4.26.v20200117
- metrics-4.1.2 (Dropwizard)
- log4s-1.8.2
- okhttp-3.14.6
- simpleclient-0.8.0 (Prometheus)
- tomcat-9.0.30
v0.20.15 (2019-11-27)
-
Enhancements
-
Bug fixes
v0.20.14 (2019-11-26)
-
Bug fixes
- #2909: Properly propagate streamed errors in jetty-client
- The blaze upgrade fixes the "SSL Handshake WRAP produced 0 bytes" error on JDK 11.
-
Enhancements
- #2911: Add missing bincompat syntax to
org.http4s.implicits
.
- #2911: Add missing bincompat syntax to
-
Dependency updates
- blaze-0.14.11
- circe-0.11.2
- jawn-0.14.3
- jetty-9.4.24.v20191120
- tomcat-9.0.29
v0.20.13 (2019-11-05)
-
Bug fixes
- #2946: Restore binary compatibility of private
UrlCodingUtils
. #2930 caused a breakage in rho. - #2922: Handle Content-Length longer that Int.MaxValue in chunked uploads
- #2941: Fix for
BlockingHttp4sServlet
with shifted IO. - #2953: Fix connection info in servlet backend. The local and remote addresses were reversed.
- #2942: Fix
Request.addcookie
to consolidate allCookie
headers into one. - #2957: Shift the write to Blocker in
BlockingServletIo
- #2946: Restore binary compatibility of private
-
Enhancements
- #2948: Add all missing
ContentCoding
s from the IANA registry.
- #2948: Add all missing
-
Dependency updates
- blaze-0.14.9
v0.20.12 (2019-10-31)
-
Enhancements
- #2930: Move private
UrlCodingUtils
to theUri
companion object, make public
- #2930: Move private
-
Dependency updates
- jawn-0.14.2
- jetty-9.4.22
- json4s-0.14.2
- metrics-4.1.1
- okhttp-3.14.4
- play-json-2.7.4
- tomcat-9.0.27
- twirl-1.4.2
v0.21.0-M5 (2019-09-19)
-
Breaking changes
-
Enhancements
-
Documentation
- #2733: Add CSRF documentation
-
Dependency updates
- async-http-client-2.10.2
- cats-2.0.0
- cats-effect-2.0.0
- circe-0.12.1
- fs2-2.0.0
- keypool-2.0.0
- log4cats-core-1.0.0
- okhttp-4.2.0
- jawn-fs2-0.15.0
- tomcat-9.0.24
- vault-2.0.0
v0.20.11 (2019-09-19)
-
Breaking changes
-
Bug fixes
- #2807: In jetty-client, don't follow redirects with the internal client, which throws an exception in the http4s wrapper.
-
Enhancements
- #2817: In jetty-client, disable internal client's default
Content-Type
to prevent defaultapplication/octet-stream
for empty bodies.
- #2817: In jetty-client, disable internal client's default
-
Dependency updates
- jetty-9.4.20
v0.21.0-M4 (2019-08-14)
-
Dependency updates
- cats-core-2.0.0-RC1
- cats-effect-2.0.0-RC1
- circe-0.12.0-RC1
- discipline-1.0.0
- keypool-0.2.0-RC1
- log4cats-1.0.0-RC1
- vault-2.0.0-RC1
v0.20.10 (2019-08-14)
-
Breaking changes
- #2785: Use
F[A]
instead ofG[A]
in the DSL'sEntityResponseGenerator
. This change is binary compatible, but not source compatible for users ofHttp4sDsl2
whereF
is notG
. This is uncommon.
- #2785: Use
-
Bug fixes
- #2778: Don't truncate signing keys in CSRF middleware to 20 bytes, which causes a loss of entropy.
-
Enhancements
v0.20.9 (2019-08-07)
- Bug fixes
v0.21.0-M3 (2019-08-02)
-
Breaking changes
- #2572: Make
Http1Stage
private toorg.http4s
, which we highly doubt anybody extended directly anyway.
- #2572: Make
-
Bug fixes
- #2727: Fix
UserInfo
with+
sign
- #2727: Fix
-
Enhancements
- #2623: Propagate cookies in
FollowRedirect
client middleware
- #2623: Propagate cookies in
-
Documentation
-
Internals
- #2747: Create .mergify.yml
-
Dependency upgrades
- better-monadic-for-0.3.1
- cats-effect-2.0.0-M5
- log4cats-0.4.0-M2
- okhttp-4.0.1
v0.20.8 (2019-08-02)
-
Enhancements
- #2550: Adjust default timeouts and add warnings about misconfiguration
-
Dependency updates
- blaze-0.14.8
- cats-effect-1.4.0
v0.20.7 (2019-07-30)
-
Bug fixes
-
Enhancements
- #2736: Implement a
connectTimeout
in blaze-client, defaulted to 10 seconds. Prevents indefinite hangs on non-responsive hosts.
- #2736: Implement a
-
Documentation
- #2741: Improve docs surrounding auth middleware and fall through.
-
Dependency upgrades
- blaze-0.14.7
- tomcat-9.0.22
v0.21.0-M2 (2019-07-09)
This release drops support for Scala 2.11 and adds the http4s-ember-server
and http4s-ember-client
backends. Ember is new and experimental, but we intend for it to become the reference implementation. Notably, it only requires a Concurrent
constraint.
-
Bugfixes
- #2691: Fix deadlock in client by releasing current connection before retrying in
Retry
client middleware. The constraint is upgraded toConcurrent
. - #2693: Fix deadlock in client by releasing current connection before retrying in
FollowRedirect
client middleware. The constraint is upgraded toConcurrent
. - #2671: Upgrade
Uri.UserInfo
to a case class with username and password, fixing encoding issues. This is for RFC 3986 compliance, where it's deprecated for security reasons. Please don't use this. - #2704: Remove unused
Sync
constraint onPart.formData
.
- #2691: Fix deadlock in client by releasing current connection before retrying in
-
Breaking changes
- #2654: Extract an http4s-laws module from http4s-testing, with no dependency on Specs2. The arbitraries, laws, and tests are now laid out in a similar structure to cats and cats-effect.
- #2665: Change
withBlock
towithBlocker
inOkHttpBuilder
- #2661: Move string contexts macros for literals from
org.http4s
toorg.http4s.implicits
- #2679: Replace
Uri.IPv4
withUri.Ipv4Address
, including anipv4
interpolator and interop withInet4Address
. - #2694: Drop Scala 2.11 support
- #2700: Replace
Uri.IPv6
withUri.Ipv6Address
, including anipv6
interpolator and interop withInet6Address
.
-
Enhancements
-
Documentation
-
Internal
- #2655: Tune JVM options for throughput
-
Dependency updates
- async-http-client-2.10.1
- circe-0.12.0-M4
- json4s-3.6.7
- okhttp-4.0.0
- specs2-core-4.6.0
v0.20.6 (2019-07-09)
-
Bug fixes
-
Dependency upgrades
- blaze-0.14.6
# v0.20.5 (2019-07-09)
Cursed release. Sonatype staging repo closed in flight.
v0.20.4 (2019-07-06)
-
Bug fixes
-
Enhancements
- #2673: Add
GZip
middleware for client
- #2673: Add
-
Documentation
- #2668: Clarifications in
Uri.Scheme
scaladoc
- #2668: Clarifications in
-
Dependency upgrades
- blaze-0.14.5
- jetty-9.14.19.v20190610 (for client)
v0.21.0-M1 (2019-06-17)
-
Breaking changes
- #2565: Change constraint on server
Metrics
fromEffect
toSync
- #2551: Refactor
AuthMiddleware
to not requireChoice
constraint - #2614: Relax various
ResponseGenerator
constraints fromMonad
toApplicative
in http4s-dsl. - #2613: Rename implicit
http4sKleisliResponseSyntax
and its parameter name. - #2624: In
BlazeServerBuilder
, don't depend on laziness ofSSLContext
.None
now disables the secure context. The default argument tries to loadSome(SSLContext.getDefault())
, but falls back toNone
in case of failure. - #2493: Scala 2.13 support and related upgrades
- Scala 2.13.0-M5 is dropped.
- All modules are supported on 2.11, 2.12, and 2.13 again.
- Use cats-effect-2.0's new
Blocker
in place ofExecutionContext
where appropriate
- #2565: Change constraint on server
-
Enhancements
-
Docs
-
Internal
- #2563: Refactor
EntityDecoder#decode
- #2553: Refactor
Timeout
- #2564: Refactor boopickle and circe decoders
- #2580: Refactor server
RequestLogger
- #2581: Remove redundant braces in various types
- #2539: Narrow cats imports
- #2582: Refactor
DefaultHead
- #2590: Refactor
GZip
- #2591: Refactor literal macros to not use
.get
- #2596: Refactor
MimeLoader
- #2542: Refactor
WebjarService
- #2555: Refactor
FileService
- #2597: Optimize internal hex encoding
- #2599: Refactor
ChunkAggregator
- #2574: Refactor
FollowRedirect
- #2648: Move
mimedb-generator
from a project to an internal SBT plugin. Run withcore/generateMimeDb
.
- #2563: Refactor
-
Dependency updates
- cats-2.0.0-M4
- cats-effect-2.0.0-M4
- circe-0.12.0-M3
- discipline-0.12.0-M3
- fs2-1.1.0-M1
- jawn-0.14.2
- jawn-fs2-0.15.0-M1
- json4s-3.6.6
- log4s-1.8.2
- parboiled-2.0.1 (internal fork)
- play-json-2.7.4
- sbt-doctest-0.9.5 (tests only)
- sbt-native-packager-1.3.22 (examples only)
- sbt-site-1.4.0 (docs only)
- sbt-tpolecat-0.1.6 (compile time only)
- scalacheck-1.14.0
- scalatags-0.7.0 (2.12 and 2.13 only)
- scalaxml-1.2.0
- specs2-4.5.1
- mockito-core-2.28.2 (tests only)
- tut-0.6.12 (docs only)
- twirl-1.4.2
- vault-2.0.0-M2
v0.20.3 (2019-06-12)
-
Bug fixes
- #2638: Fix leaking sensitive headers in server RequestLogger
v0.18.24 (2019-06-12)
-
Bug fixes
- #2639: Fix leaking sensitive headers in server RequestLogger
-
Dependency updates
- cats-1.6.1
- jetty-9.4.19.v20190610
- tomcat-9.0.21
v0.20.2 (2019-06-12)
-
Bug fixes
-
Enhancements
- #2567: Add
mapK
toAuthedRequest
. DeprecateAuthedService
in favor ofAuthedRoutes
.
- #2567: Add
-
Internals
- #2579: Skip Travis CI on tags
-
Dependency updates
- blaze-0.14.4
- cats-core-1.6.1
- cats-effect-1.3.1
- fs2-1.0.5 (except Scala 2.13.0-M5)
- okhttp-3.14.2
- tomcat-9.0.21
v0.20.1 (2019-05-16)
Users of blaze-client are strongly urged to upgrade. This patch fixes a bug and passes new tests, but we still lack 100% confidence in it. The async-http-client backend has proven stable for a large number of users.
-
Bug fixes
-
Enhancements
-
Documentation
-
Internals
- #2525: Pointful implementation of
AuthMiddleware.noSpider
- #2534: Build with xenial and openjdk8 on Travis CI
- #2530: Refactoring of
authentication.challenged
- #2531: Refactoring of
PushSupport
- #2543: Rename maintenance branches to
series/x.y
- #2549: Remove workarounds in
BlazeClient
for typelevel/cats-effect#487 - #2575: Fix the Travis CI release pipeline
- #2525: Pointful implementation of
-
Dependency updates
- blaze-0.14.2
- cats-effect-1.3.0
- jetty-server-9.4.18.v20190429
- metrics-core-4.1.0
- sbt-native-packager-1.3.21 (examples only)
- tomcat-9.0.20
v0.20.0 (2019-04-22)
-
Announcements
-
blaze-client stability We are declaring this a stable release, though we acknowledge a handful of lingering issues with the blaze-client. Users who have trouble with the blaze backend are invited to try the async-http-client, okhttp, or jetty-client backends instead.
-
Scala 2.13 compatibility When our dependencies are published for Scala 2.13.0-RC1, we will publish for it and drop support for Scala 2.13.0-M5. We know it's out there, and we're as anxious as you.
-
cats-2 and http4s-0.21 Cats 2.0 is expected soon, and a Cats Effect 2.0 is under discussion. These will be binary compatible with their 1.x versions, with the exception of their laws modules. We intend to publish http4s-0.21 on these when they are available in order to provide a compatible stack for our own laws.
-
EOL of 0.18 This marks the end of active support for the 0.18 series. Further releases in that series will require a pull request and an accompanying tale of woe.
-
-
Breaking changes
- #2506: Raise
DecodeFailure
withMonadError
inMessage#as
rather than relying on effect to catch infold
. Requires a newMonadError
constraint.
- #2506: Raise
-
Bugfixes
- #2502: Stop relying on undefined behavior of
fold
to catch errors in client.
- #2502: Stop relying on undefined behavior of
-
Enhancements
-
Documentation
-
Internals
- #2521: Add utility conversion for
java.util.concurrent.CompletableFuture
toF[_]: Concurrent
- #2521: Add utility conversion for
-
Dependency updates
- blaze-0.14.0
- jetty-9.4.16.v20190411
- kind-projector-0.10.0 (build only)
- okhttp-3.14.1
- mockito-core-2.27.0 (test only)
- sbt-jmh-0.3.6 (benchmarks only)
- tomcat-9.0.19
- tut-plugin-0.6.11 (docs only)
v0.20.0-RC1 (2019-04-03)
-
Breaking changes
- #2471:
Headers
is no longer anIterable[Header]
- #2393: Several changes related to 2.13 support:
- Replace
Seq
withList
on: `Accept-Ranges.`.rangeUnits
CacheDirective.`no-cache`.fieldNames
CacheDirective.private.fieldNames
LanguageTag.subTags
MediaType.fileExtensions
`User-Agent`.other
- Replace
Seq
withimmutable.Seq
on: Query#multiParams.values
Query#params.values
Uri#multipParams.values
Query
is no longer aSeq[Query.KeyValue]
RequestCookieJar
is no longer anIterable[RequestCookie]
.
- #2471:
-
Enhancements
-
Bugfixes
- #2470: Don't wait indefinitely if a request timeout happens while borrowing a connection in blaze-client.
-
Documentation
-
Other
- #2474: Skip another blaze test that fails only on CI
-
Dependency upgrades
- argonaut-6.2.3
- blaze-0.14.0-RC1
- sbt-jmh-0.3.5 (benchmarks only)
- sbt-native-packager (example only)
- scalatags-0.6.8
v0.20.0-M7 (2019-03-20)
-
Bugfixes
- #2450: Fix
CirceInstances.builder
initialization, which referenced unintialized eager vals.
- #2450: Fix
-
Enhancements
- #2435: Log information about canceled requests in
ResponseLogger
- #2429: Add
httpRoutes
andhttpApp
convenience constructors toChunkAggregator
- #2446: Introduce
Http4sDsl2[F[_], G[_]]
trait to supporthttp4s-directives
library.Http4sDsl
extends it asHttp4sDsl[F, F]
. This change should be invisible to http4s-dsl users. - #2444: New modeled headers for
If-Match
andIf-Unmodified-Since
- #2458: Building on bugfix in #2453, don't clean up the stage if it's going to be shut down anyway
- #2435: Log information about canceled requests in
-
Documentation
- #2432: Fix Github URL in Scaladoc for tagged versions
- #2440: Fix broken links in client documentation
- #2447: Clarification of webjar path on static files
- #2448: Update copyright year
- #2454: Update
mountService
reference towithHttpApp
- #2455: Remove dangling reference to
G
parameter inHttpApp
scaladoc - #2460: Add
circuit-http4s
to adopters
-
Other
- #2464: Temporarily disable blaze tests that fail only on CI while running on CI.
-
Dependency upgrades
- async-http-client-2.8.1
- fs2-1.0.4
- json4s-3.6.5
- okhttp-3.14.0
- play-json-2.7.2
- sbt-explicit-depenendencies-0.2.9 (build only)
- sbt-native-packager-1.3.19 (example only)
v0.18.23 (2019-03-19)
-
Bug fixes
- #2453: Fix bug in blaze-client that unnecessarily recycled connections.
-
Dependency upgrades
- jetty-9.4.15.v20190215
- log4s-1.7.0
- metrics-4.0.5
- mockito-2.25.1 (test only)
- scodec-bits-1.1.9
- tomcat-9.0.17
v0.20.0-M6 (2019-02-16)
-
Breaking changes
- #2369: Make
log
operation on logging middlewares return anF[Unit]
to support pure logging. - #2370:
Prometheus.apply
returns inF[_]
to represent its effect on the collector registry. - #2398: Add media ranges to
jsonDecoderAdaptive
to support overriding the media type in anEntityDecoder
- #2396: Parameterize
Logger
middlewares to work with anyHttp[G, F]
instead of requiringHttpApp[F]
. - #2318: Replace
AttributeMap
withio.christopherdavenport.Vault
- #2414: Default to a no-op cookie store in async-http-client for more uniform behavior with other clients
- #2419: Relax constraint on
Retry
middleware fromEffect
toSync
- #2369: Make
-
Bugfixes
- #2421: Fix buggy use of
toString
in async-http-client when rendering URIs.
- #2421: Fix buggy use of
-
Enhancements
- #2364: Scalafix
allocate
toallocated
- #2366: Add
chunkBufferMaxSize
parameter toBlazeClientBuilder
andBlazeServerBuilder
. Change default to 10kB. - #2316: Support custom error messages in circe, argonaut, and jawn.
- #2403: Add
MemoryAllocationExports
toPrometheusExportService
- #2355, #2407: Add new
HttpMethodOverride
middleware - #2391: Add
Authorization
to*
as a default allowed header in default CORS config - #2424: Include Chunked Transfer-Encoding header in Multipart Requests
- #2364: Scalafix
-
Documentation
-
Internal
-
Dependency upgrades
- async-http-client-2.7.0
- cats-1.6.0
- circe-0.11.1
- fs2-1.0.3
- jawn-fs2-0.14.2
- json4s-3.6.4
- log4s-1.7.0
- mockito-core-2.24.5 (tests only)
- okhttp-3.13.1
- parboiled-1.0.1 (http4s' internal fork)
- play-json-2.7.1
- sbt-build-info-0.9.0 (build only)
- sbt-native-packager-1.3.18 (examples only)
- sbt-updates-0.4.0 (build only)
- tomcat-9.0.6
- twirl-1.4.0
v0.18.22 (2019-02-13)
-
Enhancements
- #2389: Add
RequestKey
to Logging when eviction is necessary
- #2389: Add
v0.20.0-M5 (2019-01-12)
Consider the blaze beta and all other modules RC quality. Don't forget there is a scalafix to assist migration from 0.18!
-
Breaking changes
-
Enhancements
- #2309: Specialize
TimeoutException
toWaitQueueTimeoutException
in client pool manager. Do not retry this by default inRetry
middleware. - #2342: Add
expectOption
andexpectOptionOr
which behave likeexpect
andexpectOr
respectively, but returnNone
on404
and410
responses andSome[A]
on other successful responses. Other status codes still raise an error. - #2328: Add a
SecureSession
attribute to server requests to expose the SSL session ID, the cipher suite, the key size, and a list of X509 certificates.
- #2309: Specialize
-
Documentation
-
Internal
-
Dependency upgrades
- blaze-0.14.0-M2
- circe-0.11.0
- jawn-0.14.1
- jawn-fs2-0.14.1
- json4s-3.6.3
- metrics-4.0.5
- okhttp-3.12.1
- play-json-2.6.13
- scalafix-0.9.1 (scalafix only)
- tomcat-9.0.14
v0.20.0-M4 (2018-12-05)
-
Bugfixes
- #2283: Fix client metrics bug that decremented active requests and recorded time before the resource was released.
- #2288: Stop leaking
IdleTimeoutStage
s in the blaze client. They were not always removed properly, leading to multiple timeout stages remaining in a connection's blaze pipeline. - #2281: Fix
ClassCastException
ondecode
of an emptyChunk
- #2305: Correctly shut down the blaze-client
-
Enhancements
- #2275: Set default prefix for Prometheus and Dropwizard metrics backends.
- #2276: Make scalafix Github based instead of binary based
- #2285: Finish deprecating
BlazeServer
in favor ofBlazeServerBuilder
. The former's internals are now expressed in terms of the latter. - #2286: Improvements to scalafix
- Fix
withEntitywithEntity
bug in migration - Migration to
BlazeServerBuilder
- Fix
MessageSyntax#withBody
- Import
ResponseCookie
instead of an alias to the oldCookie
-
Documentation
- #2297: Remove appveyor badge
-
Dependency upgrades
- cats-1.5.0
- cats-effect-1.1.0
- jetty-9.4.14.v20181114
- kind-projector-0.9.9 (internal)
- mockito-2.23.4 (tests only)
- okhttp-3.12.0
- play-json-2.6.11
- simpleclient-0.6.0 (Prometheus)
- sbt-1.2.7 (build only)
- sbt-native-packager-1.3.15 (examples only)
- tut-0.6.10 (docs only)
v0.20.0-M3 (2018-11-13)
-
Breaking changes
- #2228: Support more attributes for the response cookie in
CSRF
middleware. Configuration is now done through a builder, similar to backends. - #2269: In the client DSL, move the body parameter ahead of the
Uri
. This works around an ambiguous overload that previously made it impossible to call(Uri, Header)
on methods that take a body. - #2262: Replace
Seq
withChain
inUrlForm
. - #2197: Require
Signal
rather thanSignallingRef
inserveWhile
- #2228: Support more attributes for the response cookie in
-
Bugfixes
-
Enhancements
- #2266: Support flag query parameters (i.e., parameters with no value) in the DSL with
FlagQueryParamMatcher
. - #2240: Add
.resource
,.stream
. and.allocate
constructors to all server and client builders. - #2242: Support setting socket channel options on blaze-server.
- #2270: Refresh
MimeDB
from the IANA registry.
- #2266: Support flag query parameters (i.e., parameters with no value) in the DSL with
-
Internal
-
Documentation
- #2255: Improve scalafix docs
-
Dependency upgrades
- blaze-0.14.0-M11
- tomcat-9.0.13
v0.20.0-M2 (2018-11-05)
-
Bug fixes
- #2239: Fix hang when
.allocate
on a client builder fails
- #2239: Fix hang when
-
Breaking changes
- #2207: Remove
PathNormalizer
. The functionality is now onUri.removeDotSegments
. - #2210: Streamline instances:
Http4s
,Http4sInstances
, andHttp4sFunctions
are deprecated- Move instances
F[A]
for cats type classesF
into companions ofA
Http4sDsl
no longer mixes inUriFunctions
EntityEncoderInstances
andEntityDecoderInstances
are removed. The instances moved to the companion objects.- #2243: Cleanup
ServerBuilder
defaults and traits - Make
ServerBuilder
private. The public server builders (e.g.,BlazeServerBuilder
) remain, but they no longer implement a public interface. - Remove
IdleTimeoutSupport
,AsyncTimeout
,SSLKeyStoreSupport
,SSLContextSupport
, andWebSocketSupport
traits. The properties remain on the public server builders. - Deprecated defaults on those support companion objects, in favor of
org.http4s.server.defaults
. - #2063: Cancel request whenever a blaze server connection is shutdown.
- #2234: Clean up
Message
trait - Remove deprecated
EffectMessageSyntax
,EffectRequestSyntax
,EffectResponseSyntax
traits and associated objects - Remove
MessageOps
,RequestOps
, andResponseOps
and put the removed methods, sans unneeded implicit parameters, directly in the classes - Deprecate
replaceAllHeaders
, pointing towithHeaders
instead. - Deprecate
withType
, which takes aMediaType
and just wraps it in aContent-Type
- Add
withoutAttribute
andwithoutTrailerHeaders
to complement the with variants - Correct
filterHeaders
' scaladoc comment, which described the opposite of the behavior - Fix bug in
withoutContentType
- #2207: Remove
-
Enhancements
- #2205: Add new
ResponseTiming
middleware, which adds a header to the Response as opposed to fullMetricsOps
. - #2222: Add
shutdownTimeout
property toJettyBuilder
. Shutdown of the server waits for existing connections to complete for up to this duration before a hard shutdown with aTimeoutException
. - #2227: Add
withMaxHeaderLength
setter toBlazeClientBuilder
- #2230:
DefaultServerErrorHandler
only handlesNonFatal
Throwable
s, instead of allThrowable
s that aren'tVirtualMachineError
s - #2237: Support parsing cookies with trailing semi-colons. This is invalid per spec, but seen often in the wild.
- #1687: Add a modeled
Link
header. - #2244: Refactor blaze-server idle timeout
- Quiet
Abnormal NIO1HeadStage termination\njava.util.concurrent.TimeoutException: Timeout of 30 seconds triggered. Killing pipeline.
error logging, even on idling persistent connections. This is reduced to a debug log. - Use a
TickWheelExecutor
resource per blaze-server instead of a global that does not shut down when the server does.
- #2205: Add new
-
Bug fixes
-
Documentation
-
Internal
-
Dependency upgrades
- async-http-client-2.6.0
- blaze-0.14.0-M10
- circe-0.10.1
- json4s-3.6.2
- sbt-native-packager-1.3.12 (examples only)
- tut-0.6.9 (docs only)
v0.20.0-M1 (2018-10-27)
Due to the inadvertent release of 0.19.0, we have opened a new minor version. The stable release with MiMa enforcement will be v0.20.0.
-
Breaking changes
- #2159: Add a
responseHeaderTimeout
property toBlazeServerBuilder
. Responses that timeout are completed withResponse.timeout
, which defaults to 503 Service Unavailable.BlazeServerBuilder
now requires aTimer[F]
. - #2177: Deprecate
org.http4s.syntax.async
, which was not directly relevant to HTTP. - #2131: Refactor server metrics
http4s-server-metrics
module merged intohttp4s-dropwizard-metrics
http4s-prometheus-server-metrics
module merged intohttp4s-prometheus-metrics
- The
org.http4s.server.middleware.metrics.Metrics
middleware now takes aMetricsOps
, implemented by Dropwizard, Prometheus, or your custom interpreter. - #2180: Change default response on
Timeout
middlware to503 Service Unavailable
- #2159: Add a
-
Enhancements
- #2159: Set default client request timeout to 1 minute
- #2163: Add
mapK
toRequest
andResponse
- #2168: Add
allocate
to client builders - #2174: Refactor the blaze-client timeout architecture.
- A
TickWheelExecutor
is now allocated per client, instead of globally. - Request rendering and response parsing is now canceled more aggressively on timeout.
- #2184: Receive response concurrently with sending request in blaze client. This reduces waste when the server is not interested in the entire request body.
- #2190: Add
channelOptions
to blaze-client to customize socket options.
-
Bug fixes
-
Internal
-
Dependency upgrades
- alpn-boot-8.1.13.v20181017 (examples only)
- blaze-0.14.0-M9
- sbt-native-packager-1.3.11 (examples only)
v0.18.21 (2018-11-05)
-
Bug fixes
- #2231: Fix off-by-one error that lets blaze-client wait queue grow one past its limit
v0.18.20 (2018-10-18)
-
Bug fixes
- #2181: Honor
redactHeadersWhen
in clientRequestLogger
middleware
- #2181: Honor
-
Enhancements
- #2178: Redact sensitive headers by default in
Retry
middleware. AddretryWithRedactedHeaders
function that parameterizes the headers predicate.
- #2178: Redact sensitive headers by default in
-
Documentation
- #2147: Fix link to v0.19 docs
-
Internal
- #2130: Build with scala-2.12.7 and sbt-1.2.3
v0.19.0 (2018-10-05)
This release is identical to v0.19.0-M4. We mistagged it. Please proceed to the 0.20 series.
v0.19.0-M4 (2018-10-05)
-
Breaking changes
- #2137: Remove
ExecutionContext
argument to jetty-client in favor of theContextShift[F]
. - #2070: Give
AbitraryInstances
unique names withhttp4sTesting
prefix. - #2136: Add
stream
method toClient
interface. Deprecatestreaming
, which is just aflatMap
ofStream
. - #2143: WebSocket model improvements:
- The
org.http4s.websocket
package in unified in http4s-core - Drop http4s-websocket module dependency
- All frames use an immutable
scodec.bits.ByteVector
instead of anArray[Byte]
. - Frames moved from
WebSocketBits
to theWebSocketFrame
companion - Rename all instances of
Websocket*
toWebSocket*
for consistency - #2094: Metrics unification
- Add a
MetricsOps
algebra to http4s-core to be implemented by any metrics backend. - Create new
Metrics
middleware in http4s-client based onMetricsOps
- Replace http4s-dropwizard-client-metrics and http4s-proemtheus-client-metrics modules with http4s-dropwizard-metrics and http4s-prometheus-metrics to implement
MetricsOps
.
- #2137: Remove
-
Enhancements
-
Documentation updates
-
Internal
-
Dependency upgrades
- async-http-client-2.5.4
- blaze-0.14.0-M5
- fs2-1.0.0
- jawn-0.13.0
- scala-xml-1.1.1
v0.19.0-M3 (2018-09-27)
-
Breaking changes
- #2081: Remove
OkHttp
code redundant withOkHttpBuilder
. - #2092: Remove
ExecutionContext
andTimer
implicits from async-http-client. Threads are managed by theContextShift
. - #2115: Refactoring of
Server
andServerBuilder
: - Removed
Server#shutdown
,Server#shutdownNow
,Server#onShutdown
, andServer#awaitShutdown
.Server
lifecycles are managed as afs2.Stream
or acats.effect.Resource
. ServerBuilder#start
replaced byServer#resource
, which shuts down theServer
after use.- Added a
ServerBuilder#stream
to construct aStream
from aResource
. - #2118: Finalize various case classes.
- #2102: Refactoring of
Client
and some builders: Client
is no longer a case class. Construct a newClient
backend or middleware withClient.apply(run: Request[F] => Resource[F, Response[F]])
for anyF
with aBracket[Throwable, F]
.- Removed
DisposableResponse[F]
in favor ofResource[F, Response[F]]
. - Removed
Client#open
in favor ofClient#run
. - Removed
Client#shutdown
in favor ofcats.effect.Resource
orfs2.Stream
. - Removed
AsyncHttpClient.apply
. It was not referentially transparent, and no longer possible. UseAsyncHttpClient.resource
instead. - Removed deprecated
blaze.Http1Client.apply
- #2081: Remove
-
Enhancements
- #2042: New
Throttle
server middleware - #2036: New
http4s-jetty-client
backend, with HTTP/2 support - #2080: Make
Http4sMatchers
polymorphic on their effect type - #2082: Structured parser for the
Origin
header - #2061: Send
Disconnect
event on EOF in blaze-server for faster cleanup of mid stages - #2093: Track redirects in the
FollowRedirect
client middleware - #2109: Add
→
as a synonym for->
in http4s-dsl - #2100: Tighten up module dependencies
- http4s-testing only depends on specs2-matchers instead of specs2-core
- http4s-prometheus-server-metrics depends on simpleclient_common instead of simpleclient
- #2042: New
-
Bugfixes
-
Documentation updates
-
Internal
-
Dependency upgrades
- cats-1.4.0
- circe-0.10.0
- fs2-1.0.0-RC1
- jawn-fs2-0.13.0-RC1
- play-json-3.6.10 for Scala 2.11.x
- tomcat-9.0.12
v0.18.19 (2018-09-27)
-
Bug fixes
-
Internal
- #2116: Test against OpenJDK 11. Retire Oracle JDK 10.
v0.18.18 (2018-09-18)
-
Bug fixes
-
Enhancements
-
Dependency upgrades
- cats-1.4.0
- fs2-0.10.6
- jetty-9.4.12.v20180830
- tomcat-9.0.12
v0.19.0-M2 (2018-09-07)
-
Breaking changes
- #1802: Race servlet requests against the
AsyncContext.timeout
.JettyBuilder
andTomcatBuilder
now require aConcurrentEffect
instance. - #1934: Refactoring of
ConnectionManager
. Now requires aConcurrent
instance, which ripples to aConcurrentEffect
in blaze-client builders - #2023: Don't overwrite existing
Vary
headers fromCORS
- #2030: Restrict
MethodNotAllowed
response generator in DSL - #2032: Eliminate mutable
Status
registry. IANA-registeredStatus
es are still cached, butregister
is no longer public. - #2026:
CSRF
enhancements - CSRF tokens represented with a newtype
- CSRF token signatures are encoded hexadecimal strings, making them URI-safe.
- Added a
headerCheck: Request[F] => Boolean
parameter - Added an
onFailure: Response[F]
parameter, which defaults to a403
. This was formerly a hardcoded401
. - #1993: Massive changes from cats-effect and fs2 upgrades
Timer
added toAsyncHttpClient
- Dropwizard
Metrics
middleware now takes aClock
rather than aTimer
- Client builders renamed and refactored for consistency and to support binary compatible evolution after 1.0:
BlazeClientBuilder
replacesHttp1Client
,BlazeClient
, andBlazeClientConfig
- Removed deprecated
SimpleHttp1Client
JavaNetClient
renamed toJavaNetClientBuilder
, which now has aresource
andstream
OkHttp
renamed toOkHttpBuilder
. The client now created from anOkHttpClient
instance instead of anF[OkHttpClient.Builder]
. A default client can be created as aResource
throughOkHttp.default
.- Fallout from removal of
fs2.Segment
EntityDecoder.collectBinary
now decodes aChunk
EntityDecoder.binaryChunk
deprecatedSegmentWriter
is removed- Changes to:
ChunkWriter
s in blaze rewritten
Logger
middlewares
MemoryCache
- Blocking I/O now requires a blocking
ExecutionContext
and aContextShift
: EntityDecoder
s:
EntityDecoder.binFile
EntityDecoder.textFile
MultipartDecoder.mixedMultipart
EntityEncoder
s (no longer implicit):
File
Path
InputStream
Reader
- Multipart:
MultipartParser.parseStreamedFile
MultipartParser.parseToPartsStreamedFile
Part.fileData
- Static resources:
StaticFile.fromString
StaticFile.fromResource
StaticFile.fromURL
StaticFile.fromFile
FileService.Config
ResourceService.Config
WebjarService.Config
OkHttpBuilder
- Servlets:
BlockingHttp4sServlet
BlockingServletIo
- #1802: Race servlet requests against the
-
Servlet backend changes:
Http4sServlet
no longer shift onto anExecutionContext
by default. Accordingly,ServerBuilder
no longer has awithExecutionContext
.- Jetty and Tomcat builders use their native executor types instead of shifting onto an
ExecutionContext
. Accordingly,ServletBuilder#withExecutionContext
is removed. AsyncHttp4sServlet
andServletContextSyntax
now default to non-blocking I/O. No startup check is made against the servlet version, which failed classloading on an older servlet container. Neither takes anExeuctionContext
parameter anymore.
- Removed deprecated
StreamApp
aliases.fs2.StreamApp
is removed and replaced bycats.effect.IOApp
,monix.eval.TaskApp
, or similar.
- Removed deprecated
ServerApp
.
EntityLimiter
middleware now requires anApplicativeError
- #2054: blaze-server builder changes
BlazeBuilder
deprecated forBlazeServerBuilder
-
BlazeServerBuidler
has a singlewithHttpApp(HttpApp)
in place of zero-to-many callsmountService(HttpRoutes)
.- This change makes it possible to mount an
HttpApp
wrapped in aLogger
middleware, which only supportsHttpApp
- Call
.orNotFound
, fromorg.http4s.implicits._
, to cap anHttpRoutes
asHttpApp
- Use
Router
to combine multipleHttpRoutes
into a singleHttpRoutes
by prefix - This interface will see more changes before 0.19.0 to promote long-term binary compatibility
- This change makes it possible to mount an
-
Enhancements
- #1953: Add
UUIDVar
path extractor - #1963: Throw
ConnectException
rather thanIOException
on blaze-client connection failures - #1961: New
http4s-prometheus-client-metrics
module - #1974: New
http4s-client-metrics
module for Dropwizard Metrics - #1973: Add
onClose
handler toWebSocketBuilder
- #2024: Add
HeaderEcho
server middleware - #2062: Eliminate "unhandled inbund command: Disconnected"` warnings in blaze-server
- #1953: Add
-
Bugfixes
- #2027: Miscellaneous websocket fixes
- Stop sending frames even after closed
- Avoid deadlock on small threadpools
-
Send
Close
frame in response toClose
frame -
Documentation updates
- #1935: Make
http4sVersion
lowercase - #1943: Make the imports in the Client documentation silent
- #1944: Upgrade to cryptobits-1.2
- #1971: Minor corrections to DSL tut
- #1972: Add
UUIDVar
to DSL tut - #2034: Add branch to quickstart instructions
- #2035: Add Christopher Davenport to community staff
- #2060: Guide to setting up IntelliJ for contributors
- #1935: Make
-
Internal
-
Dependency upgrades
- async-http-client-2.5.2
- blaze-0.14.0-M4
- cats-1.3.1
- cats-effect-1.0.0
- circe-0.10.0-M2
- fs2-1.0.0-M5
- jawn-0.13.0
- jawn-fs2-0.13.0-M4
- json4s-3.6.0
v0.18.17 (2018-09-04)
- Accumulate errors in
OptionalMultiQueryParamDecoderMatcher
#2000 - New http4s-scalatags module #2002
- Resubmit bodies in
Retry
middleware where allowed by policy #2001 - Dependency upgrades:
- play-json-3.6.10 (for Scala 2.12)
- tomcat-9.0.11
v0.18.16 (2018-08-14)
- Fix regression for
AutoSlash
when nested in aRouter
#1948 - Respect
redactHeadersWhen
inLogger
middleware #1952 - Capture
BufferPoolsExports
in prometheus server middleware #1977 - Make
Referer
header extractable #1984 - Log server startup banner in a single call to prevent interspersion #1985
- Add support module for play-json #1946
- Introduce
TranslateUri
middleware, which checks the prefix of the service it's translating against the request. DeprecatedURITranslation
, which chopped the prefix length without checking for a match. #1964 - Dependency upgrades:
- cats-1.2.0
- metrics-4.0.3
- okhttp-3.11.0
- prometheus-client-0.5.0
- scodec-bits-1.1.6
v0.18.15 (2018-07-05)
- Bugfix for
AutoSlash
Middleware in Router #1937 - Add
StaticHeaders
middleware that appends static headers to a service #1939
v0.19.0-M1 (2018-07-04)
- Add accumulating version of circe
EntityDecoder
#1647 - Add ETag support to
StaticFile
#1652 - Reintroduce the option for fallthrough for authenticated services #1670
- Separate
Cookie
intoRequestCookie
andResponseCookie
#1676 - Add
Eq[Uri]
instance #1688 - Deprecate
Message#withBody
in favor ofMessage#withEntity
. The latter returns aMessage[F]
rather than anF[Message[F]]
. #1694 - Myriad new
Arbitrary
andCogen
instances #1677 - Add non-deprecated
LocationResponseGenerator
functions #1715 - Relax constraint on
Router
fromSync
toMonad
#1723 - Drop scodec-bits dependency #1732
- Add
Show[ETag]
instance #1749 - Replace
fs2.Scheduler
withcats.effect.Timer
inRetry
#1754 - Remove
Sync
constraint fromEntityEncoder[Multipart]
#1762 - Generate
MediaType
s from MimeDB #1770
- Continue phasing out
Renderable
withMediaRange
andMediaType
.
- Media types are now namespaced by main type. This reduces backticks. For example,
MediaType.`text/plain`
is replaced byMediaType.text.plain
. - Remove
Registry
. #1770 - Deprecate
HttpService
: #1693
- Introduces an
Http[F[_], G[_]]
type alias
HttpService
is replaced byHttpRoutes
, which is anHttp[OptionT[F, ?], ?]
.HttpRoutes.of
replacesHttpService
constructor fromPartialFunction
s.
HttpApp
is anHttp[F, F]
, representing a total HTTP function.- Add
BlockingHttp4sServlet
for use in Google App Engine and Servlet 2.5 containers. RenameHttp4sServlet
toAsyncHttp4sServlet
. #1830 - Generalize
Logger
middleware to log withString => Unit
instead oflogger.info(_)
#1839 - Generalize
AutoSlash
middleware to work onKleisli[F, Request[G], B]
givenMonoidK[F]
andFunctor[G]
. #1885 - Generalize
CORS
middleware to work onHttp[F, G]
givenApplicative[F]
andFunctor[G]
. #1889 - Generalize
ChunkAggegator
middleware to work onKleisli[F, A, Response[G]]
givenG ~> F
,FlatMap[F]
, andSync[G]
. #1886 - Generalize
EntityLimiter
middleware to work onKleisli[F, Request[G], B]
. #1892 - Generalize
HSTS
middleware to work onKleisli[F, A, Response[G]]
givenFunctor[F]
andFunctor[G]
. #1893 - Generalize
UrlFormLifter
middleware to work onKleisli[F, Request[G], Response[G]]
givenG ~> F
,Sync[F]
andSync[G]
. #1894 - Generalize
Timeout
middleware to work onKleisli[F, A, Response[G]]
givenConcurrent[F]
andTimer[F]
. #1899 - Generalize
VirtualHost
middleware to work onKleisli[F, Request[G], Response[G]]
givenApplicative[F]
. #1902 - Generalize
URITranslate
middleware to work onKleisli[F, Request[G], B]
givenFunctor[G]
. #1895 - Generalize
CSRF
middleware to work onKleisli[F, Request[G], Response[G]]
givenSync[F]
andApplicative[G]
. #1909 - Generalize
ResponseLogger
middleware to work onKleisli[F, A, Response[F]]
givenEffect[F]
. #1916 - Make
Logger
,RequestLogger
, andResponseLogger
work onHttpApp[F]
so aResponse
is guaranteed unless the service raises an error #1916 - Rename
RequestLogger.apply0
andResponseLogger.apply0
toRequestLogger.apply
andResponseLogger.apply
. #1837 - Move
org.http4s.server.ServerSoftware
toorg.http4s.ServerSoftware
#1884 - Fix
Uncompressible
andNotBinary
flags inMimeDB
generator. #1900 - Generalize
DefaultHead
middleware to work onHttp[F, G]
givenFunctor[F]
andMonoidK[F]
#1903 - Generalize
GZip
middleware to work onHttp[F, G]
givenFunctor[F]
andFunctor[G]
#1903 jawnDecoder
takes aRawFacade
instead of aFacade
- Change
BasicCredentials
extractor to return(String, String)
#1924 Effect
constraint relaxed toSync
:
Logger.logMessage
Effect
constraint relaxed toAsync
:
JavaNetClient
Effect
constraint changed toConcurrent
:
Logger
(client and server)
RequestLogger
(client and server)
ResponseLogger
(client and server)
ServerBuilder#serve
(moved to abstract member ofServerBuilder
)Effect
constraint strengthened toConcurrentEffect
:
AsyncHttpClient
BlazeBuilder
JettyBuilder
TomcatBuilder
- Implicit
ExecutionContext
removed from:
RequestLogger
(client and server)
ResponseLogger
(client and server)
ServerBuilder#serve
ArbitraryInstances.arbitraryEntityDecoder
ArbitraryInstances.cogenEntity
ArbitraryInstances.cogenEntityBody
ArbitraryInstances.cogenMessage
JavaNetClient
- Implicit
Timer
added to:
AsyncHttpClient
JavaNetClient.create
Http4sWsStage
removed from public API- Removed charset for argonaut instances #1914
- Dependency upgrades:
- async-http-client-2.4.9
- blaze-0.14.0-M3
- cats-effect-1.0.0-RC2
- circe-0.10.0-M1
- fs2-1.0.0-M1
- fs2-reactive-streams-0.6.0
- jawn-0.12.1
- jawn-fs2-0.13.0-M1
- prometheus-0.4.0
- scala-xml-1.1.0
v0.18.14 (2018-07-03)
- Add
CirceEntityCodec
to provide an implicitEntityEncoder
orEntityDecoder
from anEncoder
orDecoder
, respectively. #1917 - Add a client backend based on
java.net.HttpURLConnection
. Note that this client blocks and is primarily intended for use in a REPL. #1882 - Dependency upgrades:
- jetty-9.4.11
- tomcat-9.0.10
v0.18.13 (2018-06-22)
- Downcase type in
MediaRange
generator #1907 - Fixed bug where
PoolManager
would try to dequeue from an empty queue #1922 - Dependency upgrades:
- argonaut-6.2.2
- fs2-0.10.5
v0.18.12 (2018-05-28)
- Deprecated
Part.empty
#1858 - Log requests with an unconsumed body #1861
- Log requests when the service returns
None
or raises an error #1875 - Support streaming parsing of multipart and storing large parts as temp files #1865
- Add an OkHttp client, with HTTP/2 support #1864
- Add
Host
header to requests toClient.fromHttpService
if the request URI is absolute #1874 - Log
"service returned None"
or"service raised error"
in serviceResponseLogger
when the service does not produce a successful response #1879 - Dependency upgrades:
- jetty-9.4.10.v20180503
- json4s-3.5.4
- tomcat-9.0.8
v0.18.11 (2018-05-10)
- Prevent zero-padding of servlet input chunks #1835
- Fix deadlock in client loggers.
RequestLogger.apply
andResponseLogger.apply
are each replaced byapply0
to maintain binary compatibility. #1837 - New
http4s-boopickle
module supports entity codecs throughboopickle.Pickler
#1826 - Log as much of the response as is consumed in the client. Previously, failure to consume the entire body prevented any part of the body from being logged. #1846
- Dependency upgrades:
- prometheus-client-java-0.4.0
v0.18.10 (2018-05-03)
- Eliminate dependency on Macro Paradise and macro-compat #1816
- Add
Logging
middleware for client #1820 - Make blaze-client tick wheel executor lazy #1822
- Dependency upgrades:
- cats-effect-0.10.1
- fs2-0.10.4
- specs2-4.1.0
v0.18.9 (2018-04-17)
- Log any exceptions when writing the header in blaze-server for HTTP/1 #1781
- Drain the response body (thus running its finalizer) when there is an error writing a servlet header or body #1782
- Clean up logging of errors thrown by services. Prevents the possible swallowing of errors thrown during
renderResponse
in blaze-server andHttp4sServlet
#1783 - Fix
Uri.Scheme
parser for schemes beginning withhttp
other thanhttps
#1790 - Fix blaze-client to reset the connection start time on each invocation of the
F[DisposableResponse]
. This fixes the "timeout after 0 milliseconds" error. #1792 - Depdency upgrades:
- blaze-0.12.13
- http4s-websocket-0.2.1
- specs2-4.0.4
- tomcat-9.0.7
v0.18.8 (2018-04-11)
- Improved ScalaDoc for BlazeBuilder #1775
- Added a stream constructor for async-http-client #1776
- http4s-prometheus-server-metrics project created. Prometheus Metrics middleware implemented for metrics on http4s server. Exposes an HttpService ready to be scraped by Prometheus, as well pairing to a CollectorRegistry for custom metric registration. #1778
v0.18.7 (2018-04-04)
- Multipart parser defaults to fields interpreted as utf-8. #1767
v0.18.6 (2018-04-03)
- Fix parsing of multipart bodies across chunk boundaries. #1764
v0.18.5 (2018-03-28)
- Add
&
extractor to http4s-dsl. #1758 - Deprecate
EntityEncoder[F, Future[A]]
. TheEntityEncoder
is strict in its argument, which causes any side effect of theFuture
to execute immediately. Wrap yourfuture
inIO.fromFuture(IO(future))
instead. #1759 - Dependency upgrades:
- circe-0.9.3
v0.18.4 (2018-03-23)
- Deprecate old
Timeout
middleware methods in favor of new ones that useFiniteDuration
and cancel timed out effects #1725 - Add
expectOr
methods to client for custom error handling on failed expects #1726 - Replace buffered multipart parser with a streaming version. Deprecate all uses of fs2-scodec. #1727
- Dependency upgrades:
- blaze-0.12.2
- fs2-0.10.3
- log4s-1.6.1
- jetty-9.4.9.v20180320
v0.18.3 (2018-03-17)
- Remove duplicate logging in pool manager #1683
- Add request/response specific properties to logging #1709
- Dependency upgrades:
- async-http-client-2.0.39
- cats-1.1.0
- cats-effect-0.10
- circe-0.9.2
- discipline-0.9.0
- jawn-fs2-0.12.2
- log4s-1.5.0
- twirl-1.3.15
v0.18.2 (2018-03-09)
- Qualify reference to
identity
inuriLiteral
macro #1697 - Make
Retry
use the correct duration units #1698 - Dependency upgrades:
- tomcat-9.0.6
v0.18.1 (2018-02-27)
- Fix the rendering of trailer headers in blaze #1629
- Fix race condition between shutdown and parsing in Http1SeverStage #1675
- Don't use filter in
Arbitrary[
Content-Length
]
#1678 - Opt-in fallthrough for authenticated services #1681
- Dependency upgrades:
- cats-effect-0.9
- fs2-0.10.2
- fs2-reactive-streams-0.5.1
- jawn-fs2-0.12.1
- specs2-4.0.3
- tomcat-9.0.5
- twirl-1.3.4
v0.18.0 (2018-02-01)
- Add
filename
method toPart
- Dependency upgrades:
- fs2-0.10.0
- fs2-reactive-streams-0.5.0
- jawn-fs2-0.12.0
v0.18.0-M9 (2018-01-26)
- Emit Exit Codes On Server Shutdown #1638 #1637
- Register Termination Signal and Frame in Http4sWSStage #1631
- Trailer Headers Are Now Being Emitted Properly #1629
- Dependency Upgrades:
- alpn-boot-8.1.12.v20180117
- circe-0.9.1
- fs2-0.10.0-RC2
- fs2-reactive-streams-0.3.0
- jawn-fs2-0.12.0-M7
- metrics-4.0.2
- tomcat-9.0.4
v0.18.0-M8 (2018-01-05)
- Dependency Upgrades:
- argonaut-6.2.1
- circe-0.9.0
- fs2-0.10.0-M11
- fs2-reactive-streams-0.2.8
- jawn-fs2-0.12.0-M6
- cats-1.0.1
- cats-effect-0.8
v0.18.0-M7 (2017-12-23)
- Relax various typeclass constraints from
Effect
toSync
orAsync
. #1587 - Operate on
Segment
instead ofChunk
#1588
EntityDecoder.collectBinary
andEntityDecoder.binary
now returnSegment[Byte, Unit]
instead ofChunk[Byte]
.
- Add
EntityDecoder.binaryChunk
.
- Add
EntityEncoder.segmentEncoder
.
http4sMonoidForChunk
replaced byhttp4sMonoidForSegment
.- Add new generators for core RFC 2616 types. #1593
- Undo obsolete copying of bytes in
StaticFile.fromURL
. #1202 - Optimize conversion of
Chunk.Bytes
andByteVectorChunk
to `ByteBuffer. #1602 - Rename
read
tosend
andwrite
toreceive
in websocket model. #1603 - Remove
MediaRange
mutableRegistry
and addHttpCodec[MediaRange]
instance #1597 - Remove
Monoid[Segment[A, Unit]]
instance, which is now provided by fs2. #1609 - Introduce
WebSocketBuilder
to buildWebSocket
responses. Allows headers (e.g.,Sec-WebSocket-Protocol
) on a successful handshake, as well as customization of the response to failed handshakes. #1607 - Don't catch exceptions thrown by
EntityDecoder.decodeBy
. Complain loudly in logs about exceptions thrown byHttpService
rather than raised inF
. #1592 - Make
abnormal-terminations
andservice-errors
Metrics names plural. #1611 - Refactor blaze client creation. #1523
Http1Client.apply
returnsF[Client[F]]
Http1Client.stream
returnsStream[F, Client[F]]
, bracketed to shut down the client.
PooledHttp1Client
constructor is deprecated, replaced by the above.
SimpleHttp1Client
is deprecated with no direct equivalent. UseHttp1Client
.- Improve client timeout and wait queue handling
requestTimeout
andresponseHeadersTimeout
begin from the submission of the request. This includes time spent in the wait queue of the pool. #1570
- When a connection is
invalidate
d, try to unblock a waiting request under the same key. Previously, the wait queue would only be checked on recycled connections.
- When the connection pool is closed, allow connections in the wait queue to complete.
- Changes to Metrics middleware. #1612
- Decrement the active requests gauge when no request matches
- Don't count non-matching requests as 4xx in case they're composed with other services.
- Don't count failed requests as 5xx in case they're recovered elsewhere. They still get recorded as
service-error
s. - Dependency upgrades:
- async-http-client-2.0.38
- cats-1.0.0.RC2
- circe-0.9.0-M3
- fs2-0.10.0-M10
- fs2-jawn-0.12.0-M5
- fs2-reactive-streams-0.2.7
- scala-2.10.7 and scala-2.11.12
v0.18.0-M6 (2017-12-08)
- Tested on Java 9.
Message.withContentType
now takes aContent-Type
instead of anOption[`Content-Type`]
.withContentTypeOption
takes anOption
, andwithoutContentType
clears it.QValue
has anHttpCodec
instanceAuthMiddleware
never falls through. See #1530 for more.ContentCoding
is no longer aRegistry
, but has anHttpCodec
instance.- Render a banner on server startup. Customize by calling
withBanner(List[String])
orwithoutBanner
on theServerBuilder
. - Parameterize
isZippable
as a predicate of theResponse
inGZip
middleware. - Add constant for
application/vnd.api+json
MediaType. - Limit memory consumption in
GZip
middleware - Add
handleError
,handleErrorWith
,bimap
,biflatMap
,transform
, andtransformWith
toEntityDecoder
. org.http4s.util.StreamApp
andorg.http4s.util.ExitCode
are deprecated in favor offs2.StreamApp
andfs2.StreamApp.ExitCode
, based on what was in http4s.- Dependency upgrades:
- fs2-0.10.0-M9
- fs2-reactive-streams-0.2.6
- jawn-fs2-0.12.0-M4
- specs2-4.0.2
v0.17.6 (2017-12-05)
- Fix
StaticFile
to serve files larger thanInt.MaxValue
bytes - Dependency upgrades:
- tomcat-8.5.24
v0.16.6 (2017-12-04)
- Add a CSRF server middleware
- Fix
NullPointerException
when starting a Tomcat server related todocBase
- Log version info and server address on server startup
- Dependency upgrades:
- jetty-9.4.8.v20171121
- log4s-1.4.0
- scalaz-7.2.17
- twirl-1.3.13
v0.18.0-M5 (2017-11-02)
- Introduced an
HttpCodec
type class that represents a type that can round trip to and from aString
.Uri.Scheme
andTransferCoding
are the first implementors, with more to follow. Added anHttpCodecLaws
to http4s-testing. Uri.Scheme
is now its own type instead of a type alias.TransferCoding
is no longer a case class. Itscoding
member is now aString
, not aCIString
. Its companion is no longer aRegistry
.- Introduced
org.http4s.syntax.literals
, which contains aStringContext
forAll safely constructing aUri.Scheme
. More will follow. org.http4s.util.StreamApp.ExitCode
moved toorg.http4s.util.ExitCode
- Changed
AuthService[F[_], T]
toAuthService[T, F[_]]
to support partial unification when combining services as aSemigroupK
. - Unseal the
MessageFailure
hierarchy. Previous versions of http4s had aGenericParsingFailure
,GenericDecodeFailure
, andGenericMessageBodyFailure
. This was not compatible with the parameterized effect introduced in v0.18. Now,MessageFailure
is unsealed, so users wanting precise control over the defaulttoHttpResponse
can implement their own failure conditions. MessageFailure
now has anOption[Throwable]
cause.- Removed
KleisliInstances
. TheSemigroupK[Kleisli[F, A, ?]]
is now provided by cats. Users should no longer need to importorg.http4s.implicits._
to get<+>
composition ofHttpService
s NonEmptyList
extensions moved fromorg.http4s.util.nonEmptyList
toorg.http4s.syntax.nonEmptyList
.- There is a classpath difference in log4s version between blaze and http4s in this milestone that will be remedied in M6. We believe these warnings are safe.
- Dependency upgrades:
- cats-1.0.0-RC1
- fs2-0.10.0-M8
- fs2-reactive-streams-0.2.5
v0.18.0-M4 (2017-10-12)
- Syntax for building requests moved from
org.http4s.client._
toorg.http4s.client.dsl.Http4sClientDsl[F]
, with concrete typeIO
available asorg.http4s.client.dsl.io._
. This is consistent with http4s-dsl for servers. - Change
StreamApp
to return aStream[F, ExitCode]
. The first exit code returned by the stream is the exit code of the JVM. This allows custom exit codes, and eases dead code warnings in certain constructions that involved mapping overNothing
. AuthMiddleware.apply
now takes anKleisli[OptionT[F, ?], Request[F], T]
instead of aKleisli[F, Request[F], T]
.- Set
Content-Type
header on defaultNotFound
response. - Merges from v0.16.5 and v0.17.5.
- Remove mutable map that backs
Method
registry. All methods in the IANA registry are available throughMethod.all
. Custom methods should be memoized by other means. - Adds an
EntityDecoder[F, Array[Byte]]
andEntityDecoder[F, Array[Char]]
for symmetry with providedEntityEncoder
instances. - Adds
Arbitrary
instances forHeaders
,EntityBody[F]
(currently just single chunk),Entity[F]
, andEntityEncoder[F, A]
. - Adds
EntityEncoderLaws
forEntityEncoder
. - Adds
EntityCodecLaws
. "EntityCodec" is not a type in http4s, but these laws relate anEntityEncoder[F, A]
to anEntityDecoder[F, A]
. - There is a classpath difference in log4s version between blaze and http4s in this milestone that will be remedied in M6. We believe these warnings are safe.
v0.17.5 (2017-10-12)
- Merges only.
v0.16.5 (2017-10-11)
- Correctly implement sanitization of dot segments in static file paths
according to RFC 3986 5.2.4. Most importantly, this fixes an issue where
...
is reinterpreted as..
and can escape the root of the static file service.
v0.18.0-M3 (2017-10-04)
- Merges only.
- There is a classpath difference in log4s version between blaze and http4s in this milestone that will be remedied in M6. We believe these warnings are safe.
v0.17.4 (2017-10-04)
- Fix reading of request body in non-blocking servlet backend. It was previously only reading the first byte of each chunk.
- Dependency upgrades:
- fs2-reactive-streams-0.1.1
v0.16.4 (2017-10-04)
- Backport removal
java.xml.bind
dependency fromGZip
middleware, to play more nicely with Java 9. - Dependency upgrades:
- metrics-core-3.2.5
- tomcat-8.0.23
- twirl-1.3.12
v0.18.0-M2 (2017-10-03)
-
Use http4s-dsl with any effect type by either:
- extend
Http4sDsl[F]
- create an object that extends
Http4sDsl[F]
, and extend that. import org.http4s.dsl.io._
is still available for those who wish to specialize oncats.effect.IO
- extend
- Remove
Semigroup[F[MaybeResponse[F]]]
constraint fromBlazeBuilder
. - Fix
AutoSlash
middleware when a service is mounted with a prefix. - Publish internal http4s-parboiled2 as a separate module. This does
not add any new third-party dependencies, but unbreaks
sbt publishLocal
. - Add
Request.from
, which respectsX-Fowarded-For
header. - Make
F
inEffectMessageSyntax
invariant - Add
message.decodeJson[A]
syntax to replace awkwardmessage.as(implicitly, jsonOf[A])
. Brought into scope by importing one of the following, based on your JSON library of choice.
import org.http4s.argonaut._
import org.http4s.circe._
import org.http4s.json4s.jackson._
import org.http4s.json4s.native._
AsyncHttpClient.apply
no longer takes abufferSize
. It is made irrelevant by fs2-reactive-streams.MultipartParser.parse
no longer takes aheaderLimit
, which was unused.- Add
maxWaitQueueLimit
(default 256) andmaxConnectionsPerRequestKey
(default 10) toPooledHttp1Client
. - Remove private implicit
ExecutionContext
fromStreamApp
. This had been known to cause diverging implicit resolution that was hard to debug. - Shift execution of the routing of the
HttpService
to theExecutionContext
provided by theJettyBuilder
orTomcatBuilder
. Previously, it only shifted the response task and stream. This was a regression from v0.16. - Add two utility execution contexts. These may be used to increase throughput
as the server builder's
ExecutionContext
. Blocking calls on routing may decrease fairness or even deadlock your service, so use at your own risk:
org.http4s.util.execution.direct
org.http4s.util.execution.trampoline
- Deprecate
EffectRequestSyntax
andEffectResponseSyntax
. These were previously used to provide methods such as.putHeaders
and.withBody
on typesF[Request]
andF[Response]
. As an alternative:
- Call
.map
or.flatMap
onF[Request]
andF[Response]
to get access to all the same methods.
-
Variadic headers have been added to all the status code generators in
Http4sDsl[F]
and method generators inimport org.http4s.client._
. For example:POST(uri, urlForm, Header("Authorization", "Bearer s3cr3t"))
Ok("This will have an html content type!", `Content-Type`(`text/html`))
- Restate
HttpService[F]
as aKleisli[OptionT[F, ?], Request[F], Response[F]]
. - Similarly,
AuthedService[F]
as aKleisli[OptionT[F, ?], AuthedRequest[F], Response[F]]
. MaybeResponse
is removed, because the optionality is now expressed through theOptionT
inHttpService
. Instead of composingHttpService
via aSemigroup
, compose via aSemigroupK
. Importorg.http4s.implicits._
to get aSemigroupK[HttpService]
, and chain services ass1 <+> s2
. We hope to remove the need fororg.http4s.implicits._
in a future version of cats with issue 1428.- The
Service
type alias is deprecated in favor ofKleisli
. It used to represent a partial application of the first type parameter, but since version 0.18, it is identical to `Kleisli. HttpService.lift
,AuthedService.lift
are deprecated in favor ofKleisli.apply
.- Remove
java.xml.bind
dependency fromGZip
middleware to avoid an extra module dependency in Java 9. -
Upgraded dependencies:
- jawn-fs2-0.12.0-M2
- log4s-1.4.0
- There is a classpath difference in log4s version between blaze and http4s in this milestone that will be remedied in M6. We believe these warnings are safe.
v0.17.3 (2017-10-02)
- Shift execution of HttpService to the
ExecutionContext
provided by theBlazeBuilder
when using HTTP/2. Previously, it only shifted the response task and body stream.
v0.16.3 (2017-09-29)
- Fix
java.io.IOException: An invalid argument was supplied
on blaze-client for Windows when writing an empty sequence ofByteBuffer
s. - Set encoding of
captureWriter
to UTF-8 instead of the platform default. - Dependency upgrades:
- blaze-0.12.9
v0.17.2 (2017-09-25)
- Remove private implicit strategy from
StreamApp
. This had been known to cause diverging implicit resolution that was hard to debug. - Shift execution of HttpService to the
ExecutionContext
provided by theBlazeBuilder
. Previously, it only shifted the response stream. This was a regression from 0.16. - Split off http4s-parboiled2 module as
"org.http4s" %% "parboiled"
. There are no externally visible changes, but this simplifies and speeds the http4s build.
v0.16.2 (2017-09-25)
- Dependency patch upgrades:
- async-http-client-2.0.37
- blaze-0.12.8: changes default number of selector threads to
from
2 * cores + 1
tomax(4, cores + 1)
.
- jetty-9.4.7.v20170914
- tomcat-8.5.21
- twirl-1.3.7
v0.17.1 (2017-09-17)
- Fix bug where metrics were not captured in
Metrics
middleware. - Pass
redactHeadersWhen
argument fromLogger
toRequestLogger
andResponseLogger
.
v0.16.1 (2017-09-17)
- Publish our fork of parboiled2 as http4s-parboiled2 module. It's
the exact same internal code as was in http4s-core, with no external
dependencies. By publishing an extra module, we enable a
publishLocal
workflow. - Charset fixes:
-
Deprecate
CharsetRange.isSatisfiedBy
in favor of and `Accept-Charset`.isSatisfiedBy
in favor of
-
Fix definition of
satisfiedBy
to respect priority of
- Add
CharsetRange.matches
. - ContentCoding fixes:
- Deprecate
ContentCoding.satisfiedBy
andContentCoding.satisfies
in favor of `Accept-Encoding`.satisfiedBy
.
- Deprecate `
Accept-Encoding`.preferred
, which has no reasonable interpretation in the presence of splats.
- Add `
Accept-Language`.qValue
.
- Fix definition of
satisfiedBy
to respect priority ofContentCoding.*
.
- Add
ContentCoding.matches
andContentCoding.registered
.
- Add
Arbitrary[ContentCoding]
and `Arbitrary[`Accept-Encoding`]
instances. - LanguageTag fixes:
- Deprecate
LanguageTag.satisfiedBy
andLanguageTag.satisfies
in favor of `Accept-Language`.satisfiedBy
.
- Fix definition of
satisfiedBy
to respect priority ofLanguageTag.*
and matches of a partial set of subtags.
- Add
LanguageTag.matches
.
- Deprecate
LanguageTag.withQuality
in favor of newLanguageTag.withQValue
.
- Deprecate `
Accept-Language`.preferred
, which has no reasonable interpretation in the presence of splats.
- Add `
Accept-Language`.qValue
.
- Add
Arbitrary[LanguageTag]
and `Arbitrary[`Accept-Language`]
instances.
v0.17.0 (2017-09-01)
- Honor
Retry-After
header inRetry
middleware. The response will not be retried until the maximum of the backoff strategy and any time specified by theRetry-After
header of the response. - The
RetryPolicy.defaultRetriable
only works for methods guaranteed to not have a body. In fs2, we can't introspect the stream to guarantee that it can be rerun. To retry requests for idempotent request methods, useRetryPolicy.unsafeRetriable
. To retry requests regardless of method, useRetryPolicy.recklesslyRetriable
. - Fix
Logger
middleware to render JSON bodies as text, not as a hex dump. MultipartParser.parse
returns a stream ofByteVector
instead of a stream ofByte
. This perserves chunking when parsing into the high-levelEntityDecoder[Multipart]
, and substantially improves performance on large files. The high-level API is not affected.
v0.16.0 (2017-09-01)
Retry
middleware takes aRetryPolicy
instead of a backoff strategy. ARetryPolicy
is a function of the request, the response, and the number of attempts. Wrap the previousbackoff
inRetryPolicy {}
for compatible behavior.- Expose a
Part.fileData
constructor that accepts anEntityBody
.
v0.17.0-RC3 (2017-08-29)
- In blaze-server, when doing chunked transfer encoding, flush the header as soon as it is available. It previously buffered until the first chunk was available.
v0.16.0-RC3 (2017-08-29)
- Add a
responseHeaderTimeout
property toBlazeClientConfig
. This measures the time between the completion of writing the request body to the reception of a complete response header. -
Upgraded dependencies:
- async-http-client-2.0.35
v0.18.0-M1 (2017-08-24)
This release is the product of a long period of parallel development across different foundation libraries, making a detailed changelog difficult. This is a living document, so if any important points are missed here, please send a PR.
The most important change in http4s-0.18 is that the effect type is
parameterized. Where previous versions were specialized on
scalaz.concurrent.Task
or fs2.Task
, this version supports anything
with a cats.effect.Effect
instance. The easiest way to port an
existing service is to replace your Task
with cats.effect.IO
,
which has a similar API and is already available on your classpath.
If you prefer to bring your own effect, such as monix.eval.Task
or
stick to scalaz.concurrent.Task
or put a transformer on IO
, that's
fine, too!
The parameterization chanages many core signatures throughout http4s:
Request
andResponse
becomeRequest[F[_]]
andResponse[F[_]]
. TheF
is the effect type of the body (i.e.,Stream[F, Byte]
), or what the body.run
s to.HttpService
becomesHttpService[F[_]]
, so that the service returns anF[Response[F]]
. Instead of constructing withHttpService { ... }
, we now declare the effect type of the service, likeHttpService[IO] { ... }
. This determines the type of request and response handled by the service.EntityEncoder[A]
andEntityDecoder[A]
are nowEntityEncoder[F[_], A]
andEntityDecoder[F[_], A]
, respectively. These act as a codec forRequest[F]
andResponse[F]
. In practice, this change tends to be transparent in the DSL.- The server builders now take an
F
parameter, which needs to match the services mounted to them. - The client now takes an
F
parameter, which determines the requests and responses it handles.
Several dependencies are upgraded:
- cats-1.0.0.MF
- circe-0.9.0-M1
- fs2-0.10.0-M6
- fs2-reactive-streams-0.2.2
- jawn-fs2-0.12.0-M1
v0.17.0-RC2 (2017-08-24)
- Remove
ServiceSyntax.orNotFound(a: A): Task[Response]
in favor ofServiceSyntax.orNotFound: Service[Request, Response]
v0.16.0-RC2 (2017-08-24)
- Move http4s-blaze-core from
org.http4s.blaze
toorg.http4s.blazecore
to avoid a conflict with the non-http4s blaze-core module. - Change
ServiceOps
to operate on aService[?, MaybeResponse]
. Give it anorNotFound
that returns aService
. TheorNotFound(a: A)
overload is left for compatibility with Scala 2.10. - Build with Lightbend compiler instead of Typelevel compiler so we
don't expose
org.typelevel
dependencies that are incompatible with ntheir counterparts inorg.scala-lang
. -
Upgraded dependencies:
- blaze-0.12.7 (fixes eviction notice in http4s-websocket)
- twirl-1.3.4
v0.17.0-RC1 (2017-08-16)
- Port
ChunkAggregator
to fs2 - Add logging middleware
- Standardize on
ExecutionContext
overStrategy
andExecutorService
- Implement
Age
header - Fix
Client#toHttpService
to not dispose until the body is consumed - Add a buffered implementation of
EntityDecoder[Multipart]
- In async-http-client, don't use
ReactiveStreamsBodyGenerator
unless there is a body to transmit. This fixes anIllegalStateException: unexpected message type
- Add
HSTS
middleware - Add option to serve pre-gzipped resources
- Add RequestLogging and ResponseLogging middlewares
StaticFile
options returnOptionT[Task, ?]
- Set
Content-Length
orTransfer-Encoding: chunked
header when serving from a URL - Explicitly close
URLConnection
`s if we are not reading the contents -
Upgrade to:
- async-http-client-2.0.34
- fs2-0.9.7
- metrics-core-3.2.4
- scodec-bits-1.1.5
v0.16.0-RC1 (2017-08-16)
- Remove laziness from
ArbitraryInstances
- Support an arbitrary predicate for CORS allowed origins
- Support
Access-Control-Expose-Headers
header for CORS - Fix thread safety issue in
EntityDecoder[XML]
- Support IPV6 headers in
X-Forwarded-For
- Add
status
andsuccessful
methods to client - Overload
client.fetchAs
andclient.streaming
to accept aTask[Request]
- Replace
Instant
withHttpDate
to avoid silent truncation and constrain to dates that are legally renderable in HTTP. - Fix bug in hash code of
CIString
- Update
request.pathInfo
when changingrequest.withUri
. To keep these values in sync,request.copy
has been deprecated, but copy constructors based onwith
have been added. - Remove
name
fromAttributeKey
. - Add
withFragment
andwithoutFragment
toUri
- Construct
Content-Length
withfromLong
to ensure validity, andunsafeFromLong
when you can assert that it's positive. - Add missing instances to
QueryParamDecoder
andQueryParamEncoder
. - Add
response.cookies
method to get a list of cookies fromSet-Cookie
header.Set-Cookie
is no longer aHeader.Extractable
, as it does not adhere to the HTTP spec of being concatenable by commas without changing semantics. - Make servlet
HttpSession
available as a request attribute in servlet backends - Fix
Part.name
to return the name from theContent-Disposition
header instead of the name of theContent-Disposition
header. Accordingly, it is no longer aCIString
Request.toString
andResponse.toString
now redact sensitive headers. A method to redact arbitrary headers is added toHeaders
.Retry-After
is now modeled as aEither[HttpDate, Long]
to reflect either an http-date or delta-seconds value.- Look for index.html in
StaticFile
when rendering a directory instead of returning401 Unauthorized
. - Limit dates to a minimum of January 1, 1900, per RFC.
- Add
serviceErrorHandler
toServerBuilder
to allow pluggable error handlers when a server backend receives a failed task or a thrown Exception when invoking a service. The default callstoHttpResponse
onMessageFailure
and closes the connection with a500 InternalServerError
on other non-fatal errors. Fatal errors are left to the server. FollowRedirect
does not propagate sensitive headers when redirecting to a different authority.- Add Content-Length header to empty response generators
-
Upgraded dependencies:
- async-http-client-2.0.34
- http4s-websocket-0.2.0
- jetty-9.4.6.v20170531
- json4s-3.5.3
- log4s-1.3.6
- metrics-core-3.2.3
- scala-2.12.3-bin-typelevel-4
- scalaz-7.2.15
- tomcat-8.5.20
v0.15.16 (2017-07-20)
- Backport rendering of details in
ParseFailure.getMessage
v0.15.15 (2017-07-20)
- Oops. Same as v0.15.14.
v0.15.14 (2017-07-10)
- Close parens in
Request.toString
- Use "message" instead of "request" in message body failure messages
- Add
problem+json
media type - Tolerate
[
and]
in queries parsing URIs. These characters are parsed, but percent-encoded.
v0.17.0-M3 (2017-05-27)
- Fix file corruption issue when serving static files from the classpath
v0.16.0-M3 (2017-05-25)
- Fix
WebjarService
so it matches assets. ServerApp
overridesprocess
to leave a single abstract method- Add gzip trailer in
GZip
middleware -
Upgraded dependencies:
- circe-0.8.0
- jetty-9.4.5.v20170502
- scalaz-7.2.13
- tomcat-8.5.15
ProcessApp
uses aProcess[Task, Nothing]
rather than aProcess[Task, Unit]
Credentials
is split intoCredentials.AuthParams
for key-value pairs andCredentials.Token
for legacy token-based schemes.OAuthBearerToken
is subsumed byCredentials.Token
.BasicCredentials
no longer extendsCredentials
, but is extractable from one. This model permits the definition of other arbitrary credential schemes.- Add
fromSeq
constructor toUrlForm
- Allow
WebjarService
to pass on methods other thanGET
. It previously threw aMatchError
.
v0.15.13 (2017-05-25)
-
Patch-level upgrades to dependencies:
- async-http-client-2.0.32
- blaze-0.12.6 (fixes infinite loop in some SSL handshakes)
- jetty-9.3.19.v20170502
- json4s-3.5.2
- tomcat-8.0.44
v0.15.12 (2017-05-11)
- Fix GZip middleware to render a correct stream
v0.17.0-M2 (2017-04-30)
Timeout
middleware takes an implicitScheduler
andExecutionContext
- Bring back
http4s-async-client
, based onfs2-reactive-stream
- Restore support for WebSockets
v0.16.0-M2 (2017-04-30)
-
Upgraded dependencies:
- argonaut-6.2
- jetty-9.4.4.v20170414
- tomcat-8.5.14
- Fix
ProcessApp
to terminate on process errors - Set
secure
request attribute correctly in blaze server - Exit with code
-1
whenProcessApp
fails - Make
ResourceService
respectIf-Modified-Since
- Rename
ProcessApp.main
toProcessApp.process
to avoid overload confusio - Avoid intermediate String allocation in Circe's
jsonEncoder
- Adaptive
EntityDecoder[Json]
for circe: works directly from a ByteBuffer for small bodies, and incrementally through jawn for larger. - Capture more context in detail message of parse errors
v0.15.11 (2017-04-29)
- Upgrade to blaze-0.12.5 to pick up fix for
StackOverflowError
in SSL handshake
v0.15.10 (2017-04-28)
- Patch-level upgrades to dependencies
- argonaut-6.2
- scalaz-7.2.12
- Allow preambles and epilogues in multipart bodies
- Limit multipart headers to 40 kilobytes to avoid unbounded buffering of long lines in a header
- Remove
' '
and'?'
from alphabet for generated multipart boundaries, as these are not token characters and are known to cause trouble for some multipart implementations - Fix multipart parsing for unlucky input chunk sizes
v0.15.9 (2017-04-19)
- Terminate
ServerApp
even if the server fails to start - Make
ResourceService
respectIf-Modified-Since
- Patch-level upgrades to dependencies:
- async-http-client-2.0.31
- jetty-9.3.18.v20170406
- json4s-3.5.1
- log4s-1.3.4
- metrics-core-3.1.4
- scalacheck-1.13.5
- scalaz-7.1.13 or scalaz-7.2.11
- tomcat-8.0.43
v0.17.0-M1 (2017-04-08)
-
First release on cats and fs2
- All scalaz types and typeclasses replaced by cats equivalengts
scalaz.concurrent.Task
replaced byfs2.Task
scalaz.stream.Process
replaced byfs2.Stream
-
Roughly at feature parity with v0.16.0-M1. Notable exceptions:
- Multipart not yet supported
- Web sockets not yet supported
- Client retry middleware can't check idempotence of requests
- Utilties in
org.http4s.util.io
not yet ported
v0.16.0-M1 (2017-04-08)
- Fix type of
AuthedService.empty
- Eliminate
Fallthrough
typeclass. AnHttpService
now returnsMaybeResponse
, which can be aResponse
orPass
. There is aSemigroup[MaybeResponse]
instance that allowsHttpService
s to be chained as a semigroup.service orElse anotherService
is deprecated in favor ofservice |+| anotherService
. - Support configuring blaze and Jetty servers with a custom
SSLContext
. -
Upgraded dependencies for various modules:
- async-http-client-2.0.31
- circe-0.7.1
- jetty-9.4.3.v20170317
- json4s-3.5.1
- logback-1.2.1
- log4s-1.3.4
- metrics-3.2.0
- scalacheck-1.13.5
- tomcat-8.0.43
- Deprecate
EntityEncoder[ByteBuffer]
andEntityEncoder[CharBuffer]
. - Add
EntityDecoder[Unit]
. - Move
ResponseClass
es intoStatus
. - Use
SSLContext.getDefault
by default in blaze-client. UseBlazeServerConfig.insecure
to ignore certificate validity. But please don't. - Move
CIString
syntax toorg.http4s.syntax
. - Bundle an internal version of parboiled2. This decouples core from shapeless, allowing applications to use their preferred version of shapeless.
- Rename
endpointAuthentication
tocheckEndpointAuthentication
. - Add a
WebjarService
for serving files out of web jars. - Implement
Retry-After
header. - Stop building with
delambdafy
on Scala 2.11. - Eliminate finalizer on
BlazeConnection
. - Respond OK to CORS pre-flight requests even if the wrapped service
does not return a successful response. This is to allow
CORS
pre-flight checks of authenticated services. - Deprecate
ServerApp
in favor oforg.http4s.util.ProcessApp
. AProcessApp
is easier to compose all the resources a server needs viaProcess.bracket
. - Implement a
Referer
header.
v0.15.8 (2017-04-06)
- Cache charset lookups to avoid synchronization. Resolution of charsets is synchronized, with a cache size of two. This avoids the synchronized call on the HTTP pool.
- Strip fragment from request target in blaze-client. An HTTP request
target should not include the fragment, and certain servers respond
with a
400 Bad Request
in their presence.
v0.15.7 (2017-03-09)
- Change default server and client executors to a minimum of four threads.
- Bring scofflaw async-http-client to justice for its brazen violations of Reactive Streams Rule 3.16, requesting of a null subscription.
- Destroy Tomcat instances after stopping, so they don't hold the port
- Deprecate
ArbitraryInstances.genCharsetRangeNoQuality
, which can cause deadlocks -
Patch-level upgrades to dependencies:
- async-http-client-2.0.30
- jetty-9.3.16.v20170120
- logback-1.1.11
- metrics-3.1.3
- scala-xml-1.0.6
- scalaz-7.2.9
- tomcat-8.0.41
- twirl-1.2.1
v0.15.6 (2017-03-03)
- Log unhandled MessageFailures to
org.http4s.server.message-failures
v0.15.5 (2017-02-20)
- Allow services wrapped in CORS middleware to fall through
- Don't log message about invalid CORS headers when no
Origin
header present - Soften log about invalid CORS headers from info to debug
v0.15.4 (2017-02-12)
- Call
toHttpResponse
on tasks failed withMessageFailure
s fromHttpService
, to get proper 4xx handling instead of an internal server error.
v0.15.3 (2017-01-17)
- Dispose of redirect responses in
FollowRedirect
. Fixes client deadlock under heavy load - Refrain from logging headers with potentially sensitive info in blaze-client
- Add
hashCode
andequals
toHeaders
- Make
challenge
in auth middlewares public to facilitate composing multiple auth mechanisms - Fix blaze-client detection of stale connections
v0.15.2 (2016-12-29)
- Add helpers to add cookies to requests
v0.12.6 (2016-12-29)
- Backport rendering of details in
ParseFailure.getMessage
v0.12.5 (2016-12-29)
Backport rendering of details inOops.ParseFailure.getMessage
v0.15.1 (2016-12-20)
- Fix GZip middleware to fallthrough non-matching responses
- Fix UnsupportedOperationException in
Arbitrary[Uri]
- Upgrade to Scala 2.12.1 and Scalaz 7.2.8
v0.15.0 (2016-11-30)
- Add support for Scala 2.12
- Added
Client.fromHttpService
to assist with testing. - Make all case classes final where possible, sealed where not.
- Codec for Server Sent Events (SSE)
- Added JSONP middleware
- Improve Expires header to more easily build the header and support parsing of the header
- Replce lazy
Raw.parsed
field with a simple null check - Added support for Zipkin headers
- Eliminate response attribute for detecting fallthrough response.
The fallthrough response must be
Response.fallthrough
. - Encode URI path segments created with
/
- Introduce
AuthedRequest
andAuthedService
types. - Replace
CharSequenceEncoder
withCharBufferEncoder
, assuming thatCharBuffer
andString
are the onlyCharSequence
s one would want to encode. - Remove
EnittyEncoder[Char]
andEntityEncoder[Byte]
. Send an array, buffer, or String if you want this. - Add
DefaultHead
middleware forHEAD
implementation. - Decouple
http4s-server
from Dropwizard Metrics. Metrics code is in the newhttp4s-metrics
module. - Allow custom scheduler for timeout middleware.
- Add parametric empty
EntityEncoder
andEntityEncoder[Unit]
. - Replace unlawful
Order[CharsetRange]
withEqual[CharsetRange]
. - Auth middlewares renamed
BasicAuth
andDigestAuth
. BasicAuth
passes client password to store instead of requesting password from store.- Remove realm as an argument to the basic and digest auth stores.
- Basic and digest auth stores return a parameterized type instead of just a String username.
- Upgrade to argonaut-6.2-RC2, circe-0.6.1, json4s-3.5.0
v0.14.11 (2016-10-25)
- Fix expansion of
uri
andq
macros by qualifying with_root_
v0.14.10 (2016-10-12)
- Include timeout type and duration in blaze client timeouts
v0.14.9 (2016-10-09)
- Don't use
"null"
as query string in servlet backends for requests without a query string
v0.14.8 (2016-10-04)
- Allow param names in UriTemplate to have encoded, reserved parameters
- Upgrade to blaze-0.12.1, to fix OutOfMemoryError with direct buffers
- Upgrade to Scalaz 7.1.10/7.2.6
- Upgrade to Jetty 9.3.12
- Upgrade to Tomcat 8.0.37
v0.14.7 (2016-09-25)
- Retry middleware now only retries requests with idempotent methods and pure bodies and appropriate status codes
- Fix bug where redirects followed when an effectful chunk (i.e.,
Await
) follows pure ones. - Don't uppercase two hex digits after "%25" when percent encoding.
- Tolerate invalid percent-encodings when decoding.
- Omit scoverage dependencies from POM
v0.14.6 (2016-09-11)
- Don't treat
Kill
ed responses (i.e., HEAD requests) as abnormal termination in metrics
v0.14.5 (2016-09-02)
- Fix blaze-client handling of HEAD requests
v0.14.4 (2016-08-29)
- Don't render trailing "/" for URIs with empty paths
- Avoid calling tail of empty list in
/:
extractor
v0.14.3 (2016-08-24)
- Follow 301 and 302 responses to POST with a GET request.
- Follow all redirect responses to HEAD with a HEAD request.
- Fix bug where redirect response is disposed prematurely even if not followed.
- Fix bug where payload headers are sent from original request when following a redirect with a GET or HEAD.
- Return a failed task instead of throwing when a client callback throws an exception. Fixes a resource leak.
- Always render
Date
header in GMT. - Fully support the three date formats specified by RFC 7231.
- Always specify peer information in blaze-client SSL engines
- Patch upgrades to latest async-http-client, jetty, scalaz, and scalaz-stream
v0.14.2 (2016-08-10)
- Override
getMessage
inUnexpectedStatus
v0.14.1 (2016-06-15)
- Added the possibility to specify custom responses to MessageFailures
- Address issue with Retry middleware leaking connections
- Fixed the status code for a semantically invalid request to
422 UnprocessableEntity
- Rename
json
tojsonDecoder
to reduce possibility of implicit shadowing - Introduce the
ServerApp
trait - Deprectate
onShutdown
andawaitShutdown
inServer
- Support for multipart messages
- The Path extractor for Long now supports negative numbers
- Upgrade to scalaz-stream-0.8.2(a) for compatibility with scodec-bits-1.1
- Downgrade to argonaut-6.1 (latest stable release) now that it cross builds for scalaz-7.2
- Upgrade parboiled2 for compatibility with shapeless-2.3.x
v0.14.0 (2016-06-15)
- Recalled. Use v0.14.1 instead.
v0.13.3 (2016-06-15)
- Address issue with Retry middleware leaking connections.
- Pass the reason string when setting the
Status
for a successfulParseResult
.
v0.13.2 (2016-04-13)
- Fixes the CanBuildFrom for RequestCookieJar to avoid duplicates.
- Update version of jawn-parser which contains a fix for Json decoding.
v0.13.1 (2016-04-07)
- Remove implicit resolution of
DefaultExecutor
in blaze-client.
v0.13.0 (2016-03-29)
- Add support for scalaz-7.2.x (use version 0.13.0a).
- Add a client backed based on async-http-client.
- Encode keys when rendering a query string.
- New entity decoder based on json4s' extract.
- Content-Length now accepts a Long.
- Upgrade to circe-0.3, json4s-3.3, and other patch releases.
- Fix deadlocks in blaze resulting from default executor on single-CPU machines.
- Refactor
DecodeFailure
into a newRequestFailure
hierarchy. - New methods for manipulating
UrlForm
. - All parsed headers get a
parse
method to construct them from their value. - Improve error message for unsupported media type decoding error.
- Introduce
BlazeClientConfig
class to simplify client construction. - Unify client executor service semantics between blaze-client and async-http-client.
- Update default response message for UnsupportedMediaType failures.
- Add a
lenient
flag to blazee configuration to accept illegal characters in headers. - Remove q-value from
MediaRange
andMediaType
, replaced byMediaRangeAndQValue
. - Add
address
toServer
trait. - Lazily construct request body in Servlet NIO to support HTTP 100.
- Common operations pushed down to
MessageOps
. - Fix loop in blaze-client when no connection can be established.
- Privatize most of the blaze internal types.
- Enable configuration of blaze server parser lengths.
- Add trailer support in blaze client.
- Provide an optional external executor to blaze clients.
- Fix Argonaut string interpolation
v0.12.4 (2016-03-10)
- Fix bug on rejection of invalid URIs.
- Do not send
Transfer-Encoding
orContent-Length
headers for 304 and others. - Don't quote cookie values.
v0.12.3 (2016-02-24)
- Upgrade to jawn-0.8.4 to fix decoding escaped characters in JSON.
v0.12.2 (2016-02-22)
Upgrade to jawn-0.8.4 to fix decoding escaped characters in JSON.Oops.
v0.12.1 (2016-01-30)
- Encode keys as well as values when rendering a query.
- Don't encode '?' or '/' when encoding a query.
v0.12.0 (2016-01-15)
- Refactor the client API for resource safety when not reading the entire body.
- Rewrite client connection pool to support maximum concurrent connections instead of maximum idle connections.
- Optimize body collection for better connection keep-alive rate.
- Move
Service
andHttpService
, because aClient
can be viewed as aService
. - Remove custom
DateTime
in favor ofjava.time.Instant
. - Support status 451 Unavailable For Legal Reasons.
- Various blaze-client optimizations.
- Don't let Blaze
IdentityWriter
write more than Content-Length bytes. - Remove
identity
Transfer-Encoding
, which was removed in HTTP RFC errata. - In blaze,
requireClose
is now the return value ofwriteEnd
. - Remove body from
Request.toString
andResponse.toString
. - Move blaze parser into its own class.
- Trigger a disconnect if an ignored body is too long.
- Configurable thread factories for happier profiling.
- Fix possible deadlock in default client execution context.
v0.11.3 (2015-12-28)
- Blaze upgrade to fix parsing HTTP responses without a reason phrase.
- Don't write more than Content-Length bytes in blaze.
- Fix infinite loop in non-blocking Servlet I/O.
- Never write a response body on HEAD requests to blaze.
- Add missing
'&'
between multivalued k/v pairs inUrlFormCodec.encode
v0.11.2 (2015-12-04)
- Fix stack safety issue in async servlet I/O.
- Reduce noise from timeout exceptions in
ClientTimeoutStage
. - Address file descriptor leaks in blaze-client.
- Fix
FollowRedirect
middleware for 303 responses. - Support keep-alives for client requests with bodies.
v0.11.1 (2015-11-29)
- Honor
connectorPoolSize
andbufferSize
parameters inBlazeBuilder
. - Add convenient
ETag
header constructor. - Wait for final chunk to be written before closing the async context in non-blocking servlet I/O.
- Upgrade to jawn-streamz-0.7.0 to use scalaz-stream-0.8 across the board.
v0.11.0 (2015-11-20)
- Upgrade to scalaz-stream 0.8
- Add Circe JSON support module.
- Add ability to require content-type matching with EntityDecoders.
- Cleanup blaze-client internals.
- Handle empty static files.
- Add ability to disable endpoint authentication for the blaze client.
- Add charset encoding for Argonaut JSON EntityEncoder.
v0.10.1 (2015-10-07)
- Processes render data in chunked encoding by default.
- Incorporate type name into error message of QueryParam.
- Comma separate Access-Control-Allow-Methods header values.
- Default FallThrough behavior inspects for the FallThrough.fallthroughKey.
v0.10.0 (2015-09-03)
- Replace
PartialService
with theFallthrough
typeclass andorElse
syntax. - Rename
withHeaders
toreplaceAllHeaders
- Set https endpoint identification algorithm when possible.
- Stack-safe
ProcessWriter
in blaze. - Configureable number of connector threads and buffer size in blaze-server.
v0.9.3 (2015-08-27)
- Trampoline recursive calls in blaze ProcessWriter.
- Handle server hangup and body termination correctly in blaze client.
v0.9.2 (2015-08-26)
- Bump http4s-websockets to 1.0.3 to properly decode continuation opcode.
- Fix metrics incompatibility when using Jetty 9.3 backend.
- Preserve original headers when appending as opposed to quoting.
v0.8.5 (2015-08-26)
- Preserve original headers when appending as opposed to quoting.
- Upgrade to jawn-0.8.3 to avoid transitive dependency on GPL2 jmh
v0.9.1 (2015-08-19)
- Fix bug in servlet nio handler.
v0.9.0 (2015-08-15)
- Require Java8.
StaticFile
uses the filename extension exclusively to determine media-type.- Add
/
method toUri
. - Add
UrlFormLifter
middleware to aggregate url-form parameters with the query parameters. - Add local address information to the
Request
type. - Add a Http method 'or' (
|
) extractor. - Add
VirtualHost
middleware for serving multiple sites from one server. - Add websocket configuration to the blaze server builder.
- Redefine default timeout status code to 500.
- Redefine the
Service
arrow result fromTask[Option[_]]
toTask[_]
. - Don't extend
AllInstances
withHttp4s
omnibus import object. - Use UTF-8 as the default encoding for text bodies.
- Numerous bug fixes by numerous contributors!
v0.8.4 (2015-07-13)
- Honor the buffer size parameter in gzip middleware.
- Handle service exceptions in servlet backends.
- Respect asyncTimeout in servlet backends.
- Fix prefix mounting bug in blaze-server.
- Do not apply CORS headers to unsuccessful OPTIONS requests.
v0.8.3 (2015-07-02)
- Fix bug parsing IPv4 addresses found in URI construction.
v0.8.2 (2015-06-22)
- Patch instrumented handler for Jetty to time async contexts correctly.
- Fix race condition with timeout registration and route execution in blaze client
- Replace
ConcurrentHashMap
with synchronizedHashMap
instaticcontent
package. - Fix static content from jars by avoiding
"//"
in path uris when serving static content. - Quote MediaRange extensions.
- Upgrade to jawn-streamz-0.5.0 and blaze-0.8.2.
- Improve error handling in blaze-client.
- Respect the explicit default encoding passed to
decodeString
.
v0.8.1 (2015-06-16)
- Authentication middleware integrated into the server package.
- Static content tools integrated into the server package.
- Rename HttpParser to HttpHeaderParser and allow registration and removal of header parsers.
- Make UrlForm EntityDecoder implicitly resolvable.
- Relax UrlForm parser strictness.
- Add 'follow redirect' support as a client middleware.
- Add server middleware for auto retrying uris of form '/foo/' as '/foo'.
- Numerous bug fixes.
- Numerous version bumps.
v0.8.0 (2015-06-16)
- Mistake. Go straight to v0.8.1.
v0.7.0 (2015-05-05)
- Add QueryParamMatcher to the dsl which returns a ValidationNel.
- Dsl can differentiate between '/foo/' and '/foo'.
- Added http2 support for blaze backend.
- Added a metrics middleware usable on all server backends.
- Websockets are now modeled by an scalaz.stream.Exchange.
- Add
User-Agent
andAllow
header types and parsers. - Allow providing a Host header to the blaze client.
- Upgrade to scalaz-stream-7.0a.
- Added a CORS middleware.
- Numerous bug fixes.
- Numerous version bumps.
v0.6.5 (2015-03-29)
- Fix bug in Request URI on servlet backend with non-empty context or servlet paths.
- Allow provided Host header for Blaze requests.
v0.6.4 (2015-03-15)
- Avoid loading javax.servlet.WriteListener when deploying to a servlet 3.0 container.
v0.6.3 (2015-03-15)
- Forgot to pull origin before releasing. Use v0.6.4 instead.
v0.6.2 (2015-02-27)
- Use the thread pool provided to the Jetty servlet builder.
- Avoid throwing exceptions when parsing headers.
- Make trailing slash insignificant in service prefixes on servlet containers.
- Fix mapping of servlet query and mount prefix.
v0.6.1 (2015-02-04)
- Update to blaze-0.5.1
- Remove unneeded error message (90b2f76097215)
- GZip middleware will not throw an exception if the AcceptEncoding header is not gzip (ed1b2a0d68a8)
v0.6.0 (2015-01-27)
-
http4s-core
-
Remove ResponseBuilder in favor of Response companion.
-
Allow '';'' separators for query pairs.
-
Make charset on Message an Option.
-
Add a
flatMapR
method to EntityDecoder. -
Various enhancements to QueryParamEncoder and QueryParamDecoder.
-
Make Query an IndexedSeq.
-
Add parsers for Location and Proxy-Authenticate headers.
-
Move EntityDecoder.apply to
Request.decode
andRequest.decodeWith
-
Move headers into
org.http4s.headers
package. -
Make UriTranslation respect scriptName/pathInfo split.
-
New method to resolve relative Uris.
-
Encode query and fragment of Uri.
-
Codec and wrapper type for URL-form-encoded bodies.
-
http4s-server
-
Add SSL support to all server builders.
-
http4s-blaze-server
-
Add Date header to blaze-server responses.
-
Close connection when error happens during body write in blaze-server.
-
http4s-servlet
-
Use asynchronous servlet I/O on Servlet 3.1 containers.
-
ServletContext syntax for easy mounting in a WAR deployment.
-
Support Dropwizard Metrics collection for servlet containers.
-
http4s-jawn
-
Empty strings are a JSON decoding error.
-
http4s-argonaut
-
Add codec instances for Argonaut's CodecJson.
-
http4s-json4s
-
Add codec instances for Json4s' Reader/Writer.
-
http4s-twirl
-
New module to support Twirl templates
-
http4s-scala-xml
-
Split scala-xml support into http4s-scala-xml module.
-
Change inferred type of
scala.xml.Elem
toapplication/xml
. -
http4s-client
-
Support for signing oauth-1 requests in client.
-
http4s-blaze-client
-
Fix blaze-client when receiving HTTP1 response without Content-Length header.
-
Change default blaze-client executor to variable size.
-
Fix problem with blaze-client timeouts.
v0.5.4 (2015-01-08)
- Upgrade to blaze 0.4.1 to fix header parsing issue in blaze http/1.x client and server.
v0.5.3 (2015-01-05)
- Upgrade to argonaut-6.1-M5 to match jawn. #157
v0.5.2 (2015-01-02)
- Upgrade to jawn-0.7.2. Old version of jawn was incompatible with argonaut. #157
v0.5.1 (2014-12-23)
- Include context path in calculation of scriptName/pathInfo. #140
- Fix bug in UriTemplate for query params with multiple keys.
- Fix StackOverflowError in query parser. #147
- Allow ';' separators for query pairs.
v0.5.0 (2014-12-11)
- Client syntax has evloved and now will include Accept headers when used with EntityDecoder
- Parse JSON with jawn-streamz.
- EntityDecoder now returns an EitherT to make decoding failure explicit.
- Renamed Writable to EntityEncoder
- New query param typeclasses for encoding and decoding query strings.
- Status equality now discards the reason phrase.
- Match AttributeKeys as singletons.
- Added async timeout listener to servlet backends.
- Start blaze server asynchronously.
- Support specifying timeout and executor in blaze-client.
- Use NIO for encoding files.
v0.4.2 (2014-12-01)
- Fix whitespace parsing in Authorization header #87
v0.4.1 (2014-11-20)
Uri.query
andUri.fragment
are no longer decoded. #75
v0.4.0 (2014-11-18)
- Change HttpService form a
PartialFunction[Request,Task[Response]]
toService[Request, Response]
, a type that encapsulates aRequest => Task[Option[Response]]
- Upgrade to scalaz-stream-0.6a
- Upgrade to blaze-0.3.0
- Drop scala-logging for log4s
- Refactor ServerBuilders into an immutable builder pattern.
- Add a way to control the thread pool used for execution of a Service
- Modernize the Renderable/Renderer framework
- Change Renderable append operator from ~ to <<
- Split out the websocket codec and types into a seperate package
- Added ReplyException, an experimental way to allow an Exception to encode a default Response on for EntityDecoder etc.
- Many bug fixes and slight enhancements
v0.3.0 (2014-08-29)
- New client API with Blaze implementation
- Upgrade to scalaz-7.1.0 and scalaz-stream-0.5a
- JSON Writable support through Argonaut and json4s.
- Add EntityDecoders for parsing bodies.
- Moved request and response generators to http4s-dsl to be more flexible to other frameworks'' syntax needs.
- Phased out exception-throwing methods for the construction of various model objects in favor of disjunctions and macro-enforced literals.
- Refactored imports to match the structure followed by scalaz.
v0.2.0 (2014-07-15)
- Scala 2.11 support
- Spun off http4s-server module. http4s-core is neutral between server and the future client.
- New builder for running Blaze, Jetty, and Tomcat servers.
- Configurable timeouts in each server backend.
- Replace Chunk with scodec.bits.ByteVector.
- Many enhancements and bugfixes to URI type.
- Drop joda-time dependency for slimmer date-time class.
- Capitalized method names in http4s-dsl.
v0.1.0 (2014-04-15)
- Initial public release.