# 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: ```bash python -m build TWINE_USERNAME= \ TWINE_PASSWORD= \ python -m twine upload \ --repository-url https://gitea.coulomb.social/api/packages/coulomb/pypi \ dist/* ``` Install from the simple index: ```bash pip install \ --extra-index-url https://:@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.