3.8 KiB
3.8 KiB
description
| description |
|---|
| OpenWebUI Plugin Development & Release Workflow |
OpenWebUI Plugin Development Workflow
This workflow outlines the standard process for developing, documenting, and releasing plugins for OpenWebUI, ensuring compliance with project standards and CI/CD requirements.
1. Development Standards
Reference: .github/copilot-instructions.md
Bilingual Requirement
Every plugin MUST have bilingual versions for both code and documentation:
- Code:
- English:
plugins/{type}/{name}/{name}.py - Chinese:
plugins/{type}/{name}/{name_cn}.py(or中文名.py)
- English:
- README:
- English:
plugins/{type}/{name}/README.md - Chinese:
plugins/{type}/{name}/README_CN.md
- English:
Code Structure
- Docstring: Must include
title,author,version,description, etc. - Valves: Use
pydanticfor configuration. - Database: Re-use
open_webui.internal.dbshared connection. - User Context: Use
_get_user_contexthelper method.
Commit Messages
- Language: English ONLY. Do not use Chinese in commit messages.
- Format: Conventional Commits (e.g.,
feat:,fix:,docs:).
2. Documentation Updates
When adding or updating a plugin, you MUST update the following documentation files to maintain consistency:
Plugin Directory
README.md: Update version, description, and usage. Explicitly describe new features.README_CN.md: Update version, description, and usage. Explicitly describe new features.
Global Documentation (docs/)
- Index Pages:
docs/plugins/{type}/index.md: Add/Update list item with correct version.docs/plugins/{type}/index.zh.md: Add/Update list item with correct version.
- Detail Pages:
docs/plugins/{type}/{name}.md: Ensure content matches README.docs/plugins/{type}/{name}.zh.md: Ensure content matches README_CN.
Root README
README.md: Add to "Featured Plugins" if applicable.README_CN.md: Add to "Featured Plugins" if applicable.
3. Version Control & Release
Reference: .github/workflows/release.yml
Version Bumping
- Rule: Any change to plugin logic MUST be accompanied by a version bump in the docstring.
- Format: Semantic Versioning (e.g.,
1.0.0->1.0.1). - Consistency: Update version in ALL locations:
- English Code (
.py) - Chinese Code (
.py) - English README (
README.md) - Chinese README (
README_CN.md) - Docs Index (
docs/.../index.md) - Docs Index CN (
docs/.../index.zh.md) - Docs Detail (
docs/.../{name}.md) - Docs Detail CN (
docs/.../{name}.zh.md)
- English Code (
Automated Release Process
- Trigger: Push to
mainbranch with changes inplugins/**/*.py. - Detection:
scripts/extract_plugin_versions.pydetects changed plugins and compares versions. - Release:
- Generates release notes based on changes.
- Creates a GitHub Release tag (e.g.,
v2024.01.01-1). - Uploads individual
.pyfiles of changed plugins only as assets.
Pull Request Check
- Workflow:
.github/workflows/plugin-version-check.yml - Checks if plugin files are modified.
- Fails if version number is not updated.
- Fails if PR description is too short (< 20 chars).
4. Verification Checklist
Before committing:
- Code is bilingual and functional?
- Docstrings have updated version?
- READMEs are updated and bilingual?
docs/index and detail pages are updated?- Root
README.mdis updated? - All version numbers match exactly?
5. Git Operations (Agent Rules)
CRITICAL RULE FOR AGENTS:
- No Auto-Push: Agents MUST NOT automatically push changes to the remote
mainbranch. - Local Commit Only: All changes must be committed locally.
- User Approval: Pushing to remote requires explicit user action or approval.