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
@sij411 sij411 added enhancement New feature or request phase 1 labels Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request phase 1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Minimal workspace + crate layout

2 participants