puppet-python icon indicating copy to clipboard operation
puppet-python copied to clipboard

Puppet pre-releases causing corrective changes

Open negast opened this issue 5 years ago • 4 comments
trafficstars

Pip pre releases are set as the latest available package by puppet. This is done by following command

pip --log /tmp/pip.log install pip==notreallyaversion 2>&1 | grep -oP "\(from versions: .*\)" | sed -E "s/\(from versions: (.*?, )*(.*)\)/\2/g" | tr -d "[:space:]") = $(pip freeze --all | grep -i -e ^pip== | cut -d= -f3 | tr -d '[:space:]'

As of time of writing i got 20.2b1 however when you try to upgrade you dont get the pre release but latest stable version as that is not tagged latest version https://pypi.org/project/pip/#history

Thus puppet tries to correct this each time and you get a coorective change.

I think the check command should be changed so the pre releases are excluded from the latest version check. Or have the option to install pre-releases and keep the old check.

I checked and following command gave me the latest release:

pip --log /tmp/pip.log install pip==notreallyaversion 2>&1 | grep -oP "\(from versions: .*\)" | tr " " "\n" | grep -v b | sed 's/,//g' | tail -n 1

negast avatar May 29 '20 07:05 negast

Any updates on this?

creativefre avatar Jun 22 '20 12:06 creativefre

We are also affected by this and I would like to fix it.

But it's at least slightly more complicated than you suggest, @negast. Pre-releases have more possible segments than "bN", see https://peps.python.org/pep-0440/#pre-releases .

gdubicki avatar May 11 '22 16:05 gdubicki

I think that this works, although it could use some optimisation (probably one sed in place of tr and those 2 seds will do): pip install pip==notreallyaversion 2>&1 | grep -oP "(from versions: .*)" | tr " " "\n" | sed 's/,//g' | sed 's/)//g' | grep -vP '\d(a|b|rc)\d+((\.post|dev)\d+)?$' | tail -n 1

gdubicki avatar May 11 '22 17:05 gdubicki

Note to self: we need to remember that the behavior of this should change if we add —pre to the params passed to pip.

gdubicki avatar May 12 '22 06:05 gdubicki