Skip to content

Fix server_to_ansys_grpc_dpf_version due to Packaging 22.0 not recognizing "*" #676

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

Merged
merged 1 commit into from
Dec 8, 2022

Conversation

anslpa
Copy link
Contributor

@anslpa anslpa commented Dec 8, 2022

Packaging released 22.0 and 0.7.* is not considered as a valid version anymore.

Traceback (most recent call last):
  File "D:\a\pydpf-core\pydpf-core\.ci\..\examples\00-basic\11-server_types.py", line 44, in <module>
    legacy_grpc_server = dpf.start_local_server(config=legacy_grpc_config)
  File "C:\hostedtoolcache\windows\Python\3.8.10\x64\lib\site-packages\ansys\dpf\core\server.py", line 230, in start_local_server
    server = server_type(
  File "C:\hostedtoolcache\windows\Python\3.8.10\x64\lib\site-packages\ansys\dpf\core\server_types.py", line 993, in __init__
    check_ansys_grpc_dpf_version(self, timeout)
  File "C:\hostedtoolcache\windows\Python\3.8.10\x64\lib\site-packages\ansys\dpf\core\server_types.py", line 334, in check_ansys_grpc_dpf_version
    if not _compare_ansys_grpc_dpf_version(right_grpc_module_version, grpc_module_version):
  File "C:\hostedtoolcache\windows\Python\3.8.10\x64\lib\site-packages\ansys\dpf\core\server_types.py", line 298, in _compare_ansys_grpc_dpf_version
    return parse_version(grpc_module_version) >= parse_version(right_version_numbers)
  File "C:\hostedtoolcache\windows\Python\3.8.10\x64\lib\site-packages\packaging\version.py", line 52, in parse
    return Version(version)
  File "C:\hostedtoolcache\windows\Python\3.8.10\x64\lib\site-packages\packaging\version.py", line 197, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
packaging.version.InvalidVersion: Invalid version: '0.7.*'

It only affects LegacyGrpcServer.
0.7.* can be replaced by 0.7dev, to ensure we consider all the 0.7.X.devX pre-release versions of ansys-grpc-dpf package.
Here is the testing that has been done for validation:


With packaging==22.0

>>> from packaging.version import parse as parse_version
>>> l = [parse_version("0.7"),parse_version("0.7dev"),parse_version("0.7.0"),parse_version("0.7.b0"),parse_version("0.7.b1"),parse_version("0.7.0b1"),parse_version("0.7.0dev0"),parse_version("0.7.1dev0"),parse_version("0.7.dev0"),parse_version("0.7.1b0")]
>>> l
[<Version('0.7')>, <Version('0.7.dev0')>, <Version('0.7.0')>, <Version('0.7b0')>, <Version('0.7b1')>, <Version('0.7.0b1')>, <Version('0.7.0.dev0')>, <Version('0.7.1.dev0')>, <Version('0.7.dev0')>, <Version('0.7.1b0')>]
>>> l.sort()
>>> l
[<Version('0.7.dev0')>, <Version('0.7.0.dev0')>, <Version('0.7.dev0')>, <Version('0.7b0')>, <Version('0.7b1')>, <Version('0.7.0b1')>, <Version('0.7')>, <Version('0.7.0')>, <Version('0.7.1.dev0')>, <Version('0.7.1b0')>]
>>> parse_version("0.6.9") <= parse_version("0.7dev")
True

With packaging==21.3

>>> from packaging.version import parse as parse_version
>>> parse_version("0.7.*") <= parse_version("0.7dev")
True

>>> l = [parse_version("0.7"),parse_version("0.7dev"),parse_version("0.7.0"),parse_version("0.7.b0"),parse_version("0.7.b1"),parse_version("0.7.0b1"),parse_version("0.7.0dev0"),parse_version("0.7.1dev0"),parse_version("0.7.dev0"),parse_version("0.7.1b0")]
>>> l
[<Version('0.7')>, <Version('0.7.dev0')>, <Version('0.7.0')>, <Version('0.7b0')>, <Version('0.7b1')>, <Version('0.7.0b1')>, <Version('0.7.0.dev0')>, <Version('0.7.1.dev0')>, <Version('0.7.dev0')>, <Version('0.7.1b0')>]
>>> l.sort()
>>> l
[<Version('0.7.dev0')>, <Version('0.7.0.dev0')>, <Version('0.7.dev0')>, <Version('0.7b0')>, <Version('0.7b1')>, <Version('0.7.0b1')>, <Version('0.7')>, <Version('0.7.0')>, <Version('0.7.1.dev0')>, <Version('0.7.1b0')>]

@anslpa anslpa requested review from PProfizi and cbellot000 December 8, 2022 09:25
@anslpa anslpa marked this pull request as ready for review December 8, 2022 09:25
@PProfizi
Copy link
Contributor

PProfizi commented Dec 8, 2022

Packaging released 22.0 and 0.7.* is not considered as a valid version anymore. It only affects LegacyGrpcServer. 0.7.* can be replaced by 0.7dev, to ensure we consider all the 0.7.X.devX pre-release versions of ansys-grpc-dpf package. Here is the testing that has been done for validation:

With packaging==22.0

>>> from packaging.version import parse as parse_version
>>> l = [parse_version("0.7"),parse_version("0.7dev"),parse_version("0.7.0"),parse_version("0.7.b0"),parse_version("0.7.b1"),parse_version("0.7.0b1"),parse_version("0.7.0dev0"),parse_version("0.7.1dev0"),parse_version("0.7.dev0"),parse_version("0.7.1b0")]
>>> l
[<Version('0.7')>, <Version('0.7.dev0')>, <Version('0.7.0')>, <Version('0.7b0')>, <Version('0.7b1')>, <Version('0.7.0b1')>, <Version('0.7.0.dev0')>, <Version('0.7.1.dev0')>, <Version('0.7.dev0')>, <Version('0.7.1b0')>]
>>> l.sort()
>>> l
[<Version('0.7.dev0')>, <Version('0.7.0.dev0')>, <Version('0.7.dev0')>, <Version('0.7b0')>, <Version('0.7b1')>, <Version('0.7.0b1')>, <Version('0.7')>, <Version('0.7.0')>, <Version('0.7.1.dev0')>, <Version('0.7.1b0')>]
>>> parse_version("0.6.9") <= parse_version("0.7dev")
True

With packaging==21.3

>>> from packaging.version import parse as parse_version
>>> parse_version("0.7.*") <= parse_version("0.7dev")
True

So when doing it with 0.7.* what does it do?

@anslpa
Copy link
Contributor Author

anslpa commented Dec 8, 2022

Packaging released 22.0 and 0.7.* is not considered as a valid version anymore. It only affects LegacyGrpcServer. 0.7.* can be replaced by 0.7dev, to ensure we consider all the 0.7.X.devX pre-release versions of ansys-grpc-dpf package. Here is the testing that has been done for validation:
With packaging==22.0

>>> from packaging.version import parse as parse_version
>>> l = [parse_version("0.7"),parse_version("0.7dev"),parse_version("0.7.0"),parse_version("0.7.b0"),parse_version("0.7.b1"),parse_version("0.7.0b1"),parse_version("0.7.0dev0"),parse_version("0.7.1dev0"),parse_version("0.7.dev0"),parse_version("0.7.1b0")]
>>> l
[<Version('0.7')>, <Version('0.7.dev0')>, <Version('0.7.0')>, <Version('0.7b0')>, <Version('0.7b1')>, <Version('0.7.0b1')>, <Version('0.7.0.dev0')>, <Version('0.7.1.dev0')>, <Version('0.7.dev0')>, <Version('0.7.1b0')>]
>>> l.sort()
>>> l
[<Version('0.7.dev0')>, <Version('0.7.0.dev0')>, <Version('0.7.dev0')>, <Version('0.7b0')>, <Version('0.7b1')>, <Version('0.7.0b1')>, <Version('0.7')>, <Version('0.7.0')>, <Version('0.7.1.dev0')>, <Version('0.7.1b0')>]
>>> parse_version("0.6.9") <= parse_version("0.7dev")
True

With packaging==21.3

>>> from packaging.version import parse as parse_version
>>> parse_version("0.7.*") <= parse_version("0.7dev")
True

So when doing it with 0.7.* what does it do?

I just updated the description, it does that:

image

@codecov
Copy link

codecov bot commented Dec 8, 2022

Codecov Report

Merging #676 (a55ab24) into master (d9f9f46) will increase coverage by 0.09%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #676      +/-   ##
==========================================
+ Coverage   88.15%   88.24%   +0.09%     
==========================================
  Files          69       69              
  Lines        7760     7760              
==========================================
+ Hits         6841     6848       +7     
+ Misses        919      912       -7     

@anslpa
Copy link
Contributor Author

anslpa commented Dec 8, 2022

>>> from packaging.version import parse as parse_version
>>> parse_version("0.7.dev0") <= parse_version("0.7.0.dev0")
True
>>> parse_version("0.7dev") <= parse_version("0.7.0.dev0")
True
>>> parse_version("0.7dev") <= parse_version("0.7.0dev0")
True
>>> parse_version("0.7.dev0") <= parse_version("0.7.0dev0")
True
>>> parse_version("0.7.dev0") == parse_version("0.7.0dev0")
True
>>> parse_version("0.7dev") == parse_version("0.7.0dev0")
True

@anslpa anslpa merged commit 87cbed9 into master Dec 8, 2022
@anslpa anslpa deleted the packaging/parse_version/fix branch December 8, 2022 10:19
@PProfizi PProfizi added the bug Something isn't working label Dec 13, 2022
@PProfizi PProfizi changed the title Packaging update requires a fix in server_to_ansys_grpc_dpf_version Fix server_to_ansys_grpc_dpf_version due to Packaging 22.0 not recognizing "*" Dec 13, 2022
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 this pull request may close these issues.

2 participants