Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 69e20c89ee |
@@ -4,6 +4,13 @@ All notable changes to this project are documented here.
|
||||
|
||||
The project uses semantic versioning. Tags are formatted as `vMAJOR.MINOR.PATCH`.
|
||||
|
||||
## [1.2.2] - 2026-07-05
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated Ratatui to 0.30.2 to remove the unmaintained `paste` transitive dependency and pick up the fixed `lru` dependency line.
|
||||
- Replaced deprecated `serde_yaml`/`unsafe-libyaml` with the pure-Rust `noyalib` YAML parser.
|
||||
|
||||
## [1.2.1] - 2026-07-05
|
||||
|
||||
### Changed
|
||||
@@ -48,6 +55,7 @@ The project uses semantic versioning. Tags are formatted as `vMAJOR.MINOR.PATCH`
|
||||
- Added YAML configuration, CLI `init`, `preview`, and `run` commands.
|
||||
- Added Gitea CI and tag-based release workflows.
|
||||
|
||||
[1.2.2]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.2.2
|
||||
[1.2.1]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.2.1
|
||||
[1.2.0]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.2.0
|
||||
[1.1.3]: https://gitea.forust.xyz/forust/gosleep/releases/tag/v1.1.3
|
||||
|
||||
Generated
+1107
-174
File diff suppressed because it is too large
Load Diff
+4
-4
@@ -1,8 +1,8 @@
|
||||
[package]
|
||||
name = "gosleep-timer"
|
||||
version = "1.2.1"
|
||||
version = "1.2.2"
|
||||
edition = "2024"
|
||||
rust-version = "1.85"
|
||||
rust-version = "1.88"
|
||||
description = "Terminal sleep timer for Linux desktop actions, with YAML config and a Rust TUI"
|
||||
license = "MIT"
|
||||
repository = "https://gitea.forust.xyz/forust/gosleep"
|
||||
@@ -18,9 +18,9 @@ path = "src/main.rs"
|
||||
anyhow = "1.0"
|
||||
clap = { version = "4.5", features = ["derive"] }
|
||||
crossterm = "0.29"
|
||||
ratatui = "0.29"
|
||||
ratatui = "0.30.2"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_yaml = "0.9"
|
||||
noyalib = "0.0.12"
|
||||
|
||||
[profile.release]
|
||||
codegen-units = 1
|
||||
|
||||
+8
-8
@@ -351,7 +351,7 @@ fn ensure_config(path: &Path) -> Result<Config> {
|
||||
return Ok(config);
|
||||
}
|
||||
let data = fs::read_to_string(path).with_context(|| format!("read {}", path.display()))?;
|
||||
let mut config: Config = serde_yaml::from_str(&data).context("parse config")?;
|
||||
let mut config: Config = noyalib::from_str(&data).context("parse config")?;
|
||||
normalize_config(&mut config);
|
||||
validate_config(&config)?;
|
||||
Ok(config)
|
||||
@@ -364,7 +364,7 @@ fn save_config(path: &Path, config: &Config) -> Result<()> {
|
||||
if let Some(parent) = path.parent() {
|
||||
fs::create_dir_all(parent).with_context(|| format!("create {}", parent.display()))?;
|
||||
}
|
||||
let data = serde_yaml::to_string(&config).context("serialize config")?;
|
||||
let data = noyalib::to_string(&config).context("serialize config")?;
|
||||
fs::write(path, data).with_context(|| format!("write {}", path.display()))?;
|
||||
Ok(())
|
||||
}
|
||||
@@ -385,7 +385,7 @@ fn read_history(path: &Path) -> Result<Vec<HistoryEntry>> {
|
||||
return Ok(Vec::new());
|
||||
}
|
||||
let data = fs::read_to_string(path).with_context(|| format!("read {}", path.display()))?;
|
||||
serde_yaml::from_str(&data).with_context(|| format!("parse {}", path.display()))
|
||||
noyalib::from_str(&data).with_context(|| format!("parse {}", path.display()))
|
||||
}
|
||||
|
||||
fn append_history(path: &Path, entry: HistoryEntry) -> Result<()> {
|
||||
@@ -394,7 +394,7 @@ fn append_history(path: &Path, entry: HistoryEntry) -> Result<()> {
|
||||
if let Some(parent) = path.parent() {
|
||||
fs::create_dir_all(parent).with_context(|| format!("create {}", parent.display()))?;
|
||||
}
|
||||
let data = serde_yaml::to_string(&entries).context("serialize history")?;
|
||||
let data = noyalib::to_string(&entries).context("serialize history")?;
|
||||
fs::write(path, data).with_context(|| format!("write {}", path.display()))?;
|
||||
Ok(())
|
||||
}
|
||||
@@ -1229,10 +1229,10 @@ impl App {
|
||||
match key {
|
||||
KeyCode::Esc => self.edit = None,
|
||||
KeyCode::Enter => {
|
||||
if let Some(edit) = self.edit.take() {
|
||||
if let Err(err) = self.apply_edit(edit.field, edit.value) {
|
||||
self.status = format!("edit failed: {err}");
|
||||
}
|
||||
if let Some(edit) = self.edit.take()
|
||||
&& let Err(err) = self.apply_edit(edit.field, edit.value)
|
||||
{
|
||||
self.status = format!("edit failed: {err}");
|
||||
}
|
||||
}
|
||||
KeyCode::Backspace => {
|
||||
|
||||
Reference in New Issue
Block a user