AcademySoftwareFoundation / rez

An integrated package configuration, build and deployment system for software
https://rez.readthedocs.io
Apache License 2.0
939 stars 332 forks source link

rez 2.114.0 produces an error if a custom configuration file is used with a deprecated key #1594

Closed predat closed 9 months ago

predat commented 9 months ago

Environment

To Reproduce

  1. Create /tmp/rezconfig.py with only disable_rez_1_compatibility = False in it
  2. export REZ_CONFIG_FILE='/tmp/rezconfig.py
  3. rez -V

Expected behavior Should display rez version

Actual behavior

TypeError: _Deprecation.get_message() missing 1 required positional argument: 'name'
Exception ignored in atexit callback: <function _atexit at 0x7f8e352cfce0>
Traceback (most recent call last):
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/util.py", line 148, in _atexit
    from rez.resolved_context import ResolvedContext
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/resolved_context.py", line 8, in <module>
    from rez.package_repository import package_repository_manager
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/package_repository.py", line 648, in <module>
    package_repository_manager = PackageRepositoryManager()
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/package_repository.py", line 528, in __init__
    cache_size = config.resource_caching_maxsize
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/utils/data_utils.py", line 252, in __get__
    result = self.func(instance)
             ^^^^^^^^^^^^^^^^^^^
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/utils/data_utils.py", line 674, in getter
    if key not in (self._data or {}):
                   ^^^^^^^^^^
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/utils/data_utils.py", line 252, in __get__
    result = self.func(instance)
             ^^^^^^^^^^^^^^^^^^^
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/config.py", line 762, in _data
    data = copy.deepcopy(self._data_without_overrides)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/utils/data_utils.py", line 252, in __get__
    result = self.func(instance)
             ^^^^^^^^^^^^^^^^^^^
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/config.py", line 757, in _data_without_overrides
    data, self._sourced_filepaths = _load_config_from_filepaths(self.filepaths)
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/softwares/rez/2.114.0-vanilla-py311/lib/python3.11/site-packages/rez/config.py", line 1035, in _load_config_from_filepaths
    _deprecated_settings[key].get_message(),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: _Deprecation.get_message() missing 1 required positional argument: 'name'

Related Issues/PRs

Regression

predat commented 9 months ago

can be easily fixed:

-- a/src/rez/config.py
+++ b/src/rez/config.py
@@ -1032,7 +1032,7 @@ def _load_config_from_filepaths(filepaths):
                 for key in data_:
                     if key in _deprecated_settings:
                         rez.deprecations.warn(
-                            _deprecated_settings[key].get_message(),
+                            _deprecated_settings[key].get_message(key, env_var=False),
                             rez.deprecations.RezDeprecationWarning,
                             pre_formatted=True,
                             filename=filepath_with_ext,
JeanChristopheMorinPerso commented 9 months ago

Umm, a little embarrassing. Thanks for reporting this issue. I'll find some time today to issue a release to fix this.

JeanChristopheMorinPerso commented 9 months ago

Thanks, I'll check what u can do to with this too.

(That's what happens when there is no code review and I don't write tests).

JeanChristopheMorinPerso commented 9 months ago

Hi @predat, we just released 2.114.1 which should fix this issue.