CaravelGames / drod

The official public repository of Deadly Rooms of Death and DROD RPG
http://caravelgames.com
56 stars 17 forks source link

Consider CaravelGames fork of metakit for use as submodule #545

Closed Hypexion closed 1 year ago

Hypexion commented 1 year ago

Availability of the metakit library is somewhat spotty, with what appears to be the official website for metakit being full of dead links. The original github repo is gone, and while there are several forks floating around, they are at different levels of development. It also appears to be unavailabe through various Linux package managers. Since metakit is required to build DROD, this is obviously not an ideal situation.

One possible solution is to create a fork of one of the existing metakit repos under the CaravelGames organisation. This can then be provided as a submodule of the drod repo, and the Windows dependecy script can be updated to handle that.

As I see it, this approach has several benefits:

  1. It helps to protect from a future event where the current metakit being used by the script disappears. This has happened with multiple dependant libraries!
  2. It makes sure everyone is on the same version. Metakit has been on version 2.4.9.x with a slowly increasing x for over twenty years, but it's better to be safe then sorry.
  3. It reduces the amount of time wasted searching for metakit online when trying to build DROD.

A decision would be needed on which repo to fork, but it doesn't look like there's been much active developmet in metakit for over eight years.

mrimer commented 1 year ago

I'm good with this approach. Please go ahead with this at your convenience.

What do you think are the best options for which repo to fork? (I'd be good with staying on the version we've been using for years, if possible.)

Hypexion commented 1 year ago

Currently the setup script gets metakit from this repository. That would be the simple option to avoid any issues with upgrading.

Alternately, this repository in the tcltk organisation looks like it might the closest thing to an "official" repo.

Either way, it is possible to update the fork later.

I believe for doing the actual forking, someone with permissions to make forks in the Caravel organisation would have to do that step. Once that happens, anyone should be able to set up the submodule.

Hypexion commented 1 year ago

I have now made the PR to add the submodule.

I have forked the tcltk repo, but set the submodule commit to match the last commit in the jnorthrup repo, as that is the version of metakit we have been using. This has been tagged, and I have produced a release containing pre-built static metakit binaries for Windows.

If we want to update metakit, the process is to change the submodule commit, tag it as appropriate, and provide updates to any binaries we are distributing. We might want to do this for 5.2 and 1.3, along with any other library updates.

mrimer commented 1 year ago

Beautiful work. Thank you for helping make our use of Metakit future-proof!