Skip to main content

alien_core/deployment/
release.rs

1//! Release metadata for deployment version tracking.
2
3use crate::Stack;
4use serde::{Deserialize, Serialize};
5
6/// Release metadata
7///
8/// Identifies a specific release version and includes the stack definition.
9/// The deployment engine uses this to track which release is currently deployed
10/// and which is the target.
11#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
12#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
13#[serde(rename_all = "camelCase")]
14pub struct ReleaseInfo {
15    /// Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no
16    /// Alien-assigned release — the platform resolves a release from `version`.
17    #[serde(default, skip_serializing_if = "Option::is_none")]
18    pub release_id: Option<String>,
19    /// Version string (e.g., 2.1.0)
20    #[serde(skip_serializing_if = "Option::is_none")]
21    pub version: Option<String>,
22    /// Short description of the release
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub description: Option<String>,
25    /// Stack definition for this release
26    pub stack: Stack,
27}