releasaurus-core 0.17.0

A comprehensive release automation tool that streamlines the software release process across multiple programming languages and forge platforms
Documentation
use std::path::Path;

use crate::{
    error::Result,
    forge::request::FileChange,
    updater::manager::{ManifestTarget, UpdaterPackage},
};

/// Common trait for updating version files in different language packages.
pub trait PackageUpdater {
    /// Generate file changes to update version numbers across all relevant
    /// files for the package's language/framework.
    fn update(
        &self,
        package: &UpdaterPackage,
        workspace_packages: &[UpdaterPackage],
    ) -> Result<Option<Vec<FileChange>>>;
}

/// Common trait for loading targeted manifests for each package release_type
pub trait ManifestTargets {
    /// Loads a list of manifest targets to look for in the forge
    fn manifest_targets(
        pkg_name: &str,
        workspace_path: &Path,
        pkg_path: &Path,
    ) -> Vec<ManifestTarget>;
}