code: def main():
      
      last_known = '0'
      if os.path.isfile(metafile):
          with open(metafile) as fh:
              last_known = fh.read()
  
      import mbed_cloud
      current = mbed_cloud.__version__
  
      # how significant a change in version scheme should trigger a new changelog entry
      # (api major, api minor, sdk major, sdk minor, sdk patch)
      sigfigs = 4
      current_version = LooseVersion(current).version
      last_known_version = LooseVersion(last_known).version
  
      should_towncrier = current_version[:sigfigs] != last_known_version[:sigfigs]
  
      print('%s -- %s :: current vs previous changelog build' % (current, last_known))
      if should_towncrier:
          print('%s >> %s :: running changelog build' % (current, last_known))
          subprocess.check_call(
              ['towncrier', '--yes'],
              cwd=os.path.join(PROJECT_ROOT, 'docs', 'changelog')
          )
          with open(metafile, 'w') as fh:
              fh.write(current)
docs: Writes out newsfile if significant version bump