Skip to main content

entrenar/yaml_mode/manifest/
publish.rs

1//! Publish Configuration
2//!
3//! Defines the `publish:` section for auto-publishing trained models to HuggingFace Hub.
4
5use serde::{Deserialize, Serialize};
6
7fn default_true() -> bool {
8    true
9}
10
11fn default_format() -> String {
12    "safetensors".to_string()
13}
14
15/// Publish configuration for auto-uploading to HuggingFace Hub
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct PublishConfig {
18    /// HuggingFace repo ID (e.g., myuser/my-model)
19    pub repo: String,
20
21    /// Make the repository private
22    #[serde(default)]
23    pub private: bool,
24
25    /// Generate and upload a model card
26    #[serde(default = "default_true")]
27    pub model_card: bool,
28
29    /// Merge LoRA adapters before publishing
30    #[serde(default)]
31    pub merge_adapters: bool,
32
33    /// Export format (safetensors or gguf)
34    #[serde(default = "default_format")]
35    pub format: String,
36}