Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolution loop: indirect cyclic dependency #1541

Closed
1 task done
pawamoy opened this issue Dec 2, 2022 · 4 comments · Fixed by j178/pdm#1
Closed
1 task done

Resolution loop: indirect cyclic dependency #1541

pawamoy opened this issue Dec 2, 2022 · 4 comments · Fixed by j178/pdm#1
Labels
🐛 bug Something isn't working

Comments

@pawamoy
Copy link
Sponsor Contributor

pawamoy commented Dec 2, 2022

  • I have searched the issue tracker and believe that this is not a duplicate.

Steps to reproduce

Following #1536, I was able to lock dependencies locally without any issue, however it goes in a loop in CI.
https://github.com/mkdocstrings/griffe/actions/runs/3602692764/jobs/6069966635

pdm.termui: ======== Starting round 97 ========
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.2 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.2 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.1 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.1 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.0 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.0 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.7.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.7.1 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.7.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.7.1 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.7.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.7.0 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.7.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.7.0 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.6)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.6 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.6)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.6 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.5)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.5 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.5)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.5 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.4)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.4 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.4)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.4 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.3)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.3 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.3)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.3 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.2 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.2 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.1 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.1 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.0 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.0 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.4)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.4 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.4)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.4 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.3)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.3 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.3)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.3 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.2 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.2 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui: Conflicts detected: 
  griffe>=0.24 (from mkdocstrings-python@0.8.2)
  griffe>=0.24 (from mkdocstrings-python@0.8.2)
  griffe>=0.24 (from mkdocstrings-python@0.8.1)
  griffe>=0.24 (from mkdocstrings-python@0.8.1)
  griffe>=0.24 (from mkdocstrings-python@0.8.0)
  griffe>=0.24 (from mkdocstrings-python@0.8.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.7.1)
  griffe>=0.11.1 (from mkdocstrings-python@0.7.1)
  griffe>=0.11.1 (from mkdocstrings-python@0.7.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.7.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.6)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.6)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.5)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.5)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.4)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.4)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.3)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.3)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.2)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.2)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.1)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.1)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.4)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.4)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.3)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.3)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.2)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.2)
pdm.termui: ======== Ending round 97 ========
pdm.termui: ======== Starting round 1311 ========
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.2 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.2 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.1 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.1 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.0 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.24(from mkdocstrings-python 0.8.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.8.0 because it introduces a new requirement griffe>=0.24 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.7.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.7.1 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.7.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.7.1 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.7.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.7.0 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.7.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.7.0 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.6)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.6 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.6)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.6 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.5)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.5 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.5)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.5 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.4)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.4 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.4)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.4 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.3)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.3 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.3)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.3 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.2 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.2 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.1 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.1)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.1 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.0 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.6.0)
pdm.termui: Candidate rejected: mkdocstrings-python@0.6.0 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.4)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.4 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.4)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.4 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.3)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.3 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.3)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.3 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.2 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui:   Adding requirement griffe>=0.11.1(from mkdocstrings-python 0.5.2)
pdm.termui: Candidate rejected: mkdocstrings-python@0.5.2 because it introduces a new requirement griffe>=0.11.1 that conflicts with other requirements:
  
pdm.termui: Conflicts detected: 
  griffe>=0.24 (from mkdocstrings-python@0.8.2)
  griffe>=0.24 (from mkdocstrings-python@0.8.2)
  griffe>=0.24 (from mkdocstrings-python@0.8.1)
  griffe>=0.24 (from mkdocstrings-python@0.8.1)
  griffe>=0.24 (from mkdocstrings-python@0.8.0)
  griffe>=0.24 (from mkdocstrings-python@0.8.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.7.1)
  griffe>=0.11.1 (from mkdocstrings-python@0.7.1)
  griffe>=0.11.1 (from mkdocstrings-python@0.7.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.7.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.6)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.6)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.5)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.5)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.4)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.4)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.3)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.3)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.2)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.2)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.1)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.1)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.6.0)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.4)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.4)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.3)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.3)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.2)
  griffe>=0.11.1 (from mkdocstrings-python@0.5.2)
pdm.termui: ======== Ending round 1311 ========

Cache is disabled in CI so that can explain the different behavior between local and CI. I'll try to reproduce locally.

Environment Information

Run pdm-project/setup-pdm@v3
  with:
    python-version: 3.8
    token: ***
    prerelease: false
    enable-pep582: true
    cache: false
    cache-dependency-path: pdm.lock
  env:
    LANG: en_US.utf-8
    LC_ALL: en_US.utf-8
    PYTHONIOENCODING: UTF-8

Installing PDM (2.3.0): Creating virtual environment
Installing PDM (2.3.0): Installing PDM and dependencies
Installing PDM (2.3.0): Making binary at /home/runner/.local/bin

Successfully installed: PDM (2.3.0) at /home/runner/.local/bin/pdm
Writing output to install-output.json
Successfully set up CPython (3.8.14)
Successfully setup 2.3.0 with Python 3.8.14
@pawamoy pawamoy added the 🐛 bug Something isn't working label Dec 2, 2022
@pawamoy
Copy link
Sponsor Contributor Author

pawamoy commented Dec 2, 2022

Also note that the setup action says PEP582 is enabled, however PDM creates a venv:

Run pdm lock -v
  pdm lock -v
  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    LANG: en_US.utf-8
    LC_ALL: en_US.utf-8
    PYTHONIOENCODING: UTF-8
    PYTHONPATH: /home/runner/.local/share/pdm/venv/lib/python3.10/site-packages/pdm/pep582
    pythonLocation: /opt/hostedtoolcache/Python/3.8.14/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.8.14/x64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.8.14/x64
    Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.8.14/x64
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.8.14/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.8.14/x64/lib
    LD_PRELOAD: /lib/x86_64-linux-gnu/libgcc_s.so.1
python.use_venv is on, creating a virtualenv for this project...
Run command: ['/home/runner/.local/share/pdm/venv/bin/python', '-m', 'virtualenv', '/home/runner/work/griffe/griffe/.venv', '-p', '/opt/hostedtoolcache/Python/3.8.14/x64/bin/python', '--no-pip', '--no-setuptools', '--no-wheel', '--prompt=griffe-3.8']
created virtual environment CPython3.8.14.final.0-64 in 130ms
  creator CPython3Posix(dest=/home/runner/work/griffe/griffe/.venv, clear=False, no_vcs_ignore=False, global=False)
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Virtualenv is created successfully at /home/runner/work/griffe/griffe/.venv

Not sure if this has any impact.

@frostming
Copy link
Collaborator

Same here, cannot reproduce locally, with venv enabled.

@frostming
Copy link
Collaborator

frostming commented Dec 3, 2022

Oh, I got some clue:

# Allow prereleases if: 1) it is not specified in the tool settings or
# 2) the candidate doesn't come from PyPI index.
allow_prereleases = (
self.allow_prereleases in (True, None) or not candidate.req.is_named
)
return cast(SpecifierSet, requirement.specifier).contains(
version, allow_prereleases
)

For the self requirement(such as griffe>=0.24.0), the editable candidate representing the current project will always be returned, but PDM will check if the version is compatible with the given range. For CI run, as the VCS is not available the package version will be resolved to 0.1.dev and is out of the version specifier >=0.24.0. It run without problem locally because the VCS is available and version is resolved correctly to 0.24.0dev...

We should bypass the is_satisfied_by check for self package.

@pawamoy
Copy link
Sponsor Contributor Author

pawamoy commented Dec 3, 2022

Ah, yes, so obvious now, good catch!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛 bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants