Publishing
Publishing
Section titled “Publishing”Publish Hub packs or modules only after the boundary is stable, import-safe, and explicit about what it exports.
Package layout
Section titled “Package layout”pyproject.toml
Section titled “pyproject.toml”The Hub loader reads [tool.retriever.module], imports the declared package surface, and returns the requested export.
Import-safe modules
Section titled “Import-safe modules”Module top-level code must be import-safe. Do not open cameras, sockets, SDK clients, GPU contexts, or files during import.
Preferred Flow resource pattern:
Guidelines:
- module top-level: import-safe only
__init__: store lightweight, serializable configuration onlyinit_config(): return serializable reconstruction data only__lazy_init__()/reset(): acquire runtime-local resources
Hub index
Section titled “Hub index”Retriever Hub uses an index repository with entries under:
Example:
Minimum expectations before publishing:
- the repository is reachable
pyproject.tomlcontains a valid[tool.retriever.module]section- at least one semver tag exists
- the declared module imports cleanly
- the smallest public example runs without private credentials or local-only paths
Release boundary
Section titled “Release boundary”GoldenRetriever is the current applied catalog. Keep Golden as the examples layer with source examples plus a manifest-declared Hub type pack; do not publish a second runtime package just to share applied robot payloads.
Public-surface check
Section titled “Public-surface check”Before announcing a pack, run the repository’s smallest public smoke command and verify that every documented link, import, and example output still matches the published docs. Keep hosting credentials, DNS operations, and organization-specific release cutover notes outside public package docs.
For the core Retriever release repository, maintainers can use pixi run public-surface-check as the local guardrail; pack authors should provide an equivalent small check for their own module.
