Migrate kaizen distribution to Forgejo
All checks were successful
ci / test (push) Successful in 2m21s
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

This commit is contained in:
tegwick 2026-08-20 09:43:49 +02:00
parent f027ee5492
commit d4a4560a8d
34 changed files with 324 additions and 195 deletions

View file

@ -1,14 +1,14 @@
# Makefile for Kaizen Agentic development tasks
.PHONY: help setup-complete setup-structure setup-python setup-tools setup-docs setup-tests setup-verify ensure-project-structure install-dev install-local install-global standards-check standards-fix standards-test test test-all build clean lint format venv-status agents-list agents-update agents-validate agents-status agents-sync-package agents-install-cli release-check release-prepare release-test release-publish publish-gitea package-check release-finalize release-rollback
.PHONY: help setup-complete setup-structure setup-python setup-tools setup-docs setup-tests setup-verify ensure-project-structure install-dev install-local install-global standards-check standards-fix standards-test test test-all build clean lint format venv-status agents-list agents-update agents-validate agents-status agents-sync-package agents-install-cli release-check release-prepare release-test release-publish publish-forgejo package-check release-finalize release-rollback
# Variables
VENV = .venv
VENV_PYTHON = $(VENV)/bin/python
VENV_PIP = $(VENV)/bin/pip
GITEA_PACKAGE_OWNER ?= coulomb
GITEA_PYPI_REPOSITORY_URL ?= https://gitea.coulomb.social/api/packages/$(GITEA_PACKAGE_OWNER)/pypi
GITEA_PYPI_SIMPLE_URL ?= https://gitea.coulomb.social/api/packages/$(GITEA_PACKAGE_OWNER)/pypi/simple/
FORGEJO_PACKAGE_OWNER ?= coulomb
FORGEJO_PYPI_REPOSITORY_URL ?= https://forgejo.coulomb.social/api/packages/$(FORGEJO_PACKAGE_OWNER)/pypi
FORGEJO_PYPI_SIMPLE_URL ?= https://forgejo.coulomb.social/api/packages/$(FORGEJO_PACKAGE_OWNER)/pypi/simple/
# Default target
help:
@ -48,10 +48,10 @@ help:
@echo " release-check - Validate release readiness (tests, linting, version consistency)"
@echo " release-prepare - Prepare release (update versions, build packages)"
@echo " package-check - Build and validate wheel/sdist with twine"
@echo " publish-gitea - Publish dist/* to Coulomb Gitea PyPI registry"
@echo " publish-forgejo - Publish dist/* to the Forgejo PyPI registry"
@echo " release-test - Test publication workflow using TestPyPI"
@echo " release-publish - Publish to production PyPI (pypi.org)"
@echo " release-finalize - Post-release tasks (tags, GitHub release, documentation)"
@echo " release-finalize - Post-release tasks (tags, Forgejo release, documentation)"
@echo " release-rollback - Emergency rollback procedures"
@echo ""
@echo "Development:"
@ -970,7 +970,7 @@ release-prepare: release-check clean
ls -la dist/ | grep "$$VERSION" || echo " • Package files:"; ls -la dist/; \
echo ""; \
echo "💡 Next steps:"; \
echo " • Run 'make publish-gitea' for Coulomb Gitea PyPI"; \
echo " • Run 'make publish-forgejo' for Forgejo PyPI"; \
echo " • Run 'make release-test' to test publication on TestPyPI"; \
echo " • Run 'make release-publish' for pypi.org (when configured)"
@ -979,15 +979,15 @@ package-check: release-prepare
$(VENV_PYTHON) -c "import twine" 2>/dev/null || $(VENV_PIP) install twine
$(VENV_PYTHON) -m twine check dist/*
# Publish to Coulomb Gitea PyPI registry
publish-gitea: package-check
# Publish to the Forgejo PyPI registry
publish-forgejo: package-check
ifndef TWINE_USERNAME
$(error TWINE_USERNAME is required (e.g. export TWINE_USERNAME=<gitea-user>))
$(error TWINE_USERNAME is required (e.g. export TWINE_USERNAME=<forgejo-user>))
endif
ifndef TWINE_PASSWORD
$(error TWINE_PASSWORD is required (e.g. export TWINE_PASSWORD=$$GITEA_API_TOKEN))
$(error TWINE_PASSWORD is required (e.g. export TWINE_PASSWORD=$$FORGEJO_PYPI_TOKEN))
endif
$(VENV_PYTHON) -m twine upload --repository-url "$(GITEA_PYPI_REPOSITORY_URL)" dist/*
$(VENV_PYTHON) -m twine upload --repository-url "$(FORGEJO_PYPI_REPOSITORY_URL)" dist/*
# Test publication workflow using TestPyPI
release-test: release-prepare
@ -1034,7 +1034,7 @@ release-publish: release-check
echo " • Generate API token"; \
echo " • Store in ~/.pypirc or use keyring"
# Post-release tasks (tags, GitHub release, documentation)
# Post-release tasks (tags, Forgejo release, documentation)
release-finalize: $(VENV)/bin/activate
@echo "🏁 Finalizing release..."
@echo ""
@ -1050,16 +1050,16 @@ release-finalize: $(VENV)/bin/activate
echo " ✅ Tag created"; \
fi; \
echo ""; \
echo " • GitHub Release:"; \
echo " • Forgejo Release:"; \
echo " 💡 Manual steps required:"; \
echo " 1. Push tags: git push origin v$$VERSION"; \
echo " 2. Create GitHub release at:"; \
echo " https://github.com/kaizen-agentic/kaizen-agentic/releases/new"; \
echo " 2. Create Forgejo release at:"; \
echo " https://forgejo.coulomb.social/coulomb/kaizen-agentic/releases/new"; \
echo " 3. Upload dist/ files as release assets"; \
echo ""; \
echo " • Documentation:"; \
echo " 💡 Verify installation instructions work:"; \
echo " pip install kaizen-agentic==$$VERSION --extra-index-url <gitea-pypi-simple>"; \
echo " pip install kaizen-agentic==$$VERSION --extra-index-url $(FORGEJO_PYPI_SIMPLE_URL)"; \
echo " See docs/PACKAGE_RELEASE.md"; \
echo ""; \
echo "✅ Release finalization checklist provided"; \