pub fn calculate_new_version_with_zero_behavior(
current: &Version,
bump_type: Option<BumpType>,
prerelease: Option<&PrereleaseSpec>,
zero_behavior: ZeroVersionBehavior,
graduate: bool,
) -> Result<Version, VersionError>Expand description
Calculates a new version with special handling for 0.x versions.
When graduate is true, the version will be promoted to 1.0.0 (with optional
prerelease tag). Graduation has specific restrictions:
- Cannot graduate from a prerelease version (must release stable 0.x first)
- Cannot graduate a version that is already >= 1.0.0
For 0.x versions without graduation, behavior depends on zero_behavior:
EffectiveMinor: major bumps become minor, minor/patch both become patchAutoPromoteOnMajor: major bumps promote to 1.0.0, minor/patch are standard
ยงErrors
Returns VersionError::CannotGraduateFromPrerelease if graduation is requested
on a prerelease version.
Returns VersionError::CanOnlyGraduateZeroVersions if graduation is requested
on a version >= 1.0.0.
Returns VersionError::InvalidPrerelease if the prerelease identifier
produces an invalid semver prerelease string.