fix(formats): do not write ">=None" when a Pipfile pins no python - #3862
Merged
frostming merged 1 commit intoAug 28, 2026
Merged
Conversation
A Pipfile [requires] table may carry only other markers, e.g. platform_system. The converter formatted the missing version anyway and wrote requires-python = ">=None", which packaging rejects as an invalid specifier. Only emit the key when a version is actually present.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3862 +/- ##
==========================================
+ Coverage 88.72% 88.74% +0.01%
==========================================
Files 120 120
Lines 13278 13279 +1
Branches 2254 2255 +1
==========================================
+ Hits 11781 11784 +3
Misses 931 931
+ Partials 566 564 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
frostming
approved these changes
Aug 28, 2026
halstead
pushed a commit
to openembedded/openembedded-core
that referenced
this pull request
Aug 30, 2026
Source: CHANGELOG.md ## Release v2.29.0 (2026-08-29) ### Features & Improvements - Export editable local dependencies with relative paths in requirements files. ([#3294](pdm-project/pdm#3294)) - Extend `pdm run` with `--env`, `--env-file` and `--working-dir` options to set or override the corresponding script options dynamically. ([#3829](pdm-project/pdm#3829)) ### Bug Fixes - Restrict a locked package to the platform it was resolved for when it doesn't belong to every lock target, so `pdm lock --platform ... --append` no longer adds entries that get installed on the other targets. ([#3261](pdm-project/pdm#3261)) - Keep Poetry `include` entries restricted to the sdist format when importing, writing them to `tool.pdm.build.source-includes` instead of dropping them. ([#3854](pdm-project/pdm#3854)) - Accept `--no-verify-ssl` on `pdm publish`, which was misspelled as `--no-very-ssl`. The old spelling keeps working as an alias. ([#3857](pdm-project/pdm#3857)) - Convert Poetry tilde constraints with fewer than three components to the bounds Poetry means: `~1.2` becomes `<1.3` rather than `<2.0`, and `~1` no longer produces an invalid `~=1` specifier that aborts the import. ([#3858](pdm-project/pdm#3858)) - Keep the separating comma out of the operator and accept a `v` prefix when converting Poetry version constraints. ([#3860](pdm-project/pdm#3860)) - Keep importing a Poetry project when an author or maintainer entry does not fit the `Name <email>` pattern. ([#3861](pdm-project/pdm#3861)) - Skip `requires-python` when a Pipfile `[requires]` table has no python version, instead of writing `>=None`. ([#3862](pdm-project/pdm#3862)) - Leave the version and description empty instead of aborting when a flit module cannot be parsed. ([#3864](pdm-project/pdm#3864)) - Respect dependency group selection options when exporting to `pylock.toml`, producing a single-use lock file that contains only the selected packages. ([#3866](pdm-project/pdm#3866)) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead
pushed a commit
to openembedded/openembedded-core
that referenced
this pull request
Aug 31, 2026
Source: CHANGELOG.md - Export editable local dependencies with relative paths in requirements files. ([#3294](pdm-project/pdm#3294)) - Extend `pdm run` with `--env`, `--env-file` and `--working-dir` options to set or override the corresponding script options dynamically. ([#3829](pdm-project/pdm#3829)) - Restrict a locked package to the platform it was resolved for when it doesn't belong to every lock target, so `pdm lock --platform ... --append` no longer adds entries that get installed on the other targets. ([#3261](pdm-project/pdm#3261)) - Keep Poetry `include` entries restricted to the sdist format when importing, writing them to `tool.pdm.build.source-includes` instead of dropping them. ([#3854](pdm-project/pdm#3854)) - Accept `--no-verify-ssl` on `pdm publish`, which was misspelled as `--no-very-ssl`. The old spelling keeps working as an alias. ([#3857](pdm-project/pdm#3857)) - Convert Poetry tilde constraints with fewer than three components to the bounds Poetry means: `~1.2` becomes `<1.3` rather than `<2.0`, and `~1` no longer produces an invalid `~=1` specifier that aborts the import. ([#3858](pdm-project/pdm#3858)) - Keep the separating comma out of the operator and accept a `v` prefix when converting Poetry version constraints. ([#3860](pdm-project/pdm#3860)) - Keep importing a Poetry project when an author or maintainer entry does not fit the `Name <email>` pattern. ([#3861](pdm-project/pdm#3861)) - Skip `requires-python` when a Pipfile `[requires]` table has no python version, instead of writing `>=None`. ([#3862](pdm-project/pdm#3862)) - Leave the version and description empty instead of aborting when a flit module cannot be parsed. ([#3864](pdm-project/pdm#3864)) - Respect dependency group selection options when exporting to `pylock.toml`, producing a single-use lock file that contains only the selected packages. ([#3866](pdm-project/pdm#3866)) Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead
pushed a commit
to openembedded/openembedded-core
that referenced
this pull request
Sep 1, 2026
Source: CHANGELOG.md - Export editable local dependencies with relative paths in requirements files. ([#3294](pdm-project/pdm#3294)) - Extend `pdm run` with `--env`, `--env-file` and `--working-dir` options to set or override the corresponding script options dynamically. ([#3829](pdm-project/pdm#3829)) - Restrict a locked package to the platform it was resolved for when it doesn't belong to every lock target, so `pdm lock --platform ... --append` no longer adds entries that get installed on the other targets. ([#3261](pdm-project/pdm#3261)) - Keep Poetry `include` entries restricted to the sdist format when importing, writing them to `tool.pdm.build.source-includes` instead of dropping them. ([#3854](pdm-project/pdm#3854)) - Accept `--no-verify-ssl` on `pdm publish`, which was misspelled as `--no-very-ssl`. The old spelling keeps working as an alias. ([#3857](pdm-project/pdm#3857)) - Convert Poetry tilde constraints with fewer than three components to the bounds Poetry means: `~1.2` becomes `<1.3` rather than `<2.0`, and `~1` no longer produces an invalid `~=1` specifier that aborts the import. ([#3858](pdm-project/pdm#3858)) - Keep the separating comma out of the operator and accept a `v` prefix when converting Poetry version constraints. ([#3860](pdm-project/pdm#3860)) - Keep importing a Poetry project when an author or maintainer entry does not fit the `Name <email>` pattern. ([#3861](pdm-project/pdm#3861)) - Skip `requires-python` when a Pipfile `[requires]` table has no python version, instead of writing `>=None`. ([#3862](pdm-project/pdm#3862)) - Leave the version and description empty instead of aborting when a flit module cannot be parsed. ([#3864](pdm-project/pdm#3864)) - Respect dependency group selection options when exporting to `pylock.toml`, producing a single-use lock file that contains only the selected packages. ([#3866](pdm-project/pdm#3866)) Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A Pipfile
[requires]table does not have to carry a python version - pipenv allows other markers in there:The converter read
python_full_version or python_version, gotNone, and formatted it anyway:which packaging rejects outright:
so the generated
pyproject.tomlis unusable. An empty[requires]table does the same thing.Only emit the key when a version is actually there. Covered by a parametrized test for both the empty table and the markers-only table.