From cd76f59af6852d577c334e75a9fae16b1f3b572f Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 20:26:17 +0200
Subject: [PATCH 01/16] :construction_worker: add more GitHub actions workflows

---
 .github/workflows/macos.yml                | 19 +++++++++++++++++++
 .github/workflows/{ccpp.yml => ubuntu.yml} |  4 ++--
 .github/workflows/windows.yml              | 19 +++++++++++++++++++
 3 files changed, 40 insertions(+), 2 deletions(-)
 create mode 100644 .github/workflows/macos.yml
 rename .github/workflows/{ccpp.yml => ubuntu.yml} (93%)
 create mode 100644 .github/workflows/windows.yml

diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
new file mode 100644
index 00000000..f00d5ff3
--- /dev/null
+++ b/.github/workflows/macos.yml
@@ -0,0 +1,19 @@
+name: Windows
+
+on: [push]
+
+jobs:
+  build:
+
+    runs-on: windows-latest
+
+    steps:
+    - uses: actions/checkout@v1
+    - name: prepare
+      run: mkdir build
+    - name: cmake
+      run: cd build ; cmake ..
+    - name: build
+      run: make -C build
+    - name: test
+      run: cd build ; ctest -j 10
diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ubuntu.yml
similarity index 93%
rename from .github/workflows/ccpp.yml
rename to .github/workflows/ubuntu.yml
index c6f8afb3..cedc0278 100644
--- a/.github/workflows/ccpp.yml
+++ b/.github/workflows/ubuntu.yml
@@ -1,4 +1,4 @@
-name: C/C++ CI
+name: Ubuntu
 
 on: [push]
 
@@ -6,7 +6,7 @@ jobs:
   build:
 
     runs-on: ubuntu-latest
-    
+
     steps:
     - uses: actions/checkout@v1
     - name: prepare
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
new file mode 100644
index 00000000..1116e1ca
--- /dev/null
+++ b/.github/workflows/windows.yml
@@ -0,0 +1,19 @@
+name: macOS
+
+on: [push]
+
+jobs:
+  build:
+
+    runs-on: macos-latest
+
+    steps:
+    - uses: actions/checkout@v1
+    - name: prepare
+      run: mkdir build
+    - name: cmake
+      run: cd build ; cmake ..
+    - name: build
+      run: make -C build
+    - name: test
+      run: cd build ; ctest -j 10

From ab02b0829688a812da2c092c7ce496ebf28d6452 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 20:30:11 +0200
Subject: [PATCH 02/16] :construction_worker: rename workflows

---
 .github/workflows/macos.yml   | 4 ++--
 .github/workflows/windows.yml | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index f00d5ff3..1116e1ca 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -1,11 +1,11 @@
-name: Windows
+name: macOS
 
 on: [push]
 
 jobs:
   build:
 
-    runs-on: windows-latest
+    runs-on: macos-latest
 
     steps:
     - uses: actions/checkout@v1
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 1116e1ca..ea467fb6 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -1,18 +1,18 @@
-name: macOS
+name: Windows
 
 on: [push]
 
 jobs:
   build:
 
-    runs-on: macos-latest
+    runs-on: windows-latest
 
     steps:
     - uses: actions/checkout@v1
     - name: prepare
       run: mkdir build
     - name: cmake
-      run: cd build ; cmake ..
+      run: cd build ; cmake .. -G "Visual Studio 16 2019"
     - name: build
       run: make -C build
     - name: test

From 6e59c8301ad474e6bea311a10563d703add1d3da Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 20:37:50 +0200
Subject: [PATCH 03/16] :construction_worker: simplify CMake invocations

---
 .github/workflows/macos.yml   | 6 ++----
 .github/workflows/ubuntu.yml  | 6 ++----
 .github/workflows/windows.yml | 6 ++----
 3 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 1116e1ca..3647bc02 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -9,11 +9,9 @@ jobs:
 
     steps:
     - uses: actions/checkout@v1
-    - name: prepare
-      run: mkdir build
     - name: cmake
-      run: cd build ; cmake ..
+      run: cmake -S . -B build
     - name: build
-      run: make -C build
+      run: cmake --build build
     - name: test
       run: cd build ; ctest -j 10
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index cedc0278..902afc5b 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -9,11 +9,9 @@ jobs:
 
     steps:
     - uses: actions/checkout@v1
-    - name: prepare
-      run: mkdir build
     - name: cmake
-      run: cd build ; cmake ..
+      run: cmake -S . -B build
     - name: build
-      run: make -C build
+      run: cmake --build build
     - name: test
       run: cd build ; ctest -j 10
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index ea467fb6..3ba59059 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -9,11 +9,9 @@ jobs:
 
     steps:
     - uses: actions/checkout@v1
-    - name: prepare
-      run: mkdir build
     - name: cmake
-      run: cd build ; cmake .. -G "Visual Studio 16 2019"
+      run: cmake -S . -B build -G "Visual Studio 16 2019"
     - name: build
-      run: make -C build
+      run: cmake --build build
     - name: test
       run: cd build ; ctest -j 10

From 77e0ba87506fc614b5dc23669d32902595beb4b4 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 20:45:18 +0200
Subject: [PATCH 04/16] :construction_worker: parallelize builds

---
 .github/workflows/macos.yml   | 2 +-
 .github/workflows/ubuntu.yml  | 2 +-
 .github/workflows/windows.yml | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 3647bc02..dbace9c3 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -12,6 +12,6 @@ jobs:
     - name: cmake
       run: cmake -S . -B build
     - name: build
-      run: cmake --build build
+      run: cmake --build build --parallel 10
     - name: test
       run: cd build ; ctest -j 10
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index 902afc5b..77927966 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -12,6 +12,6 @@ jobs:
     - name: cmake
       run: cmake -S . -B build
     - name: build
-      run: cmake --build build
+      run: cmake --build build --parallel 10
     - name: test
       run: cd build ; ctest -j 10
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 3ba59059..d3fb8cbd 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -12,6 +12,6 @@ jobs:
     - name: cmake
       run: cmake -S . -B build -G "Visual Studio 16 2019"
     - name: build
-      run: cmake --build build
+      run: cmake --build build --parallel 10
     - name: test
-      run: cd build ; ctest -j 10
+      run: cd build ; ctest -j 10 -C Release

From 44a2158b18876afb70ebfe7c1afa9c8ab7545038 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 20:51:45 +0200
Subject: [PATCH 05/16] :construction_worker: make debug build

---
 .github/workflows/macos.yml   | 2 +-
 .github/workflows/ubuntu.yml  | 2 +-
 .github/workflows/windows.yml | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index dbace9c3..ff700dc1 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -10,7 +10,7 @@ jobs:
     steps:
     - uses: actions/checkout@v1
     - name: cmake
-      run: cmake -S . -B build
+      run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug
     - name: build
       run: cmake --build build --parallel 10
     - name: test
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index 77927966..aa2aa1da 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -10,7 +10,7 @@ jobs:
     steps:
     - uses: actions/checkout@v1
     - name: cmake
-      run: cmake -S . -B build
+      run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug
     - name: build
       run: cmake --build build --parallel 10
     - name: test
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index d3fb8cbd..81517fa6 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -10,8 +10,8 @@ jobs:
     steps:
     - uses: actions/checkout@v1
     - name: cmake
-      run: cmake -S . -B build -G "Visual Studio 16 2019"
+      run: cmake -S . -B build -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE=Debug
     - name: build
       run: cmake --build build --parallel 10
     - name: test
-      run: cd build ; ctest -j 10 -C Release
+      run: cd build ; ctest -j 10 -C Debug

From 8c44c7b6de1ea68993f400b9c10e71307383ea3a Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 21:18:08 +0200
Subject: [PATCH 06/16] :checkered_flag: set Windows CI to Release mode

---
 .github/workflows/windows.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 81517fa6..f1cf8a08 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -10,8 +10,8 @@ jobs:
     steps:
     - uses: actions/checkout@v1
     - name: cmake
-      run: cmake -S . -B build -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE=Debug
+      run: cmake -S . -B build -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE=Release
     - name: build
       run: cmake --build build --parallel 10
     - name: test
-      run: cd build ; ctest -j 10 -C Debug
+      run: cd build ; ctest -j 10 -C Release

From 94115a302e43da82feb6192a8592ad1e79d2a8e7 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 21:22:47 +0200
Subject: [PATCH 07/16] :checkered_flag: exclude slow Unicode test

---
 .github/workflows/windows.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index f1cf8a08..ceb6c9e9 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -10,8 +10,8 @@ jobs:
     steps:
     - uses: actions/checkout@v1
     - name: cmake
-      run: cmake -S . -B build -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE=Release
+      run: cmake -S . -B build -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE=Debug
     - name: build
       run: cmake --build build --parallel 10
     - name: test
-      run: cd build ; ctest -j 10 -C Release
+      run: cd build ; ctest -j 10 -C Debug --exclude-regex "test-unicode"

From 7dbe5cf904f34c69045324d28f2ebf86f246990b Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 21:43:33 +0200
Subject: [PATCH 08/16] :memo: update badges

---
 README.md | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 612b8a66..1a523472 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,11 @@
 
 [![Build Status](https://travis-ci.org/nlohmann/json.svg?branch=master)](https://travis-ci.org/nlohmann/json)
 [![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk/branch/develop?svg=true)](https://ci.appveyor.com/project/nlohmann/json)
+![Ubuntu](https://github.com/nlohmann/json/workflows/Ubuntu/badge.svg)
+![macOS](https://github.com/nlohmann/json/workflows/macOS/badge.svg)
+![Windows](https://github.com/nlohmann/json/workflows/Windows/badge.svg)
 [![Build Status](https://circleci.com/gh/nlohmann/json.svg?style=svg)](https://circleci.com/gh/nlohmann/json)
-[![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json)
+[![Coverage Status](https://coveralls.io/repos/github/nlohmann/json/badge.svg?branch=develop)](https://coveralls.io/github/nlohmann/json?branch=develop)
 [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json)
 [![Codacy Badge](https://api.codacy.com/project/badge/Grade/f3732b3327e34358a0e9d1fe9f661f08)](https://www.codacy.com/app/nlohmann/json?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nlohmann/json&amp;utm_campaign=Badge_Grade)
 [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/nlohmann/json.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/nlohmann/json/context:cpp)

From 6778ad8b0a84d1cdc536ada8b63947c4d0df8bdb Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 12 May 2020 22:26:55 +0200
Subject: [PATCH 09/16] :memo: update year

---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 1a523472..d439d4a8 100644
--- a/README.md
+++ b/README.md
@@ -1053,10 +1053,10 @@ json j_from_ubjson = json::from_ubjson(v_ubjson);
 
 ## Supported compilers
 
-Though it's 2019 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work:
+Though it's 2020 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work:
 
-- GCC 4.8 - 9.2 (and possibly later)
-- Clang 3.4 - 9.0 (and possibly later)
+- GCC 4.8 - 10.0 (and possibly later)
+- Clang 3.4 - 10.0 (and possibly later)
 - Intel C++ Compiler 17.0.2 (and possibly later)
 - Microsoft Visual C++ 2015 / Build Tools 14.0.25123.0 (and possibly later)
 - Microsoft Visual C++ 2017 / Build Tools 15.5.180.51428 (and possibly later)

From f6f350a5c74b76eaa77e8d07ba281a004477aaa7 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Wed, 13 May 2020 14:25:51 +0200
Subject: [PATCH 10/16] :loud_sound: add operating system output

---
 cmake/download_test_data.cmake | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/cmake/download_test_data.cmake b/cmake/download_test_data.cmake
index c6dc135b..757998d2 100644
--- a/cmake/download_test_data.cmake
+++ b/cmake/download_test_data.cmake
@@ -12,3 +12,15 @@ add_custom_target(download_test_data
 
 # create a header with the path to the downloaded test data
 file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTORY \"${CMAKE_BINARY_DIR}/json_test_data\"\n")
+
+# determine the operating system (for debug and support purposes)
+find_program(UNAME_COMMAND uname)
+find_program(VER_COMMAND ver)
+if (UNAME_COMMAND)
+    execute_process(COMMAND ${UNAME_COMMAND} -a OUTPUT_VARIABLE UNAME_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+if (VER_COMMAND)
+    execute_process(COMMAND ${VER_COMMAND} OUTPUT_VARIABLE VER_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+
+message(STATUS "Operating system: ${UNAME_COMMAND_RESULT} ${VER_COMMAND_RESULT} ${CMAKE_SYSTEM}")

From ec68bb33872f6b6808b0a89f930af387f8ccf416 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Wed, 13 May 2020 20:18:56 +0200
Subject: [PATCH 11/16] :memo: update CI list

---
 README.md | 57 +++++++++++++++++++++++++++----------------------------
 1 file changed, 28 insertions(+), 29 deletions(-)

diff --git a/README.md b/README.md
index d439d4a8..5c6272b0 100644
--- a/README.md
+++ b/README.md
@@ -1081,36 +1081,35 @@ Please note:
 
 - Unsupported versions of GCC and Clang are rejected by `#error` directives. This can be switched off by defining `JSON_SKIP_UNSUPPORTED_COMPILER_CHECK`. Note that you can expect no support in this case.
 
-The following compilers are currently used in continuous integration at [Travis](https://travis-ci.org/nlohmann/json), [AppVeyor](https://ci.appveyor.com/project/nlohmann/json), and [CircleCI](https://circleci.com/gh/nlohmann/json):
+The following compilers are currently used in continuous integration at [Travis](https://travis-ci.org/nlohmann/json), [AppVeyor](https://ci.appveyor.com/project/nlohmann/json), [GitHub Actions](https://github.com/nlohmann/json/actions), and [CircleCI](https://circleci.com/gh/nlohmann/json):
 
-| Compiler              | Operating System             | Version String |
-|-----------------------|------------------------------|----------------|
-| GCC 4.8.5             | Ubuntu 14.04.5 LTS           | g++-4.8 (Ubuntu 4.8.5-2ubuntu1~14.04.2) 4.8.5 |
-| GCC 4.9.4             | Ubuntu 14.04.1 LTS           | g++-4.9 (Ubuntu 4.9.4-2ubuntu1~14.04.1) 4.9.4 |
-| GCC 5.5.0             | Ubuntu 14.04.1 LTS           | g++-5 (Ubuntu 5.5.0-12ubuntu1~14.04) 5.5.0 20171010 |
-| GCC 6.3.0             | Debian 9 (stretch)           | g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 |
-| GCC 6.4.0             | Ubuntu 14.04.1 LTS           | g++-6 (Ubuntu 6.4.0-17ubuntu1~14.04) 6.4.0 20180424 |
-| GCC 7.3.0             | Ubuntu 14.04.1 LTS           | g++-7 (Ubuntu 7.3.0-21ubuntu1~14.04) 7.3.0 |
-| GCC 7.3.0             | Windows Server 2012 R2 (x64) | g++ (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 7.3.0 |
-| GCC 8.1.0             | Ubuntu 14.04.1 LTS           | g++-8 (Ubuntu 8.1.0-5ubuntu1~14.04) 8.1.0 |
-| GCC 9.2.1             | Ubuntu 14.05.1 LTS           | g++-9 (Ubuntu 9.2.1-16ubuntu1~14.04.1) 9.2.1 20191030 |
-| Clang 3.5.0           | Ubuntu 14.04.1 LTS           | clang version 3.5.0-4ubuntu2~trusty2 (tags/RELEASE_350/final) (based on LLVM 3.5.0) |
-| Clang 3.6.2           | Ubuntu 14.04.1 LTS           | clang version 3.6.2-svn240577-1~exp1 (branches/release_36) (based on LLVM 3.6.2) |
-| Clang 3.7.1           | Ubuntu 14.04.1 LTS           | clang version 3.7.1-svn253571-1~exp1 (branches/release_37) (based on LLVM 3.7.1) |
-| Clang 3.8.0           | Ubuntu 14.04.1 LTS           | clang version 3.8.0-2ubuntu3~trusty5 (tags/RELEASE_380/final) |
-| Clang 3.9.1           | Ubuntu 14.04.1 LTS           | clang version 3.9.1-4ubuntu3~14.04.3 (tags/RELEASE_391/rc2) |
-| Clang 4.0.1           | Ubuntu 14.04.1 LTS           | clang version 4.0.1-svn305264-1~exp1 (branches/release_40) |
-| Clang 5.0.2           | Ubuntu 14.04.1 LTS           | clang version 5.0.2-svn328729-1~exp1~20180509123505.100 (branches/release_50) |
-| Clang 6.0.1           | Ubuntu 14.04.1 LTS           | clang version 6.0.1-svn334776-1~exp1~20180726133705.85 (branches/release_60) |
-| Clang 7.0.1           | Ubuntu 14.04.1 LTS           | clang version 7.0.1-svn348686-1~exp1~20181213084532.54 (branches/release_70) |
-| Clang Xcode 9.3       | OSX 10.13.3                  | Apple LLVM version 9.1.0 (clang-902.0.39.2) |
-| Clang Xcode 10.0      | OSX 10.13.3                  | Apple LLVM version 10.0.0 (clang-1000.11.45.2) |
-| Clang Xcode 10.1      | OSX 10.13.3                  | Apple LLVM version 10.0.0 (clang-1000.11.45.5) |
-| Clang Xcode 10.2      | OSX 10.14.4                  | Apple LLVM version 10.0.1 (clang-1001.0.46.4) |
-| Clang Xcode 11.2.1    | OSX 10.14.4                  | Apple LLVM version 11.0.0 (clang-1100.0.33.12) |
-| Visual Studio 14 2015 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 14.0.25420.1, MSVC 19.0.24215.1 |
-| Visual Studio 15 2017 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 15.9.21+g9802d43bc3, MSVC 19.16.27032.1 |
-| Visual Studio 16 2019 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 16.3.1+1def00d3d, MSVC 19.23.28106.4 |
+| Compiler                   | Operating System         | CI Provider    |
+|----------------------------|--------------------------|----------------|
+| AppleClang 10.0.0.10001145 | Darwin-17.7.0            | Travis         |
+| AppleClang 10.0.1.10010046 | Darwin-18.5.0            | Travis         |
+| AppleClang 11.0.0.11000033 | Darwin-18.7.0            | Travis         |
+| AppleClang 11.0.3.11030032 | Darwin-19.4.0            | GitHub Actions |
+| AppleClang 9.1.0.9020039   | Darwin-17.4.0            | Travis         |
+| AppleClang 9.1.0.9020039   | Darwin-17.7.0            | Travis         |
+| Clang 3.5.0                | Linux-4.4.0-104-generic  | Travis         |
+| Clang 3.6.2                | Linux-4.4.0-104-generic  | Travis         |
+| Clang 3.7.1                | Linux-4.4.0-104-generic  | Travis         |
+| Clang 3.8.0                | Linux-4.4.0-104-generic  | Travis         |
+| Clang 3.9.1                | Linux-4.4.0-104-generic  | Travis         |
+| Clang 4.0.1                | Linux-4.4.0-104-generic  | Travis         |
+| Clang 5.0.2                | Linux-4.4.0-104-generic  | Travis         |
+| Clang 6.0.1                | Linux-4.4.0-104-generic  | Travis         |
+| Clang 7.1.0                | Linux-4.4.0-104-generi   | Travis         |
+| GNU 4.8.5                  | Linux-4.4.0-104-generic  | Travis         |
+| GNU 4.9.4                  | Linux-4.4.0-104-generic  | Travis         |
+| GNU 5.5.0                  | Linux-4.4.0-104-generic  | Travis         |
+| GNU 6.3.0                  | Linux-5.3.0-1017-aws     | Circle CI      |
+| GNU 6.5.0                  | Linux-4.4.0-104-generic  | Travis         |
+| GNU 7.5.0                  | Linux-4.4.0-104-generic  | Travis         |
+| GNU 7.5.0                  | Linux-5.3.0-1020-azure   | GitHub Actions |
+| GNU 8.4.0                  | Linux-4.4.0-104-generic  | Travis         |
+| GNU 9.3.0                  | Linux-4.4.0-104-generic  | Travis         |
+| MSVC 19.25.28614.0         | Windows-10.0.17763       | GitHub Actions |
 
 ## License
 

From 33ae93beed9cbebdf2206c88d62c8385a7de1207 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Thu, 14 May 2020 07:55:01 +0200
Subject: [PATCH 12/16] :memo: update CI list

---
 README.md | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 5c6272b0..adeb36bb 100644
--- a/README.md
+++ b/README.md
@@ -1085,12 +1085,12 @@ The following compilers are currently used in continuous integration at [Travis]
 
 | Compiler                   | Operating System         | CI Provider    |
 |----------------------------|--------------------------|----------------|
+| AppleClang 9.1.0.9020039   | Darwin-17.4.0            | Travis         |
+| AppleClang 9.1.0.9020039   | Darwin-17.7.0            | Travis         |
 | AppleClang 10.0.0.10001145 | Darwin-17.7.0            | Travis         |
 | AppleClang 10.0.1.10010046 | Darwin-18.5.0            | Travis         |
 | AppleClang 11.0.0.11000033 | Darwin-18.7.0            | Travis         |
 | AppleClang 11.0.3.11030032 | Darwin-19.4.0            | GitHub Actions |
-| AppleClang 9.1.0.9020039   | Darwin-17.4.0            | Travis         |
-| AppleClang 9.1.0.9020039   | Darwin-17.7.0            | Travis         |
 | Clang 3.5.0                | Linux-4.4.0-104-generic  | Travis         |
 | Clang 3.6.2                | Linux-4.4.0-104-generic  | Travis         |
 | Clang 3.7.1                | Linux-4.4.0-104-generic  | Travis         |
@@ -1105,10 +1105,14 @@ The following compilers are currently used in continuous integration at [Travis]
 | GNU 5.5.0                  | Linux-4.4.0-104-generic  | Travis         |
 | GNU 6.3.0                  | Linux-5.3.0-1017-aws     | Circle CI      |
 | GNU 6.5.0                  | Linux-4.4.0-104-generic  | Travis         |
+| GNU 7.3.0 (MinGW)          | Windows-6.3.9600         | AppVeyor       |
 | GNU 7.5.0                  | Linux-4.4.0-104-generic  | Travis         |
 | GNU 7.5.0                  | Linux-5.3.0-1020-azure   | GitHub Actions |
 | GNU 8.4.0                  | Linux-4.4.0-104-generic  | Travis         |
 | GNU 9.3.0                  | Linux-4.4.0-104-generic  | Travis         |
+| MSVC 19.0.24241.7          | Windows-6.3.9600         | AppVeyor       |
+| MSVC 19.16.27035.0         | Windows-10.0.14393       | AppVeyor       |
+| MSVC 19.25.28614.0         | Windows-10.0.17763       | AppVeyor       |
 | MSVC 19.25.28614.0         | Windows-10.0.17763       | GitHub Actions |
 
 ## License

From e91236e6d36baeb6cd2a2f8443e793cb922e4dc7 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Thu, 14 May 2020 13:33:10 +0200
Subject: [PATCH 13/16] :loud_sound: add compiler version output

---
 cmake/download_test_data.cmake | 33 +++++++++++++++++++++++++++++----
 1 file changed, 29 insertions(+), 4 deletions(-)

diff --git a/cmake/download_test_data.cmake b/cmake/download_test_data.cmake
index 757998d2..64845bd4 100644
--- a/cmake/download_test_data.cmake
+++ b/cmake/download_test_data.cmake
@@ -16,11 +16,36 @@ file(WRITE ${CMAKE_BINARY_DIR}/include/test_data.hpp "#define TEST_DATA_DIRECTOR
 # determine the operating system (for debug and support purposes)
 find_program(UNAME_COMMAND uname)
 find_program(VER_COMMAND ver)
-if (UNAME_COMMAND)
-    execute_process(COMMAND ${UNAME_COMMAND} -a OUTPUT_VARIABLE UNAME_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
-endif()
+find_program(LSB_RELEASE_COMMAND lsb_release)
+find_program(SW_VERS_COMMAND sw_vers)
+set(OS_VERSION_STRINGS "${CMAKE_SYSTEM}")
 if (VER_COMMAND)
     execute_process(COMMAND ${VER_COMMAND} OUTPUT_VARIABLE VER_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${VER_COMMAND_RESULT}")
+endif()
+if (SW_VERS_COMMAND)
+    execute_process(COMMAND ${SW_VERS_COMMAND} OUTPUT_VARIABLE SW_VERS_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    string(REGEX REPLACE "[ ]*\n" "; " SW_VERS_COMMAND_RESULT "${SW_VERS_COMMAND_RESULT}")
+    set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${SW_VERS_COMMAND_RESULT}")
+endif()
+if (LSB_RELEASE_COMMAND)
+    execute_process(COMMAND ${LSB_RELEASE_COMMAND} -a OUTPUT_VARIABLE LSB_RELEASE_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    string(REGEX REPLACE "[ ]*\n" "; " LSB_RELEASE_COMMAND_RESULT "${LSB_RELEASE_COMMAND_RESULT}")
+    set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${LSB_RELEASE_COMMAND_RESULT}")
+endif()
+if (UNAME_COMMAND)
+    execute_process(COMMAND ${UNAME_COMMAND} -a OUTPUT_VARIABLE UNAME_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${UNAME_COMMAND_RESULT}")
 endif()
 
-message(STATUS "Operating system: ${UNAME_COMMAND_RESULT} ${VER_COMMAND_RESULT} ${CMAKE_SYSTEM}")
+message(STATUS "Operating system: ${OS_VERSION_STRINGS}")
+
+# determine the compiler (for debug and support purposes)
+if (MSVC)
+    execute_process(COMMAND ${CMAKE_CXX_COMPILER} OUTPUT_VARIABLE CXX_VERSION_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    set(CMAKE_CXX_COMPILER "${CXX_VERSION_RESULT}; MSVC_VERSION=${MSVC_VERSION}; MSVC_TOOLSET_VERSION=${MSVC_TOOLSET_VERSION}")
+else()
+    execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE CXX_VERSION_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+string(REGEX REPLACE "[ ]*\n" "; " CXX_VERSION_RESULT "${CXX_VERSION_RESULT}")
+message(STATUS "Compiler: ${CXX_VERSION_RESULT}")

From f4cc7290549d75185a0203b320c9ce345e347af6 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Thu, 14 May 2020 13:37:59 +0200
Subject: [PATCH 14/16] :loud_sound: add compiler version output

---
 cmake/download_test_data.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmake/download_test_data.cmake b/cmake/download_test_data.cmake
index 64845bd4..0940382a 100644
--- a/cmake/download_test_data.cmake
+++ b/cmake/download_test_data.cmake
@@ -42,7 +42,7 @@ message(STATUS "Operating system: ${OS_VERSION_STRINGS}")
 
 # determine the compiler (for debug and support purposes)
 if (MSVC)
-    execute_process(COMMAND ${CMAKE_CXX_COMPILER} OUTPUT_VARIABLE CXX_VERSION_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    execute_process(COMMAND ${CMAKE_CXX_COMPILER} OUTPUT_VARIABLE CXX_VERSION_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE CXX_VERSION_RESULT ERROR_STRIP_TRAILING_WHITESPACE)
     set(CMAKE_CXX_COMPILER "${CXX_VERSION_RESULT}; MSVC_VERSION=${MSVC_VERSION}; MSVC_TOOLSET_VERSION=${MSVC_TOOLSET_VERSION}")
 else()
     execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE CXX_VERSION_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)

From fc267af9092bc2042b37d844053ad934397ae631 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Thu, 14 May 2020 17:53:00 +0200
Subject: [PATCH 15/16] :memo: update CI list

---
 README.md                      | 64 ++++++++++++++++++----------------
 cmake/download_test_data.cmake |  6 ++--
 2 files changed, 36 insertions(+), 34 deletions(-)

diff --git a/README.md b/README.md
index adeb36bb..fa5cef68 100644
--- a/README.md
+++ b/README.md
@@ -1083,37 +1083,39 @@ Please note:
 
 The following compilers are currently used in continuous integration at [Travis](https://travis-ci.org/nlohmann/json), [AppVeyor](https://ci.appveyor.com/project/nlohmann/json), [GitHub Actions](https://github.com/nlohmann/json/actions), and [CircleCI](https://circleci.com/gh/nlohmann/json):
 
-| Compiler                   | Operating System         | CI Provider    |
-|----------------------------|--------------------------|----------------|
-| AppleClang 9.1.0.9020039   | Darwin-17.4.0            | Travis         |
-| AppleClang 9.1.0.9020039   | Darwin-17.7.0            | Travis         |
-| AppleClang 10.0.0.10001145 | Darwin-17.7.0            | Travis         |
-| AppleClang 10.0.1.10010046 | Darwin-18.5.0            | Travis         |
-| AppleClang 11.0.0.11000033 | Darwin-18.7.0            | Travis         |
-| AppleClang 11.0.3.11030032 | Darwin-19.4.0            | GitHub Actions |
-| Clang 3.5.0                | Linux-4.4.0-104-generic  | Travis         |
-| Clang 3.6.2                | Linux-4.4.0-104-generic  | Travis         |
-| Clang 3.7.1                | Linux-4.4.0-104-generic  | Travis         |
-| Clang 3.8.0                | Linux-4.4.0-104-generic  | Travis         |
-| Clang 3.9.1                | Linux-4.4.0-104-generic  | Travis         |
-| Clang 4.0.1                | Linux-4.4.0-104-generic  | Travis         |
-| Clang 5.0.2                | Linux-4.4.0-104-generic  | Travis         |
-| Clang 6.0.1                | Linux-4.4.0-104-generic  | Travis         |
-| Clang 7.1.0                | Linux-4.4.0-104-generi   | Travis         |
-| GNU 4.8.5                  | Linux-4.4.0-104-generic  | Travis         |
-| GNU 4.9.4                  | Linux-4.4.0-104-generic  | Travis         |
-| GNU 5.5.0                  | Linux-4.4.0-104-generic  | Travis         |
-| GNU 6.3.0                  | Linux-5.3.0-1017-aws     | Circle CI      |
-| GNU 6.5.0                  | Linux-4.4.0-104-generic  | Travis         |
-| GNU 7.3.0 (MinGW)          | Windows-6.3.9600         | AppVeyor       |
-| GNU 7.5.0                  | Linux-4.4.0-104-generic  | Travis         |
-| GNU 7.5.0                  | Linux-5.3.0-1020-azure   | GitHub Actions |
-| GNU 8.4.0                  | Linux-4.4.0-104-generic  | Travis         |
-| GNU 9.3.0                  | Linux-4.4.0-104-generic  | Travis         |
-| MSVC 19.0.24241.7          | Windows-6.3.9600         | AppVeyor       |
-| MSVC 19.16.27035.0         | Windows-10.0.14393       | AppVeyor       |
-| MSVC 19.25.28614.0         | Windows-10.0.17763       | AppVeyor       |
-| MSVC 19.25.28614.0         | Windows-10.0.17763       | GitHub Actions |
+| Compiler                                                        | Operating System   | CI Provider    |
+|-----------------------------------------------------------------|--------------------|----------------|
+| Apple Clang 9.1.0 (clang-902.0.39.1); Xcode 9.3                 | macOS 10.13.3      | Travis         |
+| Apple Clang 9.1.0 (clang-902.0.39.2); Xcode 9.4.1               | macOS 10.13.6      | Travis         |
+| Apple Clang 10.0.0 (clang-1000.11.45.2); Xcode 10.0             | macOS 10.13.6      | Travis         |
+| Apple Clang 10.0.0 (clang-1000.11.45.5); Xcode 10.1             | macOS 10.13.6      | Travis         |
+| Apple Clang 10.0.1 (clang-1001.0.46.4); Xcode 10.2.1            | macOS 10.14.4      | Travis         |
+| Apple Clang 11.0.0 (clang-1100.0.33.12); Xcode 11.2.1           | macOS 10.14.6      | Travis         |
+| Apple Clang 11.0.3 (clang-1103.0.32.59); Xcode 11.4.1           | macOS 10.15.4      | GitHub Actions |
+| Clang 3.5.0 (3.5.0-4ubuntu2~trusty2)                            | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 3.6.2 (3.6.2-svn240577-1~exp1)                            | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 3.7.1 (3.7.1-svn253571-1~exp1)                            | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 3.8.0 (3.8.0-2ubuntu3~trusty5)                            | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 3.9.1 (3.9.1-4ubuntu3~14.04.3)                            | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 4.0.1 (4.0.1-svn305264-1~exp1)                            | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 5.0.2 (version 5.0.2-svn328729-1~exp1~20180509123505.100) | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 6.0.1 (6.0.1-svn334776-1~exp1~20190309042707.121)         | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 7.1.0 (7.1.0-svn353565-1~exp1~20190419134007.64)          | Ubuntu 14.04.5 LTS | Travis         |
+| Clang 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)                       | Ubuntu 18.04.4 LTS | Travis         |
+| GCC 4.8.5 (Ubuntu 4.8.5-4ubuntu8~14.04.2)                       | Ubuntu 14.04.5 LTS | Travis         |
+| GCC 4.9.4 (Ubuntu 4.9.4-2ubuntu1~14.04.1)                       | Ubuntu 14.04.5 LTS | Travis         |
+| GCC 5.5.0 (Ubuntu 5.5.0-12ubuntu1~14.04)                        | Ubuntu 14.04.5 LTS | Travis         |
+| GCC 6.3.0 (Debian 6.3.0-18+deb9u1)                              | Debian 9           | Circle CI      |
+| GCC 6.5.0 (Ubuntu 6.5.0-2ubuntu1~14.04.1)                       | Ubuntu 14.04.5 LTS | Travis         |
+| GCC 7.3.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)   | Windows-6.3.9600   | AppVeyor       |
+| GCC 7.5.0 (Ubuntu 7.5.0-3ubuntu1~14.04.1)                       | Ubuntu 14.04.5 LTS | Travis         |
+| GCC 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)                         | Ubuntu 18.04.4 LTS | GitHub Actions |
+| GCC 8.4.0 (Ubuntu 8.4.0-1ubuntu1~14.04)                         | Ubuntu 14.04.5 LTS | Travis         |
+| GCC 9.3.0 (Ubuntu 9.3.0-11ubuntu0~14.04)                        | Ubuntu 14.04.5 LTS | Travis         |
+| MSVC 19.0.24241.7 (Build Engine version 14.0.25420.1)           | Windows-6.3.9600   | AppVeyor       |
+| MSVC 19.16.27035.0 (15.9.21+g9802d43bc3 for .NET Framework)     | Windows-10.0.14393 | AppVeyor       |
+| MSVC 19.25.28614.0 (Build Engine version 16.5.0+d4cbfca49 for .NET Framework) | Windows-10.0.17763  | AppVeyor       |
+| MSVC 19.25.28614.0 (Build Engine version 16.5.0+d4cbfca49 for .NET Framework) | Windows-10.0.17763  | GitHub Actions |
 
 ## License
 
diff --git a/cmake/download_test_data.cmake b/cmake/download_test_data.cmake
index 0940382a..53aef17f 100644
--- a/cmake/download_test_data.cmake
+++ b/cmake/download_test_data.cmake
@@ -24,17 +24,17 @@ if (VER_COMMAND)
     set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${VER_COMMAND_RESULT}")
 endif()
 if (SW_VERS_COMMAND)
-    execute_process(COMMAND ${SW_VERS_COMMAND} OUTPUT_VARIABLE SW_VERS_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    execute_process(COMMAND ${SW_VERS_COMMAND} OUTPUT_VARIABLE SW_VERS_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
     string(REGEX REPLACE "[ ]*\n" "; " SW_VERS_COMMAND_RESULT "${SW_VERS_COMMAND_RESULT}")
     set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${SW_VERS_COMMAND_RESULT}")
 endif()
 if (LSB_RELEASE_COMMAND)
-    execute_process(COMMAND ${LSB_RELEASE_COMMAND} -a OUTPUT_VARIABLE LSB_RELEASE_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    execute_process(COMMAND ${LSB_RELEASE_COMMAND} -a OUTPUT_VARIABLE LSB_RELEASE_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
     string(REGEX REPLACE "[ ]*\n" "; " LSB_RELEASE_COMMAND_RESULT "${LSB_RELEASE_COMMAND_RESULT}")
     set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${LSB_RELEASE_COMMAND_RESULT}")
 endif()
 if (UNAME_COMMAND)
-    execute_process(COMMAND ${UNAME_COMMAND} -a OUTPUT_VARIABLE UNAME_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+    execute_process(COMMAND ${UNAME_COMMAND} -a OUTPUT_VARIABLE UNAME_COMMAND_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
     set(OS_VERSION_STRINGS "${OS_VERSION_STRINGS}; ${UNAME_COMMAND_RESULT}")
 endif()
 

From 16d78a82e0ba307b666c28d02b29e553685a2a4a Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Mon, 18 May 2020 09:12:18 +0200
Subject: [PATCH 16/16] :construction_worker: add link to GitHub workflows

---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index fa5cef68..40ccf176 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,9 @@
 
 [![Build Status](https://travis-ci.org/nlohmann/json.svg?branch=master)](https://travis-ci.org/nlohmann/json)
 [![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk/branch/develop?svg=true)](https://ci.appveyor.com/project/nlohmann/json)
-![Ubuntu](https://github.com/nlohmann/json/workflows/Ubuntu/badge.svg)
-![macOS](https://github.com/nlohmann/json/workflows/macOS/badge.svg)
-![Windows](https://github.com/nlohmann/json/workflows/Windows/badge.svg)
+[![Ubuntu](https://github.com/nlohmann/json/workflows/Ubuntu/badge.svg)](https://github.com/nlohmann/json/actions?query=workflow%3AUbuntu)
+[![macOS](https://github.com/nlohmann/json/workflows/macOS/badge.svg)](https://github.com/nlohmann/json/actions?query=workflow%3AmacOS)
+[![Windows](https://github.com/nlohmann/json/workflows/Windows/badge.svg)](https://github.com/nlohmann/json/actions?query=workflow%3AWindows)
 [![Build Status](https://circleci.com/gh/nlohmann/json.svg?style=svg)](https://circleci.com/gh/nlohmann/json)
 [![Coverage Status](https://coveralls.io/repos/github/nlohmann/json/badge.svg?branch=develop)](https://coveralls.io/github/nlohmann/json?branch=develop)
 [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json)