Forgejo PyPI registry + Woodpecker CI pipeline #5

Closed
opened 2026-03-01 06:23:44 +00:00 by forgejo_admin · 0 comments
Contributor

Plan

plan-2026-02-28-woodpecker-sdk-mcp — Phase 2

Repo

woodpecker-sdk — the repo where the pipeline and ruff config changes happen

User Story

As a platform developer
I need woodpecker-sdk published to Forgejo's PyPI registry via a Woodpecker CI pipeline
So that downstream repos (woodpecker-mcp) can pip install ldraney-woodpecker-sdk from our private registry, and every push is automatically linted, tested, built, and published.

Acceptance Criteria

When I push to a branch:
Then ruff lint + format check runs, and pytest integration tests run against live Woodpecker.

When I merge to main:
Then the package is built and published to Forgejo's PyPI registry.

When I run pip install --index-url from Forgejo:
Then the package installs successfully.

Additional Information

  • Forgejo PyPI docs: https://forgejo.org/docs/latest/user/packages/pypi/
  • Publish URL: https://forgejo.tail5b443a.ts.net/api/packages/forgejo_admin/pypi
  • Install URL: https://forgejo_admin:{token}@forgejo.tail5b443a.ts.net/api/packages/forgejo_admin/pypi/simple
  • Auth: Forgejo admin username + password
  • Decisions: ruff config in pyproject.toml, manual version bumping, integration tests in CI, reuse admin PAT
  • This pipeline becomes the reusable template for all future SDK/MCP repos
  • pal-e-docs issue: issue-woodpecker-sdk-pypi-pipeline

Checklist

  • ~/.pypirc configured with Forgejo registry
  • Manual twine upload smoke test passes
  • Manual pip install from Forgejo smoke test passes
  • .woodpecker.yml created with lint, test, build, publish steps
  • Ruff config added to pyproject.toml
  • Woodpecker secrets configured
  • Repo activated in Woodpecker
  • Branch push triggers lint + test
  • Main merge triggers build + publish
  • PR opened
  • plan-2026-02-28-woodpecker-sdk-mcp — parent plan, Phase 2
  • plan-2026-02-28-woodpecker-mcp — child plan, depends on this
  • issue-woodpecker-sdk-pypi-pipeline — pal-e-docs issue
### Plan `plan-2026-02-28-woodpecker-sdk-mcp` — Phase 2 ### Repo `woodpecker-sdk` — the repo where the pipeline and ruff config changes happen ### User Story As a platform developer I need woodpecker-sdk published to Forgejo's PyPI registry via a Woodpecker CI pipeline So that downstream repos (woodpecker-mcp) can `pip install ldraney-woodpecker-sdk` from our private registry, and every push is automatically linted, tested, built, and published. ### Acceptance Criteria When I push to a branch: Then ruff lint + format check runs, and pytest integration tests run against live Woodpecker. When I merge to main: Then the package is built and published to Forgejo's PyPI registry. When I run `pip install --index-url` from Forgejo: Then the package installs successfully. ### Additional Information - Forgejo PyPI docs: https://forgejo.org/docs/latest/user/packages/pypi/ - Publish URL: `https://forgejo.tail5b443a.ts.net/api/packages/forgejo_admin/pypi` - Install URL: `https://forgejo_admin:{token}@forgejo.tail5b443a.ts.net/api/packages/forgejo_admin/pypi/simple` - Auth: Forgejo admin username + password - Decisions: ruff config in pyproject.toml, manual version bumping, integration tests in CI, reuse admin PAT - This pipeline becomes the reusable template for all future SDK/MCP repos - pal-e-docs issue: `issue-woodpecker-sdk-pypi-pipeline` ### Checklist - [ ] `~/.pypirc` configured with Forgejo registry - [ ] Manual `twine upload` smoke test passes - [ ] Manual `pip install` from Forgejo smoke test passes - [ ] `.woodpecker.yml` created with lint, test, build, publish steps - [ ] Ruff config added to `pyproject.toml` - [ ] Woodpecker secrets configured - [ ] Repo activated in Woodpecker - [ ] Branch push triggers lint + test - [ ] Main merge triggers build + publish - [ ] PR opened ### Related - `plan-2026-02-28-woodpecker-sdk-mcp` — parent plan, Phase 2 - `plan-2026-02-28-woodpecker-mcp` — child plan, depends on this - `issue-woodpecker-sdk-pypi-pipeline` — pal-e-docs issue
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/woodpecker-sdk#5
No description provided.