function calculateVersion()

in tools/release-tools/setVersion.js [220:270]


function calculateVersion(rootVersion) {

    let preRelParts = (rootVersion || "0.0.0").split("-");
    let postfix = preRelParts.length > 1 && preRelParts[1] ? ("-" + preRelParts[1]) : "";
    let parts = preRelParts[0].split(".");

    if (parts.length < 3) {
        console.error("!!! Package version [" + rootVersion + "] doesn't look correct");
        parts = ["0", "0", "0"];
    }

    let newVersion;

    if (newVer) {
        newVersion = newVer;
        postfix = "";
    } else {
        if (autoInc == "patch") {
            parts[2]++;
        } else if (autoInc == "minor") {
            parts[1]++;
            parts[2] = 0;
        } else if (autoInc == "major") {
            parts[0]++;
            parts[1] = 0;
            parts[2] = 0;
        } else if (isRelease) {
            // Don't update the numbers just remove the preRel
            postfix = "";
        }

        newVersion = parts[0] + "." + parts[1] + "." + parts[2];
    }

    if (buildNum && !buildNum.startsWith(".") && !buildNum.startsWith("+")) {
        buildNum = "." + buildNum;
    }

    if (buildNum && isRelease) {
        preRel = "rc";
    }

    if (preRel) {
        postfix = preRel;
        if (!postfix.startsWith("-")) {
            postfix = "-" + preRel;
        }
    }

    return newVersion + (postfix || "") + (buildNum || "");
}