Expand description
The plugin manager: a static JSON registry index of plugin packages, checksum-verified
downloads, side-by-side versioned installs, and dre.lock.
Index location: DRE_REGISTRY_URL, default DEFAULT_REGISTRY. It may be an https://
URL, a file:// URL or a plain path. Format: docs/registry.md.
Structs§
- Artifact
- Index
- Index
Package - A plugin package: one executable per platform, serving every plugin in
provides. - Index
Version - Release
- One published (non-draft) release of a GitHub repository whose tag is a version.
Enums§
- Synced
- What
syncdid for one package.
Constants§
- DEFAULT_
REGISTRY - INDEX_
SCHEMA - The index’s current schema. Schema 1 listed single plugins (
kindandname); each still reads as a package of that one plugin.
Functions§
- explain_
undeclared - Name the package to declare for each
undeclared-pluginerror, from DRE’s registry, or say that the registry has no such plugin. The registry is fetched now, so a newly published package is known without a newdre. Unreachable: unchanged. - fetch
- github_
api - The GitHub API DRE talks to:
DRE_GITHUB_API_URL(GitHub Enterprise, tests), else GitHub’s. - github_
releases repo’s releases from the GitHub API (DRE_GITHUB_API_URL,GITHUB_TOKEN), skipping drafts and tags that aren’t versions, newest first byversion_order. Every page is read: a repository that also releases its plugins (duckdb-v1.0.0) can list many of those first.- install
- Download, verify and install one version into
<dir>/<package>/<version>/. Returns its lock entry. - install_
linked - Install into
dirthrough the shared cache: download there once, then link intodir. - platform
- This machine’s platform key in the index:
<os>-<arch>, e.g.macos-aarch64. - prefer_
stable - The highest of
itemswhose version matchesreq. When none does, a pre-release counts if its release would match, so*finds0.0.1-alphawhen a plugin has no stable release yet (semver on its own only matches a pre-release thatreqnames explicitly). - registry_
url - sync
- Make every declared package available, installing what’s missing (unless
installis false, in which case missing packages are errors). Honoursdre.lockpins, writes new pins. - version_
order - Which version is newer: semver precedence, except that numbers inside a pre-release
identifier compare as numbers. Semver compares
alpha-10andalpha-9as text, which puts0.0.1-alpha-10before0.0.1-alpha-9; DRE’s own pre-releases are named0.0.1-alpha-<n>.