rlyx 0.3.1

rlyx is a fast release manager that automatically bumps versions, creates changelogs, tags commits, and publishes GitHub releases across JS, Rust, and Python projects with first class monorepos support.
Documentation
use crate::release_kind::ReleaseKind;
use anyhow::Result;

pub fn compute_next_tag(kind: &ReleaseKind) -> Result<String> {
    let root = std::env::current_dir()?;
    let cur = crate::project::read_current_version(&root)?;
    let base = crate::semver::base_of(&cur);
    let bump_kind: crate::semver::BumpKind = kind.clone().into();
    let next = crate::semver::bump(&base, bump_kind)?;
    Ok(format!("v{}", next))
}

pub fn bump(
    kind: &ReleaseKind,
    _cfg: &crate::config::Config,
) -> Result<()> {
    let root = std::env::current_dir()?;
    let cur = crate::project::read_current_version(&root)?;
    let base = crate::semver::base_of(&cur);
    let bump_kind: crate::semver::BumpKind = kind.clone().into();
    let next = crate::semver::bump(&base, bump_kind)?;
    crate::project::write_versions(&root, &next)?;
    Ok(())
}