- Notifications
You must be signed in to change notification settings - Fork689
Description
Description:
At the moment thepython-version output for PyPy only includes the PyPy release version. In our workflow we use thepython-version output to calculate a custom cache key. This breaks if the output for different minor version is the same. PyPy itself uses a combination of python version and internal version to identify each release.
| PyPy file name1 | python-version output | expected output |
|---|---|---|
| pypy3.10-v7.3.19-... | pypy7.3.19 | pypy3.10.16-7.3.19 |
| pypy3.11-v7.3.19-... | pypy7.3.19 | pypy3.11.11-7.3.19 |
Line 99 ina26af69
| core.setOutput('python-version','pypy'+resolvedPyPyVersion); |
It would be great if the output could be adjusted to include the python version as well. For it's own caching key, the action already uses a combine version identifier.
setup-python/src/setup-python.ts
Line 111 ina26af69
| pythonVersion=`${installed.resolvedPyPyVersion}-${installed.resolvedPythonVersion}`; |
--
AFAICT this also affectsgraalpy. In that case it isn't an issue though as a particular release only supports one minor python version.
Expected behavior:
Thepython-version output for PyPy contains both the fully resolved python version as well as the resolved PyPy version. E.g.
`pypy${resolvedPythonVersion}-${resolvedPyPyVersion}`Actual behavior:
'pypy'+resolvedPyPyVersion
Action version:
v5.6.0
Platform:
- Ubuntu
- macOS
- Windows
Runner type:
- Hosted
- Self-hosted
Tools version:
PyPy
Repro steps:
tests:name:"Test ${{ matrix.python-version }}"strategy:matrix:python-version:["3.10", "3.11", "3.12", "pypy-3.10", "pypy-3.11"]runs-on:ubuntu-lateststeps: -name:Check out code from GitHubuses:actions/checkout@v4.2.2 -name:Set up Python ${{ matrix.python-version }}id:pythonuses:actions/setup-python@v5.6.0with:python-version:${{ matrix.python-version }}check-latest:true -run:echo "${{ steps.python.outputs.python-version }}" -name:Restore Python venvid:cache-venvuses:actions/cache@v4.2.3with:path:venvkey:>- ${{ runner.os }}-${{ runner.arch }}-${{ steps.python.outputs.python-version }}-${{ hashFiles('pyproject.toml', 'requirements_test.txt') }} -name:Create Python venvif:steps.cache-venv.outputs.cache-hit != 'true'run:| python -m venv venv . venv/bin/activate pip install -r requirements_test.txt pip install . -name:Run pytestrun:| . venv/bin/activate pip install . --no-deps pytest tests/