Skip to content

feat(arty): introduce runtime facade and core crates - #727

Merged
martintmk merged 19 commits into
mainfrom
user/martintmk/20260904-add-arty-runtime-crates
Sep 7, 2026
Merged

feat(arty): introduce runtime facade and core crates#727
martintmk merged 19 commits into
mainfrom
user/martintmk/20260904-add-arty-runtime-crates

Conversation

@martintmk

@martintmk martintmk commented Sep 4, 2026

Copy link
Copy Markdown
Member

Introduces the initial arty runtime facade and intentionally empty arty_io_core contract crate at version 0.2.0. arty re-exports thread-awareness types through arty::core and exposes selected Tick primitives through independent time and test-util features. arty_io_core is 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.

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
@martintmk martintmk added the agency-rocket Touched by a rocket skill label Sep 4, 2026
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

✅ Version increments look sufficient

cargo semver-checks compared the 2 crate(s) this PR publishes against their previous version-bump commit in git history. Every version increment is sufficient for the detected API changes.

Crate Baseline Baseline commit This PR Minimum required Status
arty new crate 0.2.0 0.2.0 ✅ ok
arty_io_core new crate 0.2.0 0.2.0 ✅ ok

This check is informational and does not block the merge.

View the check run

@codecov

codecov Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.0%. Comparing base (d37be41) to head (a9dffce).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #727   +/-   ##
=======================================
  Coverage   100.0%   100.0%           
=======================================
  Files         583      583           
  Lines       62930    62930           
=======================================
  Hits        62930    62930           
Flag Coverage Δ
linux 99.9% <ø> (-0.1%) ⬇️
linux-arm 100.0% <ø> (ø)
scheduled ?
windows 100.0% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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
Comment thread crates/arty/docs/PANICS.md Outdated
Comment thread crates/arty/docs/PANICS.md Outdated
Comment thread crates/arty/src/lib.rs Outdated
martintmk and others added 4 commits September 4, 2026 11:20
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
@martintmk
martintmk marked this pull request as ready for review September 4, 2026 14:15
Copilot AI lite review requested due to automatic review settings September 4, 2026 14:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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 arty and arty_core crates at 0.2.0, including crate docs and packaging/metadata setup.
  • Implemented arty as a facade re-exporting thread_aware_core under arty::core and selected tick types behind time / test-util features.
  • 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.

Comment thread crates/arty/tests/public_surface.rs
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
Copilot AI review requested due to automatic review settings September 7, 2026 06:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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_of is used without being brought into scope, which makes the test rely on an implicit import rather than being self-contained. Prefer explicitly importing core::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_of is 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

Comment thread README.md Outdated
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
Copilot AI review requested due to automatic review settings September 7, 2026 07:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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

Comment thread README.md
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
Copilot AI review requested due to automatic review settings September 7, 2026 07:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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 added arty_io_core crate even though it’s part of this PR (and similar “_core” crates like thread_aware_core are 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

@martintmk
martintmk enabled auto-merge (squash) September 7, 2026 08:42
Comment thread crates/arty/Cargo.toml
@martintmk
martintmk merged commit efd8178 into main Sep 7, 2026
56 checks passed
@martintmk
martintmk deleted the user/martintmk/20260904-add-arty-runtime-crates branch September 7, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agency-rocket Touched by a rocket skill

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants