{"id":28452569,"url":"https://github.com/ricks-lab/packaging","last_synced_at":"2025-07-02T04:31:00.330Z","repository":{"id":293016012,"uuid":"982650986","full_name":"Ricks-Lab/packaging","owner":"Ricks-Lab","description":"A set of utilities to support PyPI and debian packaging","archived":false,"fork":false,"pushed_at":"2025-05-20T04:54:27.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-06T18:11:59.949Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ricks-Lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-13T07:55:07.000Z","updated_at":"2025-05-20T04:54:31.000Z","dependencies_parsed_at":"2025-05-13T09:47:38.459Z","dependency_job_id":null,"html_url":"https://github.com/Ricks-Lab/packaging","commit_stats":null,"previous_names":["ricks-lab/packaging"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ricks-Lab/packaging","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ricks-Lab%2Fpackaging","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ricks-Lab%2Fpackaging/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ricks-Lab%2Fpackaging/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ricks-Lab%2Fpackaging/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ricks-Lab","download_url":"https://codeload.github.com/Ricks-Lab/packaging/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ricks-Lab%2Fpackaging/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263074344,"owners_count":23409747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-06T18:11:50.894Z","updated_at":"2025-07-02T04:31:00.321Z","avatar_url":"https://github.com/Ricks-Lab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Packaging Environment - README\n\nThis `packaging` virtual environment is dedicated to building, validating, and distributing Python projects. It supports **PyPI uploads** and **Debian (.deb) package builds**.\n\n---\n\n## 1. System Requirements\n\nInstall these **APT packages** before using this environment:\n\n```bash\nsudo apt update\nsudo apt install -y \\\n    python3-venv python3-pip \\\n    fakeroot devscripts debhelper dh-python lintian gpg\n```\n\n| Package        | Purpose                                          |\n| -------------- | ------------------------------------------------ |\n| `python3-venv` | Create virtual environments                      |\n| `python3-pip`  | Install Python packages                          |\n| `fakeroot`     | Build `.deb` files without real root permissions |\n| `devscripts`   | Tools like `debuild`, `dch` for Debian packaging |\n| `debhelper`    | Scripts to help Debian packaging                 |\n| `dh-python`    | Integrate Python packages into Debian builds     |\n| `lintian`      | Validate `.deb` quality                          |\n| `gpg`          | Sign packages or uploads if needed               |\n\n---\n\n## 2. Initial venv Setup\n\n```bash\ncd ~/pydev/packaging\npython3 -m venv venv\nsource venv/bin/activate\n```\n\nUpgrade and install critical Python packaging tools:\n\n```bash\npip install --upgrade pip setuptools wheel\npip install build twine stdeb check-manifest validate-pyproject setuptools_scm\n```\n\nOptional extras:\n\n```bash\npip install hatchling flit\n```\n\n---\n\n## 3. Building and Publishing Projects\n\n### 3.1 Build PyPI package\n\n```bash\npython -m build\n```\n\nArtifacts appear under `dist/`.\n\n### 3.2 Upload to PyPI\n\nCreate `~/.pypirc`:\n\n```ini\n[distutils]\nindex-servers =\n    pypi\n\n[pypi]\nusername = __token__\npassword = pypi-\u003cyour-token-here\u003e\n```\n\nThen upload:\n\n```bash\ntwine upload dist/*\n```\n\n### 3.3 Build Debian package (.deb)\n\nSimple build:\n\n```bash\npython setup.py --command-packages=stdeb.command bdist_deb\n```\n\nFull manual control:\n\n```bash\ndebuild -us -uc\n```\n\nCheck `.deb` with:\n\n```bash\nlintian ../your-package_*.deb\n```\n\n---\n\n## 4. Validating Packaging\n\nBefore releasing:\n\n```bash\ncheck-manifest\nvalidate-pyproject\n```\n\nUseful when using `pyproject.toml` structure.\n\n---\n\n## 5. Recommended Directory Layout\n\n```text\n~/pydev/packaging/\n├── README.md\n├── venv/               # Virtual environment only for packaging\n├── Makefile            # (Optional) Automate builds\n├── project-srcs/       # (Optional) Source trees ready to package\n```\n\n---\n\n## 6. Troubleshooting\n\n- **Problem**: Missing system package?\n\n  - **Solution**: Re-run `apt install` list from Section 1.\n\n- **Problem**: GPG key error during PyPI upload?\n\n  - **Solution**: Run `gpg --list-keys` and configure signing properly, or upload without signing if using token auth.\n\n- **Problem**: Wrong Python version?\n\n  - **Solution**: Create a separate virtual environment under Python 3.10/3.11.\n\n---\n\n## 7. Best Practices\n\n- Build **from clean git tags**.\n- Use **setuptools\\_scm** for versioning if possible.\n- Always **test installs** inside a fresh venv.\n- Only install packaging-specific tools into this environment.\n- \\*\\*Use \\*\\*\\`\\` before uploads.\n\n---\n\n*Updated: 2025-04-27*\n\nMaintained by **Rick's Lab**.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricks-lab%2Fpackaging","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fricks-lab%2Fpackaging","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricks-lab%2Fpackaging/lists"}