func ensureChangelogLatestVersionIsGreaterThanOthers()

in code/go/internal/validator/semantic/validate_version_integrity.go [145:165]


func ensureChangelogLatestVersionIsGreaterThanOthers(versions []string) error {
	if len(versions) == 0 {
		return errors.New("no versions found in changelog")
	}

	latestVersion, err := semver.NewVersion(versions[0])
	if err != nil {
		return fmt.Errorf("could not read package manifest version [%s]: %w", versions[0], err)
	}

	for _, v := range versions[1:] {
		changelogVersion, err := semver.NewVersion(v)
		if err != nil {
			return fmt.Errorf("could not read package manifest version [%s]: %w", changelogVersion, err)
		}
		if changelogVersion.GreaterThanEqual(latestVersion) {
			return fmt.Errorf("changelog entry %s is greater than or equal to first changelog entry: %s", changelogVersion, latestVersion)
		}
	}
	return nil
}