diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index e26b5e189a3ef7dab148087035c00c70e8c59c6a..94aa55f5ca9f3d95f2755907d9d38c9a0a4b93b0 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -83,11 +83,8 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        python-version: [3.6, 3.7]
-        sphinx: [">=3,<4"]
-        include:
-          - python-version: 3.8
-            sphinx: ">=2,<3"
+        python-version: ["3.6", "3.7", "3.8"]
+        sphinx: [">=3,<4", ">=4,<5"]
 
     steps:
     - uses: actions/checkout@v2
@@ -114,19 +111,22 @@ jobs:
 
     name: Tests on Windows
     runs-on: windows-latest
+    strategy:
+      matrix:
+        python-version: [3.8]
 
     steps:
     - uses: actions/checkout@v2
-    - name: Set up Python 3.7
+    - name: Set up Python 3.8
       uses: actions/setup-python@v2
       with:
-        python-version: 3.7
+        python-version: 3.8
     - uses: actions/cache@v2
       with:
         path: ~\AppData\Local\pip\Cache
-        key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
+        key: ${{ runner.os }}-${{ matrix.python-version }}-pip-${{ hashFiles('setup.py') }}
         restore-keys: |
-          ${{ runner.os }}-pip-
+          ${{ runner.os }}-${{ matrix.python-version }}-pip-
     - name: Install Python dependencies
       run: |
         python -m pip install --upgrade pip
@@ -139,19 +139,22 @@ jobs:
   build-book-osx:
     name: Build docs on OSX
     runs-on: macos-latest
+    strategy:
+      matrix:
+        python-version: [3.8]
 
     steps:
     - uses: actions/checkout@v2
-    - name: Set up Python 3.7
+    - name: Set up Python 3.8
       uses: actions/setup-python@v2
       with:
-        python-version: 3.7
+        python-version: 3.8
     - uses: actions/cache@v2
       with:
         path: ~\AppData\Local\pip\Cache
-        key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
+        key: ${{ runner.os }}-${{ matrix.python-version }}-pip-${{ hashFiles('setup.py') }}
         restore-keys: |
-          ${{ runner.os }}-pip-
+          ${{ runner.os }}-${{ matrix.python-version }}-pip-
     - name: Install Python dependencies
       run: |
         python -m pip install --upgrade pip
@@ -171,10 +174,10 @@ jobs:
     steps:
       - name: Checkout source
         uses: actions/checkout@v2
-      - name: Set up Python 3.7
+      - name: Set up Python 3.8
         uses: actions/setup-python@v1
         with:
-          python-version: 3.7
+          python-version: 3.8
       - name: Build package
         run: |
           pip install wheel
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 39ff859eb4f8ff24be92af4fcb36dbfbcdc72ce4..d66f0f9bf65b5d1b017a30a56e410e8d9e7c598d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,25 @@
 # Change Log
 
+## v0.12.0
+
+### New
+
+The primary change in this release is to update the requirements of `jupyter-book` from `sphinx>=2,4` to `sphinx>=3,<5` to support `sphinx>=4` via [#1448](https://github.com/executablebooks/jupyter-book/pull/1448).
+
+This includes upgrades to underlying packages:
+
+- `myst-nb` has been upgrade from `myst-nb~=0.12.0` to `myst-nb~=0.13.1`. Some new features were added in `v0.13+` and can
+  be seen in the [myst-nb changelog](https://github.com/executablebooks/MyST-NB/blob/master/CHANGELOG.md#change-log)
+- additional projects such as [jupytext](https://github.com/mwouts/jupytext), [sphinx-external-toc](https://github.com/executablebooks/sphinx-external-toc), [sphinx-jupyterbook-latex](https://github.com/executablebooks/sphinx-jupyterbook-latex), [sphinx-panels](https://github.com/executablebooks/sphinx-panels), and [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) were also upgraded as part of this release.
+
+Documentation has also received updates and fixes.
+
+Thanks to @bryanwweber, @chrisjsewell, @choldgraf, @gabri470, @jmshea, @joelostblom, @mmcky, @patrickmineault, @TomasBeuzen
+
+### Deprecations from upgrade to `myst-parser`
+
+- The [deprecations made to extension configurations and colon fences in `0.13.0`](https://github.com/executablebooks/MyST-Parser/blob/master/CHANGELOG.md#remove-v013-deprecations-%EF%B8%8F) have now been removed
+
 ## v0.11.3
 
 This release enables the use of the [singlehtml builder](https://www.sphinx-doc.org/en/master/usage/builders/index.html#sphinx.builders.singlehtml.SingleFileHTMLBuilder) and updates [sphinx-thebe](https://github.com/executablebooks/sphinx-thebe) and [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme)
diff --git a/docs/advanced/sphinx.md b/docs/advanced/sphinx.md
index d859852291e691dec752aa6530936b6e4f03d2d6..80d34a103c84a63984c6d6cebb51b9be564bbb40 100644
--- a/docs/advanced/sphinx.md
+++ b/docs/advanced/sphinx.md
@@ -217,7 +217,7 @@ These two extensions are highly customizable *via* Sphinx configuration.
 Some of their configuration is already exposed in the `_config.yml`, but you can also directly set configuration, see:
 
 * the [MyST-Parser configuration options](myst-parser:sphinx/config-options)
-* the [MyST-NB configuration options](myst-nb:start/config-options)
+* the [MyST-NB configuration options](myst-nb:config/reference)
 
 (sphinx/tex-macros)=
 ### Defining TeX macros
diff --git a/docs/content/execute.md b/docs/content/execute.md
index 60398396016ce95039fdc1641a58c8e4380e7fa8..93ce899fedd1dd15cf94baf11ea186b17f93be76 100644
--- a/docs/content/execute.md
+++ b/docs/content/execute.md
@@ -291,7 +291,7 @@ These outputs may appear in a mixed order and you may want them to be grouped an
 to display the correct `logical` ordering.
 
 This can be achieved using the [nb_merge_streams feature contained in
-`myst_nb`](myst-nb:use/formatting_outputs.html#group-stderr-stdout).
+`myst_nb`](myst-nb:use/format/group-stderr-stdout).
 
 You can enable this in your `_config.yml`:
 
diff --git a/docs/file-types/jupytext.Rmd b/docs/file-types/jupytext.Rmd
index ff6ef6402fd9a9f736b3f27adf9018353e8eeb6c..8b175d6567d86694db1821ea1d38de609f7b003d 100644
--- a/docs/file-types/jupytext.Rmd
+++ b/docs/file-types/jupytext.Rmd
@@ -66,7 +66,7 @@ This key should be a list mapping each cell to the starting line number in the o
 }
 ```
 
-This mapping allows for "true" error reporting, as described in [](myst-nb:start/error-reporting).
+This mapping allows for "true" error reporting, as described in [](myst-nb:myst/error-reporting).
 
 ## Using Jupytext
 
diff --git a/jupyter_book/__init__.py b/jupyter_book/__init__.py
index eca71ec77e2d029d3f5e25f1ffbaa5f844165074..cb59b85c4d2a63a0fa0418288b56db78d7f62f37 100644
--- a/jupyter_book/__init__.py
+++ b/jupyter_book/__init__.py
@@ -1,7 +1,7 @@
 """Build a book with Jupyter Notebooks and Sphinx."""
 from pathlib import Path
 
-__version__ = "0.11.3"
+__version__ = "0.12.0"
 
 
 def add_static_files(app, config):