The latest release base is the latest revision that is covered in the last change log file. It doesn't include cherry-picked patches.
(self, version=None)
| 576 | return latest_hash |
| 577 | |
| 578 | def GetLatestReleaseBase(self, version=None): |
| 579 | """The latest release base is the latest revision that is covered in the |
| 580 | last change log file. It doesn't include cherry-picked patches. |
| 581 | """ |
| 582 | latest_version = version or self.GetLatestVersion() |
| 583 | |
| 584 | # Strip patch level if it exists. |
| 585 | latest_version = ".".join(latest_version.split(".")[:3]) |
| 586 | |
| 587 | # The latest release base. |
| 588 | latest_hash = self.GitLog(n=1, format="%H", branch=latest_version) |
| 589 | assert latest_hash |
| 590 | |
| 591 | title = self.GitLog(n=1, format="%s", git_hash=latest_hash) |
| 592 | match = PUSH_MSG_GIT_RE.match(title) |
| 593 | if match: |
| 594 | # Legacy: In the old process there's one level of indirection. The |
| 595 | # version is on the candidates branch and points to the real release |
| 596 | # base on main through the commit message. |
| 597 | return match.group("git_rev") |
| 598 | match = PUSH_MSG_NEW_RE.match(title) |
| 599 | if match: |
| 600 | # This is a new-style v8 version branched from main. The commit |
| 601 | # "latest_hash" is the version-file change. Its parent is the release |
| 602 | # base on main. |
| 603 | return self.GitLog(n=1, format="%H", git_hash="%s^" % latest_hash) |
| 604 | |
| 605 | self.Die("Unknown latest release: %s" % latest_hash) |
| 606 | |
| 607 | def ArrayToVersion(self, prefix): |
| 608 | return ".".join([self[prefix + "major"], |