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-M46 (2025-10-02)
What's Changed
http4s-core
- merge 0.23 to main by @samspills in https://github.com/http4s/http4s/pull/7728
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M45...v1.0.0-M46
v0.23.32 (2025-09-24)
What's Changed
http4s-dsl
-
Restore binary compatibility with <0.23.31 in dsl.Statuses by @rossabaker in https://github.com/http4s/http4s/pull/7722
Behind the scenes
<details>
-
Update http4s-circe, http4s-ember-client to 0.23.31 in series/0.23 by @http4s-stewardbot in https://github.com/http4s/http4s/pull/7721
</details>
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.31...v0.23.32
v1.0.0-M45 (2025-09-22)
What's Changed
http4s-core
- Merge series/0.23 into main by @danicheg in https://github.com/http4s/http4s/pull/7673
- Merge 0.23 to main by @rossabaker in https://github.com/http4s/http4s/pull/7715
-
merge 0.23.31 into main by @samspills in https://github.com/http4s/http4s/pull/7718
Documentation
-
Add Famly to list of adopters by @christianharrington in https://github.com/http4s/http4s/pull/7672
Behind the scenes
- Ignore sbt-doctest updates on main by @danicheg in https://github.com/http4s/http4s/pull/7601
New Contributors
- @hugo-vrijswijk made their first contribution in https://github.com/http4s/http4s/pull/7654
- @bio-aeon made their first contribution in https://github.com/http4s/http4s/pull/7611
- @carlosrogue made their first contribution in https://github.com/http4s/http4s/pull/7660
- @christianharrington made their first contribution in https://github.com/http4s/http4s/pull/7672
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M44...v1.0.0-M45
v0.23.31 (2025-09-22)
What's Changed
http4s-core
-
Rename HTTP 422 status by @NthPortal in https://github.com/http4s/http4s/pull/7661
-
Add QueryOps.withQueryParamValue by @morgen-peschke in https://github.com/http4s/http4s/pull/7702
-
Update ip4s-core, ip4s-test-kit to 3.7.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7666
-
Update log4cats-core, log4cats-js-console, ... to 2.7.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7682
-
Update cats-effect, cats-effect-std, ... to 3.6.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7698
-
Update fs2-core, fs2-io to 3.12.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7707
http4s-server
-
Respond with a 413 when raising an
EntityTooLargeby @danicheg in https://github.com/http4s/http4s/pull/7603 -
Remove code duplication in
RequestIdmiddleware by @bio-aeon in https://github.com/http4s/http4s/pull/7611 -
Log errors when fibers exit with an error in
ResponseLoggerby @danicheg in https://github.com/http4s/http4s/pull/7678http4s-ember-core
-
fail parsing invalid whitespace around field name by @samspills in https://github.com/http4s/http4s/pull/7716
http4s-client-testkit
-
Update netty-buffer, netty-codec-http to 4.2.0.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7659
Documentation
-
Update 'his/her' to 'their' by @hugo-vrijswijk in https://github.com/http4s/http4s/pull/7654
-
Document Scala 2.x mill giter8 template support by @carlosrogue in https://github.com/http4s/http4s/pull/7660
Behind the scenes
<details>
-
Update http4s-circe, http4s-ember-client to 0.23.30 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7595
-
Update sbt, scripted-plugin to 1.10.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7590
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7591
-
Update sbt-doctest to 0.11.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7600
-
Update netty-buffer, netty-codec-http to 4.1.116.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7606
-
Update Java-WebSocket to 1.6.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7604
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7605
-
Update sbt, scripted-plugin to 1.10.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7607
-
Update sbt-http4s-org to 0.17.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7609
-
Update sbt-scalajs, scalajs-compiler, ... to 1.17.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7592
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7612
-
Update sbt-native-packager to 1.11.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7613
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7614
-
Update netty-buffer, netty-codec-http to 4.1.117.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7619
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7618
-
Update
Scala2andsbt-http4s-orgby @danicheg in https://github.com/http4s/http4s/pull/7625 -
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7627
-
Update scala3-library, ... to 3.3.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7628
-
Update sbt-http4s-org to 0.18.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7626
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7630
-
Update sbt-native-packager to 1.11.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7636
-
Update netty-buffer, netty-codec-http to 4.1.119.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7637
-
Update sbt-scoverage to 2.3.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7641
-
Update sbt, scripted-plugin to 1.10.10 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7639
-
Update scalafmt-core to 3.9.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7642
-
Update sbt, scripted-plugin to 1.10.11 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7646
-
Update fs2-core, fs2-io to 3.12.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7651
-
Update sbt-scalajs, scalajs-compiler, ... to 1.18.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7658
-
Update cats-effect, cats-effect-std, ... to 3.6.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7664
-
Update munit-cats-effect to 2.1.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7657
-
Remove Cachix by @rossabaker in https://github.com/http4s/http4s/pull/7665
-
Update netty-buffer, netty-codec-http to 4.2.1.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7676
-
Update scala3-library, ... to 3.3.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7677
-
Update sbt-doctest to 0.11.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7681
-
Update sbt, scripted-plugin to 1.11.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7683
-
Update netty-buffer, netty-codec-http to 4.2.2.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7684
-
Update sbt-scala-native-config-brew to 0.4.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7687
-
Update sbt, scripted-plugin to 1.11.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7688
-
Build with the current Node.js in Nix by @rossabaker in https://github.com/http4s/http4s/pull/7691
-
Update cats-effect, cats-effect-std, ... to 3.6.2 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7693
-
Update sbt, scripted-plugin to 1.11.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7692
-
Update netty-buffer, netty-codec-http to 4.2.3.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7695
-
Update sbt, scripted-plugin to 1.11.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7699
-
Update netty-buffer, netty-codec-http to 4.2.4.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7701
-
Update sbt-doctest to 0.11.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7700
-
Update sbt-native-packager to 1.11.3 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7703
-
Update sbt, scripted-plugin to 1.11.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7704
-
Update netty-buffer, netty-codec-http to 4.2.5.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7705
-
Update sbt, scripted-plugin to 1.11.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7709
-
Update netty-buffer, netty-codec-http to 4.2.6.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7711
-
Update sbt-doctest to 0.11.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7712
-
Update scalafmt-core to 3.8.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7624
-
Update sbt-http4s-org to 2.0.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7685
</details>
New Contributors
- @hugo-vrijswijk made their first contribution in https://github.com/http4s/http4s/pull/7654
- @bio-aeon made their first contribution in https://github.com/http4s/http4s/pull/7611
- @carlosrogue made their first contribution in https://github.com/http4s/http4s/pull/7660
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.30...v0.23.31
v1.0.0-M44 (2024-12-06)
What's Changed
http4s-core
-
merge 0.23.30 -> main by @samspills in https://github.com/http4s/http4s/pull/7594
Documentation
-
update 1.0.0-Mxx releasing guide re ancillary releases by @samspills in https://github.com/http4s/http4s/pull/7572
Behind the scenes
- Fix Scala Steward config by @danicheg in https://github.com/http4s/http4s/pull/7569
New Contributors
- @i10416 made their first contribution in https://github.com/http4s/http4s/pull/7582
- @NthPortal made their first contribution in https://github.com/http4s/http4s/pull/7577
- @yawaramin made their first contribution in https://github.com/http4s/http4s/pull/7589
Full Changelog: https://github.com/http4s/http4s/compare/v1.0.0-M43...v1.0.0-M44
v0.23.30 (2024-12-04)
What's Changed
http4s-core
-
Add
X-Forwarded-Hostheader in series/0.23 by @NthPortal in https://github.com/http4s/http4s/pull/7577http4s-ember-core
-
Fix/i7538 end stream by trailers cause client to hang by @i10416 in https://github.com/http4s/http4s/pull/7582
-
tidy: client stream should start from idle state by @i10416 in https://github.com/http4s/http4s/pull/7584
Documentation
-
Add documenation for FlagQueryParamMatcher. by @jan0sch in https://github.com/http4s/http4s/pull/7581
-
Simplify form example by @yawaramin in https://github.com/http4s/http4s/pull/7589
Behind the scenes
<details>
-
Update http4s-circe, http4s-ember-client to 0.23.29 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7552
-
Update sbt-doctest to 0.11.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7554
-
Update sbt-http4s-org to 0.17.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7553
-
Update sbt to 1.10.4 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7556
-
Update cats-effect, cats-effect-std, ... to 3.5.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7555
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7557
-
Update sbt-buildinfo to 0.13.0 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7573
-
Update sbt to 1.10.5 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7574
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7575
-
Update sbt-buildinfo to 0.13.1 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7576
-
Update netty-buffer, netty-codec-http to 4.1.115.Final in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7580
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7585
-
Update cats-effect, cats-effect-std, ... to 3.5.6 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7586
-
flake.lock: Update by @http4s-steward in https://github.com/http4s/http4s/pull/7587
-
Update cats-effect, cats-effect-std, ... to 3.5.7 in series/0.23 by @http4s-steward in https://github.com/http4s/http4s/pull/7588
</details>
New Contributors
- @i10416 made their first contribution in https://github.com/http4s/http4s/pull/7582
- @NthPortal made their first contribution in https://github.com/http4s/http4s/pull/7577
- @yawaramin made their first contribution in https://github.com/http4s/http4s/pull/7589
Full Changelog: https://github.com/http4s/http4s/compare/v0.23.29...v0.23.30
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
orgvariable 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.requestToCurlWithBodyby @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-pluginupdates 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
Reconnectmiddleware 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=0should 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
commentparser 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
upgradeSocketby @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-testkitmodule by @danicheg in https://github.com/http4s/http4s/pull/7354 - Refactor
release.ymlby @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
WSTestClientby @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.0with Laika1.0.0by @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-coreby @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
getValidManagedby @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
EntityBodymentions in some scaladocs by @danicheg in https://github.com/http4s/http4s/pull/6955 - Tweak performance of
QueryOps#withQueryParamby @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.SchemeandTransferCodingtoCIStringby @froth in https://github.com/http4s/http4s/pull/7164
http4s-server
- More comprehensive support of
Entitymodel inJsonpMiddleware by @danicheg in https://github.com/http4s/http4s/pull/6937 - Take account of
Entitymodel inBracketRequestResponseMiddleware by @danicheg in https://github.com/http4s/http4s/pull/6957 - Use
ClockfromCEinstead of one fromjava.timeinCSRFMiddleware by @danicheg in https://github.com/http4s/http4s/pull/7166
http4s-client
- Rectify
Client#fromHttpAppby @danicheg in https://github.com/http4s/http4s/pull/7148
Documentation
- Fix
Entitydocs 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.23intomainby @danicheg in https://github.com/http4s/http4s/pull/6970 - Merge
series/0.23intomainby @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
MonadThrowinstead ofSyncinH2Client.RequestKey#getAddressby @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-annotationupdates on main by @danicheg in https://github.com/http4s/http4s/pull/7179 - Cleanup of
org.http4s.internalby @froth in https://github.com/http4s/http4s/pull/7175 - Merge
v0.23.22intomainby @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#setQueryParamsscaladoc 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
NoSuchElementExceptionintlsSocket.applicationProtocolby @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#assumein 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
ClockOpsinResponseTimingMiddleware by @danicheg in https://github.com/http4s/http4s/pull/7163
http4s-ember-core
- Close H2
readBufferonheaders.endStreamby @armanbilge in https://github.com/http4s/http4s/pull/7156 - Use
ClockOpsinUtil#readWithTimeoutby @danicheg in https://github.com/http4s/http4s/pull/7162
http4s-ember-server
- Mask errors in Ember server
runConnectionby @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#h2cUpgradeHttpRouteby @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
ContextRoutesby @hamnis in https://github.com/http4s/http4s/pull/7123 - Add
Upgrade-Insecure-Requestsheader 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
H2StreamreadBufferondata.endStreamby @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#translateby @danicheg in https://github.com/http4s/http4s/pull/7083
http4s-client
- Fix
Client.fromHttpAppdoes 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
Hpackoptimizations by @armanbilge in https://github.com/http4s/http4s/pull/7086- Use
Channelfor H2readBufferby @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.sbtby @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.writeLooperrors 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
EmberConnections 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#toHexinCSRFMiddleware by @danicheg in https://github.com/http4s/http4s/pull/6984 - Use
ByteVector#fromHexinCSRFMiddleware by @danicheg in https://github.com/http4s/http4s/pull/7002
http4s-client
JavaNetClientdoes not needAsyncby @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
Outcomeusage inBracketRequestResponseSuiteby @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#classifierFMethodWithOptionallyExcludedPathby @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
Entitymodel inH2Serverby @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
Chunkbuilder instead ofBufferinChunkWriterby @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
Chunkbuilder inCirceInstances#streamedJsonArrayby @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-Policyheader model by @samspills in https://github.com/http4s/http4s/pull/6709- Add
Uri.Host.fromStringmethod 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
Headersby @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#applyby @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#realTimein 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
AuthSchemevalues 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
DefaultHeadMiddleware 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
EmptyBodyin 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#trackConnectionshould 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.mdby @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:silentmore 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.fromStringreturn 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
Seqcollections 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
NonEmptyListinWriter#addListby @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
Http4sClientDsllocation 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
Statusby @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.asMaskBasedas 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
Acceptusage 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
Loggerby @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
UrlFormconstructors' 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.23intomainby @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
Clientby @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
Networkconstraint in ember builders by @armanbilge in https://github.com/http4s/http4s/pull/6526
http4s-ember-client
- Expose
Networkconstraint 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-classicto the1.2.xseries 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.ByteVectorforEntity.Strictby @armanbilge in https://github.com/http4s/http4s/pull/6528 - Smite
SeqinMessage#multiParams,Uri#multiParams,Query#multiParamsby @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.23intomainby @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.Pathby @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
GZipmiddlewares 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=trueby @dzanot in https://github.com/http4s/http4s/pull/6535 - Cross-compile
GZipmiddlewares for JS by @armanbilge in https://github.com/http4s/http4s/pull/6606
http4s-ember-core
- Set
serverNamesTLS 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
Chunkin 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#multiParamsby @danicheg in https://github.com/http4s/http4s/pull/6514 - Remove
BackendBuilder#allocateby @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#allocateby @danicheg in https://github.com/http4s/http4s/pull/6556 - Don't instantiate redundant
ListinPath#addSegmentby @danicheg in https://github.com/http4s/http4s/pull/6557 - Don't override
endsWithSlashwhen adding an emptyPathsegment 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
ThrottlemiddlewarehttpAapp->httpAppby @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
Streamin 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
HttpServiceintesting.mdby @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
Middlewaredocs 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-revsby @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
Seqin 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
CollectionCompatby @danicheg in https://github.com/http4s/http4s/pull/6508http4s-server
- Address the entity model in the server's
RequestLoggerby @danicheg in https://github.com/http4s/http4s/pull/6323 - Fix regression of
Router#defineby @danicheg in https://github.com/http4s/http4s/pull/6371 -
Relax
server.middleware.Cachingconstraints by @danicheg in https://github.com/http4s/http4s/pull/6490http4s-client
-
Take into account the
Entitymodel in theResponseLoggerby @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#fromIp4sHostmethod 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#putHeaderscalls 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.doneinstead 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#definetest 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
toStringforEntityby @danicheg in https://github.com/http4s/http4s/pull/6168 - Fix
Request/Responsescaladoc by @danicheg in https://github.com/http4s/http4s/pull/6171 - Covariant
Messages: minimum viable PR by @bplommer in https://github.com/http4s/http4s/pull/5712 - Tweak
Message#withEmptyBodyby @danicheg in https://github.com/http4s/http4s/pull/6288 - Remove
http4s.EmptyBodyby @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#productElementandResponse#productElementby @danicheg in https://github.com/http4s/http4s/pull/6372 - Add info about the entity into the
toStringofRequestandResponseby @danicheg in https://github.com/http4s/http4s/pull/6373 -
Resubmit idempotent requests with only pure entities in
Retrymiddleware by @danicheg in https://github.com/http4s/http4s/pull/6379http4s-laws
-
Address the
Entitymodel inArbitrary[Entity[*]]by @danicheg in https://github.com/http4s/http4s/pull/6369http4s-server
- Relax
authentication#challengedconstraints 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
Entitymodel in theEntityLimiterby @danicheg in https://github.com/http4s/http4s/pull/6320http4s-client
- Fix
Clientscaladoc by @danicheg in https://github.com/http4s/http4s/pull/6188 -
Remove deprecated
Client.fetch,DefaultClient.fetchby @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
Entitydocs 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.23intomainby @danicheg in https://github.com/http4s/http4s/pull/6282 - Ignore
scala-langupdates by @danicheg in https://github.com/http4s/http4s/pull/6293 - Tweak
BodyCache#hasNoBodyby @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
covarymethod. by @diesalbla in https://github.com/http4s/http4s/pull/6230 - Merge
series/0.23intomainby @danicheg in https://github.com/http4s/http4s/pull/6311 - Ignore
okioupdates by @danicheg in https://github.com/http4s/http4s/pull/6315 - Address the entity model in the
DefaultHeadby @danicheg in https://github.com/http4s/http4s/pull/6324 - Address the entity model in the
Client#fromHttpAppby @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
log4catsupdates by @danicheg in https://github.com/http4s/http4s/pull/6341 - Ignore
scalacheck-effect-munitupdates 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->mainby @danicheg in https://github.com/http4s/http4s/pull/6348 - Merge
series/0.23intomainby @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
circeupdates 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-websocketupdates by @danicheg in https://github.com/http4s/http4s/pull/6275 - Merge
series/0.22intoseries/0.23by @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.22intoseries/0.23by @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
RetrySuiteby @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#containsby @danicheg in https://github.com/http4s/http4s/pull/6386 - Use
GenTemporalfor 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
parTraversein 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-testkitmodule 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#renderStringby @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,SlowTestHeadby @danicheg in https://github.com/http4s/http4s/pull/6249
-
http4s-blaze-server
- Clean up
BlazeServerBuilderscaladoc 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
doctestby @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
ResponseLoggerandRequestLoggerby @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
BlazeClientBuilderby @danicheg in https://github.com/http4s/http4s/pull/6109
- Remove deprecated
-
http4s-servlet
- Remove redundant draining of response body in
Http4sServletby @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.23intomainby @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
WSClientand 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
CachingChunkWriterby @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
BlockingServletIoby @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-buildinfoupdates 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
WSConnectionHighLevelby @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.sbtby @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.23intomainby @danicheg in https://github.com/http4s/http4s/pull/5719 - Merge
series/0.23intomainby @danicheg in https://github.com/http4s/http4s/pull/5734 - Merge
series/0.23intomainby @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.23intomainby @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
READMEby @danicheg in https://github.com/http4s/http4s/pull/5828 - Scala-steward exclusions in
mainby @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.23intomainby @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.23intomainby @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.23intomainby @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
WSClientAPI 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
WSClientAPI 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#exitCaseToOutcomeby @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#resourceby @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
ContextShiftin 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.22intoseries/0.23by @danicheg in https://github.com/http4s/http4s/pull/5718 - Merge
series/0.22intoseries/0.23by @danicheg in https://github.com/http4s/http4s/pull/5730 - Merge
series/0.22intoseries/0.23by @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.22intoseries/0.23by @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.22intoseries/0.23by @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/quicklintcommands 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
Resourceusage by @danicheg in https://github.com/http4s/http4s/pull/5884 - Merge
series/0.22intoseries/0.23by @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
portsyntax 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
Trailerheader 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
asCurlmore 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 forHttp4sClientDslby @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.vaultin theseries/0.22by @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.22by @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
Http1ClientStageSuitepurity 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-updatesplugin 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
Http1Connectionmethods 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
lintcommand 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
scalafixInternalRulesto 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.23intomainby @danicheg in https://github.com/http4s/http4s/pull/5664 - Unpin
scalatagsin 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#remoteHostviaip4s.Dnsby @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-effectversion 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
Serverand 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
Serverand 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.23by @danicheg in https://github.com/http4s/http4s/pull/5548 - EPUB download of the docs for the
series/0.23by @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
@nowarnby @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
MonadCancelin theHttp1Writer.writeby @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.22intoseries/0.23by @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.22by @danicheg in https://github.com/http4s/http4s/pull/5652 - Merge branch
series/0.22intoseries/0.23by @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-8directly 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
scaladocfor someHeadersmethods 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.22by @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.22by @danicheg in https://github.com/http4s/http4s/pull/5652 - Add favicon to the
0.22website 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-clientas 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.Rawconstructor 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
Headersby @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.covarytest suite in theMultipartSuiteby @danicheg in https://github.com/http4s/http4s/pull/5576 - Clean up
ServerTestRoutesby @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
assertEqualsinstead ofassertby @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
covarytests in the MessageSuite by @danicheg in https://github.com/http4s/http4s/pull/5596 - Use
Bracketin theHttp1Writer.writeby @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.decodeimplementation 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
decodewith 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
RetryandFollowRedirectmiddlewares. 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.BlazeClientBuilderto 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.BlazeServerBuilderto ease migration from 0.21.x.
- #5344: Reintroduce deprecated alias for
-
Compatibility
-
http4s-ember-core
-
Semantic change
- #5341: Add
EmberException.ReadTimeoutandEmberException.RequestHeadersTimeout(unobservable) to distinguish backend timeouts that close the connection from applicationTimeoutExceptionsthat can be handled to generate a503response 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.BlazeServerBuildertoorg.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.BlazeClientBuildertoorg.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
DestinationAttributetoMonadCancelThrow. Does not break source compatibility.
- #5287: Weaken constraint on
-
Breaking changes
-
http4s-server
-
Breaking changes
- #5327:
WebSocketBuilder2is renamed back toWebSocketBuilder. A deprecated alias is left asWebSocketBuilderto 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.fileAPIs inFileService.
- #5226: Migrate to the
-
Deprecations
-
http4s-blaze-server
-
Bug fixes
- #5152: Pass a
WebSocketBuilder, now namedWebSocketBuilder2, when adding anHttpApp. This, combined with the newimapKmethod, 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.applymethod that uses theExecutionContextfrom theAsync[F]instance. The old constructor that required an explicitExecutionContextis now deprecated. Users who need a customExecutionContextfor 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 newimapKmethod, 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
withUnixSocketConfigmethod onEmberServerBuilderto 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. UsefromIntinstead.
- #5260: Deprecate
- Notable refactoring
-
http4s-laws
-
Deprecation
- #5274: Deprecate
ArbitraryInstances, which was redundant with thearbitraryobject. 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-Headerswhether theAccess-Control-Request-Headersvalues match or not.
- #5323: In
-
Enhancements
-
http4s-blaze-client
-
Semantic change
- #5032: Wrap
EOFwhen borrowing a dead connection in ajava.net.SocketExceptionwith information on which host failed.
- #5032: Wrap
-
Semantic change
-
http4s-ember-client
-
http4s-ember-server
-
Semantic change
- #5286: On
requestHeaderTimeoutandidleTimeout, close the connection without rendering a500 Internal Server Errorresponse. 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 Erroris 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
FetchOptionsto 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
ServerWorkerAppis 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
effectconstructor 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
Orderinginstance for Oauth1ProtocolParameter. - #5176: Add model for the
X-Forwarded-Protoheader. - #5195: Restore the
EntityDecoder[F, ByteVector]. - #5171: Add model for the
Access-Control-Max-Ageheader. - #5202: Use concrete types for overridden
RequestandResponsemethods. This should be transparent. - #5175: Introduce a
HeaderCompanionhelper to reduce boilerplate when defining modeled headers.
- #5168: Add
-
http4s-blaze-client
- #5158: Add a
resourceWithStatemethod to theBlazeClientBuilderfor 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
SecureSessionrequest 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
ClosedChannelExceptionwhen 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\u0000values 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
SecureSessionresponse 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
Originheaders to be a parse failure instead ofOrigin.Null.
- #5130: Fix the parsing of empty
-
Bugfixes
-
Enhancements
- #5321: Add
BodyCachingmiddleware.
- #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
CORSmiddleware, respond to preflightOPTIONSrequests 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 fromFunctortoApplicative. TheFunctorversion 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-HeadersandAccess-Control-Expose-Headerscan be empty. - #5082: Remodel
Originheader.Origin.Nullis changed toOrigin.null. The obsoleteOrigin.HostListis gone in favor ofOrigin.Hostbeing 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
EntityEncoders forFile,Path, andInputStreamimplicit. Since 0.23, they no longer require an explicitBlockerparameter, using Cats-Effect 3's runtime instead.
- #5085: Make
-
Enhancements
-
http4s-blaze-server
-
Bug fixes
- #5118: Don't block the
TickWheelExecutoron cancellation. In-flight responses are canceled when a connection shuts down. If the response cancellation hangs, it blocks theTickWheelSchedulerthread. 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].executionContextas a defaultExecutionContextinBlazeServerBuilder.
- #4782: Use
-
Bug fixes
-
http4s-ember-server
- #5106: Demote noisy
WebSocket connection terminated with exceptionmessage 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.applyandHttpApp.localfromSynctoDefer. 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:
withEntitynow 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-Typeheaders. There is no longer a global registry of headers to infer singleton vs. recurring semantics, but in practice,EntityEncoderheaders are single, so this is more correct and more similar to the pre-0.22 behavior.
- #5073:
- Bugfixes
- Enhancements
-
Documentation
- #5061: Document that the
Allowheader 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-aliveheader.
- #5041: Don't keep alive HTTP/1.0 connections without a
-
Bugfixes
-
http4s-ember-server
-
Deprecations
- #5040:
maxConcurrencyis 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 proper405responses with a correctAllowheader 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
applymethod that takes aCORSConfig, andhttpRoutesanadhttpAppthat 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
allowCredentialssetting whenanyOriginis true, and logs a warning. If you insist on using the deprecated version, old behavior can be restored by settinganyOriginto false andallowOriginstoFunction.const(true). - No longer renders an
Access-Control-Allow-Credentials: falseheaderFor safety, theallowCredentialssetting 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 Forbiddenresponse 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-Headersto theVaryheader 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-MethodandAccess-Control-Max-Ageheaders 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
HttpAppin 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
HttpAppin 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. AretryPolicyconfiguration 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-Keyheader - 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
RequestPreludeandResponsePreludeviews ofRequestandResponse, respectively. These projections omit the body and vault attributes, which permit anOrderandHash(and thereforeEq) instance thatRequestandResponsedo 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.qliterals. 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
mixedMultipartdecoder 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
MatrixVarsupport; -
http4s-client
-
Bugfixes
- #4933: Append the
EntityDecoder'sAcceptheaders 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-boopickleis 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
asas 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
Monadinstead ofDeferconstraints onHttpApp,HttpRoutes,AuthedRoutes,ContextRoutes, and related syntax. This avoids diverging implicits when only aConcurrentconstraint is available in Cats-Effect-3.
- #4884: Use
-
Noteworthy refactoring
- #4773: Refactor the internals of the
Multipartparser.
- #4773: Refactor the internals of the
-
Breaking changes
-
http4s-ember-client
-
Noteworthy refactoring
- #4882: Use
Networkinstead ofNetwork.forAsyncto get the socket group.
- #4882: Use
-
Noteworthy refactoring
-
http4s-ember-server
-
Noteworthy refactoring
- #4882: Use
Networkinstead ofNetwork.forAsyncto 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#toRawnow 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#toRawis renamed totoRaw1. This version still accepts a single value and returns a single raw header. Header.Select#fromnow returns anOption[Ior[NonEmptyList[ParseFailure], NonEmptyList[A]]]. TheIorlets us return both a value and "warnings" when a repeating header contains both valid and invalid entries.- Add
Headers#getWithWarningsto return theIorresult. - #4788: Extend
ServerSentEventwith comments. Thedatafield is now optional.retryis changed from aLongto aFiniteDuration.dataspanning 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-Typeparser.
- #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.fromUrlwith 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
checkEndpointIdentificationflag to Ember. When true, setsHTTPSas 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.asynchttpclienttoorg.http4s.asynchttpclient
- #48544: Rename package from
-
Breaking changes
-
http4s-client
-
Breaking changes
- #4747: Move
ConnectionManager,PoolManager, andWaitQueueTimeoutExceptioninto 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.blazetoorg.http4s.blaze.client
- #4838: Rename package from
-
Breaking changes
-
http4s-blaze-server
-
Breaking changes
- #4847: Rename package from
org.http4s.server.blazetoorg.http4s.blaze.server
- #4847: Rename package from
-
Breaking changes
-
http4s-jetty-client
-
Breaking changes
- #4743: Rename package from
org.http4s.client.jettytoorg.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 "
IdleTimeoutStageisn'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
readRequestcompletes, 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
TickWheelExecutorto 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\nin 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
ThreadPoolbeing 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.fromStringtoUri.Path.unsafeFromString. - #4581: Rename
Query.fromStringtoQuery.unsafeFromString. - #4602: Remove
ipv4andipv6macros that clash with ip4s'. - #4603: Drop deprecated members of
org.http4s.util. - #4604: Fix rendering of UTF-8-encoded
Content-Dispositionparameters. Theparametersmap 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
implicitsdecoding 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
Headertypeclass.-
There is no longer a
Header.Parsed. All headers are stored inHeadersasHeader.Raw. -
Header.Rawis no longer a subtype ofHeader.Headeris now a typeclass. -
New modeled headers can be registered simply by providing an instance of
Header. The global registry,HttpHeaderParser, is gone. -
Headersare created andputvia aHeader.ToRawmagnet pattern. Instances ofToRawincludeRaw, case classes with aHeaderinstance,(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. -
HeaderKeyis gone. To retrieve headers from theHeaders, object, pass the type in[]instead of()(e.g.,headers.get[Location]). -
fromno longer exists on the companion object of modeled headers. Use theget[X]syntax. -
unapplyno 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].namea 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
Headerinstance carries a phantom type,RecurringorSingle. This information replaces the oldHeaderKey.RecurringandHeaderKey.Singletonmarker classes, and is used to determine whether we return the first header or search for multiple headers. -
Given
h1: Headersandh2.Headers,h1.put(h2)andh1 ++ h2now replace all headers inh1whose 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
addoperation is added, which requires a value with aHeaderKey.Recurringinstance. This operation appends to any existing headers. -
Headers#toListis gone, butHeaders#headersreturns 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
DecodeResultmethods
- #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: Applicativeconstraint withMonadinHttpRoutes.ofandContextRoutes.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.SocketAddresswith ip4s. This affects the URI authority, various headers, and message attributes that refer to IP addresses and hostnames. - #4352: Remove deprecated
Header.Recurring.GetTandHeader.get(`Set-Cookie`). - #4364: Remove deprecated
AsyncSyntaxandNonEmpyListSyntax. These were unrelated to HTTP. - #4407: Relax constraint on
EntityEncoder.fileEncoderfromEffecttoSync. This is source compatible. - #4519: Drop unused
Syncconstraints onMultipartParser,Part, andKleisliSyntax. This is source compatible.
- #4242: Replace internal models of IPv4, IPv6,
-
Breaking changes
-
http4s-laws
-
Breaking changes
- #4519: Drop unused
ArbitraryandShrinkconstraints onLawAdapter#booleanPropF. This is source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-server
-
Breaking changes
- #4519: Drop unused
Functorconstraints inHSTS,Jsonp,PushSupport,TranslateUri, andUriTranslationmiddlewares. Drop unusedSyncandContextShiftconstraints instaticcontentpackage. These are source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-server
-
Breaking changes
- #4519: Drop unused
Asyncconstraint inServletContainer. Drop unusedContextShiftinServletContextSyntax. These are source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-async-http-client
-
Breaking changes
- #4519: Drop unused
Syncconstraint onAsyncHttpClientStats. This is source compatible.
- #4519: Drop unused
-
Breaking changes
-
http4s-prometheus
-
Breaking changes
- #4519: Drop unused
Syncconstraint 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
withDottyCompatissues.
- #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-CodingandContent-Lengthheaders after decompressing in theGZipmiddleware.
- #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
ConnectionInfoandSecureSessionrequest 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
maxConnectionsparameter to the blaze infrastructure correctly. ThemaxConnectionsvalue was being passed as theacceptorThreads, leavingmaxConnectionsset 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
oneOfand 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
_countto_count_totalto 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.
BlazeServerBuildernow has amaxConnectionsproperty, 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-LengthorTransfer-Encodingand 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
usereturns.
- #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
idleConnectionTimetoEmberClientBuilder. Discard stale connections from the pool and try to acquire a new one.
- #4301: Add an
-
Enhancements
-
http4s-servlet
-
Bugfixes
- #4309: Call
GenericServlet.initwhen intializing anHttp4sServlet. AvoidsNullPointerExceptionsfrom theServletConfig.
- #4309: Call
-
Bugfixes
-
Documentation * #4261: Better
@seelinks 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
EntityDecoderconstraints relaxed fromSynctoConcurrent. - File-related operations require a
Filesconstraint. Blockerarguments are no longer required.ContextShiftconstraints are no longer required.- The deprecated, non-HTTP
AsyncSyntaxis removed.
- Many
-
#3886:
- Relax
SynctoDeferinHttpAppconstructor. - Relax
SynctoConcurrentinLoggerconstructors. - Remove
Syncconstraint fromPartconstructors. - Relax
SynctoFunctorin various Kleisli syntax.
- Relax
-
#3784, #3865: Inexhaustively,
-
Breaking changes
-
http4s-laws
-
Breaking changes
- #3807: Several arbitraries and cogens now require a
Dispatcherand aTestContext.
- #3807: Several arbitraries and cogens now require a
-
Breaking changes
-
http4s-client
-
#3857: Inexhaustively,
Monad: Clockconstraints changed toTemporalClient.translaterequires anAsyncandMonadCancel- Removal of
BlockerfromJavaNetClientBuilder PoolManagerchanged fromConcurrenttoAsync- Many middlewares changed from
SynctoAsync
- #4081: Change
Metricsconstraints fromTemporaltoClock: Concurrent
-
#3857: Inexhaustively,
-
http4s-server
-
http4s-async-http-client
-
Breaking changes
- #4149:
ConcurrentEffectconstraint relaxed toAsync.applymethod changed tofromClientand returns aResourceto account for theDispatcher.
- #4149:
-
Breaking changes
-
http4s-blaze-core
-
Breaking changes
- #3894: Most
Effectconstraints relaxed toAsync.
- #3894: Most
-
Breaking changes
-
http4s-blaze-server
-
http4s-blaze-client
-
Breaking changes
- #4097:
ConcurrentEffectconstraint relaxed toAsync
- #4097:
-
Breaking changes
-
http4s-ember-client
-
Breaking changes
- #4256:
Concurrent: Timer: ContextShiftconstraint turned toAsync
- #4256:
-
Breaking changes
-
http4s-ember-server
-
Breaking changes
- #4256:
Concurrent: Timer: ContextShiftconstraint turned toAsync
- #4256:
-
Breaking changes
-
http4s-okhttp-client
-
http4s-servlet
-
Breaking changes
- #4175: Servlets naow take a
Dispatcher. The blocker is removed fromBlockingIo.ConcurrentEffectconstraint relaxed toAsync.
- #4175: Servlets naow take a
-
Breaking changes
-
http4s-jetty-client
-
Breaking changes
- #4165:
ConcurrentEffectconstraint relaxed toAsync
- #4165:
-
Breaking changes
-
http4s-jetty
-
Breaking changes
- #4191:
ConcurrentEffectconstraint relaxed toAsync
- #4191:
-
Breaking changes
-
http4s-tomcat
-
Breaking changes
- #4216:
ConcurrentEffectconstraint relaxed toAsync
- #4216:
-
Breaking changes
-
http4s-jawn
-
Breaking changes
- #3871:
Syncconstraints relaxed toConcurrent
- #3871:
-
Breaking changes
-
http4s-argonaut
-
Breaking changes
- #3961:
Syncconstraints relaxed toConcurrent
- #3961:
-
Breaking changes
-
http4s-circe
-
Breaking changes
- #3965:
Syncconstraints relaxed to toConcurrent.
- #3965:
-
Breaking changes
-
http4s-json4s
-
Breaking changes
- #3885:
Syncconstraints relaxed to toConcurrent.
- #3885:
-
Breaking changes
-
http4s-play-json
-
Breaking changes
- #3962:
Syncconstraints relaxed to toConcurrent.
- #3962:
-
Breaking changes
-
http4s-scala-xml
-
Breaking changes
- #4054:
Syncconstraints relaxed to toConcurrent.
- #4054:
-
Breaking changes
-
http4s-boopickle
-
Breaking changes
- #3871:
Syncconstraints 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.nowarnannotation 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
Weaknesssum type inEntityTagmodel - #4148: Lift
ETag.EntityTagout of header and into theorg.http4spackage - #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.literalsto 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: 0header 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
ByteBufferduplication
- #4124: Avoid intermediate
-
Enhancements
v1.0.0-M10 (2020-12-31)
-
http4s-client
-
Enhancements
- #4051: Add
customizedfunction toLoggermiddleware that takes a function to produce the log string. Add acoloredimplementation 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
HttpConfigurationparameter 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
SslContextFactoryin the default configuration. Before this, secure requests would throw aNullPointerExceptionunless a custom JettyHttpClientwas 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
MimeDbtrait 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
BracketRequestResponsemiddleware, to reflect lifecycles between acquiring theF[Response[F]]and completion of the response bodyStream[F, Byte]. Introduces a newConcurrentRequestsmiddleware, and refactorsMaxActiveRequestson top of it.
- #3977: Add a
-
Enhancements
-
http4s-okhttp-client
-
Bugfixes
- #4006: Set
Content-Lengthheader on requests where available instead of always chunking
- #4006: Set
-
Bugfixes
-
http4s-metrics
-
Bugfixes
- #3977: Changes from
BracketRequestResponsemiddleware 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
NoClassDefFoundErrorregression. 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
.fromStringwill 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.Pathwithcore.Uri.Path. The newPathin 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
Rightof the commonHttpVersions 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
MatrixVarextractor for Matrix URIs
- #3844: Add
-
http4s-async-http-client
- #3859: Add
AsyncHttpClient.applymethod 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 functionalAsyncHttpClientStatswrapper 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
Http4sDslfor 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
Uris 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
LocalDateandZonedDate - #3659: Make requests to mock client cancelable
- #3701: In
matchHeader, only parse headers with matching names. This improves parsing laziness. - #3641: Add
FormDataDecoderto decodeUrlFormto 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-Forwardsheader. - #3567: Add a model of the
Content-Languageheader. - #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
BasicCredentialsthat allows encoding with an arbitrary charset, defaulting to UTF-8. - #3583: Allow configuration of
CirceInstancesto permit duplicate keys - #3587: Model
Access-Control-Allow-Headersheader
- #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
IllegalStateExceptionwhen 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
GZipclient middleware - #3598: Fix connection keep-alives in ember-client
- #3594: Handle
FileNotFoundExceptioninStaticFile.fromURLby returning a 404 response - #3625: Close
URLConnectioninStaticFile.fromURLwhen the resource is not expired - #3624: Use client with the http4s defaults instead of a the Jetty defaults in
JettyClientBuilder#resourceandJettyClientBuilder#stream
- #3548: Fixes
-
Enhancements
- #3552: Add
liftKleislioperation toClient.This is useful for integration with natchez. - #3566: Expose
RetryPolicy.isErrorOrRetriablestatus - #3558: Add
httpRoutesandhttpAppconvenience constructors toHSTSmiddleware - #3559: Add
httpRoutesandhttpAppconvenience constructors toHttpsRedirectmiddleware - #3623: Add
configuremethod 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, aDateheader if not present, and a configurableUser-Agentheader 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-dslis 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
Serverheader - #3206: Model the
Content-Locationheader - #3264: Remove unused
EntityEncoderargument inPlayInstances. - #3257: Make
SameSitecookie 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
getAsandprepAsmethods fromClient - #3371: In http4s-metrics, add
rootCausefield toTerminationType.AbnormalandTerminationType.Error. AddTerminationType.Canceled - #3335: Remove unused
Bracketinstance inClient#translate - #3390: Replace
org.http4s.util.CaseInsensitiveStringwithorg.typelevel.ci.CIString - #3221: Implement a
Uri.Pathtype to replace the type alias forString - #3450: Model
Accept-Patchheader as aNonEmptyList[MediaType] - #3463: Model
Access-Control-Allow-Credentialsheader as a nullary case class. - #3325: Add a WebSocket builder with a
Pipe[F, WebSocketFrame, WebSocketFrame]to unify sending and receiving. - #3373: Parameterize
ClassLoaderforResourceServiceandWebjarService. Changes theCacheStrategy'suriPathargument toUri.Path. - #3460: Remove deprecated
Serviceand related aliases - #3529: Refresh the
MediaTypes constants from the IANA registry. Not source breaking, but shifts constants in a binary breaking way.
-
Enhancements
- #3320: Reimplement
Media#aswithF.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
GZipclient middleware on responses toHEADrequests - #3488: Don't call
toStringon input ofResponseLoggeron 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
Uriwith 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.ENGLISHwhen 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#bodyAsTextandEntityDecoder.decodeString, which may loop infinitely for charsets other than UTF-8. The latter two methods are replaced byMedia#bodyTextandEntityDecoder.decodeText. - #3372: Deprecate
Client.fetch(request)(f)in favor ofClient#run(request).use(f). This is to highlight the dangers of usingF.pureor 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#usethan convenience methods likefetchthat areusein disguise. This change can be fixed with our new http4s-scalafix.
- #3441: Deprecate
-
Enhancements
- #3286: Add
httpRoutesconstructor forAutoslash middleware - #3382: Use more efficient String compiler in
EntityDecoder[F, String] - #3439: Add
Hash[Method]instance. See also #3490. - #3438: Add
PRImethod - #3474: Add
httpAppandhttpRoutesconstructors forHeaderEchomiddleware - #3473: Add
httpAppandhttpRoutesconstructors forErrorHandlingmiddleware - #3472: Add
httpAppandhttpRoutesconstructors forEntityLimitermiddleware - #3487: Add new
RequestIDmiddleware. - #3515: Add
httpAppandhttpRoutesconstructors forErrorActionmiddleware - #3513: Add
httpRoutesconstructor forDefaultHead. Note thathttpAppis not relevant. - #3497: Add
logBodyTextfunctions toLoggermiddleware to customize the logging of the bodies
- #3286: Add
-
Documentation
-
Internals
- #3478: Refactor
logMessagein 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.executionpackage.
- #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 anExecutionContextexplicitly. Formerly,ExecutionContext.globalwas 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
EOFonbodyEncoder.writeto close connection - #3196: Add convenience functions to
Cachingmiddleware
-
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
SameSitecookie attribute and values case insensitively.
- #3192: Parse
-
Enhancements
- #3185: In blaze-server, recover
EOFto 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#withPathis called without a slash and an authority is defined, add a slash to separate them.
- #3199: When
-
Enhancements
- #3199:
- New
addSegmentalias forUri#/ - New
Uri#addPathfunction, 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.strictandContextRoutes.strictfor routes that require only anApplicative, at the cost of evaluatingcombineKed 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
EffecttoSyncinresourceService,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
Applicativeconstraints from http4s-circe - #3124: Relax constraints from
EffecttoSyncinFileService. - #3136: In
WebSocketBuilder, addfilterPingPongsparameter, default true. When false,sendandreceivewill 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
Applicativeconstraints onEntityEncoderinstances in several modules.
- #3126: Remove unnecessary
-
Semantic
- #3139: Changes
Routerto 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#withSSLContextin favor of new methods in favor of newwithSslContext*methods. - #3132: Deprecate
BlazeServerBuilder#withSSLContextandBlazeServerBuilder#withSSLin 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 ofSSLClientAuthModeto 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#toHttpResponseto return aResponse[F]instead of anF[Response[F]], and relax constraints accordingly. Drops theinHttpResponsemethod. - #3107: Add
covary[F[_]]method toMediatypes. Should not break your source unless you have your ownMediasubclass, which you shouldn't.
- #3110: Change
-
Binary only
- #3098: Update
MimeDBfrom 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
DefaultHeadmiddleware. This optimization saves us from draining a potentially large response body that, becauseHEADis a safe method, should not have side effects. - #3095: Add
Request#asCurlmethod 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
HttpAppinstead ofHttpRoutesinHttp4sServlet. The servlet builders themselves retain compatibility. - #3078: Wrap Java exceptions in
ConnectionFailurewhen 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
classloaderargument toStaticFile.fromResource - #3007: Add
classloaderargument toTomcatBuilder - #3008: Consistently use
collection.Seqacross Scala versions in DSL - #3031: Relax
Router.applyconstraint fromSynctoMonad - #2821: Add
Mediasupertype ofMessageandPart, so multipart parts can useEntityDecoders - #3021: Relax
Throttle.applyconstraint fromSynctoMonad. Add amapKoperation toTokenBucket. - #3056: Add
streamJsonArrayEncoder*operations to circe support, to encode aStreamofAto a JSON array, given an encoder forA. - #3053: Remove unneeded
Functor[G]constraint onHeaderEcho.apply. - #3054: Add
SameSitecookie support - #2518: Add
statusmethods toClientthat take aStringorUri - #3069: Add
ContextMiddleware.constfunction - #3070: Add
NonEmptyTraverseinstance toContextRequest - #3060: Stop mixing context bounds and implicits in
CirceInstances. - #3024: Add
withQueryParamsandwithMultiValueQueryParamstoQueryOps - #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
Dateserver middleware - #3051: Add
HttpDate.currentconvenience constructor, based onClock. - #3052: Add
Cachingserver middleware. - #3065: Add
ErrorActionserver middleware - #3082: Wrap
UnresolvedAddressExceptionin blaze in anUnresolvedAddressExceptionsubtype 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
BlockingHttp4sServletwith shifted IO. - #2953: Fix connection info in servlet backend. The local and remote addresses were reversed.
- #2942: Fix
Request.addcookieto consolidate allCookieheaders into one. - #2957: Shift the write to Blocker in
BlockingServletIo
- #2946: Restore binary compatibility of private
-
Enhancements
- #2948: Add all missing
ContentCodings from the IANA registry.
- #2948: Add all missing
-
Dependency updates
- blaze-0.14.9
v0.20.12 (2019-10-31)
-
Enhancements
- #2930: Move private
UrlCodingUtilsto theUricompanion 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-Typeto prevent defaultapplication/octet-streamfor 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 ofHttp4sDsl2whereFis 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
Http1Stageprivate toorg.http4s, which we highly doubt anybody extended directly anyway.
- #2572: Make
-
Bug fixes
- #2727: Fix
UserInfowith+sign
- #2727: Fix
-
Enhancements
- #2623: Propagate cookies in
FollowRedirectclient 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
connectTimeoutin 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
Retryclient middleware. The constraint is upgraded toConcurrent. - #2693: Fix deadlock in client by releasing current connection before retrying in
FollowRedirectclient middleware. The constraint is upgraded toConcurrent. - #2671: Upgrade
Uri.UserInfoto 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
Syncconstraint 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
withBlocktowithBlockerinOkHttpBuilder - #2661: Move string contexts macros for literals from
org.http4stoorg.http4s.implicits - #2679: Replace
Uri.IPv4withUri.Ipv4Address, including anipv4interpolator and interop withInet4Address. - #2694: Drop Scala 2.11 support
- #2700: Replace
Uri.IPv6withUri.Ipv6Address, including anipv6interpolator 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
GZipmiddleware for client
- #2673: Add
-
Documentation
- #2668: Clarifications in
Uri.Schemescaladoc
- #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
MetricsfromEffecttoSync - #2551: Refactor
AuthMiddlewareto not requireChoiceconstraint - #2614: Relax various
ResponseGeneratorconstraints fromMonadtoApplicativein http4s-dsl. - #2613: Rename implicit
http4sKleisliResponseSyntaxand its parameter name. - #2624: In
BlazeServerBuilder, don't depend on laziness ofSSLContext.Nonenow disables the secure context. The default argument tries to loadSome(SSLContext.getDefault()), but falls back toNonein 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
Blockerin place ofExecutionContextwhere 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-generatorfrom 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
mapKtoAuthedRequest. DeprecateAuthedServicein 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
BlazeClientfor 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
DecodeFailurewithMonadErrorinMessage#asrather than relying on effect to catch infold. Requires a newMonadErrorconstraint.
- #2506: Raise
-
Bugfixes
- #2502: Stop relying on undefined behavior of
foldto catch errors in client.
- #2502: Stop relying on undefined behavior of
-
Enhancements
-
Documentation
-
Internals
- #2521: Add utility conversion for
java.util.concurrent.CompletableFuturetoF[_]: 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:
Headersis no longer anIterable[Header] - #2393: Several changes related to 2.13 support:
- Replace
SeqwithListon: `Accept-Ranges.`.rangeUnitsCacheDirective.`no-cache`.fieldNamesCacheDirective.private.fieldNamesLanguageTag.subTagsMediaType.fileExtensions`User-Agent`.other- Replace
Seqwithimmutable.Seqon: Query#multiParams.valuesQuery#params.valuesUri#multipParams.valuesQueryis no longer aSeq[Query.KeyValue]RequestCookieJaris 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.builderinitialization, which referenced unintialized eager vals.
- #2450: Fix
-
Enhancements
- #2435: Log information about canceled requests in
ResponseLogger - #2429: Add
httpRoutesandhttpAppconvenience constructors toChunkAggregator - #2446: Introduce
Http4sDsl2[F[_], G[_]]trait to supporthttp4s-directiveslibrary.Http4sDslextends it asHttp4sDsl[F, F]. This change should be invisible to http4s-dsl users. - #2444: New modeled headers for
If-MatchandIf-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
mountServicereference towithHttpApp - #2455: Remove dangling reference to
Gparameter inHttpAppscaladoc - #2460: Add
circuit-http4sto 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
logoperation on logging middlewares return anF[Unit]to support pure logging. - #2370:
Prometheus.applyreturns inF[_]to represent its effect on the collector registry. - #2398: Add media ranges to
jsonDecoderAdaptiveto support overriding the media type in anEntityDecoder - #2396: Parameterize
Loggermiddlewares to work with anyHttp[G, F]instead of requiringHttpApp[F]. - #2318: Replace
AttributeMapwithio.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
Retrymiddleware fromEffecttoSync
- #2369: Make
-
Bugfixes
- #2421: Fix buggy use of
toStringin async-http-client when rendering URIs.
- #2421: Fix buggy use of
-
Enhancements
- #2364: Scalafix
allocatetoallocated - #2366: Add
chunkBufferMaxSizeparameter toBlazeClientBuilderandBlazeServerBuilder. Change default to 10kB. - #2316: Support custom error messages in circe, argonaut, and jawn.
- #2403: Add
MemoryAllocationExportstoPrometheusExportService - #2355, #2407: Add new
HttpMethodOverridemiddleware - #2391: Add
Authorizationto*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
RequestKeyto 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
TimeoutExceptiontoWaitQueueTimeoutExceptionin client pool manager. Do not retry this by default inRetrymiddleware. - #2342: Add
expectOptionandexpectOptionOrwhich behave likeexpectandexpectOrrespectively, but returnNoneon404and410responses andSome[A]on other successful responses. Other status codes still raise an error. - #2328: Add a
SecureSessionattribute 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
IdleTimeoutStages in the blaze client. They were not always removed properly, leading to multiple timeout stages remaining in a connection's blaze pipeline. - #2281: Fix
ClassCastExceptionondecodeof 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
BlazeServerin favor ofBlazeServerBuilder. The former's internals are now expressed in terms of the latter. - #2286: Improvements to scalafix
- Fix
withEntitywithEntitybug in migration - Migration to
BlazeServerBuilder - Fix
MessageSyntax#withBody - Import
ResponseCookieinstead 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
CSRFmiddleware. 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
SeqwithChaininUrlForm. - #2197: Require
Signalrather thanSignallingRefinserveWhile
- #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.allocateconstructors to all server and client builders. - #2242: Support setting socket channel options on blaze-server.
- #2270: Refresh
MimeDBfrom 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
.allocateon a client builder fails
- #2239: Fix hang when
-
Breaking changes
- #2207: Remove
PathNormalizer. The functionality is now onUri.removeDotSegments. - #2210: Streamline instances:
Http4s,Http4sInstances, andHttp4sFunctionsare deprecated- Move instances
F[A]for cats type classesFinto companions ofA Http4sDslno longer mixes inUriFunctionsEntityEncoderInstancesandEntityDecoderInstancesare removed. The instances moved to the companion objects.- #2243: Cleanup
ServerBuilderdefaults and traits - Make
ServerBuilderprivate. The public server builders (e.g.,BlazeServerBuilder) remain, but they no longer implement a public interface. - Remove
IdleTimeoutSupport,AsyncTimeout,SSLKeyStoreSupport,SSLContextSupport, andWebSocketSupporttraits. 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
Messagetrait - Remove deprecated
EffectMessageSyntax,EffectRequestSyntax,EffectResponseSyntaxtraits and associated objects - Remove
MessageOps,RequestOps, andResponseOpsand put the removed methods, sans unneeded implicit parameters, directly in the classes - Deprecate
replaceAllHeaders, pointing towithHeadersinstead. - Deprecate
withType, which takes aMediaTypeand just wraps it in aContent-Type - Add
withoutAttributeandwithoutTrailerHeadersto 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
ResponseTimingmiddleware, which adds a header to the Response as opposed to fullMetricsOps. - #2222: Add
shutdownTimeoutproperty toJettyBuilder. Shutdown of the server waits for existing connections to complete for up to this duration before a hard shutdown with aTimeoutException. - #2227: Add
withMaxHeaderLengthsetter toBlazeClientBuilder - #2230:
DefaultServerErrorHandleronly handlesNonFatalThrowables, instead of allThrowables that aren'tVirtualMachineErrors - #2237: Support parsing cookies with trailing semi-colons. This is invalid per spec, but seen often in the wild.
- #1687: Add a modeled
Linkheader. - #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
TickWheelExecutorresource 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
responseHeaderTimeoutproperty toBlazeServerBuilder. Responses that timeout are completed withResponse.timeout, which defaults to 503 Service Unavailable.BlazeServerBuildernow requires aTimer[F]. - #2177: Deprecate
org.http4s.syntax.async, which was not directly relevant to HTTP. - #2131: Refactor server metrics
http4s-server-metricsmodule merged intohttp4s-dropwizard-metricshttp4s-prometheus-server-metricsmodule merged intohttp4s-prometheus-metrics- The
org.http4s.server.middleware.metrics.Metricsmiddleware now takes aMetricsOps, implemented by Dropwizard, Prometheus, or your custom interpreter. - #2180: Change default response on
Timeoutmiddlware to503 Service Unavailable
- #2159: Add a
-
Enhancements
- #2159: Set default client request timeout to 1 minute
- #2163: Add
mapKtoRequestandResponse - #2168: Add
allocateto client builders - #2174: Refactor the blaze-client timeout architecture.
- A
TickWheelExecutoris 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
channelOptionsto 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
redactHeadersWhenin clientRequestLoggermiddleware
- #2181: Honor
-
Enhancements
- #2178: Redact sensitive headers by default in
Retrymiddleware. AddretryWithRedactedHeadersfunction 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
ExecutionContextargument to jetty-client in favor of theContextShift[F]. - #2070: Give
AbitraryInstancesunique names withhttp4sTestingprefix. - #2136: Add
streammethod toClientinterface. Deprecatestreaming, which is just aflatMapofStream. - #2143: WebSocket model improvements:
- The
org.http4s.websocketpackage in unified in http4s-core - Drop http4s-websocket module dependency
- All frames use an immutable
scodec.bits.ByteVectorinstead of anArray[Byte]. - Frames moved from
WebSocketBitsto theWebSocketFramecompanion - Rename all instances of
Websocket*toWebSocket*for consistency - #2094: Metrics unification
- Add a
MetricsOpsalgebra to http4s-core to be implemented by any metrics backend. - Create new
Metricsmiddleware 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
OkHttpcode redundant withOkHttpBuilder. - #2092: Remove
ExecutionContextandTimerimplicits from async-http-client. Threads are managed by theContextShift. - #2115: Refactoring of
ServerandServerBuilder: - Removed
Server#shutdown,Server#shutdownNow,Server#onShutdown, andServer#awaitShutdown.Serverlifecycles are managed as afs2.Streamor acats.effect.Resource. ServerBuilder#startreplaced byServer#resource, which shuts down theServerafter use.- Added a
ServerBuilder#streamto construct aStreamfrom aResource. - #2118: Finalize various case classes.
- #2102: Refactoring of
Clientand some builders: Clientis no longer a case class. Construct a newClientbackend or middleware withClient.apply(run: Request[F] => Resource[F, Response[F]])for anyFwith aBracket[Throwable, F].- Removed
DisposableResponse[F]in favor ofResource[F, Response[F]]. - Removed
Client#openin favor ofClient#run. - Removed
Client#shutdownin favor ofcats.effect.Resourceorfs2.Stream. - Removed
AsyncHttpClient.apply. It was not referentially transparent, and no longer possible. UseAsyncHttpClient.resourceinstead. - Removed deprecated
blaze.Http1Client.apply
- #2081: Remove
-
Enhancements
- #2042: New
Throttleserver middleware - #2036: New
http4s-jetty-clientbackend, with HTTP/2 support - #2080: Make
Http4sMatcherspolymorphic on their effect type - #2082: Structured parser for the
Originheader - #2061: Send
Disconnectevent on EOF in blaze-server for faster cleanup of mid stages - #2093: Track redirects in the
FollowRedirectclient 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.JettyBuilderandTomcatBuildernow require aConcurrentEffectinstance. - #1934: Refactoring of
ConnectionManager. Now requires aConcurrentinstance, which ripples to aConcurrentEffectin blaze-client builders - #2023: Don't overwrite existing
Varyheaders fromCORS - #2030: Restrict
MethodNotAllowedresponse generator in DSL - #2032: Eliminate mutable
Statusregistry. IANA-registeredStatuses are still cached, butregisteris no longer public. - #2026:
CSRFenhancements - CSRF tokens represented with a newtype
- CSRF token signatures are encoded hexadecimal strings, making them URI-safe.
- Added a
headerCheck: Request[F] => Booleanparameter - Added an
onFailure: Response[F]parameter, which defaults to a403. This was formerly a hardcoded401. - #1993: Massive changes from cats-effect and fs2 upgrades
Timeradded toAsyncHttpClient- Dropwizard
Metricsmiddleware now takes aClockrather than aTimer - Client builders renamed and refactored for consistency and to support binary compatible evolution after 1.0:
BlazeClientBuilderreplacesHttp1Client,BlazeClient, andBlazeClientConfig- Removed deprecated
SimpleHttp1Client JavaNetClientrenamed toJavaNetClientBuilder, which now has aresourceandstreamOkHttprenamed toOkHttpBuilder. The client now created from anOkHttpClientinstance instead of anF[OkHttpClient.Builder]. A default client can be created as aResourcethroughOkHttp.default.- Fallout from removal of
fs2.Segment EntityDecoder.collectBinarynow decodes aChunkEntityDecoder.binaryChunkdeprecatedSegmentWriteris removed- Changes to:
ChunkWriters in blaze rewritten
Loggermiddlewares
MemoryCache- Blocking I/O now requires a blocking
ExecutionContextand aContextShift: EntityDecoders:
EntityDecoder.binFile
EntityDecoder.textFile
MultipartDecoder.mixedMultipartEntityEncoders (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.ConfigOkHttpBuilder- Servlets:
BlockingHttp4sServlet
BlockingServletIo
- #1802: Race servlet requests against the
-
Servlet backend changes:
Http4sServletno longer shift onto anExecutionContextby default. Accordingly,ServerBuilderno longer has awithExecutionContext.- Jetty and Tomcat builders use their native executor types instead of shifting onto an
ExecutionContext. Accordingly,ServletBuilder#withExecutionContextis removed. AsyncHttp4sServletandServletContextSyntaxnow 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 anExeuctionContextparameter anymore.
- Removed deprecated
StreamAppaliases.fs2.StreamAppis removed and replaced bycats.effect.IOApp,monix.eval.TaskApp, or similar.
- Removed deprecated
ServerApp.
EntityLimitermiddleware now requires anApplicativeError
- #2054: blaze-server builder changes
BlazeBuilderdeprecated forBlazeServerBuilder
-
BlazeServerBuidlerhas a singlewithHttpApp(HttpApp)in place of zero-to-many callsmountService(HttpRoutes).- This change makes it possible to mount an
HttpAppwrapped in aLoggermiddleware, which only supportsHttpApp - Call
.orNotFound, fromorg.http4s.implicits._, to cap anHttpRoutesasHttpApp - Use
Routerto combine multipleHttpRoutesinto a singleHttpRoutesby 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
UUIDVarpath extractor - #1963: Throw
ConnectExceptionrather thanIOExceptionon blaze-client connection failures - #1961: New
http4s-prometheus-client-metricsmodule - #1974: New
http4s-client-metricsmodule for Dropwizard Metrics - #1973: Add
onClosehandler toWebSocketBuilder - #2024: Add
HeaderEchoserver 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
Closeframe in response toCloseframe -
Documentation updates
- #1935: Make
http4sVersionlowercase - #1943: Make the imports in the Client documentation silent
- #1944: Upgrade to cryptobits-1.2
- #1971: Minor corrections to DSL tut
- #1972: Add
UUIDVarto 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
Retrymiddleware 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
AutoSlashwhen nested in aRouter#1948 - Respect
redactHeadersWheninLoggermiddleware #1952 - Capture
BufferPoolsExportsin prometheus server middleware #1977 - Make
Refererheader extractable #1984 - Log server startup banner in a single call to prevent interspersion #1985
- Add support module for play-json #1946
- Introduce
TranslateUrimiddleware, 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
AutoSlashMiddleware in Router #1937 - Add
StaticHeadersmiddleware 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
CookieintoRequestCookieandResponseCookie#1676 - Add
Eq[Uri]instance #1688 - Deprecate
Message#withBodyin favor ofMessage#withEntity. The latter returns aMessage[F]rather than anF[Message[F]]. #1694 - Myriad new
ArbitraryandCogeninstances #1677 - Add non-deprecated
LocationResponseGeneratorfunctions #1715 - Relax constraint on
RouterfromSynctoMonad#1723 - Drop scodec-bits dependency #1732
- Add
Show[ETag]instance #1749 - Replace
fs2.Schedulerwithcats.effect.TimerinRetry#1754 - Remove
Syncconstraint fromEntityEncoder[Multipart]#1762 - Generate
MediaTypes from MimeDB #1770
- Continue phasing out
RenderablewithMediaRangeandMediaType.
- 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
HttpServiceis replaced byHttpRoutes, which is anHttp[OptionT[F, ?], ?].HttpRoutes.ofreplacesHttpServiceconstructor fromPartialFunctions.
HttpAppis anHttp[F, F], representing a total HTTP function.- Add
BlockingHttp4sServletfor use in Google App Engine and Servlet 2.5 containers. RenameHttp4sServlettoAsyncHttp4sServlet. #1830 - Generalize
Loggermiddleware to log withString => Unitinstead oflogger.info(_)#1839 - Generalize
AutoSlashmiddleware to work onKleisli[F, Request[G], B]givenMonoidK[F]andFunctor[G]. #1885 - Generalize
CORSmiddleware to work onHttp[F, G]givenApplicative[F]andFunctor[G]. #1889 - Generalize
ChunkAggegatormiddleware to work onKleisli[F, A, Response[G]]givenG ~> F,FlatMap[F], andSync[G]. #1886 - Generalize
EntityLimitermiddleware to work onKleisli[F, Request[G], B]. #1892 - Generalize
HSTSmiddleware to work onKleisli[F, A, Response[G]]givenFunctor[F]andFunctor[G]. #1893 - Generalize
UrlFormLiftermiddleware to work onKleisli[F, Request[G], Response[G]]givenG ~> F,Sync[F]andSync[G]. #1894 - Generalize
Timeoutmiddleware to work onKleisli[F, A, Response[G]]givenConcurrent[F]andTimer[F]. #1899 - Generalize
VirtualHostmiddleware to work onKleisli[F, Request[G], Response[G]]givenApplicative[F]. #1902 - Generalize
URITranslatemiddleware to work onKleisli[F, Request[G], B]givenFunctor[G]. #1895 - Generalize
CSRFmiddleware to work onKleisli[F, Request[G], Response[G]]givenSync[F]andApplicative[G]. #1909 - Generalize
ResponseLoggermiddleware to work onKleisli[F, A, Response[F]]givenEffect[F]. #1916 - Make
Logger,RequestLogger, andResponseLoggerwork onHttpApp[F]so aResponseis guaranteed unless the service raises an error #1916 - Rename
RequestLogger.apply0andResponseLogger.apply0toRequestLogger.applyandResponseLogger.apply. #1837 - Move
org.http4s.server.ServerSoftwaretoorg.http4s.ServerSoftware#1884 - Fix
UncompressibleandNotBinaryflags inMimeDBgenerator. #1900 - Generalize
DefaultHeadmiddleware to work onHttp[F, G]givenFunctor[F]andMonoidK[F]#1903 - Generalize
GZipmiddleware to work onHttp[F, G]givenFunctor[F]andFunctor[G]#1903 jawnDecodertakes aRawFacadeinstead of aFacade- Change
BasicCredentialsextractor to return(String, String)#1924 Effectconstraint relaxed toSync:
Logger.logMessageEffectconstraint relaxed toAsync:
JavaNetClientEffectconstraint changed toConcurrent:
Logger(client and server)
RequestLogger(client and server)
ResponseLogger(client and server)
ServerBuilder#serve(moved to abstract member ofServerBuilder)Effectconstraint strengthened toConcurrentEffect:
AsyncHttpClient
BlazeBuilder
JettyBuilder
TomcatBuilder- Implicit
ExecutionContextremoved from:
RequestLogger(client and server)
ResponseLogger(client and server)
ServerBuilder#serve
ArbitraryInstances.arbitraryEntityDecoder
ArbitraryInstances.cogenEntity
ArbitraryInstances.cogenEntityBody
ArbitraryInstances.cogenMessage
JavaNetClient- Implicit
Timeradded to:
AsyncHttpClient
JavaNetClient.createHttp4sWsStageremoved 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
CirceEntityCodecto provide an implicitEntityEncoderorEntityDecoderfrom anEncoderorDecoder, 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
MediaRangegenerator #1907 - Fixed bug where
PoolManagerwould 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
Noneor 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
Hostheader to requests toClient.fromHttpServiceif the request URI is absolute #1874 - Log
"service returned None"or"service raised error"in serviceResponseLoggerwhen 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.applyandResponseLogger.applyare each replaced byapply0to maintain binary compatibility. #1837 - New
http4s-boopicklemodule 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
Loggingmiddleware 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
renderResponsein blaze-server andHttp4sServlet#1783 - Fix
Uri.Schemeparser for schemes beginning withhttpother 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]]. TheEntityEncoderis strict in its argument, which causes any side effect of theFutureto execute immediately. Wrap yourfutureinIO.fromFuture(IO(future))instead. #1759 - Dependency upgrades:
- circe-0.9.3
v0.18.4 (2018-03-23)
- Deprecate old
Timeoutmiddleware methods in favor of new ones that useFiniteDurationand cancel timed out effects #1725 - Add
expectOrmethods 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
identityinuriLiteralmacro #1697 - Make
Retryuse 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
filenamemethod 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
EffecttoSyncorAsync. #1587 - Operate on
Segmentinstead ofChunk#1588
EntityDecoder.collectBinaryandEntityDecoder.binarynow returnSegment[Byte, Unit]instead ofChunk[Byte].
- Add
EntityDecoder.binaryChunk.
- Add
EntityEncoder.segmentEncoder.
http4sMonoidForChunkreplaced byhttp4sMonoidForSegment.- Add new generators for core RFC 2616 types. #1593
- Undo obsolete copying of bytes in
StaticFile.fromURL. #1202 - Optimize conversion of
Chunk.BytesandByteVectorChunkto `ByteBuffer. #1602 - Rename
readtosendandwritetoreceivein websocket model. #1603 - Remove
MediaRangemutableRegistryand addHttpCodec[MediaRange]instance #1597 - Remove
Monoid[Segment[A, Unit]]instance, which is now provided by fs2. #1609 - Introduce
WebSocketBuilderto buildWebSocketresponses. 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 byHttpServicerather than raised inF. #1592 - Make
abnormal-terminationsandservice-errorsMetrics names plural. #1611 - Refactor blaze client creation. #1523
Http1Client.applyreturnsF[Client[F]]
Http1Client.streamreturnsStream[F, Client[F]], bracketed to shut down the client.
PooledHttp1Clientconstructor is deprecated, replaced by the above.
SimpleHttp1Clientis deprecated with no direct equivalent. UseHttp1Client.- Improve client timeout and wait queue handling
requestTimeoutandresponseHeadersTimeoutbegin from the submission of the request. This includes time spent in the wait queue of the pool. #1570
- When a connection is
invalidated, 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-errors. - 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.withContentTypenow takes aContent-Typeinstead of anOption[`Content-Type`].withContentTypeOptiontakes anOption, andwithoutContentTypeclears it.QValuehas anHttpCodecinstanceAuthMiddlewarenever falls through. See #1530 for more.ContentCodingis no longer aRegistry, but has anHttpCodecinstance.- Render a banner on server startup. Customize by calling
withBanner(List[String])orwithoutBanneron theServerBuilder. - Parameterize
isZippableas a predicate of theResponseinGZipmiddleware. - Add constant for
application/vnd.api+jsonMediaType. - Limit memory consumption in
GZipmiddleware - Add
handleError,handleErrorWith,bimap,biflatMap,transform, andtransformWithtoEntityDecoder. org.http4s.util.StreamAppandorg.http4s.util.ExitCodeare deprecated in favor offs2.StreamAppandfs2.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
StaticFileto serve files larger thanInt.MaxValuebytes - Dependency upgrades:
- tomcat-8.5.24
v0.16.6 (2017-12-04)
- Add a CSRF server middleware
- Fix
NullPointerExceptionwhen 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
HttpCodectype class that represents a type that can round trip to and from aString.Uri.SchemeandTransferCodingare the first implementors, with more to follow. Added anHttpCodecLawsto http4s-testing. Uri.Schemeis now its own type instead of a type alias.TransferCodingis no longer a case class. Itscodingmember is now aString, not aCIString. Its companion is no longer aRegistry.- Introduced
org.http4s.syntax.literals, which contains aStringContextforAll safely constructing aUri.Scheme. More will follow. org.http4s.util.StreamApp.ExitCodemoved toorg.http4s.util.ExitCode- Changed
AuthService[F[_], T]toAuthService[T, F[_]]to support partial unification when combining services as aSemigroupK. - Unseal the
MessageFailurehierarchy. Previous versions of http4s had aGenericParsingFailure,GenericDecodeFailure, andGenericMessageBodyFailure. This was not compatible with the parameterized effect introduced in v0.18. Now,MessageFailureis unsealed, so users wanting precise control over the defaulttoHttpResponsecan implement their own failure conditions. MessageFailurenow 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 ofHttpServices NonEmptyListextensions moved fromorg.http4s.util.nonEmptyListtoorg.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 typeIOavailable asorg.http4s.client.dsl.io._. This is consistent with http4s-dsl for servers. - Change
StreamAppto 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.applynow takes anKleisli[OptionT[F, ?], Request[F], T]instead of aKleisli[F, Request[F], T].- Set
Content-Typeheader on defaultNotFoundresponse. - Merges from v0.16.5 and v0.17.5.
- Remove mutable map that backs
Methodregistry. 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 providedEntityEncoderinstances. - Adds
Arbitraryinstances forHeaders,EntityBody[F](currently just single chunk),Entity[F], andEntityEncoder[F, A]. - Adds
EntityEncoderLawsforEntityEncoder. - 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.binddependency fromGZipmiddleware, 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
AutoSlashmiddleware 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-Forheader. - Make
FinEffectMessageSyntaxinvariant - 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.applyno longer takes abufferSize. It is made irrelevant by fs2-reactive-streams.MultipartParser.parseno longer takes aheaderLimit, which was unused.- Add
maxWaitQueueLimit(default 256) andmaxConnectionsPerRequestKey(default 10) toPooledHttp1Client. - Remove private implicit
ExecutionContextfromStreamApp. This had been known to cause diverging implicit resolution that was hard to debug. - Shift execution of the routing of the
HttpServiceto theExecutionContextprovided by theJettyBuilderorTomcatBuilder. 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
EffectRequestSyntaxandEffectResponseSyntax. These were previously used to provide methods such as.putHeadersand.withBodyon typesF[Request]andF[Response]. As an alternative:
- Call
.mapor.flatMaponF[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]]. MaybeResponseis removed, because the optionality is now expressed through theOptionTinHttpService. Instead of composingHttpServicevia 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
Servicetype 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.liftare deprecated in favor ofKleisli.apply.- Remove
java.xml.binddependency fromGZipmiddleware 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
ExecutionContextprovided by theBlazeBuilderwhen 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 suppliedon blaze-client for Windows when writing an empty sequence ofByteBuffers. - Set encoding of
captureWriterto 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
ExecutionContextprovided 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 + 1tomax(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
Metricsmiddleware. - Pass
redactHeadersWhenargument fromLoggertoRequestLoggerandResponseLogger.
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
publishLocalworkflow. - Charset fixes:
-
Deprecate
CharsetRange.isSatisfiedByin favor of and `Accept-Charset`.isSatisfiedByin favor of
-
Fix definition of
satisfiedByto respect priority of
- Add
CharsetRange.matches. - ContentCoding fixes:
- Deprecate
ContentCoding.satisfiedByandContentCoding.satisfiesin 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
satisfiedByto respect priority ofContentCoding.*.
- Add
ContentCoding.matchesandContentCoding.registered.
- Add
Arbitrary[ContentCoding]and `Arbitrary[`Accept-Encoding`]instances. - LanguageTag fixes:
- Deprecate
LanguageTag.satisfiedByandLanguageTag.satisfiesin favor of `Accept-Language`.satisfiedBy.
- Fix definition of
satisfiedByto respect priority ofLanguageTag.*and matches of a partial set of subtags.
- Add
LanguageTag.matches.
- Deprecate
LanguageTag.withQualityin 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-Afterheader inRetrymiddleware. The response will not be retried until the maximum of the backoff strategy and any time specified by theRetry-Afterheader of the response. - The
RetryPolicy.defaultRetriableonly 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
Loggermiddleware to render JSON bodies as text, not as a hex dump. MultipartParser.parsereturns a stream ofByteVectorinstead 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)
Retrymiddleware takes aRetryPolicyinstead of a backoff strategy. ARetryPolicyis a function of the request, the response, and the number of attempts. Wrap the previousbackoffinRetryPolicy {}for compatible behavior.- Expose a
Part.fileDataconstructor 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
responseHeaderTimeoutproperty 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:
RequestandResponsebecomeRequest[F[_]]andResponse[F[_]]. TheFis the effect type of the body (i.e.,Stream[F, Byte]), or what the body.runs to.HttpServicebecomesHttpService[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
Fparameter, which needs to match the services mounted to them. - The client now takes an
Fparameter, 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.blazetoorg.http4s.blazecoreto avoid a conflict with the non-http4s blaze-core module. - Change
ServiceOpsto operate on aService[?, MaybeResponse]. Give it anorNotFoundthat 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.typeleveldependencies 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
ChunkAggregatorto fs2 - Add logging middleware
- Standardize on
ExecutionContextoverStrategyandExecutorService - Implement
Ageheader - Fix
Client#toHttpServiceto not dispose until the body is consumed - Add a buffered implementation of
EntityDecoder[Multipart] - In async-http-client, don't use
ReactiveStreamsBodyGeneratorunless there is a body to transmit. This fixes anIllegalStateException: unexpected message type - Add
HSTSmiddleware - Add option to serve pre-gzipped resources
- Add RequestLogging and ResponseLogging middlewares
StaticFileoptions returnOptionT[Task, ?]- Set
Content-LengthorTransfer-Encoding: chunkedheader 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-Headersheader for CORS - Fix thread safety issue in
EntityDecoder[XML] - Support IPV6 headers in
X-Forwarded-For - Add
statusandsuccessfulmethods to client - Overload
client.fetchAsandclient.streamingto accept aTask[Request] - Replace
InstantwithHttpDateto avoid silent truncation and constrain to dates that are legally renderable in HTTP. - Fix bug in hash code of
CIString - Update
request.pathInfowhen changingrequest.withUri. To keep these values in sync,request.copyhas been deprecated, but copy constructors based onwithhave been added. - Remove
namefromAttributeKey. - Add
withFragmentandwithoutFragmenttoUri - Construct
Content-LengthwithfromLongto ensure validity, andunsafeFromLongwhen you can assert that it's positive. - Add missing instances to
QueryParamDecoderandQueryParamEncoder. - Add
response.cookiesmethod to get a list of cookies fromSet-Cookieheader.Set-Cookieis no longer aHeader.Extractable, as it does not adhere to the HTTP spec of being concatenable by commas without changing semantics. - Make servlet
HttpSessionavailable as a request attribute in servlet backends - Fix
Part.nameto return the name from theContent-Dispositionheader instead of the name of theContent-Dispositionheader. Accordingly, it is no longer aCIString Request.toStringandResponse.toStringnow redact sensitive headers. A method to redact arbitrary headers is added toHeaders.Retry-Afteris now modeled as aEither[HttpDate, Long]to reflect either an http-date or delta-seconds value.- Look for index.html in
StaticFilewhen rendering a directory instead of returning401 Unauthorized. - Limit dates to a minimum of January 1, 1900, per RFC.
- Add
serviceErrorHandlertoServerBuilderto allow pluggable error handlers when a server backend receives a failed task or a thrown Exception when invoking a service. The default callstoHttpResponseonMessageFailureand closes the connection with a500 InternalServerErroron other non-fatal errors. Fatal errors are left to the server. FollowRedirectdoes 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+jsonmedia 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
WebjarServiceso it matches assets. ServerAppoverridesprocessto leave a single abstract method- Add gzip trailer in
GZipmiddleware -
Upgraded dependencies:
- circe-0.8.0
- jetty-9.4.5.v20170502
- scalaz-7.2.13
- tomcat-8.5.15
ProcessAppuses aProcess[Task, Nothing]rather than aProcess[Task, Unit]Credentialsis split intoCredentials.AuthParamsfor key-value pairs andCredentials.Tokenfor legacy token-based schemes.OAuthBearerTokenis subsumed byCredentials.Token.BasicCredentialsno longer extendsCredentials, but is extractable from one. This model permits the definition of other arbitrary credential schemes.- Add
fromSeqconstructor toUrlForm - Allow
WebjarServiceto 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)
Timeoutmiddleware takes an implicitSchedulerandExecutionContext- 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
ProcessAppto terminate on process errors - Set
securerequest attribute correctly in blaze server - Exit with code
-1whenProcessAppfails - Make
ResourceServicerespectIf-Modified-Since - Rename
ProcessApp.maintoProcessApp.processto 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
StackOverflowErrorin 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
ServerAppeven if the server fails to start - Make
ResourceServicerespectIf-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.Taskreplaced byfs2.Taskscalaz.stream.Processreplaced 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.ionot yet ported
v0.16.0-M1 (2017-04-08)
- Fix type of
AuthedService.empty - Eliminate
Fallthroughtypeclass. AnHttpServicenow returnsMaybeResponse, which can be aResponseorPass. There is aSemigroup[MaybeResponse]instance that allowsHttpServices to be chained as a semigroup.service orElse anotherServiceis 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
ResponseClasses intoStatus. - Use
SSLContext.getDefaultby default in blaze-client. UseBlazeServerConfig.insecureto ignore certificate validity. But please don't. - Move
CIStringsyntax toorg.http4s.syntax. - Bundle an internal version of parboiled2. This decouples core from shapeless, allowing applications to use their preferred version of shapeless.
- Rename
endpointAuthenticationtocheckEndpointAuthentication. - Add a
WebjarServicefor serving files out of web jars. - Implement
Retry-Afterheader. - Stop building with
delambdafyon 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
CORSpre-flight checks of authenticated services. - Deprecate
ServerAppin favor oforg.http4s.util.ProcessApp. AProcessAppis easier to compose all the resources a server needs viaProcess.bracket. - Implement a
Refererheader.
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 Requestin 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
Originheader present - Soften log about invalid CORS headers from info to debug
v0.15.4 (2017-02-12)
- Call
toHttpResponseon tasks failed withMessageFailures 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
hashCodeandequalstoHeaders - Make
challengein 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.fromHttpServiceto 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.parsedfield 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
AuthedRequestandAuthedServicetypes. - Replace
CharSequenceEncoderwithCharBufferEncoder, assuming thatCharBufferandStringare the onlyCharSequences one would want to encode. - Remove
EnittyEncoder[Char]andEntityEncoder[Byte]. Send an array, buffer, or String if you want this. - Add
DefaultHeadmiddleware forHEADimplementation. - Decouple
http4s-serverfrom Dropwizard Metrics. Metrics code is in the newhttp4s-metricsmodule. - Allow custom scheduler for timeout middleware.
- Add parametric empty
EntityEncoderandEntityEncoder[Unit]. - Replace unlawful
Order[CharsetRange]withEqual[CharsetRange]. - Auth middlewares renamed
BasicAuthandDigestAuth. BasicAuthpasses 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
uriandqmacros 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
Killed 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
Dateheader 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
getMessageinUnexpectedStatus
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
jsontojsonDecoderto reduce possibility of implicit shadowing - Introduce the
ServerApptrait - Deprectate
onShutdownandawaitShutdowninServer - 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
Statusfor 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
DefaultExecutorin 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
DecodeFailureinto a newRequestFailurehierarchy. - New methods for manipulating
UrlForm. - All parsed headers get a
parsemethod to construct them from their value. - Improve error message for unsupported media type decoding error.
- Introduce
BlazeClientConfigclass 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
lenientflag to blazee configuration to accept illegal characters in headers. - Remove q-value from
MediaRangeandMediaType, replaced byMediaRangeAndQValue. - Add
addresstoServertrait. - 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-EncodingorContent-Lengthheaders 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
ServiceandHttpService, because aClientcan be viewed as aService. - Remove custom
DateTimein favor ofjava.time.Instant. - Support status 451 Unavailable For Legal Reasons.
- Various blaze-client optimizations.
- Don't let Blaze
IdentityWriterwrite more than Content-Length bytes. - Remove
identityTransfer-Encoding, which was removed in HTTP RFC errata. - In blaze,
requireCloseis now the return value ofwriteEnd. - Remove body from
Request.toStringandResponse.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
FollowRedirectmiddleware for 303 responses. - Support keep-alives for client requests with bodies.
v0.11.1 (2015-11-29)
- Honor
connectorPoolSizeandbufferSizeparameters inBlazeBuilder. - Add convenient
ETagheader 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
PartialServicewith theFallthroughtypeclass andorElsesyntax. - Rename
withHeaderstoreplaceAllHeaders - Set https endpoint identification algorithm when possible.
- Stack-safe
ProcessWriterin 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.
StaticFileuses the filename extension exclusively to determine media-type.- Add
/method toUri. - Add
UrlFormLiftermiddleware to aggregate url-form parameters with the query parameters. - Add local address information to the
Requesttype. - Add a Http method 'or' (
|) extractor. - Add
VirtualHostmiddleware for serving multiple sites from one server. - Add websocket configuration to the blaze server builder.
- Redefine default timeout status code to 500.
- Redefine the
Servicearrow result fromTask[Option[_]]toTask[_]. - Don't extend
AllInstanceswithHttp4somnibus 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
ConcurrentHashMapwith synchronizedHashMapinstaticcontentpackage. - 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-AgentandAllowheader 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
flatMapRmethod 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.decodeandRequest.decodeWith -
Move headers into
org.http4s.headerspackage. -
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.Elemtoapplication/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.queryandUri.fragmentare 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.