diff --git a/CMakeLists.txt b/CMakeLists.txt index 5327874e7..718d38f21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,8 +58,8 @@ include(${SDL2_SOURCE_DIR}/cmake/sdlchecks.cmake) # See docs/release_checklist.md set(SDL_MAJOR_VERSION 2) -set(SDL_MINOR_VERSION 0) -set(SDL_MICRO_VERSION 23) +set(SDL_MINOR_VERSION 23) +set(SDL_MICRO_VERSION 0) set(SDL_INTERFACE_AGE 0) set(SDL_BINARY_AGE 23) set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}") @@ -74,11 +74,15 @@ set(SDL_CMAKE_DEBUG_POSTFIX "d" mark_as_advanced(CMAKE_IMPORT_LIBRARY_SUFFIX SDL_CMAKE_DEBUG_POSTFIX) # Calculate a libtool-like version number -math(EXPR LT_CURRENT "${SDL_MICRO_VERSION} - ${SDL_INTERFACE_AGE}") +math(EXPR LT_CURRENT "${SDL_MINOR_VERSION} - ${SDL_INTERFACE_AGE}") math(EXPR LT_AGE "${SDL_BINARY_AGE} - ${SDL_INTERFACE_AGE}") math(EXPR LT_MAJOR "${LT_CURRENT}- ${LT_AGE}") set(LT_REVISION "${SDL_INTERFACE_AGE}") -set(LT_RELEASE "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}") +# For historical reasons, the library name redundantly includes the major +# version twice: libSDL2-2.0.so.0. +# TODO: in SDL 3, set the OUTPUT_NAME to plain SDL3, which will simplify +# it to libSDL3.so.0 +set(LT_RELEASE "2.0") set(LT_VERSION "${LT_MAJOR}.${LT_AGE}.${LT_REVISION}") #message(STATUS "${LT_VERSION} :: ${LT_AGE} :: ${LT_REVISION} :: ${LT_CURRENT} :: ${LT_RELEASE}") diff --git a/Makefile.os2 b/Makefile.os2 index 53e742141..89985e67c 100644 --- a/Makefile.os2 +++ b/Makefile.os2 @@ -12,8 +12,8 @@ LIBNAME = SDL2 MAJOR_VERSION = 2 -MINOR_VERSION = 0 -MICRO_VERSION = 23 +MINOR_VERSION = 23 +MICRO_VERSION = 0 VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION) DESCRIPTION = Simple DirectMedia Layer 2 diff --git a/WhatsNew.txt b/WhatsNew.txt index 727ccc60b..401b0a754 100644 --- a/WhatsNew.txt +++ b/WhatsNew.txt @@ -2,10 +2,22 @@ This is a list of major changes in SDL's version history. --------------------------------------------------------------------------- -2.0.24: +2.24.0: --------------------------------------------------------------------------- General: +* New version numbering scheme, similar to GLib and Flatpak. + * An even number in the minor version (second component) indicates + a production-ready stable release such as 2.24.0, which would have + been 2.0.24 under the old system. + * The patchlevel (micro version, third component) indicates a + bugfix-only update: for example, 2.24.1 would be a bugfix-only + release to fix bugs in 2.24.0, without adding new features. + * An odd number in the minor version indicates a prerelease such + as 2.23.0. Stable distributions should not use these prereleases. + * The patchlevel indicates successive prereleases, for example + 2.23.1 and 2.23.2 would be prereleases during development of + the SDL 2.24.0 stable release. * Added SDL_bsearch() to the stdlib routines * Added functions to get the platform dependent name for a joystick or game controller: * SDL_JoystickPathForIndex() diff --git a/Xcode/SDL/Info-Framework.plist b/Xcode/SDL/Info-Framework.plist index 76626f66b..bb7986b87 100644 --- a/Xcode/SDL/Info-Framework.plist +++ b/Xcode/SDL/Info-Framework.plist @@ -19,10 +19,10 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.0.23 + 2.23.0 CFBundleSignature SDLX CFBundleVersion - 2.0.23 + 2.23.0 diff --git a/build-scripts/winrtbuild.ps1 b/build-scripts/winrtbuild.ps1 index 1e0ac7a0b..ab835815b 100644 --- a/build-scripts/winrtbuild.ps1 +++ b/build-scripts/winrtbuild.ps1 @@ -39,7 +39,7 @@ # # Base version of SDL, used for packaging purposes -$SDLVersion = "2.0.23" +$SDLVersion = "2.23.0" # Gets the .bat file that sets up an MSBuild environment, given one of # Visual Studio's, "PlatformToolset"s. diff --git a/configure.ac b/configure.ac index bddb621f5..27c931660 100644 --- a/configure.ac +++ b/configure.ac @@ -12,8 +12,8 @@ orig_CFLAGS="$CFLAGS" dnl Set various version strings - taken gratefully from the GTk sources # See docs/release_checklist.md SDL_MAJOR_VERSION=2 -SDL_MINOR_VERSION=0 -SDL_MICRO_VERSION=23 +SDL_MINOR_VERSION=23 +SDL_MICRO_VERSION=0 SDL_INTERFACE_AGE=0 SDL_BINARY_AGE=23 SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION @@ -29,8 +29,11 @@ AC_SUBST(SDL_VERSION) LT_INIT([win32-dll]) LT_LANG([Windows Resource]) -LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION -LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE` +# For historical reasons, the library name redundantly includes the major +# version twice: libSDL2-2.0.so.0. +# TODO: in SDL 3, stop using -release, which will simplify it to libSDL3.so.0 +LT_RELEASE=2.0 +LT_CURRENT=`expr $SDL_MINOR_VERSION - $SDL_INTERFACE_AGE` LT_REVISION=$SDL_INTERFACE_AGE LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE` m4_pattern_allow([^LT_]) diff --git a/docs/release_checklist.md b/docs/release_checklist.md index 4fec36d14..2d4c5f911 100644 --- a/docs/release_checklist.md +++ b/docs/release_checklist.md @@ -1,8 +1,10 @@ # Release checklist +## New feature release + * Update `WhatsNew.txt` -* Bump version number to 2.0.EVEN for stable release +* Bump version number to 2.EVEN.0 in all these locations: * `configure.ac`, `CMakeLists.txt`: `SDL_*_VERSION` * `Xcode/SDL/Info-Framework.plist`: `CFBundleShortVersionString`, @@ -16,16 +18,14 @@ * 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 + * 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 + * increment first number in `DYLIB_CURRENT_VERSION` + * set second number in `DYLIB_CURRENT_VERSION` to 0 * if backwards compatibility has been broken, increase `DYLIB_COMPATIBILITY_VERSION` (?) @@ -33,11 +33,53 @@ * Do the release -* Bump version number to 2.0.ODD for next development version +## New bugfix release + +* Check that no new API/ABI was added + + * If it was, do a new feature release (see above) instead + +* Bump version number from 2.Y.Z to 2.Y.(Z+1) (Y is even) + + * Same places as listed above + +* Bump ABI version information + + * `configure.ac`: `CMakeLists.txt`: `SDL_INTERFACE_AGE`, `SDL_BINARY_AGE` + * `SDL_INTERFACE_AGE += 1` + * `SDL_BINARY_AGE += 1` + * `Xcode/SDL/SDL.xcodeproj/project.pbxproj`: `DYLIB_CURRENT_VERSION`, + `DYLIB_COMPATIBILITY_VERSION` + * increment second number in `DYLIB_CURRENT_VERSION` + +* Regenerate `configure` + +* Do the release + +## After a feature release + +* Create a branch like `release-2.24.x` + +* Bump version number to 2.ODD.0 for next development branch * Same places as listed above * Bump ABI version information * Same places as listed above - * initially assume that there is no new ABI + * Assume that the next feature release will contain new API/ABI + +## New development prerelease + +* Bump version number from 2.Y.Z to 2.Y.(Z+1) (Y is odd) + + * Same places as listed above + +* Bump ABI version information + + * Same places as listed above + * Assume that the next feature release will contain new API/ABI + +* Regenerate `configure` + +* Do the release diff --git a/include/SDL_version.h b/include/SDL_version.h index c42b93b89..302e4628d 100644 --- a/include/SDL_version.h +++ b/include/SDL_version.h @@ -58,8 +58,8 @@ typedef struct SDL_version /* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL */ #define SDL_MAJOR_VERSION 2 -#define SDL_MINOR_VERSION 0 -#define SDL_PATCHLEVEL 23 +#define SDL_MINOR_VERSION 23 +#define SDL_PATCHLEVEL 0 /** * Macro to determine SDL version program was compiled against. diff --git a/src/main/windows/version.rc b/src/main/windows/version.rc index 25cd68a0e..66ab6204e 100644 --- a/src/main/windows/version.rc +++ b/src/main/windows/version.rc @@ -9,8 +9,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,0,23,0 - PRODUCTVERSION 2,0,23,0 + FILEVERSION 2,23,0,0 + PRODUCTVERSION 2,23,0,0 FILEFLAGSMASK 0x3fL FILEFLAGS 0x0L FILEOS 0x40004L @@ -23,12 +23,12 @@ BEGIN BEGIN VALUE "CompanyName", "\0" VALUE "FileDescription", "SDL\0" - VALUE "FileVersion", "2, 0, 23, 0\0" + VALUE "FileVersion", "2, 23, 0, 0\0" VALUE "InternalName", "SDL\0" VALUE "LegalCopyright", "Copyright (C) 2022 Sam Lantinga\0" VALUE "OriginalFilename", "SDL2.dll\0" VALUE "ProductName", "Simple DirectMedia Layer\0" - VALUE "ProductVersion", "2, 0, 23, 0\0" + VALUE "ProductVersion", "2, 23, 0, 0\0" END END BLOCK "VarFileInfo"