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:
DocumentRefDocumentChangeSetExecutionContextProviderCapabilityApplyResult
Repository Layout
src/wikiops_sdk/
compat.py
contracts/
domain/
docs/
tests/
Documentation Map
Start here depending on your role:
- New to the project:
docs/index.md - Need the architectural model:
docs/architecture.md - Need the core concepts:
docs/concepts.md - Need compatibility rules:
docs/compatibility.md - Writing a plugin:
docs/guides/write-a-plugin.md - Writing a provider:
docs/guides/write-a-provider.md - Planning change sets:
docs/guides/planning-changes.md - Need API reference:
docs/api/index.md - Need SDK constraints and caveats:
docs/reference/constraints.md
Recommended Reading Order
For plugin authors:
docs/getting-started.mddocs/concepts.mddocs/guides/write-a-plugin.mddocs/api/contracts.mddocs/api/domain.md
For provider authors:
docs/getting-started.mddocs/concepts.mddocs/guides/write-a-provider.mddocs/api/contracts.mddocs/api/domain.md
For host authors:
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_majorpolicy. - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f840825b994042e134dc6b16f3aedb7dcda9997cd32ad23a4360733a4ec71915
|
|
| MD5 |
0b52448484e5dee547758ec06b846d5b
|
|
| BLAKE2b-256 |
f87cccd7c798b257b7aa9a8e6d7cbdbc4ccd52b791f31e7144babf653c292f26
|
Provenance
The following attestation bundles were made for wikiops_sdk-1.1.0.tar.gz:
Publisher:
release.yml on sgg10/wikiops-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wikiops_sdk-1.1.0.tar.gz -
Subject digest:
f840825b994042e134dc6b16f3aedb7dcda9997cd32ad23a4360733a4ec71915 - Sigstore transparency entry: 1282000291
- Sigstore integration time:
-
Permalink:
sgg10/wikiops-sdk@84be72d9b2e680702ef8d87d203263425eb54581 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/sgg10
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@84be72d9b2e680702ef8d87d203263425eb54581 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb6a922062e6f77a0d71cc7583e14306ee89471c1a2898b43b62c35975b0776e
|
|
| MD5 |
6f390320e3680c298bea88e8b6d7113d
|
|
| BLAKE2b-256 |
1c5f92c167507b46401a47c469eee513fd0ef12663bb77a8b6c7f655f915d8da
|
Provenance
The following attestation bundles were made for wikiops_sdk-1.1.0-py3-none-any.whl:
Publisher:
release.yml on sgg10/wikiops-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wikiops_sdk-1.1.0-py3-none-any.whl -
Subject digest:
eb6a922062e6f77a0d71cc7583e14306ee89471c1a2898b43b62c35975b0776e - Sigstore transparency entry: 1282000321
- Sigstore integration time:
-
Permalink:
sgg10/wikiops-sdk@84be72d9b2e680702ef8d87d203263425eb54581 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/sgg10
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@84be72d9b2e680702ef8d87d203263425eb54581 -
Trigger Event:
push
-
Statement type: