libgdx.github.io icon indicating copy to clipboard operation
libgdx.github.io copied to clipboard

Versions page is or will be outdated

Open Frosty-J opened this issue 1 year ago • 12 comments

With Liftoff here to stay, https://libgdx.com/dev/versions/ is doing a worse job at listing versions than ever before.

What will its fate be? Maintain or delete? You decide!

Frosty-J avatar Jul 18 '24 12:07 Frosty-J

At the moment, there is a plugin which fetches the versions from gdx-setup's DependencyBank file. We should be able to change that to fetch the data from some file in the liftoff repo, if so desired.

crykn avatar Jul 18 '24 14:07 crykn

I guess what we need to decide first is, whether we want to keep the versions page around. Does anyone even use that?

crykn avatar Jul 29 '24 20:07 crykn

I'm not really sure what purpose it serves. Even if it were to be updated with gdx-liftoff's defaults, that's all they are - defaults. Often you can use newer versions just fine, especially if using a recent version of Android Studio since the setup tools have always held back on AGP for IntellIJ IDEA compatibility. And no-one wants to update a setup tool with each patch version bump.

The most recent mention of it from someone who isn't me was in 2022 and there's not a single mention of https://libgdx.com/dev/versions/ on popular search engines, so I don't think it gets much use.

Discord screenshot. Message from user rottz on 22 August 2022: LibGDX version site ( https://libgdx.com/dev/versions/ ) tells me to use Android Gradle Tools 4.1.3, but if I do that it fails to build some dependencies. If I use 7.1.3 it builds fine and seems to run fine. Does anyone know what kind of problems I might run into if I use a newer Android Gradle Tools such as 7.1.3 instead of the suggested (4.1.3)?

Frosty-J avatar Jul 29 '24 21:07 Frosty-J

To pitch in, the idea is that these are the tested combinations that work. IDEA/AS constantly pump you notifications to update, which can completely break libgdx projects because of gradle compatibilities mainly with the other plugins we use. robovm/gwt.

Obviously this is meaningless if its not maintained, but its for people that have existing projects to see what are the latest versions of all the tools that are tested to be working when you have all of the official platforms enabled in a gradle build.

Tom-Ski avatar Jul 29 '24 21:07 Tom-Ski

However, these combinations have not been tested currently and do not work. Case in point, it says GWT 2.8.2 is used, and that isn't true for gdx-setup or gdx-liftoff...

tommyettinger avatar Aug 01 '24 00:08 tommyettinger

Devil's advocate: It's true for the stable version of gdx-setup. Which is no longer distributed (307791b9e2af9a55ee91175e49c64426d71b4009).

Frosty-J avatar Aug 01 '24 07:08 Frosty-J

If we decide to keep it, is there a file in gdx-liftoff, where we could fetch these versions from, @tommyettinger?

crykn avatar Aug 02 '24 21:08 crykn

I would look in the generated template/sample projects produced for the most recent stable version. Most are here, https://github.com/libgdx/gdx-liftoff-demo/blob/main/gradle.properties , but some other versions are really not meant to be updated separately from Liftoff because they can break things if updated. These include AGP ( https://github.com/libgdx/gdx-liftoff-demo/blob/main/build.gradle#L12 , which IDEA and AS can only update automatically if it is a hardcoded version and not a property ), Gretty ( https://github.com/libgdx/gdx-liftoff-demo/blob/main/html/build.gradle#L7 , which generally doesn't need updating, and the 3.x branch might not even be updated anymore...), and Gradle itself ( https://github.com/libgdx/gdx-liftoff-demo/blob/main/gradle/wrapper/gradle-wrapper.properties , which has already been updated to 8.9).

tommyettinger avatar Aug 02 '24 23:08 tommyettinger

Ahh darn, some of the demo projects still depend on this for their dependencies, e.g. libgdx-demo-superjumper. So we have to tackle this as well if we decide to drop the versions API.

crykn avatar Aug 16 '24 17:08 crykn

I don't think the demos have a good solution there. I haven't been able to build that version of Super Jumper due to its age, but automatically using the latest (or second-latest in our case, since the API is wrong) version is a reckless move. Major releases of libGDX have breaking changes.

For example, the next version of libGDX will break the GWT module (if it isn't already broken - HttpFileServer isn't resolving for me) and cause an exception to be thrown on Android versions its minSdk claims support for. Though that's a moot point since the Android module is already broken when built against SDK 33/AGP 7.3.1 (manifest needs updating, Gradle too old). Not even desktop is safe, as LWJGL no longer works with sourceCompatibility 1.7.

Frosty-J avatar Aug 17 '24 00:08 Frosty-J

Regarding superjumper, I've almost finished a PR that will update it by rebuilding it with gdx-liftoff (see https://github.com/SonicGDX/superjumper-recreate). I'm currently testing it right now to make sure I've transferred everything over properly (made a few changes to things like the iOS launch image and the icons)

SonicGDX avatar Oct 17 '24 07:10 SonicGDX

For now, the versions page is retired, https://github.com/libgdx/libgdx.github.io/commit/fc3ead0a598430c697cf78c86c29b3fd80d0cb54.

crykn avatar Oct 17 '24 17:10 crykn