BREAKING: Restructure from monolithic binary to modular plugin ecosystem Architecture changes: - Convert to Cargo workspace with crates/ directory - Create owlry-plugin-api crate with ABI-stable interface (abi_stable) - Move core binary to crates/owlry/ - Extract providers to native plugin crates (13 plugins) - Add owlry-lua crate for Lua plugin runtime Plugin system: - Plugins loaded from /usr/lib/owlry/plugins/*.so - Widget providers refresh automatically (universal, not hardcoded) - Per-plugin config via [plugins.<name>] sections in config.toml - Backwards compatible with [providers] config format New features: - just install-local: build and install core + all plugins - Plugin config: weather and pomodoro read from [plugins.*] - HostAPI for plugins: notifications, logging Documentation: - Update README with new package structure - Add docs/PLUGINS.md with all plugin documentation - Add docs/PLUGIN_DEVELOPMENT.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
47 lines
1.1 KiB
TOML
47 lines
1.1 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/owlry",
|
|
"crates/owlry-plugin-api",
|
|
"crates/owlry-plugin-calculator",
|
|
"crates/owlry-plugin-system",
|
|
"crates/owlry-plugin-ssh",
|
|
"crates/owlry-plugin-clipboard",
|
|
"crates/owlry-plugin-emoji",
|
|
"crates/owlry-plugin-scripts",
|
|
"crates/owlry-plugin-bookmarks",
|
|
"crates/owlry-plugin-websearch",
|
|
"crates/owlry-plugin-filesearch",
|
|
"crates/owlry-plugin-weather",
|
|
"crates/owlry-plugin-media",
|
|
"crates/owlry-plugin-pomodoro",
|
|
"crates/owlry-plugin-systemd",
|
|
"crates/owlry-lua",
|
|
"crates/owlry-rune",
|
|
]
|
|
|
|
# Shared workspace settings
|
|
[workspace.package]
|
|
edition = "2024"
|
|
rust-version = "1.90"
|
|
license = "GPL-3.0-or-later"
|
|
repository = "https://somegit.dev/Owlibou/owlry"
|
|
|
|
# Release profile (shared across all crates)
|
|
[profile.release]
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
strip = true
|
|
opt-level = "z"
|
|
|
|
[profile.dev]
|
|
opt-level = 0
|
|
debug = true
|
|
|
|
# For installing a testable build: cargo install --path crates/owlry --profile dev-install --features dev-logging
|
|
[profile.dev-install]
|
|
inherits = "release"
|
|
strip = false
|
|
debug = 1
|