func isPRRRequired()

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
}