SDL: docs/release_checklist.md: Document how/where to bump version numbers

From 22002d91557a0f1325aadaa433b46e6481fc2d0a Mon Sep 17 00:00:00 2001
From: Simon McVittie <[EMAIL REDACTED]>
Date: Tue, 3 May 2022 14:09:12 +0100
Subject: [PATCH] docs/release_checklist.md: Document how/where to bump version
 numbers

Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 CMakeLists.txt            |  9 +-------
 configure.ac              | 11 +---------
 docs/doxyfile             |  1 +
 docs/release_checklist.md | 43 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 46 insertions(+), 18 deletions(-)
 create mode 100644 docs/release_checklist.md

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49850fc41a0..f08ed4b5842 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,14 +56,7 @@ set(CMAKE_MODULE_PATH "${SDL2_SOURCE_DIR}/cmake")
 include(${SDL2_SOURCE_DIR}/cmake/macros.cmake)
 include(${SDL2_SOURCE_DIR}/cmake/sdlchecks.cmake)
 
-# General settings
-# Edit include/SDL_version.h and change the version, then:
-#   SDL_MICRO_VERSION += 1;
-#   SDL_INTERFACE_AGE += 1;
-#   SDL_BINARY_AGE += 1;
-# if any functions have been added, set SDL_INTERFACE_AGE to 0.
-# if backwards compatibility has been broken,
-# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
+# See docs/release_checklist.md
 set(SDL_MAJOR_VERSION 2)
 set(SDL_MINOR_VERSION 0)
 set(SDL_MICRO_VERSION 23)
diff --git a/configure.ac b/configure.ac
index 128e9916f22..5c036ca7fa0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,16 +10,7 @@ dnl Save the CFLAGS to see whether they were passed in or generated
 orig_CFLAGS="$CFLAGS"
 
 dnl Set various version strings - taken gratefully from the GTk sources
-#
-# Making releases:
-# Edit include/SDL_version.h and change the version, then:
-#   SDL_MICRO_VERSION += 1;
-#   SDL_INTERFACE_AGE += 1;
-#   SDL_BINARY_AGE += 1;
-# if any functions have been added, set SDL_INTERFACE_AGE to 0.
-# if backwards compatibility has been broken,
-# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
-#
+# See docs/release_checklist.md
 SDL_MAJOR_VERSION=2
 SDL_MINOR_VERSION=0
 SDL_MICRO_VERSION=23
diff --git a/docs/doxyfile b/docs/doxyfile
index baf1c98dec9..7b80a3a8da9 100644
--- a/docs/doxyfile
+++ b/docs/doxyfile
@@ -640,6 +640,7 @@ EXCLUDE                = ../include/SDL_opengles2_gl2ext.h \
                          ../include/SDL_opengles.h \
                          ../include/SDL_opengl.h \
                          ../include/SDL_egl.h \
+                         ./release_checklist.md \
 
 
 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
diff --git a/docs/release_checklist.md b/docs/release_checklist.md
new file mode 100644
index 00000000000..4fec36d1497
--- /dev/null
+++ b/docs/release_checklist.md
@@ -0,0 +1,43 @@
+# Release checklist
+
+* Update `WhatsNew.txt`
+
+* Bump version number to 2.0.EVEN for stable release
+
+    * `configure.ac`, `CMakeLists.txt`: `SDL_*_VERSION`
+    * `Xcode/SDL/Info-Framework.plist`: `CFBundleShortVersionString`,
+        `CFBundleVersion`
+    * `Makefile.os2`: `VERSION`
+    * `build-scripts/winrtbuild.ps1`: `$SDLVersion`
+    * `include/SDL_version.h`: `SDL_*_VERSION`, `SDL_PATCHLEVEL`
+    * `src/main/windows/version.rc`: `FILEVERSION`, `PRODUCTVERSION`,
+        `FileVersion`, `ProductVersion`
+
+* Bump ABI version information
+
+    * `configure.ac`: `CMakeLists.txt`: `SDL_INTERFACE_AGE`, `SDL_BINARY_AGE`
+        * `SDL_INTERFACE_AGE += 1`
+        * `SDL_BINARY_AGE += 1`
+        * if any functions have been added, set `SDL_INTERFACE_AGE` to 0
+        * if backwards compatibility has been broken,
+            set both `SDL_BINARY_AGE` and `SDL_INTERFACE_AGE` to 0
+    * `Xcode/SDL/SDL.xcodeproj/project.pbxproj`: `DYLIB_CURRENT_VERSION`,
+        `DYLIB_COMPATIBILITY_VERSION`
+        * increment second number in `DYLIB_CURRENT_VERSION`
+        * if any functions have been added, increment first number in
+            `DYLIB_CURRENT_VERSION` and set second number to 0
+        * if backwards compatibility has been broken,
+            increase `DYLIB_COMPATIBILITY_VERSION` (?)
+
+* Regenerate `configure`
+
+* Do the release
+
+* Bump version number to 2.0.ODD for next development version
+
+    * Same places as listed above
+
+* Bump ABI version information
+
+    * Same places as listed above
+        * initially assume that there is no new ABI