def main_from_cli():
args, others = get_cli()<EOL>if args.version:<EOL><INDENT>print(__version__)<EOL>exit(<NUM_LIT:0>)<EOL><DEDENT>log_level = logging.WARNING - <NUM_LIT:10> * args.verbosity<EOL>logging.basicConfig(level=log_level, format="<STR_LIT>")<EOL>command_line_updates = parse_other_args(others)<EOL>old, new, updates = main(<EOL>set_to=args.set,<EOL>set_patch_count=args.set_patch_count,<EOL>lock=args.lock,<EOL>release=args.release,<EOL>bump=args.bump,<EOL>file_triggers=args.file_triggers,<EOL>config_path=args.config,<EOL>**command_line_updates<EOL>)<EOL>_LOG.info("<STR_LIT>", old)<EOL>_LOG.info("<STR_LIT>", new)<EOL>_LOG.debug("<STR_LIT>", pprint.pformat(updates))<EOL>print(<EOL>updates.get(config._forward_aliases.get(Constants.VERSION_FIELD))<EOL>or updates.get(config._forward_aliases.get(Constants.VERSION_STRICT_FIELD))<EOL>)<EOL>
Main workflow.

    Load config from cli and file
    Detect "bump triggers" - things that cause a version increment
    Find the current version
    Create a new version
    Write out new version and any other requested variables