Skip to main content

Public SDK for WikiOps plugins and integrations. Provides the shared contracts, domain models, compatibility rules, and extension interfaces needed to build providers and documentation plugins.

Project description

wikiops-sdk

wikiops-sdk is the public SDK for the WikiOps ecosystem.

It defines the shared language used by the WikiOps host, documentation plugins, and document providers. The package is intentionally small and focused: it provides portable domain models, public extension contracts, and compatibility rules, but it does not implement orchestration, a CLI, concrete providers, or concrete plugins.

What This Repository Contains

  • Provider-agnostic domain models for documentation planning and application.
  • Public protocols and Pydantic models for plugins and providers.
  • Compatibility helpers for SDK, plugin, provider, and Python runtime versions.
  • A strict automated test suite that validates the public SDK behavior.
  • A dedicated docs/ directory with conceptual guides and API reference material.

What This Repository Does Not Contain

  • The WikiOps host application.
  • A CLI.
  • A scheduler or orchestrator.
  • Provider implementations such as Azure DevOps Wiki or Confluence.
  • Documentation plugin implementations.

In the intended ecosystem, the relationship is:

plugin -> sdk <- host
provider -> sdk <- host

The SDK is the stable contract layer in the middle.

Why This Exists

WikiOps treats documentation as code. The long-term goal is to automate how Markdown-based documentation is read, transformed, generated, and persisted across multiple wiki systems while keeping business logic, provider infrastructure, and orchestration decoupled.

This SDK gives all participants a common model for concepts such as:

  • DocumentRef
  • Document
  • ChangeSet
  • ExecutionContext
  • ProviderCapability
  • ApplyResult

Repository Layout

src/wikiops_sdk/
  compat.py
  contracts/
  domain/
docs/
tests/

Documentation Map

Start here depending on your role:

Recommended Reading Order

For plugin authors:

  1. docs/getting-started.md
  2. docs/concepts.md
  3. docs/guides/write-a-plugin.md
  4. docs/api/contracts.md
  5. docs/api/domain.md

For provider authors:

  1. docs/getting-started.md
  2. docs/concepts.md
  3. docs/guides/write-a-provider.md
  4. docs/api/contracts.md
  5. docs/api/domain.md

For host authors:

  1. docs/architecture.md
  2. docs/concepts.md
  3. docs/compatibility.md
  4. docs/reference/constraints.md

Import Paths

The top-level package mainly exposes compatibility helpers:

from wikiops_sdk import ensure_plugin_api_compatible

Contracts and domain models are intentionally imported from subpackages:

from wikiops_sdk.contracts import DocumentationPlugin, DocumentProvider, PluginManifest
from wikiops_sdk.domain import ChangeSet, DocumentRef, ExecutionContext

Host Documentation

This repository documents the SDK only. The WikiOps host application should maintain its own documentation for orchestration, runtime loading, command-line workflows, and deployment concerns.

Status

The current SDK implementation is intentionally narrow and precise:

  • Markdown is the only built-in content format.
  • The current operation model supports create, update, and create-child flows.
  • Compatibility defaults to a same_major policy.
  • The SDK is designed to be provider-agnostic and orchestration-agnostic.

Tests

The repository ships with a strict test suite and coverage thresholds.

poetry install --with tests
poetry run pytest

The tests also serve as executable examples of the current public API.

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

wikiops_sdk-1.1.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

wikiops_sdk-1.1.0-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file wikiops_sdk-1.1.0.tar.gz.

File metadata

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

File hashes

Hashes for wikiops_sdk-1.1.0.tar.gz
Algorithm Hash digest
SHA256 f840825b994042e134dc6b16f3aedb7dcda9997cd32ad23a4360733a4ec71915
MD5 0b52448484e5dee547758ec06b846d5b
BLAKE2b-256 f87cccd7c798b257b7aa9a8e6d7cbdbc4ccd52b791f31e7144babf653c292f26

See more details on using hashes here.

Provenance

The following attestation bundles were made for wikiops_sdk-1.1.0.tar.gz:

Publisher: release.yml on sgg10/wikiops-sdk

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

File details

Details for the file wikiops_sdk-1.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for wikiops_sdk-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb6a922062e6f77a0d71cc7583e14306ee89471c1a2898b43b62c35975b0776e
MD5 6f390320e3680c298bea88e8b6d7113d
BLAKE2b-256 1c5f92c167507b46401a47c469eee513fd0ef12663bb77a8b6c7f655f915d8da

See more details on using hashes here.

Provenance

The following attestation bundles were made for wikiops_sdk-1.1.0-py3-none-any.whl:

Publisher: release.yml on sgg10/wikiops-sdk

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