mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-22 19:08:29 +00:00
A build compiled with PDFCRAFT_BUILD_LABEL=<label> shows "0.7.1 (<label>)"
in `pdfcraft --version`, `pdfcraft-cli --version`, Help > About and the
first log line (pdfcraft_engine::build_info). The version itself is
unchanged, so the update check, the MCP server info and the User-Agent
still carry the release version.
packaging/linux/package.sh puts the label in the file names
(pdfcraft-0.7.1-<label>-linux-x86_64.rpm) and makes the .rpm/.deb release
`1.<label>` (nfpm `release: ${RELEASE}`, 1 when unlabelled). rpm sorts
0.7.1-1.<label> after 0.7.1-1 and before 0.7.2-1, so a locally built
package upgrades over the installed release and the next release replaces
it. packaging/env.sh accepts only letters, digits and inner dots, which
are valid in both rpm and deb release fields.
Unlabelled builds are unchanged.
Made with Claude Code (Claude Opus 5.5, medium effort). It passes the
workspace quality gates (fmt, clippy, cargo test --workspace, xtask assets)
and was checked by hand on Fedora 44, but it has not been exhaustively
regression tested.
Co-authored-by: bmh129 <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
59 lines
3.1 KiB
TOML
59 lines
3.1 KiB
TOML
[package]
|
|
name = "pdfcraft"
|
|
description = "PdfCraft desktop app"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
# Help ▸ Check for updates (issue #28): one HTTPS request to GitHub, over rustls with the OS's
|
|
# trusted roots. No bundled root list (webpki-roots and webpki-root-certs are CDLA-licensed).
|
|
ureq = { version = "3.4", default-features = false, features = ["rustls-no-provider", "_ring"] }
|
|
rustls-native-certs = "0.8"
|
|
pdfcraft-ui-egui = { workspace = true }
|
|
# `build_info`: the version and compile-time build label for `--version` and the log.
|
|
pdfcraft-engine = { workspace = true }
|
|
# wgpu draws; OpenGL (glow) is the fallback when wgpu can't start on an old or unusual GPU or
|
|
# driver (#461, #435, #392), and can be chosen with PDFCRAFT_RENDERER=gl.
|
|
eframe = { workspace = true, features = ["default_fonts", "wgpu", "glow", "accesskit", "wayland", "x11", "persistence", "links"] }
|
|
egui = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
# Records from every crate go to standard error and the log file (src/logging.rs).
|
|
log = { workspace = true }
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
# Finder double-click / Open With / Dock drops arrive as Apple events (#73); this small audited
|
|
# crate registers the handler (Objective-C interop needs unsafe, which our workspace forbids)
|
|
# behind a safe API. Same version as PhotoCraft. Pinned exactly: review the diff before bumping.
|
|
fmv-macos-events = "=0.1.0"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
# Asks the Wayland compositor which GPU it draws with (linux-dmabuf feedback), so the window is
|
|
# drawn on that one (src/compositor_gpu.rs). Both are already in the tree through winit.
|
|
wayland-client = "0.31"
|
|
wayland-protocols = { version = "0.32", features = ["client"] }
|
|
|
|
[dev-dependencies]
|
|
# Waits for wgpu's adapter, device and error-scope futures in tests (already in the tree through wgpu).
|
|
pollster = "1.0"
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
# Which GPU drives which display (EnumDisplayDevices), so the window is drawn on the GPU that
|
|
# shows it (issue #378). Safe wrappers over Win32; only the `user` feature (which brings `kernel` with it).
|
|
winsafe = { version = "0.0.29", default-features = false, features = ["user"] }
|
|
# Settings ▸ Accessibility ▸ Visual effects ▸ Animation effects (src/motion.rs), through WinRT's
|
|
# `UISettings`, whose bindings are safe to call (winsafe's `SystemParametersInfo` is an unsafe
|
|
# fn). Already in the tree through wgpu's DX12 backend; this adds one small namespace to it.
|
|
windows = { version = "0.62", default-features = false, features = ["std", "UI_ViewManagement"] }
|
|
# Single instance (#282): later launches hand their files to the running app over a Unix domain
|
|
# socket. `std` has no Unix sockets on Windows, and calling Winsock directly needs unsafe, which
|
|
# our workspace forbids. Already in the lockfile through zbus; pinned exactly, review before bumping.
|
|
uds_windows = "=1.2.1"
|
|
|
|
[build-dependencies]
|
|
# Icon + VERSIONINFO for pdfcraft.exe; build.rs only uses it when targeting Windows.
|
|
winresource = "0.1"
|