Skip to content
Snippets Groups Projects
Select Git revision
  • 3c0b431ee092073a34b38008541cd5ca7f017e22
  • master default protected
  • develop protected
  • conda
  • 3.6.0
  • 3.5.0
  • 3.4.2
  • 3.4.1
  • 3.4.0
  • 3.4.0-rc2
  • 3.4.0-rc
  • 3.3.1
  • 3.3.1-rc
  • 3.3.0
  • 3.3.0-rc2
  • 3.3.0-rc
  • 3.2.1
  • 3.2.1-rc
  • 3.2.0
  • 3.2.0-rc
  • 3.1.1
  • 3.1.1-rc2
  • 3.1.1-rc
  • 3.1.0
24 results

bump-version.py

Blame
  • bump-version.py 2.48 KiB
    #!/usr/bin/env python
    import sys
    
    if len(sys.argv) < 4:
      print("USAGE: python scripts/bump-version.py PM3_VERSION OST_VERSION OST_DOCKER_IMAGE_TAG")
      print("-> *_VERSION format is MAJOR.MINOR.PATCH (e.g. 1.9.1)")
      print("-> assumption is that git tags will exist for those *_VERSION")
      print("-> OST_DOCKER_IMAGE_TAG refers to the image in the OpenStructure")
      print("   Docker registry from which the ProMod3 image will bootstrap")
      sys.exit(1)
    
    # split up version number
    version_string = sys.argv[1]
    version = version_string.split('.')
    major, minor, patch = (int(version[0]), int(version[1]), int(version[2]))
    ost_version_string = sys.argv[2]
    ost_docker_image_tag = sys.argv[3]
    
    # fix CMakeLists
    lines = open("CMakeLists.txt").readlines()
    for i, line in enumerate(lines):
      if line.startswith("set(PROMOD3_VERSION_MAJOR"):
        lines[i] = "set(PROMOD3_VERSION_MAJOR %d)\n" % major
      elif line.startswith("set(PROMOD3_VERSION_MINOR"):
        lines[i] = "set(PROMOD3_VERSION_MINOR %d)\n" % minor
      elif line.startswith("set(PROMOD3_VERSION_PATCH"):
        lines[i] = "set(PROMOD3_VERSION_PATCH %d)\n" % patch
      elif line.startswith("find_package(OPENSTRUCTURE "):
        lines[i] = "find_package(OPENSTRUCTURE %s REQUIRED\n" % ost_version_string
    open("CMakeLists.txt", "w").writelines(lines)
    
    # fix CHANGELOG
    lines = open("CHANGELOG").readlines()
    for i, line in enumerate(lines):
      if line.startswith("Release") and "X" in line.upper():
        lines[i] = "Release %s\n" % version_string
    open("CHANGELOG", "w").writelines(lines)
    
    # fix Docker recipe
    lines = open("container/Dockerfile").readlines()
    for i, line in enumerate(lines):
      if line.startswith("ARG OPENSTRUCTURE_IMAGE_TAG"):
        lines[i] = 'ARG OPENSTRUCTURE_IMAGE_TAG="%s"\n' % ost_docker_image_tag
      elif line.startswith("ARG PROMOD_VERSION"):
        lines[i] = 'ARG PROMOD_VERSION="%s"\n' % version_string
    open("container/Dockerfile", "w").writelines(lines)
    
    # fix Singularity recipe
    vfile = "container/Singularity"
    lines = open(vfile).readlines()
    for i, line in enumerate(lines):
      if line.startswith("From: registry.scicore.unibas.ch/schwede/promod3:"):
        lines[i] = 'From: registry.scicore.unibas.ch/schwede/promod3:'+\
          '%s-OST%s\n' % (version_string, ost_docker_image_tag)
        break
    open(vfile, "w").writelines(lines)
    
    # fix doc config
    lines = open("doc/conf.py.in").readlines()
    for i, line in enumerate(lines):
      if line.startswith(".. |ost_version| replace::"):
        lines[i] = '.. |ost_version| replace:: %s\n' % ost_version_string
    open("doc/conf.py.in", "w").writelines(lines)