Skip to content

Set up Phase 1 workspace crates#12

Merged
sij411 merged 1 commit into
fedify-dev:mainfrom
sij411:phase1-portable-core
May 29, 2026
Merged

Set up Phase 1 workspace crates#12
sij411 merged 1 commit into
fedify-dev:mainfrom
sij411:phase1-portable-core

Conversation

@sij411
Copy link
Copy Markdown
Contributor

@sij411 sij411 commented May 29, 2026

Summary

  • Convert the root crate into a Cargo workspace
  • Add crates/feder-core and crates/feder-vocab
  • Share package metadata and lint settings across workspace crates
  • Remove the placeholder runtime binary

Closes #4.

Validation

  • cargo check
  • cargo fmt --check
  • mise run check

Summary by CodeRabbit

  • Refactor
    • Project reorganized into a workspace structure with separate crates: feder-core and feder-vocab.
    • Consolidated package metadata to workspace level.
    • Removed the main executable entry point.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 29, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 00d6525c-7f3c-42cf-8856-6b4790b245ac

📥 Commits

Reviewing files that changed from the base of the PR and between 5a68e4f and 1b4ede1.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (6)
  • Cargo.toml
  • crates/feder-core/Cargo.toml
  • crates/feder-core/src/lib.rs
  • crates/feder-vocab/Cargo.toml
  • crates/feder-vocab/src/lib.rs
  • src/main.rs
💤 Files with no reviewable changes (1)
  • src/main.rs

📝 Walkthrough

Walkthrough

The PR restructures the project from a single Rust package into a workspace containing two library crates. Root Cargo.toml becomes a workspace manifest with centralized metadata and lint rules. New crates/feder-vocab and crates/feder-core member manifests inherit shared configuration. feder-core re-exports feder-vocab as a public module. The old single-package main entry point is removed.

Changes

Workspace and Crate Layout Migration

Layer / File(s) Summary
Workspace and shared configuration
Cargo.toml
Root manifest converted to workspace with member crates (crates/feder-vocab, crates/feder-core) and resolver 3; package metadata (version, edition, license) and lint rules (warnings = "deny", clippy config) moved to workspace-level sections.
Member crate manifests
crates/feder-vocab/Cargo.toml, crates/feder-core/Cargo.toml
Both crates inherit metadata from workspace; feder-core declares a local path dependency on feder-vocab; both enable workspace lints via [lints] workspace = true.
Crate module setup and re-export
crates/feder-vocab/src/lib.rs, crates/feder-core/src/lib.rs
feder-vocab receives crate-level documentation; feder-core adds documentation and re-exports feder_vocab as vocab (pub use feder_vocab as vocab;), making vocabulary types accessible through the core crate.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 From one monolith, a workspace blooms,
Two crates emerge from Cargo rooms,
Vocab and core now dance as one,
With lints shared wide and work begun! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change—converting the repository into a Cargo workspace with Phase 1 member crates.
Linked Issues check ✅ Passed The pull request meets all coding requirements: creates a Cargo workspace, adds crates/feder-vocab and crates/feder-core as members, establishes shared workspace metadata, removes the placeholder binary, and validates with cargo check.
Out of Scope Changes check ✅ Passed All changes align with the linked issue scope. The workspace setup, member crate definitions, and binary removal are within scope; GitHub Actions and runtime crates are excluded as specified.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@sij411 sij411 marked this pull request as ready for review May 29, 2026 06:30
@sij411 sij411 merged commit a635fd8 into fedify-dev:main May 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Minimal workspace + crate layout

2 participants