Rewrite Curator in Rust with an egui GUI
This commit is contained in:
+46
-1
@@ -16,9 +16,54 @@ Each version entry uses these sections (include only those that apply):
|
||||
|
||||
- Follow semantic versioning: `MAJOR.MINOR.PATCH`
|
||||
- Newest version goes at the top
|
||||
- Always update this file before bumping the version in `pyproject.toml`
|
||||
- Always update this file before bumping the version in `Cargo.toml`
|
||||
- Document changes as they are made, not all at once at release time
|
||||
|
||||
## 2.0.0 — 2026-10-17
|
||||
|
||||
### Changed
|
||||
- **Curator is now a Rust application.** The whole app — core and GUI — was
|
||||
rewritten in Rust; the GUI is egui/eframe instead of PySide6. Behaviour and
|
||||
on-disk formats are unchanged: the pool index (v2), tag schema, file naming,
|
||||
versions/parts, series layout and miniDLNA output are the same, so an
|
||||
existing pool opens as-is. Every menu action and dialog of the Python version
|
||||
is there.
|
||||
- Long operations (import, TMDb refresh, integrity scan, bulk renames, miniDLNA
|
||||
generation) run in the background with a progress bar and a cancel button;
|
||||
TMDb / ČSFD / Jellyfin lookups no longer freeze the window.
|
||||
- **The global config moved** from `.Curator.!gtag` next to the script to the
|
||||
platform config directory (`~/.config/curator/.Curator.!gtag` on Linux);
|
||||
`CURATOR_CONFIG` overrides the location. An old `.Curator.!gtag` in the
|
||||
working directory is read on first run, so the pool and output paths carry
|
||||
over.
|
||||
- **`tipy-dne` is a Rust binary** (built next to `curator`) replacing
|
||||
`scripts/tipy_dne.py`; `scripts/tipy-dne.service` now runs it. Tips links are
|
||||
named by the clean movie title, the same as the app's own tips folder.
|
||||
- The status-bar paths are truncated (full path on hover) instead of
|
||||
overlapping the status text.
|
||||
|
||||
### Fixed
|
||||
- **"Tipy dne" from the systemd timer found no movies** since the pool index
|
||||
moved to v2 — the script read index keys as file paths. `tipy-dne` reads the
|
||||
media files of each movie record.
|
||||
|
||||
### Removed
|
||||
- The Python sources, PyInstaller spec, `prebuild.py` and the committed
|
||||
`dist/Curator` binary (a release build is `target/release/curator`).
|
||||
- The one-off Python migration scripts for old ČSFD-era tag formats
|
||||
(`migrate_tag_category`, `split_country_tags`, `strip_rating_bands`,
|
||||
`strip_tag_categories`); they remain in the history of `devel`.
|
||||
- The detailed per-function pages in `docs/modules/`; `cargo doc` generates the
|
||||
API reference from the source.
|
||||
|
||||
### Dependencies
|
||||
- Rust crates replace the Python stack: `eframe`/`egui`/`egui_extras` (GUI),
|
||||
`rfd` (file dialogs), `reqwest` (HTTP, OS certificate store), `scraper` +
|
||||
`ego-tree` (ČSFD), `sha2` (Anubis proof-of-work), `roxmltree` (NFO),
|
||||
`serde`/`serde_json`, `regex`, `unicode-normalization`, `chrono`, `rand`,
|
||||
`dirs`, `dotenvy`, `tracing`, `thiserror`/`anyhow`, `file-id`, `indexmap`;
|
||||
dev: `tempfile`, `egui_kittest`.
|
||||
|
||||
## 1.14.0 — 2026-10-17
|
||||
|
||||
### Changed
|
||||
|
||||
Reference in New Issue
Block a user