Files
railiance-forge/docs/gitea-package-registry.md
tegwick 9c4b400cb6
All checks were successful
Forge Runner Smoke / compatibility-smoke (push) Successful in 0s
Remove public Gitea NodePort side door
2026-06-14 02:26:59 +02:00

2.5 KiB

Gitea Package Registry

This is the canonical Railiance operating note for the current Gitea Python package registry. Compatibility pointers remain in railiance-apps; deploy-capable Gitea Helm and manifest files now live in this repo.

Gitea package support is enabled by helm/gitea-registry-values.yaml. That overlay is applied after the encrypted base values by make gitea-deploy and enables both container packages and Python packages.

The public ingress exposes the Gitea web route at https://gitea.coulomb.social/, the Python package route at /api/packages, and the OCI registry route at /v2. The standard endpoint is HTTPS; if package simple-index pages render http://gitea.coulomb.social/... artifact links, reconcile the Gitea Helm release with helm/gitea-registry-values.yaml so ROOT_URL is restored to the HTTPS host.

Status on 2026-06-13: the root web route returns 200, live ROOT_URL is https://gitea.coulomb.social/, and package artifact links render HTTPS URLs. Raw node IP HTTP access is not a supported package or web entry point.

Python Packages

Publish Python wheels to the organization package endpoint:

python -m build
TWINE_USERNAME=<gitea-user> \
TWINE_PASSWORD=<package-token> \
python -m twine upload \
  --repository-url https://gitea.coulomb.social/api/packages/coulomb/pypi \
  dist/*

Install from the simple index:

pip install \
  --extra-index-url https://<gitea-user>:<package-token>@gitea.coulomb.social/api/packages/coulomb/pypi/simple/ \
  issue-core

For CI, store the token as a secret and inject it into the package index URL at build time. Do not commit tokenized index URLs.

issue-core Migration

The portable deployment path for vergabe-teilnahme is:

  1. Release issue-core from its source repo as a wheel, for example 0.2.0.
  2. Publish the wheel to the Gitea Python package registry.
  3. Keep vergabe-teilnahme/pyproject.toml on a versioned dependency such as issue-core>=0.2,<0.3.
  4. Regenerate vergabe-teilnahme/uv.lock from the Gitea PyPI registry after the package exists there.
  5. Build the image on a clean runner that has no sibling issue-core checkout.

Registry endpoint ownership lives in railiance-forge; the package release and application dependency lock belong to the issue-core and vergabe-teilnahme source repos.

Status on 2026-06-05: issue-core==0.2.0 is published in the Coulomb Gitea PyPI registry and vergabe-teilnahme has regenerated its lock from this registry.