Skip to main content

Public SDK types for authoring Blondie plugins (backlog backends, CI providers, LLM tools).

Project description

blondie-types

Public SDK types for authoring Blondie plugins. Plugins import every Blondie type they need from this single package.

  • Distribution name (PyPI): blondie-types
  • Import name: blondie
  • Contents: ABCs, dataclasses, enums, error classes, capability constants, and API protocols. No runtime code.
  • Dependencies: stdlib + pydantic + typing_extensions.

The Blondie runtime depends on blondie-types; blondie-types does not depend on the runtime. Plugins develop, test, and ship outside the Blondie repo with blondie-types as their only Blondie-side dependency.

Quick start

pip install blondie-types
from blondie import (
    BacklogBackend,
    BackendProvider,
    Plugin,
    PluginTool,
    Task,
    TaskStatus,
    ToolProvider,
)


class MyTool(PluginTool):
    name = "my_tool"
    description = "A tiny example."

    async def execute(self, **kwargs) -> str:
        self.api.journal.info("hello from my_tool")
        return "ok"


class MyPlugin(Plugin):
    def provides(self):
        return [ToolProvider(MyTool)]

Top-level exports

Symbol Kind Module
Plugin ABC blondie.plugins
Provider ABC blondie.plugins
BackendProvider dataclass blondie.plugins
CIProviderProvider dataclass blondie.plugins
ToolProvider dataclass blondie.plugins
RegistrationContext dataclass blondie.plugins
PluginInfo dataclass blondie.plugins
PluginEvent dataclass blondie.plugins
PLUGIN_API_VERSION int blondie.plugins
PluginTool ABC blondie.tools
ToolAPI Protocol blondie.tools
BacklogBackend ABC blondie.backlog
BackendAPI Protocol blondie.backlog
Task, Sprint, Comment dataclass blondie.backlog
Priority, TaskStatus enum blondie.backlog
TaskFormatter ABC blondie.backlog
CredentialSpec dataclass blondie.backlog
BackendError (+ family) exception blondie.backlog
CAP_* constants blondie.backlog
CIProvider ABC blondie.ci
CIAPI Protocol blondie.ci
Journal Protocol blondie.journal

The flat from blondie import X form is preferred; per-area submodules are also exposed for selective import.

Versioning

The SDK follows Semantic Versioning. Two version numbers travel together:

  • The distribution version in pyproject.toml (visible as blondie.__version__, sourced from package metadata) — bumped on every release.
  • The plugin contract version blondie.PLUGIN_API_VERSION — bumped on every breaking change to the public surface re-exported from blondie.

Release notes live in CHANGELOG.md (Keep-a-Changelog format). The release flow is automated:

# 1. Land your changes; describe them under '## [Unreleased]' in CHANGELOG.md.
# 2. From the repo root, run one of:
poe bump-types --patch          # bug fixes
poe bump-types --minor          # additive change
poe bump-types --major          # breaking change (also bump PLUGIN_API_VERSION)
poe bump-types --to 1.2.3       # explicit target

# 3. The script edits pyproject.toml and CHANGELOG.md. Review:
git diff packages/blondie-types/

# 4. Commit, tag, push:
git commit -am "[#NNN] blondie-types vX.Y.Z"
git tag blondie-types-vX.Y.Z
git push && git push origin blondie-types-vX.Y.Z

The tag triggers .github/workflows/blondie-types-publish.yml, which publishes to PyPI via OIDC trusted publishing and creates a matching GitHub Release with the CHANGELOG section as release notes and the sdist + wheel attached as assets.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blondie_types-0.1.1.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blondie_types-0.1.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file blondie_types-0.1.1.tar.gz.

File metadata

  • Download URL: blondie_types-0.1.1.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blondie_types-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a331fd0b8fb6bc00f188c0d7a0575651f59cae6290f5f342aa02db4e5937475b
MD5 37305bd5bfc6ef05dcbb9f56c0fbc61f
BLAKE2b-256 71ec6b226e8823088bffca2da60b16a686b37d0a55c2f342e744ece99735e69c

See more details on using hashes here.

Provenance

The following attestation bundles were made for blondie_types-0.1.1.tar.gz:

Publisher: blondie-types-publish.yml on iva2k/blondie

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blondie_types-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: blondie_types-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blondie_types-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dac8d51afb117d96ad576c2c15081f6eb7638a3d6faba4148ba555e276b488da
MD5 48d041a2358cbc161003977bcbfc2d27
BLAKE2b-256 783204b0cff2efe0ae196d97d6167f21ef473667df894a4dcbcdfcb7bcdf13c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for blondie_types-0.1.1-py3-none-any.whl:

Publisher: blondie-types-publish.yml on iva2k/blondie

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page