diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-09-28 15:51:40 +1300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-10 14:44:31 +0000 |
commit | 92c4d9be9ed365c449ea1ac5a18ddb15e4a36b2d (patch) | |
tree | ad8d4e0a77d69e782f5249801d0eb9d53717242a | |
parent | 30d2ea67b2c4727e23d06a35745b1afa64b130cc (diff) | |
download | openembedded-core-92c4d9be9ed365c449ea1ac5a18ddb15e4a36b2d.tar.gz openembedded-core-92c4d9be9ed365c449ea1ac5a18ddb15e4a36b2d.tar.bz2 openembedded-core-92c4d9be9ed365c449ea1ac5a18ddb15e4a36b2d.zip |
devtool: show some warnings for upgrade versions
* Show a warning in devtool upgrade if the version is less than the
current version suggesting that the user may need to bump PE in the
recipe
* Show a warning in devtool add and devtool upgrade if the version looks
like a pre-release version suggesting using a version number that
won't mess up the progression when you come to upgrade to the final
release version.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r-- | scripts/lib/devtool/__init__.py | 13 | ||||
-rw-r--r-- | scripts/lib/devtool/standard.py | 4 | ||||
-rw-r--r-- | scripts/lib/devtool/upgrade.py | 9 |
3 files changed, 23 insertions, 3 deletions
diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py index 94e3d7d4b3..20ab83f83d 100644 --- a/scripts/lib/devtool/__init__.py +++ b/scripts/lib/devtool/__init__.py @@ -337,3 +337,16 @@ def update_unlockedsigs(basepath, workspace, fixed_setup, extra=None): for pn in newunlocked: f.write(' ' + pn) f.write('"') + +def check_prerelease_version(ver, operation): + if 'pre' in ver or 'rc' in ver: + logger.warning('Version "%s" looks like a pre-release version. ' + 'If that is the case, in order to ensure that the ' + 'version doesn\'t appear to go backwards when you ' + 'later upgrade to the final release version, it is ' + 'recommmended that instead you use ' + '<current version>+<pre-release version> e.g. if ' + 'upgrading from 1.9 to 2.0-rc2 use "1.9+2.0-rc2". ' + 'If you prefer not to reset and re-try, you can change ' + 'the version after %s succeeds using "devtool rename" ' + 'with -V/--version.' % (ver, operation)) diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 8e4c7f7b13..b6e532bcd3 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -30,7 +30,7 @@ import errno import glob import filecmp from collections import OrderedDict -from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, update_unlockedsigs, DevtoolError +from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, update_unlockedsigs, check_prerelease_version, DevtoolError from devtool import parse_recipe logger = logging.getLogger('devtool') @@ -298,6 +298,8 @@ def add(args, config, basepath, workspace): _add_md5(config, recipename, appendfile) + check_prerelease_version(rd.getVar('PV'), 'devtool add') + logger.info('Recipe %s has been automatically created; further editing may be required to make it fully functional' % recipefile) finally: diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py index 441dd35bbd..ab7acd16c6 100644 --- a/scripts/lib/devtool/upgrade.py +++ b/scripts/lib/devtool/upgrade.py @@ -33,7 +33,7 @@ sys.path = sys.path + [devtool_path] import oe.recipeutils from devtool import standard -from devtool import exec_build_env_command, setup_tinfoil, DevtoolError, parse_recipe, use_external_build, update_unlockedsigs +from devtool import exec_build_env_command, setup_tinfoil, DevtoolError, parse_recipe, use_external_build, update_unlockedsigs, check_prerelease_version logger = logging.getLogger('devtool') @@ -420,8 +420,13 @@ def upgrade(args, config, basepath, workspace): old_srcrev = None if old_srcrev and not args.srcrev: raise DevtoolError("Recipe specifies a SRCREV value; you must specify a new one when upgrading") - if rd.getVar('PV') == args.version and old_srcrev == args.srcrev: + old_ver = rd.getVar('PV') + if old_ver == args.version and old_srcrev == args.srcrev: raise DevtoolError("Current and upgrade versions are the same version") + if args.version: + if bb.utils.vercmp_string(args.version, old_ver) < 0: + logger.warning('Upgrade version %s compares as less than the current version %s. If you are using a package feed for on-target upgrades or providing this recipe for general consumption, then you should increment PE in the recipe (or if there is no current PE value set, set it to "1")' % (args.version, old_ver)) + check_prerelease_version(args.version, 'devtool upgrade') rf = None try: |