code: def replace_version(self, other, logger):
          
  
          if other.library_name != self.library_name:
              logger.debug(
                  'not replacable: {} != {} ()'
                  .format(other.library_name, self.library_name, other.filename)
              )
              return False
          elif int(other.major_version) != int(self.major_version):
              logger.debug(
                  'not replacable: {} != {} ({})'
                  .format(
                      int(self.major_version),
                      int(other.major_version),
                      other.filename,
                  )
              )
              return False
          elif float(other.minor_version) >= float(self.minor_version):
              logger.debug(
                  'not replacable: {} >= {} ({})'
                  .format(
                      other.minor_version,
                      self.minor_version,
                      other.filename,
                  )
              )
              return False
          else:
              return True
docs: True if self can safely replace other
  
          based on version numbers only - snapshot and branch tags are ignored