Inform 7 extensions source and repository

I was checking this out: github.com/i7/extensions

But … the high level directory is just someone’s name. That means I have to click into each folder to even determine if the folder might have something I want to look at. Further, each author may have done extensions for very different things. So if I want to find similar and/or related functionality, I have to check each and every author.

I guess once you get used to what’s in there it might not matter, but still – wouldn’t it make more sense to have the top level structure broken down by the type of extension?

The public library portion of Inform seems to do something along these lines, in fact. So I figured that was supposed to be the interface to use. Makes sense. But, then, in some cases, I’ve found discrepancies between what’s listed there (in the public library) and what’s on the GitHub repository. Are these two resources supposed to be linked?

If you look at the internal structure, both the Public Library and the Github repo are organized by author’s name. That’s because Inform 7 uses the same structure to store extensions, so every extension I create will be in a “Daniel Stelzer” directory on my own machine. Imitating this structure in the repository makes it much easier to keep them in sync without copying files back and forth every time.

As far as usage, extensions in the Public Library are tested, verified, and supported for the newest version of Inform, while the Github repo holds new updates, experimental versions, and special-purpose extensions which most authors won’t need. There’s some overlap, but finding a file in one doesn’t mean it’ll appear in the other. (There’s also the old Extensions page on the Inform 7 website, which holds legacy extensions for old Inform versions.)

Okay, got it. When I look at the Public Library (in Inform – I don’t know why I would look at the payloads directory itself necessarily), I see categories like “Adaptive Prose” and then under that “Responses”, “Varying What is Written”. That makes complete sense to me and I guess I see the point about the GitHub given your other comments.

Those are three pretty different categories of things to store in one repository. But if the Public Library and the GitHub aren’t linked (even though there is “overlap”?) maybe that doesn’t matter as much. So it sounds like if I stick with the Public Library I should be good. I presume that “updates” from the GitHub are somehow promoted to the Public Library when they are deemed – what? Good enough? Tested?

It seems a little opaque to me, to be honest. Unless, again, the Public Library is really supposed to be the main interface. Sorry for the question torrent. When I was last around, Inform 6 was the main platform. I’m still wrapping my head around the Inform 7 approach to things.

Oh, indeed. I just linked that to show what the internal structure looks like.

The Public Library is intended to be the main interface for authors now. When an extension creator thinks their code is good and ready they can submit it to the Library maintainers, and they’ll review it and potentially add it in. But some people just write extensions for their own use, or to answer a question posted here, or something like that, and don’t polish and document it to the point where it’s Public-Library-ready. (I’m one of those people, which is why you won’t find a Daniel Stelzer directory in the Library.) So for those people, the Github is an easy way to make those extensions available to anyone who wants them.