Hash :
fff97c95
Author :
Date :
2022-05-04T16:40:11
build: Mechanically generate ABI versions from version number If we're strict about applying something resembling semantic versioning to the "marketing" version number, then we can mechanically generate the ABI version from it. This limits the range of valid micro versions (patchlevels) to 0-99. Signed-off-by: Simon McVittie <smcv@collabora.com>
Update WhatsNew.txt
Bump version number to 2.EVEN.0 in all these locations:
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
CMakeLists.txt, Xcode/SDL/SDL.xcodeproj/project.pbxproj:
DYLIB_CURRENT_VERSION, DYLIB_COMPATIBILITY_VERSION DYLIB_CURRENT_VERSION to
(100 minor*) + 1 DYLIB_CURRENT_VERSION to 0 DYLIB_COMPATIBILITY_VERSION (?) Run test/versioning.sh to verify that everything is consistent
Regenerate configure
Do the release
Check that no new API/ABI was added
Bump version number from 2.Y.Z to 2.Y.(Z+1) (Y is even)
Bump ABI version information
CMakeLists.txt, Xcode/SDL/SDL.xcodeproj/project.pbxproj:
DYLIB_CURRENT_VERSION, DYLIB_COMPATIBILITY_VERSION DYLIB_CURRENT_VERSION to patchlevel Run test/versioning.sh to verify that everything is consistent
Regenerate configure
Do the release
Create a branch like release-2.24.x
Bump version number to 2.ODD.0 for next development branch
Bump ABI version information
Run test/versioning.sh to verify that everything is consistent
Bump version number from 2.Y.Z to 2.Y.(Z+1) (Y is odd)
Bump ABI version information
CMakeLists.txt, Xcode/SDL/SDL.xcodeproj/project.pbxproj:
DYLIB_CURRENT_VERSION, DYLIB_COMPATIBILITY_VERSION DYLIB_CURRENT_VERSION to
(100 minor) + patchlevel* + 1 DYLIB_CURRENT_VERSION to 0 DYLIB_COMPATIBILITY_VERSION (?) Run test/versioning.sh to verify that everything is consistent
Regenerate configure
Do the release
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
# Release checklist
## New feature release
* Update `WhatsNew.txt`
* Bump version number to 2.EVEN.0 in all these locations:
* `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
* `CMakeLists.txt`, `Xcode/SDL/SDL.xcodeproj/project.pbxproj`:
`DYLIB_CURRENT_VERSION`, `DYLIB_COMPATIBILITY_VERSION`
* set first number in `DYLIB_CURRENT_VERSION` to
(100 * *minor*) + 1
* set second number in `DYLIB_CURRENT_VERSION` to 0
* if backwards compatibility has been broken,
increase `DYLIB_COMPATIBILITY_VERSION` (?)
* Run test/versioning.sh to verify that everything is consistent
* Regenerate `configure`
* Do the release
## 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
* `CMakeLists.txt`, `Xcode/SDL/SDL.xcodeproj/project.pbxproj`:
`DYLIB_CURRENT_VERSION`, `DYLIB_COMPATIBILITY_VERSION`
* set second number in `DYLIB_CURRENT_VERSION` to *patchlevel*
* Run test/versioning.sh to verify that everything is consistent
* 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
* Assume that the next feature release will contain new API/ABI
* Run test/versioning.sh to verify that everything is consistent
## 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
* `CMakeLists.txt`, `Xcode/SDL/SDL.xcodeproj/project.pbxproj`:
`DYLIB_CURRENT_VERSION`, `DYLIB_COMPATIBILITY_VERSION`
* set first number in `DYLIB_CURRENT_VERSION` to
(100 * *minor*) + *patchlevel* + 1
* set second number in `DYLIB_CURRENT_VERSION` to 0
* if backwards compatibility has been broken,
increase `DYLIB_COMPATIBILITY_VERSION` (?)
* Run test/versioning.sh to verify that everything is consistent
* Regenerate `configure`
* Do the release