Skip to content

chore: release v0.8.2 - #94

Closed
QaidVoid wants to merge 2 commits into
mainfrom
release-plz-2025-09-25T15-46-39Z
Closed

chore: release v0.8.2#94
QaidVoid wants to merge 2 commits into
mainfrom
release-plz-2025-09-25T15-46-39Z

Conversation

@QaidVoid

@QaidVoidQaidVoid commented Sep 25, 2025

Copy link
Copy Markdown
Member

🤖 New release

  • soar-core: 0.8.1 -> 0.8.2 (✓ API compatible changes)
  • soar-cli: 0.8.1 -> 0.8.2
Changelog

soar-core

0.8.2 - 2025-11-23

⛰️ Features

soar-cli

0.8.2 - 2025-11-23

⛰️ Features


This PR was generated with release-plz.

Summary by CodeRabbit

  • New Features

    • Introduced dedicated configuration crate with enhanced profile and repository management.
    • Added environment variable support (SOAR_ROOT) to customize installation directory paths.
    • Improved repository configuration with platform-specific defaults and validation.
  • Bug Fixes

    • Fixed dependency syntax error.
  • Refactor

    • Reorganized configuration functionality into dedicated module.

✏️ Tip: You can customize this high-level summary in your review settings.

@QaidVoidQaidVoid added the release New Release (Probably Automated) label Sep 25, 2025
@codecov

codecovBot commented Sep 25, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@QaidVoid
QaidVoidforce-pushed the release-plz-2025-09-25T15-46-39Z branch from ff59132 to 8e6c996CompareOctober 20, 2025 06:07
@QaidVoidQaidVoid changed the title chore: releasechore: release v0.8.2Nov 11, 2025
@QaidVoid
QaidVoidforce-pushed the release-plz-2025-09-25T15-46-39Z branch from 8e6c996 to 2300cbdCompareNovember 11, 2025 12:54
@coderabbitai

coderabbitaiBot commented Nov 11, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces a new soar-config workspace crate containing configuration, profile, and repository management functionality. Migrates configuration-related code from soar-core to the new crate, updates import paths throughout soar-cli, and establishes new error types and public APIs for configuration handling.

Changes

Cohort / File(s)Summary
New soar-config crate structure
crates/soar-config/Cargo.toml, crates/soar-config/src/lib.rs
Introduces new workspace crate with module declarations for annotations, config, error, profile, repository, utils, and test_utils. Declares dependencies on documented, miette, serde, soar-utils, thiserror, toml, and toml_edit.
Configuration module
crates/soar-config/src/config.rs
Core config struct and management logic. Removed Profile and Repository local definitions (moved to separate modules). Updated method signatures to return generic Result type. Added comprehensive test coverage for defaults, profiles, repositories, and environment overrides.
Error handling
crates/soar-config/src/error.rs
New ConfigError enum with variants for TOML, IO, path, repository, and profile validation. Includes From conversions for underlying error types. Exposes Result type alias.
Profile and Repository models
crates/soar-config/src/profile.rs, crates/soar-config/src/repository.rs
Profile struct with path-resolution methods (bin, db, packages, cache, repositories). Repository struct with enabled/validation logic and sync interval computation. DefaultRepositoryInfo and get_platform_repositories() for platform defaults.
Supporting modules
crates/soar-config/src/annotations.rs, crates/soar-config/src/utils.rs, crates/soar-config/src/test_utils.rs
Annotation logic for TOML comments, default install patterns utility, and with_env test helper for environment variable management.
Workspace and soar-core updates
Cargo.toml, soar-core/Cargo.toml, soar-core/src/lib.rs, soar-core/src/error.rs, soar-core/src/repositories.rs
Added soar-config to workspace members and dependencies. Removed config, repositories, and toml modules from soar-core public API. Integrated ConfigError into SoarError. Moved get_platform_repositories() to soar-config.
soar-cli imports and integration
soar-cli/Cargo.toml, soar-cli/src/main.rs, soar-cli/src/download.rs, soar-cli/src/health.rs, soar-cli/src/install.rs, soar-cli/src/list.rs, soar-cli/src/nest.rs, soar-cli/src/state.rs, soar-cli/src/use.rs, soar-cli/src/utils.rs
Updated all import paths from soar_core::config to soar_config::config. Added soar-config dependency. Adjusted calls to get_nests_db_conn() to use helper from soar_core::utils instead of config method.
Supporting utilities updates
crates/soar-utils/src/fs.rs, soar-core/src/utils.rs, soar-core/src/metadata.rs, soar-core/src/package/install.rs, soar-core/src/package/remove.rs, soar-core/src/package/formats/common.rs
Generalized walk_dir error handling. Moved default_install_patterns to soar-config. Added get_nests_db_conn helper. Updated Repository type references to soar_config::repository::Repository.
Changelogs
CHANGELOG.md, soar-core/CHANGELOG.md
Added version 0.8.2 release notes documenting initialization of soar-config, soar-dl, and soar-utils crates.
soar-dl fix
crates/soar-dl/Cargo.toml
Fixed syntax error in dev-dependencies: removed leading dash from tempfile dependency.

Sequence Diagram(s)

sequenceDiagram
actor User
participant soar-cli
participant soar-config
participant soar-core
participant soar-utils
Note over User,soar-utils: Before: Config logic in soar-core
User->>soar-cli: invoke command
soar-cli->>soar-core: import get_config, Config
soar-core->>soar-core: resolve config path
soar-core-->>soar-cli: return Config
Note over User,soar-utils: After: Config logic in soar-config
User->>soar-cli: invoke command
soar-cli->>soar-config: import get_config, Config
soar-config->>soar-utils: use UtilsError, path helpers
soar-config-->>soar-cli: return Config
soar-cli->>soar-core: use get_nests_db_conn(&config)
soar-core-->>soar-cli: return Connection
Loading
sequenceDiagram
participant Config as soar-config<br/>config module
participant Profile as soar-config<br/>profile module
participant Repository as soar-config<br/>repository module
participant Utils as soar-config<br/>utils module
Note over Config,Utils: New soar-config crate structure
Config->>Profile: coordinates path resolution
Config->>Repository: manages repository data
Config->>Utils: provides defaults
Profile->>Repository: used in repository path lookup
Repository->>Utils: uses sync_interval parsing
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

  • Attention areas:
    • New soar-config crate public API surface (config.rs, error.rs, repository.rs, profile.rs) — ensure error handling and Result types are correct and consistent
    • ConfigError enum variants and From conversions — verify error propagation from soar-utils and external crates is properly handled
    • walk_dir signature generalization in soar-utils — check all call sites updated correctly with new error type constraints
    • Import path migrations in soar-cli (~10 files) — verify all calls to get_config, get_nests_db_conn, and Repository are using correct paths
    • Removal of config/repositories modules from soar-core public API — ensure no breaking changes to external consumers
    • Interaction between get_nests_db_conn in soar-core and Config from soar-config — verify coupling and error handling is sound

Possibly related PRs

Poem

🐰 A config crate hops into the light,
No longer scattered, everything's right!
Profiles and repos in their own domain,
Error types clear through sun and rain,
The soar takes flight, sleek and refined! 🚀

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release-plz-2025-09-25T15-46-39Z

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 135af26 and 8a83410.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (33)
  • CHANGELOG.md (1 hunks)
  • Cargo.toml (3 hunks)
  • crates/soar-config/Cargo.toml (1 hunks)
  • crates/soar-config/src/annotations.rs (4 hunks)
  • crates/soar-config/src/config.rs (13 hunks)
  • crates/soar-config/src/error.rs (1 hunks)
  • crates/soar-config/src/lib.rs (1 hunks)
  • crates/soar-config/src/profile.rs (1 hunks)
  • crates/soar-config/src/repository.rs (1 hunks)
  • crates/soar-config/src/test_utils.rs (1 hunks)
  • crates/soar-config/src/utils.rs (1 hunks)
  • crates/soar-dl/Cargo.toml (1 hunks)
  • crates/soar-utils/src/fs.rs (9 hunks)
  • soar-cli/Cargo.toml (2 hunks)
  • soar-cli/src/download.rs (1 hunks)
  • soar-cli/src/health.rs (1 hunks)
  • soar-cli/src/install.rs (1 hunks)
  • soar-cli/src/list.rs (1 hunks)
  • soar-cli/src/main.rs (1 hunks)
  • soar-cli/src/nest.rs (3 hunks)
  • soar-cli/src/state.rs (4 hunks)
  • soar-cli/src/use.rs (1 hunks)
  • soar-cli/src/utils.rs (1 hunks)
  • soar-core/CHANGELOG.md (1 hunks)
  • soar-core/Cargo.toml (2 hunks)
  • soar-core/src/error.rs (1 hunks)
  • soar-core/src/lib.rs (0 hunks)
  • soar-core/src/metadata.rs (1 hunks)
  • soar-core/src/package/formats/common.rs (5 hunks)
  • soar-core/src/package/install.rs (1 hunks)
  • soar-core/src/package/remove.rs (1 hunks)
  • soar-core/src/repositories.rs (0 hunks)
  • soar-core/src/utils.rs (3 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@QaidVoid
QaidVoidforce-pushed the release-plz-2025-09-25T15-46-39Z branch from 2300cbd to 8a83410CompareNovember 23, 2025 05:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

releaseNew Release (Probably Automated)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@QaidVoid