CocoaGlk on Github

Hi, I migrated CocoaGlk’s subversion history to git and pushed it up to github.

github.com/tunesmith/CocoaGlk

Hopefully I’m not stepping on any toes here, I’m new so I will plead blithe ignorance. I just noticed that google code (where the subversion was hosted) was acting really rickety and was probably a disincentive for contributions. I’m happy to accept anyone as a collaborator with full repository rights, or transfer ownership to Andrew or whoever is appropriate. I haven’t yet committed any changes but I might commit a Readme and a LICENSE to make clear it’s already under the MIT license.

But in the meantime, look at how nice and inviting it is! It’s just ripe and ready for pull requests! On the verge of burgeoning!

The OSX IDE repo on Github (code.logicalshift.co.uk/zoom/cocoaglk.git I think it’s likely that it is more up to date than the subversion repo. Can you compare them?

The repositories at code.logicalshift.co.uk have been shut down for a while now.

EDIT: Whoops, not shut down, just not accessible in the ways that I tried. Sorry.

So, the real answer: code.logicalshift.co.uk/zoom/cocoaglk.git hasn’t been updated since early 2012. That’s a little newer than the Google Code repository, but still not new.

The zoom/depends/CocoaGlk subdirectory of TobyLobster (Toby Nelson’s repo) has been slightly updated. Most of the changes seem to be compiler-warning stuff – adding “const” and other compiler hints. There are some retain/release fixes too.

Interesting, thanks for the links.

Findings:

  1. The Zoom website points to the Google Code page, which tops out at 1.0.8 (Oct 9, 2011)
  2. The Inform IDE README says it is using 1.0.7, but the Zoom subdirectory says it’s using 1.0.8.
  3. The code.logicalshift CocoaGlk git repository has many additional changes - additional changes to 1.0.8 (tagged Nov 5, 2011), plus work in newer branches - although it slowed down in the last three years
  4. The CocoaGlk directory in the Inform github repo appears doesn’t appear to match up, version-wise, to any version I can find in the code.logicalshift CocoaGlk repository. In addition, it looks like the code.logicalshift CocoaGlk repo has work done in branches, work that isn’t in the Inform repo. Finally, the Inform repo doesn’t have version history on its CocoaGlk work.

Good news, I suppose, is that the code.logicalshift CocoaGlk repo is a direct superset of the one I put up on github. So I could always push those more recent changes up to github - if that wouldn’t confuse matters regarding code.logicalshift still being active.

But aside from that, CocoaGlk and the one in the Inform project have diverged, and it doesn’t look like changes made to CocoaGlk in Inform are being backported to the code.logicalshift CocoaGlk repo - I don’t know the nature of these changes and if they are extensive.

I did the following:

  1. Moved github.com/tunesmith/CocoaGlkTerm since it a) was old and b) included GlkTerm

  2. Made a new github.com/tunesmith/CocoaGlk (zarf you will need to star it again) that has a copy of what was on code.logicalshift. I also pushed up the other branches it had.

Next time I get a moment, I’m going to try and find commit in that repo that the Inform project probably branched off of, and then I’ll create a branch and copy Inform’s CocoaGlk code over to it. Not sure how useful that will be, but at least it will be easier to compare that code state with the state of the code in the other branches. Maybe it will be possible to identify a new mainline, and then the Inform project could use that as its source of truth.

I’m assuming it doesn’t make sense long-term for CocoaGlk to be homed inside the Inform repo, since other projects also use CocoaGlk.

Agreed. However, the TobyLobster/Inform code is the most recently updated version and the one that’s actually gotten a release recently. So I would say that’s the best starting point for future fixes.

Okay, I think I’ve cracked the nut -

It looks like the version of CocoaGlk that Toby pulled into the Inform IDE project was the tip (HEAD) of master from code.logicalshift. That simplifies things a bit, because master of code.logicalshift has not been updated since then.

Since the repo from code.logicalshift (master and all branches/tags) has been moved to github, I was able to recreate Toby’s work on it. I created a new branch off of master called TobyInform, and created five commits:

  1. Adding git-1.2.9 sources
  2. Adding glulxe 0.5.1 sources
  3. A small update in cocoastart.m changing unsigned longs to unsigned ints (in both git and glulxe)
  4. Removing libmodplug.a and replacing it with modplug’s sources
  5. The catch-all commit - it looks like this was just about updating the compiler, noticing a bunch of new warnings, and skipping around making method signature adjustments to solve the warnings. There might be a couple of extra small changes, but that’s about it.

With that, the TobyInform branch is identical to the CocoaGlk that is in the Inform IDE repo.

So, here are some opportunities I noticed:

  1. It looks like this is technically CocoaGlk 1.0.9
  2. Many of these compilation-warning changes were also made in other experimental branches. If we agree this is mainline, then we may consider merging the TobyInform branch to master, and then merging master into those other branches.
  3. Zarf or someone would need to confirm this, but it looks like there may be some low-hanging-fruit bug fix opportunities, already completed in the other branches. Like if you review the 2.0 branch, you might find some fixes that can be lifted out and applied to a 1.0.10 release, even if we don’t accept all of 2.0
  4. Since this is fully up to date with the Inform IDE repo’s CocoaGlk, we may consider deleting CocoaGlk from that repo now, and either including it in that repo as a submodule (which can be brittle), or simply leave it separate and just let people check out this repo alongside it.

Anyway, I pushed the TobyInform branch up to github.com/tunesmith/CocoaGlk , so you can check it out and take a look. (Is there a mailing list I should be sending this information to?)