# Gitea Package Registry 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. ## 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. Change `vergabe-teilnahme/pyproject.toml` from the local path dependency to `issue-core>=0.2,<0.3`. 4. Remove the Docker BuildKit `--build-context issue-core=...` requirement from image-build instructions. 5. Build the image on a clean runner that has no sibling `issue-core` checkout. Only the registry enablement lives in `railiance-apps`; the package release and application dependency change belong to the `issue-core` and `vergabe-teilnahme` repos.