code: def version(**kwargs):
      
      retry = kwargs.get("retry")
      if retry:
          click.echo('Retrying publication of the same version...')
      else:
          click.echo('Creating new version..')
  
      try:
          current_version = get_current_version()
      except GitError as e:
          click.echo(click.style(str(e), 'red'), err=True)
          return False
  
      click.echo('Current version: {0}'.format(current_version))
      level_bump = evaluate_version_bump(current_version, kwargs['force_level'])
      new_version = get_new_version(current_version, level_bump)
  
      if new_version == current_version and not retry:
          click.echo(click.style('No release will be made.', fg='yellow'))
          return False
  
      if kwargs['noop'] is True:
          click.echo('{0} Should have bumped from {1} to {2}.'.format(
              click.style('No operation mode.', fg='yellow'),
              current_version,
              new_version
          ))
          return False
  
      if config.getboolean('semantic_release', 'check_build_status'):
          click.echo('Checking build status..')
          owner, name = get_repository_owner_and_name()
          if not check_build_status(owner, name, get_current_head_hash()):
              click.echo(click.style('The build has failed', 'red'))
              return False
          click.echo(click.style('The build was a success, continuing the release', 'green'))
  
      if retry:
          # No need to make changes to the repo, we're just retrying.
          return True
  
      if config.get('semantic_release', 'version_source') == 'commit':
          set_new_version(new_version)
          commit_new_version(new_version)
      tag_new_version(new_version)
      click.echo('Bumping with a {0} version to {1}.'.format(level_bump, new_version))
      return True
docs: Detects the new version according to git log and semver. Writes the new version
      number and commits it, unless the noop-option is True.