()
Get the version of the previous release
Get the version of the previous release
Get the version of the previous release
def get_previous_version_tag():
    """
    Get the version of the previous release
    """
    # We try, probably too hard, to portably get the number of the previous
    # release of SymPy. Our strategy is to look at the git tags.  The
    # following assumptions are made about the git tags:

    # - The only tags are for releases
    # - The tags are given the consistent naming:
    #    sympy-major.minor.micro[.rcnumber]
    #    (e.g., sympy-0.7.2 or sympy-0.7.2.rc1)
    # In particular, it goes back in the tag history and finds the most recent
    # tag that doesn't contain the current short version number as a substring.
    shortversion = get_sympy_short_version()
    curcommit = "HEAD"
    with cd("/home/vagrant/repos/sympy"):
        while True:
            curtag = run("git describe --abbrev=0 --tags " +
                curcommit).strip()
            if shortversion in curtag:
                # If the tagged commit is a merge commit, we cannot be sure
                # that it will go back in the right direction. This almost
                # never happens, so just error
                parents = local("git rev-list --parents -n 1 " + curtag,
                    capture=True).strip().split()
                # rev-list prints the current commit and then all its parents
                # If the tagged commit *is* a merge commit, just comment this
                # out, and make sure `fab vagrant get_previous_version_tag` is correct
                assert len(parents) == 2, curtag
                curcommit = curtag + "^" # The parent of the tagged commit
            else:
                print(blue("Using {tag} as the tag for the previous "
                    "release.".format(tag=curtag), bold=True))
                return curtag
        error("Could not find the tag for the previous release.")
def get_previous_version_tag ( ) : # We try, probably too hard, to portably get the number of the previous # release of SymPy. Our strategy is to look at the git tags.  The # following assumptions are made about the git tags: # - The only tags are for releases # - The tags are given the consistent naming: #    sympy-major.minor.micro[.rcnumber] #    (e.g., sympy-0.7.2 or sympy-0.7.2.rc1) # In particular, it goes back in the tag history and finds the most recent # tag that doesn't contain the current short version number as a substring. shortversion = get_sympy_short_version ( ) curcommit = "HEAD" with cd ( "/home/vagrant/repos/sympy" ) : while True : curtag = run ( "git describe --abbrev=0 --tags " + curcommit ) . strip ( ) if shortversion in curtag : # If the tagged commit is a merge commit, we cannot be sure # that it will go back in the right direction. This almost # never happens, so just error parents = local ( "git rev-list --parents -n 1 " + curtag , capture = True ) . strip ( ) . split ( ) # rev-list prints the current commit and then all its parents # If the tagged commit *is* a merge commit, just comment this # out, and make sure `fab vagrant get_previous_version_tag` is correct assert len ( parents ) == 2 , curtag curcommit = curtag + "^" # The parent of the tagged commit else : print ( blue ( "Using {tag} as the tag for the previous " "release." . format ( tag = curtag ) , bold = True ) ) return curtag error ( "Could not find the tag for the previous release." )