feat(arty): introduce runtime facade and core crates - #727
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
✅ Version increments look sufficient
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #727 +/- ##
=======================================
Coverage 100.0% 100.0%
=======================================
Files 583 583
Lines 62930 62930
=======================================
Hits 62930 62930
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Mark arty_core as an intentional private dependency until it exposes foundational runtime contracts. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
There was a problem hiding this comment.
🟡 Changes recommended
The new public-surface test uses size_of without bringing it into scope, and should be adjusted to avoid relying on implicit availability.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Introduces the initial arty runtime facade crate and an intentionally empty arty_core foundation crate, establishing a small, feature-gated public surface that primarily re-exports existing workspace primitives.
Changes:
- Added
artyandarty_corecrates at0.2.0, including crate docs and packaging/metadata setup. - Implemented
artyas a facade re-exportingthread_aware_coreunderarty::coreand selectedticktypes behindtime/test-utilfeatures. - Added public-surface tests to validate the feature-gated facade.
File summaries
| File | Description |
|---|---|
| crates/arty/tests/public_surface.rs | Adds compile-time surface checks for feature-gated re-exports. |
| crates/arty/src/lib.rs | Defines the arty facade modules and feature-gated re-exports. |
| crates/arty/README.md | Adds generated crate README describing features and policies. |
| crates/arty/docs/STABILIZATION.md | Documents stabilization policy for re-exported dependencies. |
| crates/arty/docs/PANICS.md | Documents panic/unwind safety policy expectations. |
| crates/arty/docs/IO.md | Documents I/O ownership/injection policy. |
| crates/arty/docs/DESIGN.md | Documents high-level design intent. |
| crates/arty/Cargo.toml | Adds crate metadata, features, deps, and external-types allowlist. |
| crates/arty_core/src/lib.rs | Introduces empty foundation crate with crate-level docs. |
| crates/arty_core/README.md | Adds generated README for the foundation crate. |
| crates/arty_core/Cargo.toml | Adds crate metadata and coverage-gate configuration for empty crate. |
| Cargo.toml | Registers arty and arty_core in the workspace dependency set. |
| Cargo.lock | Records new workspace packages in the lockfile. |
Review details
- Files reviewed: 12/13 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Rename arty_core to arty_io_core, document its stable external-driver integration role, and add aligned Arty logo assets for both crates and the root catalog. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Preserve the latest main-branch changes already merged remotely while retaining the Arty I/O core rename. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
There was a problem hiding this comment.
🔵 Needs a closer look
The added public-surface tests reference size_of without explicitly bringing it into scope, which should be fixed to keep the tests self-contained and unambiguous.
Review details
Suppressed comments (2)
crates/arty/tests/public_surface.rs:19
size_ofis used without being brought into scope, which makes the test rely on an implicit import rather than being self-contained. Prefer explicitly importingcore::mem::size_of(or qualifying it) where it’s used.
use arty::time::{Clock, Delay, FutureExt, PeriodicTimer, SimpleClock, Stopwatch, Timeout};
crates/arty/tests/public_surface.rs:35
size_ofis referenced here without being in scope. Using a fully-qualified path keeps this test independent of any surrounding imports.
let _ = size_of::<arty::time::ClockControl>();
- Files reviewed: 17/19 changed files
- Comments generated: 0 new
- Review effort level: Lite
Avoid relying on implicit availability in the public facade tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
Keep the test dependency explicit without triggering the Rust 2024 redundant-import lint. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
List both new crates in the root changelog and keep the root README crate list consistent with the existing format. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
There was a problem hiding this comment.
🟢 Approval recommended
The changes are additive and low-risk (new crates + re-exports + docs/tests), with only a minor documentation consistency nit noted.
Review details
- Files reviewed: 20/22 changed files
- Comments generated: 1
- Review effort level: Lite
Keep Arty branding aligned with the crate-local PNG and ICO convention. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fefa2c62-c45c-4ede-822b-6d07ab109081
There was a problem hiding this comment.
🔵 Needs a closer look
The repo root README adds arty but omits listing the newly introduced arty_io_core, leaving the primary-crates index inconsistent with the PR’s scope.
Review details
Suppressed comments (1)
README.md:33
- The repo root crate list introduces
arty, but it doesn’t list the newly addedarty_io_corecrate even though it’s part of this PR (and similar “_core” crates likethread_aware_coreare listed). This makes discovery inconsistent for users browsing the primary crates.
- [`allocation_hints`](./crates/allocation_hints/README.md) - Allocator-independent heap ownership and scoped allocation hints.
- [`arty`](./crates/arty/README.md) - Single-threaded, thread-aware application runtime.
- [`bytesbuf`](./crates/bytesbuf/README.md) - Types for creating and manipulating byte sequences.
- Files reviewed: 20/21 changed files
- Comments generated: 0 new
- Review effort level: Lite
Introduces the initial
artyruntime facade and intentionally emptyarty_io_corecontract crate at version 0.2.0.artyre-exports thread-awareness types througharty::coreand exposes selected Tick primitives through independenttimeandtest-utilfeatures.arty_io_coreis reserved for stable contracts that integrate external I/O drivers with the runtime. The change also adds minimal design, I/O, panic-safety, and stabilization policies, feature-surface tests, and aligned Arty logo assets.