google / testrun

A tool to automate verification of network-based device behavior
Apache License 2.0
23 stars 9 forks source link

Fix weasyprint/pydyf dependency mismatch that causes an API runtime error (too many arguments passed to pydif function by weasyprint) #625

Closed caseykelso closed 1 month ago

caseykelso commented 1 month ago

When building testrun in the "wild", our computers hit PYPI directly, I'm assuming that Google is probably using a pypi cache internally so the behavior is different. weasyprint pulls down the latest version of pydyf (0.11.0) which is incompatible with weasyprint 61.2 as specified in testrun's requirements.txt.

Two possible paths for a fix:

google-cla[bot] commented 1 month ago

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

jboddey commented 1 month ago

Thanks for the pr @caseykelso. An issue that comes up in this PR is the version number for weasyprint. Despite pypi suggests the latest version is 62.3, it seems upto 61.2 is available. It may be due to python version used etc. Check the actions for the error message.

caseykelso commented 1 month ago

Thanks for the pr @caseykelso. An issue that comes up in this PR is the version number for weasyprint. Despite pypi suggests the latest version is 62.3, it seems upto 61.2 is available. It may be due to python version used etc. Check the actions for the error message.


Hi, does this mean you would prefer to keep the weasyprint at 61.2 in the requirements.txt, and just add a requirement for pydyf to 0.8.0 to resolve the issue?

jboddey commented 1 month ago

Thanks for the pr @caseykelso. An issue that comes up in this PR is the version number for weasyprint. Despite pypi suggests the latest version is 62.3, it seems upto 61.2 is available. It may be due to python version used etc. Check the actions for the error message.

Hi, does this mean you would prefer to keep the weasyprint at 61.2 in the requirements.txt, and just add a requirement for pydyf to 0.8.0 to resolve the issue?

That looks to be the only way to get it working unless we can understand why version 62.3 does not seem to be available to us

jboddey commented 1 month ago

@caseykelso I have just tried upgrading to 62.3 and it now allows me to. It seems that 62.3 relies on Python 3.9 which is not the default python version in ubuntu 20 so that is not a viable upgrade just yet. The issue with weasyprint can be found here: https://github.com/Kozea/WeasyPrint/issues/2200

Could you verify that this PR works for you?

jboddey commented 1 month ago

@caseykelso Could you sign the Google CLA as soon as possible so we can get this released in a hotfix? You can do this here: https://cla.developers.google.com/

caseykelso commented 1 month ago

@caseykelso Could you sign the Google CLA as soon as possible so we can get this released in a hotfix? You can do this here: https://cla.developers.google.com/

No problem, I signed it.

caseykelso commented 1 month ago

@caseykelso I have just tried upgrading to 62.3 and it now allows me to. It seems that 62.3 relies on Python 3.9 which is not the default python version in ubuntu 20 so that is not a viable upgrade just yet. The issue with weasyprint can be found here: Kozea/WeasyPrint#2200

Could you verify that this PR works for you?

We've already covered this PR in our testing yesterday. weasyprint 62.3 locks the pydyf version to 0.11.0 or greater, and less than 0.12.0, so we'll only get bug patches in theory.

https://github.com/Kozea/WeasyPrint/blob/main/pyproject.toml#L15