pkg
pkg — merith's open source packages
This organization hosts Merith's open source packages, libraries, tools, and mods. All repositories follow the conventions documented below.
Repository Naming
Repos are named <scope>-<name> in lowercase kebab-case.
| Scope | Meaning | Example |
|---|---|---|
mc |
Minecraft mods | mc-modname |
cli |
Command-line tools | cli-nlsh |
lib |
General-purpose libraries | lib-crypto |
util |
Single-purpose utility libraries | util-strparse |
bot |
Discord / chat bots | bot-kobold |
web |
Web services and APIs | web-appname |
infra |
Infrastructure and ops tooling | infra-compose |
sdk |
Client libraries for internal services | sdk-myapi |
spec |
Design documents and standards (no code) | spec-protocol |
proto |
Shared protobuf / gRPC definitions | proto-myservice |
No language suffix is used in repo names — the scope and repo contents make the language self-evident.
Package / Module IDs
Java packages follow reverse-domain notation rooted at xyz.merith.pkg:
xyz.merith.pkg.<scope>[.<subscope>].<name>
Examples:
| Package ID | What it is |
|---|---|
xyz.merith.pkg.mc.modname |
Minecraft mod |
xyz.merith.pkg.util.strparse |
Java string utility |
xyz.merith.pkg.lib.crypto |
Java crypto library |
xyz.merith.pkg.bot.kobold |
Discord bot |
Go modules use the Forgejo path directly:
git.merith.xyz/pkg/<repo-name>
Rust crates use snake_case and are published (if at all) as merith_<scope>_<name>.
Versioning
All repos use Semantic Versioning: vMAJOR.MINOR.PATCH
Exception — Minecraft mods prefix the MC version on the tag:
mc-MCVERSION-vMAJOR.MINOR.PATCH
# Example
mc-1.21.1-v0.3.0
The MC version prefix appears on the tag only — repo names are never versioned.
Special Repositories
| Repo | Purpose |
|---|---|
.profile |
Org landing page (this README) |
standards |
Full standards and conventions documentation |
templates |
Starter templates for each scope |