pantry/projects/pip.pypa.io/package.yml
2024-01-07 05:43:19 -05:00

109 lines
2.7 KiB
YAML

distributable:
url: https://github.com/pypa/pip/archive/refs/tags/{{version.raw}}.tar.gz
strip-components: 1
versions:
github: pypa/pip/tags
# FIXME: the major prior to 18 is 10, which is ancient and doesn't currently work
ignore: ['<18']
dependencies:
pkgx.sh: ^1
build:
dependencies:
python.org: ~3.11
crates.io/semverator: ^0.4.3
script:
- pkgx curl -O https://bootstrap.pypa.io/get-pip.py
- rm -rf bootstrap && mkdir bootstrap
- python get-pip.py --target=bootstrap
- PYTHONPATH=$PWD/bootstrap
python -m pip install .
--target={{prefix}}/libexec
- run:
# FIXME 3.7 *should* work but doesn't
- v=3.7
# Python 3.12 had various breaking changes (semver is meaningless
# apparently) and thus pip less than 23.1.2 will not work with it
# FIXME hardcoding 3.12 sucks
- |
if semverator lt {{version}} 23.1.2; then
vMax=3.11
else
vMax=3.12
fi
- while semverator lt $v $vMax; do
- v=$(semverator bump $v minor | cut -d. -f1,2)
- |
install -D $PROP {{prefix}}/bin/pip$v
echo "exec pkgx python@$v \"\$d/bin/pip\" \"\$@\"" >> {{prefix}}/bin/pip$v
- done
# FIXME hardcoded `3`
- |
install -D $PROP {{prefix}}/bin/pip3
if semverator lt {{version}} 23.1.2; then
python="'python<3.12'"
else
python=python@3
fi
echo "exec pkgx $python \"\$d/bin/pip\" \"\$@\"" >> {{prefix}}/bin/pip3
- |
install -D $PROP {{prefix}}/bin/pip
if semverator lt {{version}} 23.1.2; then
python="'python<3.12'"
else
python=python
fi
echo "exec pkgx $python \"\$d/bin/pip\" \"\$@\"" >> {{prefix}}/bin/pip
prop: |
#!/bin/sh
d="$(cd "$(dirname "$0")"/.. && pwd)/libexec"
export PIP_DISABLE_PIP_VERSION_CHECK=1
if [ -n "$PYTHONPATH" ]; then
export PYTHONPATH="$d:$PYTHONPATH"
else
export PYTHONPATH="$d"
fi
# cleanup unused files
- rm {{prefix}}/libexec/bin/pip?*
- fix-shebangs.ts {{prefix}}/libexec/bin/*
test:
- run: pkgx +python.org~3.9 pip install findtui --target .
if: ~18
- run:
- pip install findtui --target foo
- pip3.10 install findtui --target .
if: '>=19'
- test -f findtui/main.py
- pip --version | grep {{prefix}}
- pip --version | grep {{version}}
- run: |
for v in 3.8 3.9 3.10 3.11; do
test $(pip$v inspect | pkgx jq --raw-output .environment.python_version) = $v
done
if: '>=22' # inspect command introduced at v22
provides:
- bin/pip
- bin/pip3.8
- bin/pip3.9
- bin/pip3.10
- bin/pip3.11
#FIXME - bin/pip3.12
#FIXME - bin/pip{{deps.python.org.version.major}}