Skip to main content

Catalog

A catalog is a TOML file (lpip-sources.toml) of names. Each name has a Git URL and optional revision and subdirectory.

[packages.libfoo]
url = "git+ssh://git.company/libs/libfoo.git"
revision = "main"
subdirectory = "python"

Author the file in the catalog Git repository (lpip catalog init / add). Consumers register where catalogs live (lpip source add / list / remove). Those verbs stay distinct.

You can register more than one source. Lookup is first source that defines the name. Later duplicates are ignored. lpip validate reports shadowed names; lpip validate --strict fails if any name appears twice.

lpip source add company --type git --url ssh://[email protected]/org/catalog.git --revision main
lpip source add local --type file --path ~/lpip-sources.toml
lpip source list
lpip validate

lpip list shows the merged catalog (first-wins), with a source column when rows come from more than one catalog.

Normative rules live in the repository ADRs (multiple sources, catalog authoring). This page is the user story only.