From 4c297280f950c89529a265cfae3c50b5a60350d4 Mon Sep 17 00:00:00 2001
From: Diggory Hardy <git@dhardy.name>
Date: Wed, 31 Mar 2021 16:56:14 +0100
Subject: [PATCH 1/4] CI: re-enable windows tests; add beta toolchain tests

---
 .github/workflows/test.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 9abd463ec..9180c597f 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -36,15 +36,15 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [ubuntu-latest, macos-latest]
-        # disabled because of shaderc dependencies: windows-latest
+        os: [ubuntu-latest, macos-latest, windows-latest]
+        toolchain: [beta, nightly]
 
     steps:
       - uses: actions/checkout@v2
       - name: Install latest nightly
         uses: actions-rs/toolchain@v1
         with:
-            toolchain: nightly
+            toolchain: ${{ matrix.toolchain }}
             override: true
       - name: Install xcb libraries
         if: matrix.os == 'ubuntu-latest'

From 79857bbb6d166778c434db004e518883db278106 Mon Sep 17 00:00:00 2001
From: Diggory Hardy <git@dhardy.name>
Date: Wed, 31 Mar 2021 17:18:59 +0100
Subject: [PATCH 2/4] CI: avoid using nightly features on stable/beta channels

---
 .github/workflows/test.yml | 29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 9180c597f..0004313ef 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -7,8 +7,8 @@ on:
     branches: [ master ]
 
 jobs:
-  check:
-    name: Format and Doc
+  nightly:
+    name: Nightly, format and Doc
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v2
@@ -30,22 +30,30 @@ jobs:
         run: cargo doc --manifest-path kas-theme/Cargo.toml --features stack_dst,unsize --no-deps
       - name: doc (kas-wgpu)
         run: cargo doc --manifest-path kas-wgpu/Cargo.toml --features stack_dst,unsize --no-deps
+      - name: test (kas)
+        run: cargo test --all-features
+      - name: test (kas-theme)
+        run: cargo test --manifest-path kas-theme/Cargo.toml --all-features
+      - name: test (kas-wgpu)
+        run: cargo test --manifest-path kas-wgpu/Cargo.toml --all-features
 
   test:
+    name: Test
     runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
-        toolchain: [beta, nightly]
+        toolchain: [beta]
 
     steps:
       - uses: actions/checkout@v2
-      - name: Install latest nightly
+      - name: Install toolchain
         uses: actions-rs/toolchain@v1
         with:
-            toolchain: ${{ matrix.toolchain }}
-            override: true
+          profile: minimal
+          toolchain: ${{ matrix.toolchain }}
+          override: true
       - name: Install xcb libraries
         if: matrix.os == 'ubuntu-latest'
         run: sudo apt-get install -y libxcb-shape0-dev libxcb-xfixes0-dev
@@ -57,11 +65,10 @@ jobs:
           cargo test
           # Note: we must test serde without winit and with winit
           cargo test --features serde
-          cargo test --all-features
+          cargo test --features internal_doc,shaping,markdown,yaml,json
       - name: test (kas-theme)
-        run: |
-          cargo test --manifest-path kas-theme/Cargo.toml --all-features
+        run: cargo test --manifest-path kas-theme/Cargo.toml
       - name: test (kas-wgpu)
         run: |
-          cargo test
-          cargo test --manifest-path kas-wgpu/Cargo.toml --all-features
+          cargo test --manifest-path kas-wgpu/Cargo.toml
+          cargo test --manifest-path kas-wgpu/Cargo.toml --features shaping

From 31a833ebbd2800b9aacbbe09d7fd80b9a9171437 Mon Sep 17 00:00:00 2001
From: Diggory Hardy <git@dhardy.name>
Date: Wed, 31 Mar 2021 17:23:17 +0100
Subject: [PATCH 3/4] Update README/doc regarding MSRV bump.

---
 CHANGELOG.md  | 4 ++++
 README.md     | 8 ++++----
 src/macros.rs | 2 +-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9860d2120..231fbcad4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [0.7.0] — ??
+
+Updated MSRV to 1.52.0 (currently beta).
+
 ## [0.6.0] — 2020-11-24
 
 This release covers significant revisions to the KAS-text API along with initial
diff --git a/README.md b/README.md
index ce4d94289..fb8c203ac 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ KAS GUI
 [![Test Status](https://github.com/kas-gui/kas/workflows/Tests/badge.svg?event=push)](https://github.com/kas-gui/kas/actions)
 [![kas-text](https://img.shields.io/badge/GitHub-kas--text-blueviolet)](https://github.com/kas-gui/kas-text/)
 [![Docs](https://docs.rs/kas/badge.svg)](https://docs.rs/kas)
-![Minimum rustc version](https://img.shields.io/badge/rustc-1.45+-lightgray.svg)
+![Minimum rustc version](https://img.shields.io/badge/rustc-1.52+-lightgray.svg)
 
 KAS, (historically the *toolKit Abstraction System*), is a general-purpose GUI toolkit.
 KAS's design provides:
@@ -114,9 +114,9 @@ Installation and dependencies
 
 #### Rust
 
-KAS requires [Rust] version 1.45 or greater. All examples are compatible with
-the **stable** channel, but using the **nightly** channel does have a couple of
-advantages:
+KAS requires [Rust] version 1.52 or greater (currently in **beta**: *usually*
+we maintain compatibility with the latest stable release).
+Using the **nightly** channel does have a couple of advantages:
 
 -   Proceedural macros emit better diagnostics. In some cases, diagnostics are
     missed without nightly rustc, hence **nightly is recommended for development**.
diff --git a/src/macros.rs b/src/macros.rs
index 8aab83ed9..3721be0a1 100644
--- a/src/macros.rs
+++ b/src/macros.rs
@@ -303,7 +303,7 @@
 //! elided types) and tends to produce terrible error messages. Accessing fields
 //! of the generated widgets from outside code is complicated. It would be much
 //! improved with [RFC 2524](https://github.com/rust-lang/rfcs/pull/2524)
-//! (essentially, anonymous types). And it requires Rust 1.45.0 (or nightly).
+//! (essentially, anonymous types).
 //!
 //! Lets start with some examples:
 //!

From b111fb022d1253295c295fe0293518aa1cdd1ea5 Mon Sep 17 00:00:00 2001
From: Diggory Hardy <git@dhardy.name>
Date: Wed, 31 Mar 2021 17:38:23 +0100
Subject: [PATCH 4/4] Nightly Ubuntu test: install XCB libraries

---
 .github/workflows/test.yml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 0004313ef..9468c9129 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -19,6 +19,9 @@ jobs:
           toolchain: nightly
           override: true
           components: rustfmt
+      - name: Install xcb libraries
+        run: sudo apt-get install -y libxcb-shape0-dev libxcb-xfixes0-dev
+
       - name: Rustfmt check
         uses: actions-rs/cargo@v1
         with: