{"id":13764383,"url":"https://github.com/GabDug/pdm-wheel","last_synced_at":"2025-05-10T19:30:56.435Z","repository":{"id":193858842,"uuid":"594800681","full_name":"GabDug/pdm-wheel","owner":"GabDug","description":"PDM plugin that save your requirements as wheels, similar to pip wheel","archived":false,"fork":false,"pushed_at":"2025-05-10T12:18:58.000Z","size":277,"stargazers_count":8,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-10T13:28:23.198Z","etag":null,"topics":["pdm","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GabDug.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2023-01-29T17:23:29.000Z","updated_at":"2024-12-29T21:12:09.000Z","dependencies_parsed_at":"2023-09-10T13:39:10.663Z","dependency_job_id":"23d7f972-161b-405c-aebe-d68d8f47a690","html_url":"https://github.com/GabDug/pdm-wheel","commit_stats":null,"previous_names":["gabdug/pdm-wheel"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabDug%2Fpdm-wheel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabDug%2Fpdm-wheel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabDug%2Fpdm-wheel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabDug%2Fpdm-wheel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GabDug","download_url":"https://codeload.github.com/GabDug/pdm-wheel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253470662,"owners_count":21913707,"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":["pdm","python"],"created_at":"2024-08-03T16:00:19.774Z","updated_at":"2025-05-10T19:30:56.152Z","avatar_url":"https://github.com/GabDug.png","language":"Python","funding_links":[],"categories":["Plugins"],"sub_categories":[],"readme":"# pdm-wheel\n\n[![Tests](https://github.com/GabDug/pdm-wheel/actions/workflows/ci.yml/badge.svg)](https://github.com/GabDug/pdm-wheel/actions/workflows/ci.yml)\n[![pypi version](https://img.shields.io/pypi/v/pdm-wheel.svg)](https://pypi.org/project/pdm-wheel/)\n[![License](https://img.shields.io/pypi/l/pdm-wheel.svg)](https://pypi.python.org/pypi/pdm-wheel)\n[![Python version](https://img.shields.io/pypi/pyversions/pdm-wheel.svg)](https://pypi.python.org/pypi/pdm-wheel)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/GabDug/pdm-wheel/main.svg?badge_token=PzBISUnvTEeYahD7i22qiA)](https://results.pre-commit.ci/latest/github/GabDug/pdm-wheel/main?badge_token=PzBISUnvTEeYahD7i22qiA)\n[![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm.fming.dev)\n[![Ruff](https://img.shields.io/badge/ruff-lint-red)](https://github.com/charliermarsh/ruff)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![codecov](https://codecov.io/gh/GabDug/pdm-wheel/graph/badge.svg?token=DNNG0ZOODJ)](https://codecov.io/gh/GabDug/pdm-wheel)\n\nA PDM plugin that save your requirements as wheels, similar to [`pip wheel`](https://pip.pypa.io/en/stable/cli/pip_wheel/)\n\n## Use cases\n\n- You want to build wheels for your dependencies, but don't want to use `pdm export` and `pip wheel`.\n- You need to pass the wheels to a CI/CD pipeline, and don't want to build them on the CI/CD server.\n- You want to install dependencies in a Docker image, but don't want to configure private repositories in the image.\n\n## Supported versions\n\n- Python 3.10+\n- PDM 2.7.4+ (not 2.13.0 and 2.13.1)\n\nWe recommend you use the patch versions of Python and PDM.\n\n## Installation\n\nInstall it [just like any other PDM plugin](https://pdm.fming.dev/latest/dev/write/#activate-the-plugin):\n\n```bash\npdm self add pdm-wheel\n```\n\nIf you have installed PDM with the recommended tool `pipx`, add this plugin by:\n\n```bash\npipx inject pdm pdm-wheel\n```\n\nOr if you have installed PDM with `pip install --user pdm`, install with `pip` to the user site:\n\n```bash\npython -m pip install --user pdm-wheel\n```\n\nOptionally, you can also specify [the plugin in your project](https://pdm.fming.dev/latest/dev/write/#specify-the-plugins-in-project) `pyproject.toml`, to make it installable with `pdm install --plugins`:\n\n```toml\n[tool.pdm]\nplugins = [\n    \"pdm-wheel\"\n]\n```\n\n## Usage\n\n```bash\npdm wheel [common-options] [dependencies-selection-options] [wheel-options]\n```\n\n💡 Check the options for your version of `pdm wheel` with:\n\n```bash\npdm wheel --help\n```\n\n**Wheel Options:**\n\n`-w OUTPUT, --wheel-dir OUTPUT`\n\n\u003e Specify the output directory. It will be created it it does not exists. Default is the current directory `./wheels`\n\u003e Environment variable: `PDM_WHEEL_DIR`\n\n`--clean`\n\n\u003e Clean the target directory before building.\n\n`--no-clean`\n\n\u003e Do not clean the target directory before building. This is the default behavior.\n\n## Notes on lockfiles\n\nPDM 2.8+ now saves the lockfiles with only hashes and no URL by default.\n\nThere is currently a performance overhead, as some internals expect the URL to be present, else they will try to reach the indexes to get it.\n\nThus, I recommend you use `pdm lock --static-urls` to have faster `pdm wheel` operations.\n\n_Read more about this in [PDM's documentation](https://pdm.fming.dev/latest/usage/dependency/#store-static-urls-or-filenames-in-lockfile)._\n\n## Examples\n\n```bash\n# Save all dependencies (including dev deps) as wheels in the ./wheels folder\npdm wheel -w wheels\n# Save all dev dependencies  as wheels in the ./wheels folder\npdm wheel -w wheels --dev\n# Save all non-dev dependencies as wheels in the ./wheels folder\npdm wheel -w wheels --prod\n```\n\n## Caveats\n\n1. `pdm-wheel` does not check whether the wheels are already built.\n\n## Changelog\n\nSee [Github Releases](https://github.com/GabDug/pdm-wheel/releases)\n\n## Acknowledgements\n\n`pdm-wheel` is inspired by [`pip wheel`](https://pip.pypa.io/en/stable/cli/pip_wheel/).\n\n`pdm-wheel`'s structure is based on frostming's [`pdm-packer`](https://github.com/frostming/pdm-packer/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGabDug%2Fpdm-wheel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGabDug%2Fpdm-wheel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGabDug%2Fpdm-wheel/lists"}