Repository navigation
fix: keep session state in the runtime directory, and bring the release profile, dependencies and README up to the Colony rules - #24
Merged
Conversation
…lease ledger up to v0.5.0
… beside the mount
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the remaining gaps against the Colony organisation rules (DEP-1, REL-10, DOC-3, DOC-5, DOC-10, FS-5, and the Raven side of FS-3).
What changes
Session state moves to the runtime directory (FS-5).
session.pidandsession.lockused to sit in~/.local/share/Colony/Raven/environments/<env>/, where a record of a running session survived a reboot. They now live in$XDG_RUNTIME_DIR/raven/<env>/, beside thecmount point they describe, and go away with it.paths::runtime_dir(name);mount_pointis built on it.Environment::session_file()now returns aResult, because the runtime directory can be missing from the environment.session()still reads the record a 0.5.0 anchor wrote in the data directory, so a launch right after the upgrade joins the running session instead of refusing to start.clear_session()removes both records. A reboot ends every such session, so this fallback can be dropped in a later release.docs/internals/mount-stack.mdtree describe the new location. The tree also gains the missingpreferences.tomlline.Release profile (REL-10).
[profile.release]useslto = "thin", the organisation's profile. Fat LTO was only ever measured against the default profile, and start-up time did not change.docs/project/consolidation.mdrecords the v0.5.0 fat-LTOraven-linuxsize (1 502 880 bytes) so the next release's size can be compared. The CI, gui.md and performance.md mentions of fat LTO are updated.Dependencies (DEP-1). tokio 1.53.2 -> 1.53.3, and the lockfile is refreshed. ordered-float and uuid stay where they are, because their newer releases need a Rust newer than the 1.88 MSRV.
Preferences (FS-3, Raven side).
Preferences::savecreates its directory throughcolony_ui::paths::config_dirinstead of its owncreate_dir_all.README (DOC-3, DOC-5). The tagline now says who Raven is for. The intro is down to three sentences, and the rest of it moves into "Why Raven".
Release ledger (DOC-10).
consolidation.md3.3 covers v0.1.0 through v0.5.0. It says that v0.4.2 and later are signed by the shared sign-and-publish workflow with.sig,.metaand.meta.sig, and that v0.4.1 and earlier carry only.sig. The "Colony install verified" item stays open.Not in this PR
FS-3 also asks for the hand-built path table in
crates/raven/src/paths.rsto be replaced bycolony_ui::paths. That is not possible yet: colony-ui depends on iced unconditionally, and the CLI must not pull in a GUI toolkit. The fix belongs upstream, as a GUI-free paths crate or an optional iced feature in colony-ui, and it needs a crates.io release. Until then,crates/raven-gui/tests/paths_parity.rskeeps the two tables identical.Verification
cargo fmt --all, andcargo clippy --workspace --all-targets --locked -- -D warningsis clean.cargo test --locked -p raven --lib: 117 passed. This includes two new session tests: the record sits beside the mount and not under data, and clearing a session removes the legacy record too. Afterwards, no test directories were left in the runtime directory.cargo test --locked -p raven-gui --bin raven-gui preferences: 3 passed.environment_recoverynow also checks that a legacy record in the data directory still finds a live session. This integration test andsession_anchormount for real, so they run in CI..sigand.meta.sigverifies, and every.metamatches its asset's version, name and sha256.