Print a warning when importing a stabilized module

pull/7476/head
Marc-André Lureau 4 years ago committed by Jussi Pakkanen
parent aa0d75deae
commit 1c945511eb
  1. 24
      mesonbuild/interpreter.py
  2. 2
      test cases/keyval/1 basic/meson.build
  3. 7
      test cases/keyval/1 basic/test.json

@ -2559,6 +2559,15 @@ class Interpreter(InterpreterBase):
except InvalidArguments:
pass
def import_module(self, modname):
if modname in self.modules:
return
try:
module = importlib.import_module('mesonbuild.modules.' + modname)
except ImportError:
raise InvalidArguments('Module "%s" does not exist' % (modname, ))
self.modules[modname] = module.initialize(self)
@stringArgs
@noKwargs
def func_import(self, node, args, kwargs):
@ -2567,14 +2576,15 @@ class Interpreter(InterpreterBase):
modname = args[0]
if modname.startswith('unstable-'):
plainname = modname.split('-', 1)[1]
mlog.warning('Module %s has no backwards or forwards compatibility and might not exist in future releases.' % modname, location=node)
modname = 'unstable_' + plainname
if modname not in self.modules:
try:
module = importlib.import_module('mesonbuild.modules.' + modname)
except ImportError:
raise InvalidArguments('Module "%s" does not exist' % (modname, ))
self.modules[modname] = module.initialize(self)
# check if stable module exists
self.import_module(plainname)
mlog.warning('Module %s is now stable, please use the %s module instead.' % (modname, plainname))
modname = plainname
except InvalidArguments:
mlog.warning('Module %s has no backwards or forwards compatibility and might not exist in future releases.' % modname, location=node)
modname = 'unstable_' + plainname
self.import_module(modname)
return ModuleHolder(modname, self.modules[modname], self)
@stringArgs

@ -14,3 +14,5 @@ endif
if conf.get('CONFIG_VAL_VAL').to_int() != 4
error('Expected CONFIG_VAL_VAL to be 4')
endif
k = import('unstable-keyval')

@ -0,0 +1,7 @@
{
"stdout": [
{
"line": "WARNING: Module unstable-keyval is now stable, please use the keyval module instead."
}
]
}
Loading…
Cancel
Save