summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2023-04-28 15:04:31 +0200
committerLoïc Hoguin <[email protected]>2023-04-28 15:04:31 +0200
commit70f82335ac393eba4bcccfbe3be6ccc8018fd5d9 (patch)
treef8e2d79959b6f5008cbf3ed442805464090372e1
parentae0ab00828f7b3161541809681fcd95022e2ac6f (diff)
downloadninenines.eu-70f82335ac393eba4bcccfbe3be6ccc8018fd5d9.tar.gz
ninenines.eu-70f82335ac393eba4bcccfbe3be6ccc8018fd5d9.tar.bz2
ninenines.eu-70f82335ac393eba4bcccfbe3be6ccc8018fd5d9.zip
Article about Erlang/OTP 26
-rw-r--r--_build/content/articles/otp-26.asciidoc28
-rw-r--r--articles/asciideck/index.html4
-rw-r--r--articles/cowboy-2.0.0-pre.4/index.html4
-rw-r--r--articles/cowboy-2.0.0-rc.1/index.html4
-rw-r--r--articles/cowboy-2.0.0-rc.2/index.html4
-rw-r--r--articles/cowboy-2.0.0/index.html4
-rw-r--r--articles/cowboy-2.1.0/index.html4
-rw-r--r--articles/cowboy-2.2.0/index.html4
-rw-r--r--articles/cowboy-2.3.0/index.html4
-rw-r--r--articles/cowboy-2.4.0/index.html4
-rw-r--r--articles/cowboy-2.5.0/index.html4
-rw-r--r--articles/cowboy-2.6.0/index.html4
-rw-r--r--articles/cowboy-2.7.0/index.html4
-rw-r--r--articles/cowboy-2.8.0/index.html4
-rw-r--r--articles/cowboy-2.9.0/index.html4
-rw-r--r--articles/cowboy2-qs/index.html4
-rw-r--r--articles/dont-let-it-crash/index.html4
-rw-r--r--articles/erlang-meetup-10-septembre-2019/index.html4
-rw-r--r--articles/erlang-scalability/index.html4
-rw-r--r--articles/erlang-validate-utf8/index.html4
-rw-r--r--articles/erlang.mk-and-relx/index.html4
-rw-r--r--articles/erlanger-playbook-september-2015-update/index.html4
-rw-r--r--articles/erlanger-playbook/index.html4
-rw-r--r--articles/farwest-funded/index.html4
-rw-r--r--articles/github-sponsors/index.html4
-rw-r--r--articles/gun-1.0.0-rc.1/index.html4
-rw-r--r--articles/gun-1.0.0/index.html4
-rw-r--r--articles/gun-1.2.0/index.html4
-rw-r--r--articles/gun-1.3.0/index.html4
-rw-r--r--articles/gun-2.0.0-pre.1/index.html4
-rw-r--r--articles/gun-2.0.0-pre.2/index.html4
-rw-r--r--articles/gun-2.0.0-rc.1/index.html4
-rw-r--r--articles/gun-2.0.0/index.html4
-rw-r--r--articles/index.html38
-rw-r--r--articles/index.xml13
-rw-r--r--articles/january-2014-status/index.html4
-rw-r--r--articles/joe_the_rubber_duck/index.html4
-rw-r--r--articles/merry-christmas-2018/index.html4
-rw-r--r--articles/merry-christmas-2019/index.html4
-rw-r--r--articles/ml-archives/index.html4
-rw-r--r--articles/on-open-source/index.html4
-rw-r--r--articles/otp-26/index.html353
-rw-r--r--articles/page/2/index.html40
-rw-r--r--articles/page/3/index.html20
-rw-r--r--articles/ranch-1.3/index.html4
-rw-r--r--articles/ranch-1.6.0/index.html4
-rw-r--r--articles/ranch-1.7.0/index.html4
-rw-r--r--articles/ranch-2.0.0-rc.1/index.html4
-rw-r--r--articles/ranch-2.0.0/index.html4
-rw-r--r--articles/ranch-2.1.0/index.html4
-rw-r--r--articles/ranch-ftp/index.html4
-rw-r--r--articles/the-elephant-in-the-room/index.html4
-rw-r--r--articles/the-gateway-trilogy/index.html4
-rw-r--r--articles/the-story-so-far/index.html4
-rw-r--r--articles/tictactoe/index.html4
-rw-r--r--articles/website-update/index.html4
-rw-r--r--articles/xerl-0.1-empty-modules/index.html4
-rw-r--r--articles/xerl-0.2-two-modules/index.html4
-rw-r--r--articles/xerl-0.3-atomic-expressions/index.html4
-rw-r--r--articles/xerl-0.4-expression-separator/index.html4
-rw-r--r--articles/xerl-0.5-intermediate-module/index.html4
-rw-r--r--donate/index.html2
-rw-r--r--erlanger-playbook/index.html2
-rw-r--r--index.html2
-rw-r--r--index.xml11
-rw-r--r--services/index.html2
-rw-r--r--sitemap.xml7
67 files changed, 696 insertions, 42 deletions
diff --git a/_build/content/articles/otp-26.asciidoc b/_build/content/articles/otp-26.asciidoc
new file mode 100644
index 00000000..29dc31ce
--- /dev/null
+++ b/_build/content/articles/otp-26.asciidoc
@@ -0,0 +1,28 @@
++++
+date = "2023-04-28T07:00:00+01:00"
+title = "Erlang/OTP 26"
+
++++
+
+Erlang/OTP 26 will soon be released by OTP team and
+unfortunately broke the compilation of Cowlib, which
+is a dependency for both Cowboy and Gun.
+
+Users willing to upgrade to Erlang/OTP 26 or above
+will therefore need to ensure that they use the
+right version of Cowboy or Gun. The versions that
+first supported Erlang/OTP 26 are as follow:
+
+* Cowboy 2.10.0
+* Gun 2.0.1
+* Cowlib 2.12.1
+
+A small number of fixes has also been made at the
+same time but the main change is support for
+Erlang/OTP 26.
+
+You can donate to these projects via
+https://github.com/sponsors/essen[GitHub Sponsors].
+
+As usual, feedback is appreciated, and issues or
+questions should be sent via Github tickets. Thanks!
diff --git a/articles/asciideck/index.html b/articles/asciideck/index.html
index 1ad52960..93f30043 100644
--- a/articles/asciideck/index.html
+++ b/articles/asciideck/index.html
@@ -109,6 +109,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.0.0-pre.4/index.html b/articles/cowboy-2.0.0-pre.4/index.html
index 79741b77..d45c471d 100644
--- a/articles/cowboy-2.0.0-pre.4/index.html
+++ b/articles/cowboy-2.0.0-pre.4/index.html
@@ -128,6 +128,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.0.0-rc.1/index.html b/articles/cowboy-2.0.0-rc.1/index.html
index 3920e1ea..501191c2 100644
--- a/articles/cowboy-2.0.0-rc.1/index.html
+++ b/articles/cowboy-2.0.0-rc.1/index.html
@@ -99,6 +99,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.0.0-rc.2/index.html b/articles/cowboy-2.0.0-rc.2/index.html
index 280688cf..4bca308b 100644
--- a/articles/cowboy-2.0.0-rc.2/index.html
+++ b/articles/cowboy-2.0.0-rc.2/index.html
@@ -92,6 +92,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.0.0/index.html b/articles/cowboy-2.0.0/index.html
index c47ec919..454b8452 100644
--- a/articles/cowboy-2.0.0/index.html
+++ b/articles/cowboy-2.0.0/index.html
@@ -98,6 +98,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.1.0/index.html b/articles/cowboy-2.1.0/index.html
index ae0af495..3f9f23fe 100644
--- a/articles/cowboy-2.1.0/index.html
+++ b/articles/cowboy-2.1.0/index.html
@@ -95,6 +95,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.2.0/index.html b/articles/cowboy-2.2.0/index.html
index 021c4781..93ebd3c1 100644
--- a/articles/cowboy-2.2.0/index.html
+++ b/articles/cowboy-2.2.0/index.html
@@ -93,6 +93,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.3.0/index.html b/articles/cowboy-2.3.0/index.html
index 64a0c76d..5e8ff222 100644
--- a/articles/cowboy-2.3.0/index.html
+++ b/articles/cowboy-2.3.0/index.html
@@ -85,6 +85,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.4.0/index.html b/articles/cowboy-2.4.0/index.html
index 3d0027a8..18a866b4 100644
--- a/articles/cowboy-2.4.0/index.html
+++ b/articles/cowboy-2.4.0/index.html
@@ -87,6 +87,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.5.0/index.html b/articles/cowboy-2.5.0/index.html
index 707d1d6d..b704ea37 100644
--- a/articles/cowboy-2.5.0/index.html
+++ b/articles/cowboy-2.5.0/index.html
@@ -91,6 +91,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.6.0/index.html b/articles/cowboy-2.6.0/index.html
index a9131a16..caf89fff 100644
--- a/articles/cowboy-2.6.0/index.html
+++ b/articles/cowboy-2.6.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.7.0/index.html b/articles/cowboy-2.7.0/index.html
index 8f5b7c05..c182c6e0 100644
--- a/articles/cowboy-2.7.0/index.html
+++ b/articles/cowboy-2.7.0/index.html
@@ -89,6 +89,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.8.0/index.html b/articles/cowboy-2.8.0/index.html
index 81752a81..946a71d5 100644
--- a/articles/cowboy-2.8.0/index.html
+++ b/articles/cowboy-2.8.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy-2.9.0/index.html b/articles/cowboy-2.9.0/index.html
index cf7e4521..3a09ecb1 100644
--- a/articles/cowboy-2.9.0/index.html
+++ b/articles/cowboy-2.9.0/index.html
@@ -87,6 +87,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/cowboy2-qs/index.html b/articles/cowboy2-qs/index.html
index 2e9af5e5..68971574 100644
--- a/articles/cowboy2-qs/index.html
+++ b/articles/cowboy2-qs/index.html
@@ -129,6 +129,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/dont-let-it-crash/index.html b/articles/dont-let-it-crash/index.html
index 46377706..2198a123 100644
--- a/articles/dont-let-it-crash/index.html
+++ b/articles/dont-let-it-crash/index.html
@@ -104,6 +104,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/erlang-meetup-10-septembre-2019/index.html b/articles/erlang-meetup-10-septembre-2019/index.html
index c0d939d5..56a08b2b 100644
--- a/articles/erlang-meetup-10-septembre-2019/index.html
+++ b/articles/erlang-meetup-10-septembre-2019/index.html
@@ -84,6 +84,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/erlang-scalability/index.html b/articles/erlang-scalability/index.html
index 2570eca2..7fbf1e1c 100644
--- a/articles/erlang-scalability/index.html
+++ b/articles/erlang-scalability/index.html
@@ -116,6 +116,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/erlang-validate-utf8/index.html b/articles/erlang-validate-utf8/index.html
index 58909037..e6c4626e 100644
--- a/articles/erlang-validate-utf8/index.html
+++ b/articles/erlang-validate-utf8/index.html
@@ -232,6 +232,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/erlang.mk-and-relx/index.html b/articles/erlang.mk-and-relx/index.html
index 3a61fe7b..913ab209 100644
--- a/articles/erlang.mk-and-relx/index.html
+++ b/articles/erlang.mk-and-relx/index.html
@@ -118,6 +118,10 @@ cowboy-0.8.5 erlydtl-0.7.0 ninenines-0.2.0 stdlib-1.19.1</pre></div></div>
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/erlanger-playbook-september-2015-update/index.html b/articles/erlanger-playbook-september-2015-update/index.html
index 47432860..8a80d4f2 100644
--- a/articles/erlanger-playbook-september-2015-update/index.html
+++ b/articles/erlanger-playbook-september-2015-update/index.html
@@ -87,6 +87,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/erlanger-playbook/index.html b/articles/erlanger-playbook/index.html
index 6ab64aeb..0588bf0c 100644
--- a/articles/erlanger-playbook/index.html
+++ b/articles/erlanger-playbook/index.html
@@ -128,6 +128,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/farwest-funded/index.html b/articles/farwest-funded/index.html
index d95a3b5e..393054f7 100644
--- a/articles/farwest-funded/index.html
+++ b/articles/farwest-funded/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/github-sponsors/index.html b/articles/github-sponsors/index.html
index 3ed48066..139faf91 100644
--- a/articles/github-sponsors/index.html
+++ b/articles/github-sponsors/index.html
@@ -85,6 +85,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/gun-1.0.0-rc.1/index.html b/articles/gun-1.0.0-rc.1/index.html
index 283f1463..7aa2c3e1 100644
--- a/articles/gun-1.0.0-rc.1/index.html
+++ b/articles/gun-1.0.0-rc.1/index.html
@@ -89,6 +89,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/gun-1.0.0/index.html b/articles/gun-1.0.0/index.html
index 35b35ec0..7cb799ed 100644
--- a/articles/gun-1.0.0/index.html
+++ b/articles/gun-1.0.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/gun-1.2.0/index.html b/articles/gun-1.2.0/index.html
index 906c2143..47f06350 100644
--- a/articles/gun-1.2.0/index.html
+++ b/articles/gun-1.2.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/gun-1.3.0/index.html b/articles/gun-1.3.0/index.html
index 5a7342a2..2493e10b 100644
--- a/articles/gun-1.3.0/index.html
+++ b/articles/gun-1.3.0/index.html
@@ -86,6 +86,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/gun-2.0.0-pre.1/index.html b/articles/gun-2.0.0-pre.1/index.html
index 97925295..da77236c 100644
--- a/articles/gun-2.0.0-pre.1/index.html
+++ b/articles/gun-2.0.0-pre.1/index.html
@@ -93,6 +93,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/gun-2.0.0-pre.2/index.html b/articles/gun-2.0.0-pre.2/index.html
index afe588ed..d25488dc 100644
--- a/articles/gun-2.0.0-pre.2/index.html
+++ b/articles/gun-2.0.0-pre.2/index.html
@@ -91,6 +91,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/gun-2.0.0-rc.1/index.html b/articles/gun-2.0.0-rc.1/index.html
index a34c37b3..f4fec820 100644
--- a/articles/gun-2.0.0-rc.1/index.html
+++ b/articles/gun-2.0.0-rc.1/index.html
@@ -96,6 +96,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/gun-2.0.0/index.html b/articles/gun-2.0.0/index.html
index 87a52979..79ccd73e 100644
--- a/articles/gun-2.0.0/index.html
+++ b/articles/gun-2.0.0/index.html
@@ -98,6 +98,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/index.html b/articles/index.html
index 8911e938..dd4edf86 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -65,6 +65,24 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></h2>
+ <p class="date">
+ <span class="year">2023</span>
+ <span class="day-month">28 Apr</span>
+ </p>
+ </header>
+
+ <p>Erlang/OTP 26 will soon be released by OTP team and unfortunately broke the compilation of Cowlib, which is a dependency for both Cowboy and Gun.
+Users willing to upgrade to Erlang/OTP 26 or above will therefore need to ensure that they use the right version of Cowboy or Gun. The versions that first supported Erlang/OTP 26 are as follow:
+Cowboy 2.10.0 Gun 2.0.1 Cowlib 2.12.1 A small number of fixes has also been made at the same time but the main change is support for Erlang/OTP 26.</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/otp-26/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></h2>
<p class="date">
<span class="year">2023</span>
@@ -409,26 +427,6 @@ Two functions have been added: cowboy_req:stream_events/3 encodes and streams on
</p>
</article>
- <article class="blog_item">
- <header>
- <h2><a href="https://ninenines.eu/articles/gun-1.3.0/">Gun 1.3</a></h2>
- <p class="date">
- <span class="year">2018</span>
- <span class="day-month">01 Oct</span>
- </p>
- </header>
-
- <p>Gun 1.3.0 has been released!
-Gun is an HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP.
-This release improves the CONNECT support introduced in the previous version and adds built-in Websocket protocol negotiation.
-A complete list of changes can be found in the migration guide: Migrating from Gun 1.2 to 1.3.
-You can donate to this project via GitHub Sponsors. These funds are used to pay for additional servers for testing. And healthy food.</p>
-
- <p style="text-align:right">
- <a class="read_more" href="https://ninenines.eu/articles/gun-1.3.0/">Read More</a>
- </p>
- </article>
-
<nav class="pagination" role="pagination">
diff --git a/articles/index.xml b/articles/index.xml
index 7ca0ca68..dd57f231 100644
--- a/articles/index.xml
+++ b/articles/index.xml
@@ -6,12 +6,23 @@
<description>Recent content in Articles on Nine Nines</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
- <lastBuildDate>Tue, 24 Jan 2023 07:00:00 +0100</lastBuildDate>
+ <lastBuildDate>Fri, 28 Apr 2023 07:00:00 +0100</lastBuildDate>
<atom:link href="https://ninenines.eu/articles/index.xml" rel="self" type="application/rss+xml" />
<item>
+ <title>Erlang/OTP 26</title>
+ <link>https://ninenines.eu/articles/otp-26/</link>
+ <pubDate>Fri, 28 Apr 2023 07:00:00 +0100</pubDate>
+
+ <guid>https://ninenines.eu/articles/otp-26/</guid>
+ <description>Erlang/OTP 26 will soon be released by OTP team and unfortunately broke the compilation of Cowlib, which is a dependency for both Cowboy and Gun.
+Users willing to upgrade to Erlang/OTP 26 or above will therefore need to ensure that they use the right version of Cowboy or Gun. The versions that first supported Erlang/OTP 26 are as follow:
+Cowboy 2.10.0 Gun 2.0.1 Cowlib 2.12.1 A small number of fixes has also been made at the same time but the main change is support for Erlang/OTP 26.</description>
+ </item>
+
+ <item>
<title>Gun 2.0</title>
<link>https://ninenines.eu/articles/gun-2.0.0/</link>
<pubDate>Tue, 24 Jan 2023 07:00:00 +0100</pubDate>
diff --git a/articles/january-2014-status/index.html b/articles/january-2014-status/index.html
index 3c571fe5..fa4508e5 100644
--- a/articles/january-2014-status/index.html
+++ b/articles/january-2014-status/index.html
@@ -114,6 +114,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/joe_the_rubber_duck/index.html b/articles/joe_the_rubber_duck/index.html
index 2f76e1ed..0fad119f 100644
--- a/articles/joe_the_rubber_duck/index.html
+++ b/articles/joe_the_rubber_duck/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/merry-christmas-2018/index.html b/articles/merry-christmas-2018/index.html
index 9ab74e00..0873fc07 100644
--- a/articles/merry-christmas-2018/index.html
+++ b/articles/merry-christmas-2018/index.html
@@ -95,6 +95,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/merry-christmas-2019/index.html b/articles/merry-christmas-2019/index.html
index 292b6059..66b374ca 100644
--- a/articles/merry-christmas-2019/index.html
+++ b/articles/merry-christmas-2019/index.html
@@ -91,6 +91,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/ml-archives/index.html b/articles/ml-archives/index.html
index 96b0badf..c3e88336 100644
--- a/articles/ml-archives/index.html
+++ b/articles/ml-archives/index.html
@@ -85,6 +85,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/on-open-source/index.html b/articles/on-open-source/index.html
index a017e6e9..78c22485 100644
--- a/articles/on-open-source/index.html
+++ b/articles/on-open-source/index.html
@@ -97,6 +97,10 @@ much left to look at today</a>. This was followed by a <a href="https://github.c
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/otp-26/index.html b/articles/otp-26/index.html
new file mode 100644
index 00000000..35689103
--- /dev/null
+++ b/articles/otp-26/index.html
@@ -0,0 +1,353 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="">
+ <meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">
+
+ <title>Nine Nines: Erlang/OTP 26</title>
+
+ <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
+ <link href="/css/99s.css?r=7" rel="stylesheet">
+
+ <link rel="shortcut icon" href="/img/ico/favicon.ico">
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/ico/apple-touch-icon-114.png">
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/ico/apple-touch-icon-72.png">
+ <link rel="apple-touch-icon-precomposed" href="/img/ico/apple-touch-icon-57.png">
+
+ </head>
+
+
+<body class="">
+ <header id="page-head">
+ <div id="topbar" class="container">
+ <div class="row">
+ <div class="span2">
+ <h1 id="logo"><a href="/" title="99s">99s</a></h1>
+ </div>
+ <div class="span10">
+
+ <div id="side-header">
+ <nav>
+ <ul>
+ <li class="active"><a title="Hear my thoughts" href="/articles">Articles</a></li>
+ <li><a title="Watch my talks" href="/talks">Talks</a></li>
+ <li><a title="Read the docs" href="/docs">Documentation</a></li>
+ <li><a title="Request my services" href="/services">Consulting & Training</a></li>
+ </ul>
+ </nav>
+ <ul id="social">
+ <li>
+ <a href="https://github.com/ninenines" title="Check my Github repositories"><img src="/img/ico_github.png" data-hover="/img/ico_github_alt.png" alt="Github"></a>
+ </li>
+ <li>
+ <a title="Contact me" href="mailto:[email protected]"><img src="/img/ico_mail.png" data-hover="/img/ico_mail_alt.png"></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+</header>
+
+<div id="contents">
+<div class="container">
+<div class="row">
+<div class="span9 maincol">
+
+<article class="blog_item">
+<header>
+ <h1 class="lined-header"><span>Erlang/OTP 26</span></h1>
+ <p class="date">
+ <span class="year">2023</span>
+ <span class="day-month">28 Apr</span>
+ </p>
+</header>
+
+<p>Erlang/OTP 26 will soon be released by OTP team and unfortunately broke the compilation of Cowlib, which is a dependency for both Cowboy and Gun.</p>
+<p>Users willing to upgrade to Erlang/OTP 26 or above will therefore need to ensure that they use the right version of Cowboy or Gun. The versions that first supported Erlang/OTP 26 are as follow:</p>
+<ul><li>Cowboy 2.10.0
+</li>
+<li>Gun 2.0.1
+</li>
+<li>Cowlib 2.12.1
+</li>
+</ul>
+<p>A small number of fixes has also been made at the same time but the main change is support for Erlang/OTP 26.</p>
+<p>You can donate to these projects via <a href="https://github.com/sponsors/essen">GitHub Sponsors</a>.</p>
+<p>As usual, feedback is appreciated, and issues or questions should be sent via Github tickets. Thanks!</p>
+
+
+</article>
+</div>
+
+<div class="span3 sidecol">
+<h3>More articles</h3>
+<ul id="articles-nav" class="extra_margin">
+
+
+
+
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-2.1.0/">Ranch 2.1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.9.0/">Cowboy 2.9</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-2.0.0-rc.1/">Gun 2.0 release candidate 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-2.0.0/">Ranch 2.0</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.8.0/">Cowboy 2.8</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/the-gateway-trilogy/">The Gateway Trilogy</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-2.0.0-pre.2/">Gun 2.0 pre-release 2</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/merry-christmas-2019/">Merry Christmas 2019: New Beginnings</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/github-sponsors/">GitHub Sponsors</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.7.0/">Cowboy 2.7</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-2.0.0-pre.1/">Gun 2.0 pre-release 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlang-meetup-10-septembre-2019/">Erlang meetup: 10 septembre 2019</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-2.0.0-rc.1/">Ranch 2.0 release candidate 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/joe_the_rubber_duck/">Joe Armstrong the rubber duck</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/merry-christmas-2018/">Merry Christmas 2018: A Recap</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.6.0/">Cowboy 2.6</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-1.7.0/">Ranch 1.7</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.5.0/">Cowboy 2.5</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-1.3.0/">Gun 1.3</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-1.2.0/">Gun 1.2</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-1.6.0/">Ranch 1.6</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-1.0.0/">Gun 1.0</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/asciideck/">Asciideck: Asciidoc for Erlang</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/gun-1.0.0-rc.1/">Gun 1.0 release candidate 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.4.0/">Cowboy 2.4</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.3.0/">Cowboy 2.3</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.2.0/">Cowboy 2.2</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.1.0/">Cowboy 2.1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.0.0/">Cowboy 2.0</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.0.0-rc.2/">Cowboy 2.0 release candidate 2</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.0.0-rc.1/">Cowboy 2.0 release candidate 1</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/the-elephant-in-the-room/">The elephant in the room</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/dont-let-it-crash/">Don&#39;t let it crash</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy-2.0.0-pre.4/">Cowboy 2.0 pre-release 4</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-1.3/">Ranch 1.3</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ml-archives/">Mailing list archived</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/website-update/">Website update</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlanger-playbook-september-2015-update/">The Erlanger Playbook September 2015 Update</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlanger-playbook/">The Erlanger Playbook</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlang-validate-utf8/">Validating UTF-8 binaries with Erlang</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/on-open-source/">On open source</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/the-story-so-far/">The story so far</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/cowboy2-qs/">Cowboy 2.0 and query strings</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/january-2014-status/">January 2014 status</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/farwest-funded/">Farwest got funded!</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlang.mk-and-relx/">Build Erlang releases with Erlang.mk and Relx</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.5-intermediate-module/">Xerl: intermediate module</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.4-expression-separator/">Xerl: expression separator</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/erlang-scalability/">Erlang Scalability</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.3-atomic-expressions/">Xerl: atomic expressions</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.2-two-modules/">Xerl: two modules</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/xerl-0.1-empty-modules/">Xerl: empty modules</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/ranch-ftp/">Build an FTP Server with Ranch in 30 Minutes</a></li>
+
+
+
+ <li><a href="https://ninenines.eu/articles/tictactoe/">Erlang Tic Tac Toe</a></li>
+
+
+</ul>
+
+<h3>Feedback</h3>
+<p>Feel free to <a href="mailto:[email protected]">email us</a>
+if you found any mistake or need clarification on any of the
+articles.</p>
+
+</div>
+</div>
+</div>
+</div>
+
+ <footer>
+ <div class="container">
+ <div class="row">
+ <div class="span6">
+ <p id="scroll-top"><a href="#">↑ Scroll to top</a></p>
+ <nav>
+ <ul>
+ <li><a href="mailto:[email protected]" title="Contact us">Contact us</a></li><li><a href="https://github.com/ninenines/ninenines.github.io" title="Github repository">Contribute to this site</a></li>
+ </ul>
+ </nav>
+ </div>
+ <div class="span6 credits">
+ <p><img src="/img/footer_logo.png"></p>
+ <p>Copyright &copy; Loïc Hoguin 2012-2018</p>
+ </div>
+ </div>
+ </div>
+ </footer>
+
+
+ <script src="/js/custom.js"></script>
+ </body>
+</html>
+
diff --git a/articles/page/2/index.html b/articles/page/2/index.html
index a5da7537..f53f6579 100644
--- a/articles/page/2/index.html
+++ b/articles/page/2/index.html
@@ -65,6 +65,26 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/gun-1.3.0/">Gun 1.3</a></h2>
+ <p class="date">
+ <span class="year">2018</span>
+ <span class="day-month">01 Oct</span>
+ </p>
+ </header>
+
+ <p>Gun 1.3.0 has been released!
+Gun is an HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP.
+This release improves the CONNECT support introduced in the previous version and adds built-in Websocket protocol negotiation.
+A complete list of changes can be found in the migration guide: Migrating from Gun 1.2 to 1.3.
+You can donate to this project via GitHub Sponsors. These funds are used to pay for additional servers for testing. And healthy food.</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/gun-1.3.0/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/gun-1.2.0/">Gun 1.2</a></h2>
<p class="date">
<span class="year">2018</span>
@@ -414,26 +434,6 @@ This update fixes a number of things and adds two chapters: IOlists and Erlang b
</p>
</article>
- <article class="blog_item">
- <header>
- <h2><a href="https://ninenines.eu/articles/erlanger-playbook/">The Erlanger Playbook</a></h2>
- <p class="date">
- <span class="year">2015</span>
- <span class="day-month">18 Jun</span>
- </p>
- </header>
-
- <p>I am proud to announce the pre-release of The Erlanger Playbook.
-The Erlanger Playbook is a book about software development using Erlang. It currently covers all areas from the conception, design, the writing of code, documentation and tests.
-The book is still a work in progress. Future topics will include refactoring, debugging and tracing, benchmarking, releases, community management (for open source projects).
-The following sections are currently available:
-About this book; Changelog; Future additions Erlang: Building blocks; Patterns Workflow: Think; Write; Stay productive Documentation: On documentation; Tutorials; User guide; Manual; README files Design: RESTful APIs; Lessons learned Code: Starting a project; Version control; Project structure; Code style; Best practices; Special processes; IOLists; The process dictionary Tests: On testing; Success typing analysis; Manual testing; Unit testing; Functional testing Selling Erlang: On persuasion; Don&apos;t let it crash Read a preview: Special processes</p>
-
- <p style="text-align:right">
- <a class="read_more" href="https://ninenines.eu/articles/erlanger-playbook/">Read More</a>
- </p>
- </article>
-
<nav class="pagination" role="pagination">
diff --git a/articles/page/3/index.html b/articles/page/3/index.html
index fd007219..a11da5bc 100644
--- a/articles/page/3/index.html
+++ b/articles/page/3/index.html
@@ -65,6 +65,26 @@
<article class="blog_item">
<header>
+ <h2><a href="https://ninenines.eu/articles/erlanger-playbook/">The Erlanger Playbook</a></h2>
+ <p class="date">
+ <span class="year">2015</span>
+ <span class="day-month">18 Jun</span>
+ </p>
+ </header>
+
+ <p>I am proud to announce the pre-release of The Erlanger Playbook.
+The Erlanger Playbook is a book about software development using Erlang. It currently covers all areas from the conception, design, the writing of code, documentation and tests.
+The book is still a work in progress. Future topics will include refactoring, debugging and tracing, benchmarking, releases, community management (for open source projects).
+The following sections are currently available:
+About this book; Changelog; Future additions Erlang: Building blocks; Patterns Workflow: Think; Write; Stay productive Documentation: On documentation; Tutorials; User guide; Manual; README files Design: RESTful APIs; Lessons learned Code: Starting a project; Version control; Project structure; Code style; Best practices; Special processes; IOLists; The process dictionary Tests: On testing; Success typing analysis; Manual testing; Unit testing; Functional testing Selling Erlang: On persuasion; Don&apos;t let it crash Read a preview: Special processes</p>
+
+ <p style="text-align:right">
+ <a class="read_more" href="https://ninenines.eu/articles/erlanger-playbook/">Read More</a>
+ </p>
+ </article>
+
+ <article class="blog_item">
+ <header>
<h2><a href="https://ninenines.eu/articles/erlang-validate-utf8/">Validating UTF-8 binaries with Erlang</a></h2>
<p class="date">
<span class="year">2015</span>
diff --git a/articles/ranch-1.3/index.html b/articles/ranch-1.3/index.html
index f6548e48..e6cc12c7 100644
--- a/articles/ranch-1.3/index.html
+++ b/articles/ranch-1.3/index.html
@@ -126,6 +126,10 @@ Primary key fingerprint<font color="#990000">:</font> F19F 189C ECC7 <font color
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/ranch-1.6.0/index.html b/articles/ranch-1.6.0/index.html
index a4cb2ea9..bc974fcb 100644
--- a/articles/ranch-1.6.0/index.html
+++ b/articles/ranch-1.6.0/index.html
@@ -88,6 +88,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/ranch-1.7.0/index.html b/articles/ranch-1.7.0/index.html
index 3da114e7..72f8a0c8 100644
--- a/articles/ranch-1.7.0/index.html
+++ b/articles/ranch-1.7.0/index.html
@@ -87,6 +87,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/ranch-2.0.0-rc.1/index.html b/articles/ranch-2.0.0-rc.1/index.html
index 8139b030..4fd9052c 100644
--- a/articles/ranch-2.0.0-rc.1/index.html
+++ b/articles/ranch-2.0.0-rc.1/index.html
@@ -96,6 +96,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/ranch-2.0.0/index.html b/articles/ranch-2.0.0/index.html
index 5e378bc8..5c26e76d 100644
--- a/articles/ranch-2.0.0/index.html
+++ b/articles/ranch-2.0.0/index.html
@@ -95,6 +95,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/ranch-2.1.0/index.html b/articles/ranch-2.1.0/index.html
index 5b050d8b..f4efecdf 100644
--- a/articles/ranch-2.1.0/index.html
+++ b/articles/ranch-2.1.0/index.html
@@ -90,6 +90,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/ranch-ftp/index.html b/articles/ranch-ftp/index.html
index bda3b161..2f6e1475 100644
--- a/articles/ranch-ftp/index.html
+++ b/articles/ranch-ftp/index.html
@@ -228,6 +228,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/the-elephant-in-the-room/index.html b/articles/the-elephant-in-the-room/index.html
index 1eb5b519..d79c15f4 100644
--- a/articles/the-elephant-in-the-room/index.html
+++ b/articles/the-elephant-in-the-room/index.html
@@ -110,6 +110,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/the-gateway-trilogy/index.html b/articles/the-gateway-trilogy/index.html
index 1abd47c2..43cb77ef 100644
--- a/articles/the-gateway-trilogy/index.html
+++ b/articles/the-gateway-trilogy/index.html
@@ -85,6 +85,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/the-story-so-far/index.html b/articles/the-story-so-far/index.html
index 155d9197..72f240aa 100644
--- a/articles/the-story-so-far/index.html
+++ b/articles/the-story-so-far/index.html
@@ -101,6 +101,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/tictactoe/index.html b/articles/tictactoe/index.html
index 86bce465..0bad0095 100644
--- a/articles/tictactoe/index.html
+++ b/articles/tictactoe/index.html
@@ -133,6 +133,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/website-update/index.html b/articles/website-update/index.html
index 2a754b6b..74124a57 100644
--- a/articles/website-update/index.html
+++ b/articles/website-update/index.html
@@ -90,6 +90,10 @@
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/xerl-0.1-empty-modules/index.html b/articles/xerl-0.1-empty-modules/index.html
index e2d295ab..27751e65 100644
--- a/articles/xerl-0.1-empty-modules/index.html
+++ b/articles/xerl-0.1-empty-modules/index.html
@@ -168,6 +168,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/xerl-0.2-two-modules/index.html b/articles/xerl-0.2-two-modules/index.html
index 6841fc3f..5e87188f 100644
--- a/articles/xerl-0.2-two-modules/index.html
+++ b/articles/xerl-0.2-two-modules/index.html
@@ -196,6 +196,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/xerl-0.3-atomic-expressions/index.html b/articles/xerl-0.3-atomic-expressions/index.html
index c581c18e..54128807 100644
--- a/articles/xerl-0.3-atomic-expressions/index.html
+++ b/articles/xerl-0.3-atomic-expressions/index.html
@@ -165,6 +165,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/xerl-0.4-expression-separator/index.html b/articles/xerl-0.4-expression-separator/index.html
index 92640e02..9e6a3040 100644
--- a/articles/xerl-0.4-expression-separator/index.html
+++ b/articles/xerl-0.4-expression-separator/index.html
@@ -117,6 +117,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/articles/xerl-0.5-intermediate-module/index.html b/articles/xerl-0.5-intermediate-module/index.html
index db141c74..5046ee50 100644
--- a/articles/xerl-0.5-intermediate-module/index.html
+++ b/articles/xerl-0.5-intermediate-module/index.html
@@ -161,6 +161,10 @@ http://www.gnu.org/software/src-highlite -->
+ <li><a href="https://ninenines.eu/articles/otp-26/">Erlang/OTP 26</a></li>
+
+
+
<li><a href="https://ninenines.eu/articles/gun-2.0.0/">Gun 2.0</a></li>
diff --git a/donate/index.html b/donate/index.html
index 95913e4a..0c1ebc44 100644
--- a/donate/index.html
+++ b/donate/index.html
@@ -795,6 +795,8 @@
+
+
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
<p>Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
diff --git a/erlanger-playbook/index.html b/erlanger-playbook/index.html
index f3ff7e4d..722b5ee1 100644
--- a/erlanger-playbook/index.html
+++ b/erlanger-playbook/index.html
@@ -835,6 +835,8 @@
+
+
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
<p>Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
diff --git a/index.html b/index.html
index de15a3a9..7d3730ba 100644
--- a/index.html
+++ b/index.html
@@ -935,6 +935,8 @@
+
+
<p>Reward my work via <a href="https://github.com/sponsors/essen">GitHub Sponsors</a> and<br/>GitHub will double the funds I receive!</p>
diff --git a/index.xml b/index.xml
index 948210a2..8d77b53c 100644
--- a/index.xml
+++ b/index.xml
@@ -3428,6 +3428,17 @@ HTTP IANA Registries HTTP Method Registry HTTP Status Code Registry Message He
</item>
<item>
+ <title>Erlang/OTP 26</title>
+ <link>https://ninenines.eu/articles/otp-26/</link>
+ <pubDate>Fri, 28 Apr 2023 07:00:00 +0100</pubDate>
+
+ <guid>https://ninenines.eu/articles/otp-26/</guid>
+ <description>Erlang/OTP 26 will soon be released by OTP team and unfortunately broke the compilation of Cowlib, which is a dependency for both Cowboy and Gun.
+Users willing to upgrade to Erlang/OTP 26 or above will therefore need to ensure that they use the right version of Cowboy or Gun. The versions that first supported Erlang/OTP 26 are as follow:
+Cowboy 2.10.0 Gun 2.0.1 Cowlib 2.12.1 A small number of fixes has also been made at the same time but the main change is support for Erlang/OTP 26.</description>
+ </item>
+
+ <item>
<title>Gun 2.0</title>
<link>https://ninenines.eu/articles/gun-2.0.0/</link>
<pubDate>Tue, 24 Jan 2023 07:00:00 +0100</pubDate>
diff --git a/services/index.html b/services/index.html
index 5122e6e5..c8135ff0 100644
--- a/services/index.html
+++ b/services/index.html
@@ -821,6 +821,8 @@
+
+
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
<p>Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
diff --git a/sitemap.xml b/sitemap.xml
index 99b082aa..f581c933 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1256,7 +1256,12 @@
<url>
<loc>https://ninenines.eu/articles/</loc>
- <lastmod>2023-01-24T07:00:00+01:00</lastmod>
+ <lastmod>2023-04-28T07:00:00+01:00</lastmod>
+ </url>
+
+ <url>
+ <loc>https://ninenines.eu/articles/otp-26/</loc>
+ <lastmod>2023-04-28T07:00:00+01:00</lastmod>
</url>
<url>