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}