Kennels are created with the kennel project structure:
lib.glang <- entry point
kennel.toml <- package configuration
README.md <- package info
LICENSE <- any license
Kennels must be hosted on GitHub, as GLang indexes kennels from GitHub source .zip files.
Inside the kennel.toml, you can configure a package like so:
name = "my_kennel" # snake case "easy import identifier" (EII)
description = "This kennel does cool things!" # one line description
authors = ["John Doe"] # authors
version = "1.0" # the version
entry = "lib.glang" # the kennel entry point
requires = [] # any external kennels required
The name field (EII) is how users import your kennel, it must be a snake case identifiable name. The entry field is what file is imported when users import the kennel.
If your kennel requires any external kennels, add them to the requires field.
GLang keeps a registry of installable kennels via the registry.json file. You can add a kennel you made by either:
Forking The Repo
Fork the GitHub repo (https://github.com/mpsoftwarefoundation/GeorgeLanguage)
Edit The Registry
Edit the registry.json file to add your kennel. Example:
{
"name": "my_kennel",
"url": "https://github.com/<your-username>/<your-repo>/archive/refs/heads/main.zip"
}
Submit A Pull Request
Create a new pull request on the main branch, then we will review and publish your Kennel! *Expect a 1-2 hour delay
Paste the url of your repository here, and developers will add the package if approved. That's it!
A great example of a proper Kennel is the "fancy_terminal" Kennel made by Keller Hydle. We even use it here.