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://git@gitlab.com/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.