mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-29 20:05:25 +08:00
63 lines
2.6 KiB
Markdown
63 lines
2.6 KiB
Markdown
# Independent plugin releases
|
|
|
|
Core and plugins share a source checkout, not a release train. Never add plugin
|
|
dependencies to Core's `pyproject.toml`, bundle plugin sources in Core artifacts,
|
|
or use a Core release event to publish plugins.
|
|
|
|
## Develop and test
|
|
|
|
Choose one plugin from [catalog.json](catalog.json). Run its tests in its own
|
|
environment following its README. CI entrypoints are the five `plugins-*-tests`
|
|
workflows and the catalog workflow in `../.github/workflows/`; they preserve the existing
|
|
published SDK baselines and independent interpreters. LocalAgent and the Runner
|
|
test harness intentionally use different SDK pins. Do not merge their lockfiles.
|
|
|
|
From the repository root:
|
|
|
|
```sh
|
|
python plugins/scripts/check_catalog.py
|
|
python plugins/scripts/test_repository.py
|
|
```
|
|
|
|
## Build only
|
|
|
|
Run the **Plugins / Build package** workflow manually, selecting a relative
|
|
catalog path such as `Runner/LocalAgent` or `misc/HelloPlugin`. It builds only
|
|
that plugin and uploads an unsigned `.lbpkg` artifact. It neither creates a
|
|
GitHub release nor contacts Marketplace. Review the selected revision and test
|
|
results before requesting publication.
|
|
|
|
The equivalent local flow, using an independently installed SDK CLI, is:
|
|
|
|
```sh
|
|
cd plugins/misc/HelloPlugin
|
|
lbp build
|
|
```
|
|
|
|
The repository root and the `plugins/` root are not plugin packages. Never run
|
|
`lbp build` or `lbp publish` from either root.
|
|
|
|
## Marketplace publication
|
|
|
|
The existing per-plugin SDK flow remains unchanged:
|
|
|
|
1. Review the plugin tests, compatibility, release notes and certification
|
|
requirements. Increment that plugin's manifest version, and its project
|
|
version where applicable; do not change Core's version.
|
|
2. Keep `metadata.author`, `metadata.name` and component IDs stable. Update the
|
|
catalog with `python plugins/scripts/check_catalog.py --write` from the root.
|
|
3. In an authorized maintainer environment, use `lbp login` and then run
|
|
`lbp publish` from the selected plugin directory. Do not place credentials
|
|
in the repository or give them to pull-request jobs.
|
|
4. Follow the Marketplace draft/review flow and verify the resulting plugin
|
|
version and an upgrade from the prior version in a test Workspace.
|
|
|
|
No Marketplace submission or existing listing is changed by a source merge.
|
|
Moving a repository link changes newly built bytes; previous artifact evidence
|
|
must not be treated as certification of the new archive.
|
|
|
|
If GitHub release assets are also needed, use an explicit plugin namespace such
|
|
as `plugins/HelloPlugin/v0.1.1` and upload only that plugin's package. Core release
|
|
workflows reject plugin-prefixed release tags; they must not publish Core for a
|
|
plugin release.
|