Heh ... speaking of long messages - this time mine was shorter :) On Tue, Nov 11, 2025 at 4:30 PM Amogh Desai <[email protected]> wrote: > > Just in case someone is wondering why I noticed it, I ran into this error: > > Testing started at 2:08 pm ... Launching pytest with arguments > unit/core/test_configuration.py::TestDeprecatedConf::test_validators_can_be_overridden_in_subclass > --no-header --no-summary -q in > /Users/amoghdesai/Documents/OSS/repos/airflow/airflow-core/tests Traceback > (most recent call last): File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 860, in import_plugin __import__(importspec) ~~~~~~~~~~^^^^^^^^^^^^ > File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/assertion/rewrite.py", > line 186, in exec_module exec(co, module.__dict__) > ~~~~^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/devel-common/src/tests_common/pytest_plugin.py", > line 39, in <module> from _pytest.config.findpaths import ConfigValue > ImportError: cannot import name 'ConfigValue' from > '_pytest.config.findpaths' > (/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/findpaths.py) > The above exception was the direct cause of the following exception: > Traceback (most recent call last): File > "/Applications/PyCharm.app/Contents/plugins/python-ce/helpers/pycharm/_jb_pytest_runner.py", > line 75, in <module> sys.exit(pytest.main(args, plugins_to_load + > [Plugin])) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 156, in main config = _prepareconfig(args, plugins) File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 342, in _prepareconfig config = > pluginmanager.hook.pytest_cmdline_parse( pluginmanager=pluginmanager, > args=args ) File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", > line 512, in __call__ return self._hookexec(self.name, > self._hookimpls.copy(), kwargs, firstresult) > ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_manager.py", > line 120, in _hookexec return self._inner_hookexec(hook_name, methods, > kwargs, firstresult) > ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py", > line 167, in _multicall raise exception File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py", > line 139, in _multicall teardown.throw(exception) ~~~~~~~~~~~~~~^^^^^^^^^^^ > File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/helpconfig.py", > line 112, in pytest_cmdline_parse config = yield ^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py", > line 121, in _multicall res = hook_impl.function(*args) File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 1146, in pytest_cmdline_parse self.parse(args) ~~~~~~~~~~^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 1527, in parse self._preparse(args, addopts=addopts) > ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 1431, in _preparse self.hook.pytest_load_initial_conftests( > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ early_config=self, args=args, > parser=self._parser ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ > File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_hooks.py", > line 512, in __call__ return self._hookexec(self.name, > self._hookimpls.copy(), kwargs, firstresult) > ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_manager.py", > line 120, in _hookexec return self._inner_hookexec(hook_name, methods, > kwargs, firstresult) > ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py", > line 167, in _multicall raise exception File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py", > line 139, in _multicall teardown.throw(exception) ~~~~~~~~~~~~~~^^^^^^^^^^^ > File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/warnings.py", > line 129, in pytest_load_initial_conftests return (yield) ^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py", > line 139, in _multicall teardown.throw(exception) ~~~~~~~~~~~~~~^^^^^^^^^^^ > File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/capture.py", > line 173, in pytest_load_initial_conftests yield File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/pluggy/_callers.py", > line 121, in _multicall res = hook_impl.function(*args) File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 1228, in pytest_load_initial_conftests > self.pluginmanager._set_initial_conftests( > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ args=args, ^^^^^^^^^^ ...<8 > lines>... ), ^^ ) ^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 583, in _set_initial_conftests self._try_load_conftest( > ~~~~~~~~~~~~~~~~~~~~~~~^ anchor, ^^^^^^^ ...<2 lines>... > consider_namespace_packages=consider_namespace_packages, > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 621, in _try_load_conftest self._loadconftestmodules( > ~~~~~~~~~~~~~~~~~~~~~~~~~^ anchor, ^^^^^^^ ...<2 lines>... > consider_namespace_packages=consider_namespace_packages, > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 661, in _loadconftestmodules mod = self._importconftest( conftestpath, > ...<2 lines>... consider_namespace_packages=consider_namespace_packages, ) > File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 737, in _importconftest self.consider_conftest(mod, > registration_name=conftestpath_plugin_name) > ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 818, in consider_conftest self.register(conftestmodule, > name=registration_name) > ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 514, in register self.consider_module(plugin) > ~~~~~~~~~~~~~~~~~~~~^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 826, in consider_module self._import_plugin_specs(getattr(mod, > "pytest_plugins", [])) > ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 833, in _import_plugin_specs self.import_plugin(import_spec) > ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 862, in import_plugin raise ImportError( f'Error importing plugin > "{modname}": {e.args[0]}' ).with_traceback(e.__traceback__) from e File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/__init__.py", > line 860, in import_plugin __import__(importspec) ~~~~~~~~~~^^^^^^^^^^^^ > File > "/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/assertion/rewrite.py", > line 186, in exec_module exec(co, module.__dict__) > ~~~~^^^^^^^^^^^^^^^^^^^^^ File > "/Users/amoghdesai/Documents/OSS/repos/airflow/devel-common/src/tests_common/pytest_plugin.py", > line 39, in <module> from _pytest.config.findpaths import ConfigValue > ImportError: Error importing plugin "tests_common.pytest_plugin": cannot > import name 'ConfigValue' from '_pytest.config.findpaths' > (/Users/amoghdesai/Documents/OSS/repos/airflow/.venv/lib/python3.13/site-packages/_pytest/config/findpaths.py) > Process finished with exit code 1 > Which is not too explanatory on what went wrong, I was in the loop for the > pytest bump, hence I noticed it and raised > the concern. > > > Thanks & Regards, > Amogh Desai > > > On Tue, Nov 11, 2025 at 5:07 PM Jarek Potiuk <[email protected]> wrote: > > > Hello here, > > > > As Amogh noticed people might still have an old version of Pytest (<9) in > > their environments and the release of Pytest yesterday changed a bit the > > way how one of our plugins was implemented. > > We already have pytest>=9.0.0 in our dependencies added together with that > > change, So next time you sync your environment it should get updated > > automatically. > > > > So make sure to rebase your PRs to the latest main and sync. > > > > For virtualenvs of yours (remember you should use uv): > > > > uv sync > > > > For images: > > > > breeze ci-image build [--python X.Y] > > > > J. > >
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
