Repository: Rust-SDL2/rust-sdl2 (language: rust)

Issue:
SDL compatible versions in readme should be 2.0.14+
The readme currently says:

> SDL2 >= 2.0.8 is recommended to use these bindings, but note that SDL2 >= 2.0.5 is also supported. Below 2.0.5, you may experience link-time errors as some functions are used here but are not defined in SDL2.

I had a project which had 2.0.10 dlls checked in; upon bumping from 0.34.3 to 0.35.2 of `rust-sdl2` I got a link error for my Windows build along the lines of `unresolved external symbol "SDL_OpenURL" referenced in <mangled function name>`.

Looks like SDL_OpenURL was only added in [SDL's 2.0.14 release](https://github.com/libsdl-org/SDL/releases/tag/release-2.0.14), so when #1138 added the binding for SDL_OpenURL to address  #1119 as part of the 0.35 release then that inadvertently dropped support for earlier SDL versions.

I wasn't using OpenURL since it didn't exist in my old version, but bumping to the latest 2.0.22-devel dlls in my project did indeed fix my linking error.

So it seems like the readme should read something like this:

> SDL2 >= 2.0.14 is required to use these bindings; below 2.0.14, you may experience link-time errors as some functions are used here but are not defined in SDL2.

And `changelog.md` for v0.35.0 should probably be updated to note the possibly-breaking change of dropping support for SDL2 versions older than 2.0.14?

Or am I missing something? (could well be - e.g. from the current readme text I infer that it might be possible to suppress link errors from using an old SDL2 version, but I have not heard of such a thing before)


Discussion / hints:
I don't think you're missing anything, the doc just needs to be updated.

Fix patch:
diff --git a/README.md b/README.md
index 3e5096d1c9..bacd2011b3 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,7 @@ We currently target the latest stable release of Rust.
 
 ## *SDL2.0 development libraries*
 
-SDL2 >= 2.0.8 is recommended to use these bindings, but note that SDL2 >= 2.0.5 is also supported. Below 2.0.5, you may experience link-time errors as some functions are used here but are not defined in SDL2. If you experience this issue because you are on a LTS machine (for instance, Ubuntu 12.04 or Ubuntu 14.04), we definitely recommend you to use the feature "bundled" which will compile the lastest stable version of SDL2 for your project.
+SDL2 >= 2.0.14 is recommended to use these bindings; below 2.0.14, you may experience link-time errors as some functions are used here but are not defined in SDL2. If you experience this issue because you are on a LTS machine (for instance, Ubuntu 12.04 or Ubuntu 14.04), we definitely recommend you to use the feature "bundled" which will compile the lastest stable version of SDL2 for your project.
 
 ### "Bundled" Feature
 
diff --git a/changelog.md b/changelog.md
index 944d574290..bc722cc204 100644
--- a/changelog.md
+++ b/changelog.md
@@ -24,6 +24,8 @@ when upgrading from a version of rust-sdl2 to another.
 * **BREAKING CHANGE** Update `sdl2-sys/sdl_bindings.rs` to use enums instead of consts. If you were using `sdl2-sys`'s
 enum variants directly in your project, you may be affected. If you only used sdl2 calls, there should not be any problems.
 
+* **BREAKING CHANGE** SDL 2.0.14 or higher is now recommended due to the new binding being added for `SDL_OpenURL`. If you get linking errors, upgrade your SDL2 libraries, or swap to using the `bundled` feature.
+
 [PR #1138](https://github.com/Rust-SDL2/rust-sdl2/pull/1138) Added binding for `SDL_OpenURL`
 
 [PR #1150](https://github.com/Rust-SDL2/rust-sdl2/pull/1150) Do not download SDL2 sources when using bundled feature


Test patch: