in pkg/kepval/approval.go [100:134]
func isPRRRequired(kep *api.Proposal) (required, missingMilestone, missingStage bool, err error) {
logrus.Debug("checking if PRR is required")
required = kep.Status == api.ImplementableStatus || kep.Status == api.ImplementedStatus
missingMilestone = kep.IsMissingMilestone()
missingStage = kep.IsMissingStage()
if missingMilestone {
logrus.Warnf("Missing the latest milestone field: %s", kep.Filename)
return required, missingMilestone, missingStage, nil
}
if missingStage {
logrus.Warnf("Missing the stage field: %s", kep.Filename)
return required, missingMilestone, missingStage, nil
}
// TODO: Consider making this a function
prrRequiredAtSemVer, err := semver.ParseTolerant("v1.21")
if err != nil {
return required, missingMilestone, missingStage, errors.Wrap(err, "creating a SemVer object for PRRs")
}
latestSemVer, err := semver.ParseTolerant(kep.LatestMilestone)
if err != nil {
return required, missingMilestone, missingStage, errors.Wrap(err, "creating a SemVer object for latest milestone")
}
if latestSemVer.LT(prrRequiredAtSemVer) {
required = false
return required, missingMilestone, missingStage, nil
}
return required, missingMilestone, missingStage, nil
}