From d57f9affd5883821b69e4ebdc65e11fa13cd84f1 Mon Sep 17 00:00:00 2001 From: fujie Date: Sat, 7 Mar 2026 22:16:42 +0800 Subject: [PATCH] docs(skills): add 'publish-no-version-bump' skill for code-only marketplace updates --- .../skills/publish-no-version-bump/SKILL.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 .github/skills/publish-no-version-bump/SKILL.md diff --git a/.github/skills/publish-no-version-bump/SKILL.md b/.github/skills/publish-no-version-bump/SKILL.md new file mode 100644 index 0000000..a209337 --- /dev/null +++ b/.github/skills/publish-no-version-bump/SKILL.md @@ -0,0 +1,150 @@ +--- +name: publish-no-version-bump +description: Commit and push code to GitHub, then publish to OpenWebUI official marketplace without updating version. Use when fixing bugs or optimizing performance that doesn't warrant a version bump. +--- + +# Publish Without Version Bump + +## Overview + +This skill handles the workflow for pushing code changes to the remote repository and syncing them to the OpenWebUI official marketplace **without incrementing the plugin version number**. + +This is useful for: +- Bug fixes and patches +- Performance optimizations +- Code refactoring +- Documentation fixes +- Linting and code quality improvements + +## When to Use + +Use this skill when: +- You've made non-breaking changes (bug fixes, optimizations, refactoring) +- The functionality hasn't changed significantly +- The user-facing behavior is unchanged or only improved +- There's no need to bump the semantic version + +**Do NOT use** if: +- You're adding new features → use `release-prep` instead +- You're making breaking changes → use `release-prep` instead +- The version should be incremented → use `version-bumper` first + +## Workflow + +### Step 1 — Stage and Commit Changes + +Ensure all desired code changes are staged in git: + +```bash +git status # Verify what will be committed +git add -A # Stage all changes +``` + +Create a descriptive commit message using Conventional Commits format: + +``` +fix(plugin-name): brief description +- Detailed change 1 +- Detailed change 2 +``` + +Example commit types: +- `fix:` — Bug fixes, patches +- `perf:` — Performance improvements, optimization +- `refactor:` — Code restructuring without behavior change +- `test:` — Test updates +- `docs:` — Documentation changes + +**Key Rule**: The commit message should make clear that this is NOT a new feature release (no `feat:` type). + +### Step 2 — Push to Remote + +Push the commit to the main branch: + +```bash +git commit -m "" && git push +``` + +Verify the push succeeded by checking GitHub. + +### Step 3 — Publish to Official Marketplace + +Run the publish script with `--force` flag to update the marketplace without version change: + +```bash +python scripts/publish_plugin.py --force +``` + +**Important**: The `--force` flag ensures the marketplace version is updated even if the version string in the plugin file hasn't changed. + +### Step 4 — Verify Publication + +Check that the plugin was successfully updated in the official marketplace: +1. Visit https://openwebui.com/f/ +2. Search for your plugin name +3. Verify the code is up-to-date +4. Confirm the version number **has NOT changed** + +--- + +## Command Reference + +### Full Workflow (Manual) + +```bash +# 1. Stage and commit +git add -A +git commit -m "fix(copilot-sdk): description here" + +# 2. Push +git push + +# 3. Publish to marketplace +python scripts/publish_plugin.py --force + +# 4. Verify +# Check OpenWebUI marketplace for the updated code +``` + +### Automated (Using This Skill) + +When you invoke this skill with a plugin path, Copilot will: +1. Verify staged changes and create the commit +2. Push to the remote repository +3. Execute the publish script +4. Report success/failure status + +--- + +## Implementation Notes + +### Version Handling + +- The plugin's version string in `docstring` (line ~10) remains **unchanged** +- The `openwebui_id` in the plugin file must be present for the publish script to work +- If the plugin hasn't been published before, use `publish_plugin.py --new ` instead + +### Dry Run + +To preview what would be published without actually updating the marketplace: + +```bash +python scripts/publish_plugin.py --force --dry-run +``` + +### Troubleshooting + +| Issue | Solution | +|-------|----------| +| `Error: openwebui_id not found` | The plugin hasn't been published yet. Use `publish_plugin.py --new ` for first-time publishing. | +| `Failed to authenticate` | Check that the `OPENWEBUI_API_KEY` environment variable is set. | +| `Skipped (version unchanged)` | This is normal. Without `--force`, unchanged versions are skipped. We use `--force` to override this. | + +--- + +## Related Skills + +- **`release-prep`** — Use when you need to bump the version and create release notes +- **`version-bumper`** — Use to manually update version across all 7+ files +- **`pr-submitter`** — Use to create a PR instead of pushing directly to main +