PGM libraries (PsyGraphMedia *Internal): core, platform, net, identity, collab, dist, hcom, ai, plus the web kit
- Rust 84.6%
- HTML 8.7%
- JavaScript 6.1%
- CSS 0.5%
- Shell 0.1%
| crates | ||
| web | ||
| .gitignore | ||
| build.cmd | ||
| build.sh | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| NAMES.md | ||
| README.md | ||
PGM libraries
The reusable libraries behind VibeRoller, PGM Gateway, PGM ShaDow Chat, PGM Hyper Prod Man and PGM Prod Suit.
Nothing here knows any one product: what a library needs from the program around it is a trait (ChatHost,
AiHub) or a parameter (folders, settings).
crates/: the eight Rust libraries. Names, what each holds and their order: NAMES.md. How to use one: each crate's README.md.web/: the web kit, the page-side pieces products share (markdown, board + calendar, notes, calls, servers / channels, server settings, attachments, profiles). What each expects from its page: web/README.md.
Using them from another project
By git tag, so a build is always the same code:
[dependencies]
pgm-core-internal = { git = "https://git.unityailab.com/UnityAILab/pgm-libs.git", tag = "v5.1.0" }
pgm-net-internal = { git = "https://git.unityailab.com/UnityAILab/pgm-libs.git", tag = "v5.1.0" }
Use the same tag for every PGM crate in one program. The web kit is copied into a product's web/ from the same tag.
Working on them
cargo test --workspace; Linux and Windows (--target x86_64-pc-windows-gnu) both build.- The libraries change only through
develop(one worktree per person), are taggedvX.Y.Zonmain, and follow the versioning law (MAJOR / MINOR / PATCH, CHANGELOG.md). A change that would break a product is a MINOR or MAJOR, with its reason in the CHANGELOG. - Where they came from: VibeRoller's
native/crates(VibeRoller 5.0.0 – 5.1.0, its commits a2aeabc … cd27395). Their history up to here stays in the VibeRoller repository. Until VibeRoller builds from this repository, its copy is kept identical.