Prepare 22.1.0
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 852c62d..61ca559 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -17,17 +17,50 @@
 
    However if you intend to build extensions on top of ``attrs`` you have to anticipate that.
 
-Changes for the upcoming release can be found in the `"changelog.d" directory <https://github.com/python-attrs/attrs/tree/main/changelog.d>`_ in our repository.
-
-..
-   Do *NOT* add changelog entries here!
-
-   This changelog is managed by towncrier and is compiled at release time.
-
-   See https://github.com/python-attrs/attrs/blob/main/.github/CONTRIBUTING.md#changelog for details.
-
 .. towncrier release notes start
 
+22.1.0 (2022-07-28)
+-------------------
+
+Backwards-incompatible Changes
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Python 2.7 is not supported anymore.
+
+  Dealing with Python 2.7 tooling has become too difficult for a volunteer-run project.
+
+  We have supported Python 2 more than 2 years after it was officially discontinued and feel that we have paid our dues.
+  All version up to 21.4.0 from December 2021 remain fully functional, of course.
+  `#936 <https://github.com/python-attrs/attrs/issues/936>`_
+- The deprecated ``cmp`` attribute of ``attrs.Attribute`` has been removed.
+  This does not affect the *cmp* argument to ``attr.s`` that can be used as a shortcut to set *eq* and *order* at the same time.
+  `#939 <https://github.com/python-attrs/attrs/issues/939>`_
+
+
+Changes
+^^^^^^^
+
+- Instantiation of frozen slotted classes is now faster.
+  `#898 <https://github.com/python-attrs/attrs/issues/898>`_
+- If an ``eq`` key is defined, it is also used before hashing the attribute.
+  `#909 <https://github.com/python-attrs/attrs/issues/909>`_
+- Added ``attrs.validators.min_len()``.
+  `#916 <https://github.com/python-attrs/attrs/issues/916>`_
+- ``attrs.validators.deep_iterable()``'s *member_validator* argument now also accepts a list of validators and wraps them in an ``attrs.validators.and_()``.
+  `#925 <https://github.com/python-attrs/attrs/issues/925>`_
+- Added missing type stub re-imports for ``attrs.converters`` and ``attrs.filters``.
+  `#931 <https://github.com/python-attrs/attrs/issues/931>`_
+- Added missing stub for ``attr(s).cmp_using()``.
+  `#949 <https://github.com/python-attrs/attrs/issues/949>`_
+- ``attrs.validators._in()``'s ``ValueError`` is not missing the attribute, expected options, and the value it got anymore.
+  `#951 <https://github.com/python-attrs/attrs/issues/951>`_
+- Python 3.11 is now officially supported.
+  `#969 <https://github.com/python-attrs/attrs/issues/969>`_
+
+
+----
+
+
 21.4.0 (2021-12-29)
 -------------------
 
diff --git a/changelog.d/898.change.rst b/changelog.d/898.change.rst
deleted file mode 100644
index 2b6c6d2..0000000
--- a/changelog.d/898.change.rst
+++ /dev/null
@@ -1 +0,0 @@
-Instantiation of frozen slotted classes is now faster.
diff --git a/changelog.d/909.change.rst b/changelog.d/909.change.rst
deleted file mode 100644
index baf9fe2..0000000
--- a/changelog.d/909.change.rst
+++ /dev/null
@@ -1 +0,0 @@
-If an ``eq`` key is defined, it is also used before hashing the attribute.
diff --git a/changelog.d/916.change.rst b/changelog.d/916.change.rst
deleted file mode 100644
index 4a5ccd2..0000000
--- a/changelog.d/916.change.rst
+++ /dev/null
@@ -1 +0,0 @@
-Added ``attrs.validators.min_len()``.
diff --git a/changelog.d/925.change.rst b/changelog.d/925.change.rst
deleted file mode 100644
index ddc7952..0000000
--- a/changelog.d/925.change.rst
+++ /dev/null
@@ -1 +0,0 @@
-``attrs.validators.deep_iterable()``'s *member_validator* argument now also accepts a list of validators and wraps them in an ``attrs.validators.and_()``.
diff --git a/changelog.d/931.change.rst b/changelog.d/931.change.rst
deleted file mode 100644
index 73ec071..0000000
--- a/changelog.d/931.change.rst
+++ /dev/null
@@ -1 +0,0 @@
-Added missing type stub re-imports for ``attrs.converters`` and ``attrs.filters``.
diff --git a/changelog.d/936.breaking.rst b/changelog.d/936.breaking.rst
deleted file mode 100644
index 1a30d12..0000000
--- a/changelog.d/936.breaking.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Python 2.7 is not supported anymore.
-
-Dealing with Python 2.7 tooling has become too difficult for a volunteer-run project.
-
-We have supported Python 2 more than 2 years after it was officially discontinued and feel that we have paid our dues.
-All version up to 21.4.0 from December 2021 remain fully functional, of course.
diff --git a/changelog.d/939.breaking.rst b/changelog.d/939.breaking.rst
deleted file mode 100644
index 6782fa9..0000000
--- a/changelog.d/939.breaking.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-The deprecated ``cmp`` attribute of ``attrs.Attribute`` has been removed.
-This does not affect the *cmp* argument to ``attr.s`` that can be used as a shortcut to set *eq* and *order* at the same time.
diff --git a/changelog.d/949.change.rst b/changelog.d/949.change.rst
deleted file mode 100644
index 6e12e53..0000000
--- a/changelog.d/949.change.rst
+++ /dev/null
@@ -1 +0,0 @@
-Added missing stub for ``attr(s).cmp_using()``.
diff --git a/changelog.d/951.change.rst b/changelog.d/951.change.rst
deleted file mode 100644
index 6ded5fe..0000000
--- a/changelog.d/951.change.rst
+++ /dev/null
@@ -1 +0,0 @@
-``attrs.validators._in()``'s ``ValueError`` is not missing the attribute, expected options, and the value it got anymore.
diff --git a/changelog.d/969.change.rst b/changelog.d/969.change.rst
deleted file mode 100644
index a991347..0000000
--- a/changelog.d/969.change.rst
+++ /dev/null
@@ -1 +0,0 @@
-Python 3.11 is now officially supported.
diff --git a/src/attr/__init__.py b/src/attr/__init__.py
index b475913..386305d 100644
--- a/src/attr/__init__.py
+++ b/src/attr/__init__.py
@@ -23,7 +23,7 @@
 from ._version_info import VersionInfo
 
 
-__version__ = "22.1.0.dev0"
+__version__ = "22.1.0"
 __version_info__ = VersionInfo._from_version_string(__version__)
 
 __title__ = "attrs"