commit 8b65f81396ae7492b6cbda8d175199cc167924e2 Author: Marco Allegretti Date: Tue Mar 10 18:47:06 2026 +0100 Initialize Rust workspace and repository metadata diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6313b56 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3a86c9c --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/target/ +/.windsurf/ +/docu_dev/ + +Thumbs.db diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..e7a9477 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "weft-build-meta" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..0dd9aad --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] +members = ["crates/weft-build-meta"] +resolver = "2" + +[workspace.package] +version = "0.1.0" +edition = "2024" +rust-version = "1.93" + +[workspace.lints.rust] +unsafe_code = "forbid" diff --git a/README.md b/README.md new file mode 100644 index 0000000..96a64c9 --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +# WEFT OS + +WEFT OS is a Linux-based operating system effort built around a Smithay compositor, a Servo-rendered system shell, and a Wasmtime-based application runtime. + +## Current repository scope + +This repository currently contains: + +- the baseline Rust workspace +- public engineering documentation derived from the authoritative blueprint +- initial design documents for the shell protocol boundary and the Wasm–Servo channel +- local and CI validation paths for repository bootstrap work + +It does not yet contain a compositor, shell, or application runtime implementation. + +## Source of truth + +The authoritative technical reference for this repository is `docu_dev/WEFT-OS-COMPREHENSIVE-BLUEPRINT.md`. + +Historical blueprint documents exist in `docu_dev/`, but they are not implementation authority where they conflict with the comprehensive blueprint. + +## Privacy boundary + +`docu_dev/` is a private coordination area used during development. It is intentionally ignored by git and is not part of the tracked public repository surface. + +## Development model + +- Primary development host: Windows workstation +- Primary runtime target: Linux VM or QEMU guest +- Core system language: Rust + +## Validation + +On Windows PowerShell: + +```powershell +./infra/scripts/check.ps1 +``` + +On Linux: + +```bash +./infra/scripts/check.sh +``` + +## Repository layout + +```text +crates/ Rust workspace members +docs/ Public engineering documentation +infra/ Validation scripts and VM workflow material +``` diff --git a/crates/weft-build-meta/Cargo.toml b/crates/weft-build-meta/Cargo.toml new file mode 100644 index 0000000..8d748b5 --- /dev/null +++ b/crates/weft-build-meta/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "weft-build-meta" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +publish = false + +[lib] +path = "src/lib.rs" + +[lints] +workspace = true diff --git a/crates/weft-build-meta/src/lib.rs b/crates/weft-build-meta/src/lib.rs new file mode 100644 index 0000000..0dccb8a --- /dev/null +++ b/crates/weft-build-meta/src/lib.rs @@ -0,0 +1,29 @@ +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct WorkspaceMetadata { + pub package_name: &'static str, + pub package_version: &'static str, +} + +#[must_use] +pub const fn current() -> WorkspaceMetadata { + WorkspaceMetadata { + package_name: env!("CARGO_PKG_NAME"), + package_version: env!("CARGO_PKG_VERSION"), + } +} + +#[cfg(test)] +mod tests { + use super::{WorkspaceMetadata, current}; + + #[test] + fn reports_workspace_metadata() { + assert_eq!( + current(), + WorkspaceMetadata { + package_name: "weft-build-meta", + package_version: env!("CARGO_PKG_VERSION"), + } + ); + } +} diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..7864ec2 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "1.93.0" +components = ["clippy", "rustfmt"] +profile = "minimal"