Skip to content

Commit 2218853

Browse files
chore: remove dead plugin-era code and stale WASM-plugin references (#177)
1 parent 621668a commit 2218853

39 files changed

Lines changed: 110 additions & 245 deletions

‎.github/workflows/release.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
sed -i "s|hm-render = { path = \"crates/hm-render\", version = \"0.0.0-dev\" }|hm-render = { path = \"crates/hm-render\", version = \"$VERSION\" }|" Cargo.toml
5858
sed -i "s|hm-vm = { path = \"crates/hm-vm\", version = \"0.0.0-dev\" }|hm-vm = { path = \"crates/hm-vm\", version = \"$VERSION\" }|" Cargo.toml
5959
60-
cargo check --workspace --exclude hm-fixtures
60+
cargo check --workspace
6161
6262
- name: Publishability guard (dry-run package the whole graph)
6363
# Fail fast before any real `cargo publish` if the dependency graph
@@ -68,7 +68,7 @@ jobs:
6868
# would fail), so it catches exactly the publish=false / unpublished-dep
6969
# class of regression. `--no-verify` skips the per-crate rebuild;
7070
# `cargo check --workspace` above already proved it compiles.
71-
run: cargo package --workspace --exclude hm-fixtures --allow-dirty --no-verify
71+
run: cargo package --workspace --allow-dirty --no-verify
7272

7373
- name: Publish hm-util
7474
run: |

‎CLAUDE.md‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ The `cli/` directory is a Cargo workspace.
66
- `crates/hm-pipeline-ir/` — pipeline IR schema (serde structs only, no runtime).
77
- `crates/hm-common/` — shared utilities (OS/filesystem, formatting, and other cross-crate helpers). This is the source of truth for common code; prefer adding shared helpers here.
88
- `crates/hm-plugin-protocol/` — wire types (serde structs only).
9-
- `crates/hm-plugin-sdk/` — authoring SDK for plugin writers.
109
Run `cargo build` from the workspace root.
1110

1211
For cross-cutting doctrine see [PRINCIPLES.md](../PRINCIPLES.md).

‎CONTRIBUTING.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ cargo insta review
181181
| `crates/hm-pipeline-ir` | The pipeline IR wire-format schema. |
182182
| `crates/hm-config` | Layered configuration and credential storage. |
183183
| `crates/hm-plugin-cloud` | Cloud client library. |
184-
| `crates/hm-plugin-protocol` | Wire types shared between `hm` and plugins. |
184+
| `crates/hm-plugin-protocol` | Wire types shared between `hm` crate internals. |
185185
| `crates/hm-util` | Shared OS and filesystem utilities. |
186186

187187
A useful mental model: the DSL engine evaluates your `.hm/*.py` pipeline

‎Cargo.lock‎

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎RELEASING.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ hm-util → hm-pipeline-ir → hm-config → hm-plugin-protocol → hm-render
5151

5252
`harmont-cli` (the `hm` binary) depends on every other crate, so they
5353
must all reach crates.io first — including `hm-vm`, which carries the
54-
local Docker backend. `hm-fixtures` is test-only and not published.
54+
local Docker backend.
5555

5656
### Prerequisites (one-time)
5757

‎crates/hm-config/src/creds.rs‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
//! File-backed credential store at `~/.config/hm/credentials.toml`.
22
//!
3-
//! Replaces the OS keyring as the sole backend. The file is written with
4-
//! mode 0o600 (parent dir 0o700) via [`hm_util::os::fs::blocking::write_atomic_restricted`].
5-
//! Keyed by `(service, account)` to match the host-fn ABI plugins use.
3+
//! The file is written with mode 0o600 (parent dir 0o700) via
4+
//! [`hm_util::os::fs::blocking::write_atomic_restricted`], keyed by
5+
//! `(service, account)`.
66
77
use anyhow::{Context, Result};
88
use serde::{Deserialize, Serialize};
@@ -50,8 +50,7 @@ pub fn get(service: &str, account: &str) -> Option<String> {
5050
load().entries.get(service)?.get(account).cloned()
5151
}
5252

53-
/// Write a credential. Silently no-ops on I/O failure so plugin callers
54-
/// match the prior keyring-backed best-effort semantics.
53+
/// Write a credential. Silently no-ops on I/O failure (best-effort).
5554
pub fn set(service: &str, account: &str, secret: &str) {
5655
let mut f = load();
5756
f.entries

‎crates/hm-exec/src/local/archive.rs‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
//!
33
//! On build start the orchestrator tar.gzs the user's working
44
//! directory once (via [`crate::local::build_archive_bytes`])
5-
//! and registers the bytes under an opaque `ArchiveId`. Step-executor
6-
//! plugins receive that ID in their `ExecutorInput` and pull bytes
7-
//! via `hm_archive_read`. The host caches archives in memory keyed
8-
//! by ID for the duration of a single `local::run` invocation.
5+
//! and registers the bytes under an opaque `ArchiveId`. Runners receive
6+
//! that ID in their `ExecutorInput` and read the bytes back from this
7+
//! store. Archives are cached in memory keyed by ID for the duration of
8+
//! a single `local::run` invocation.
99
1010
use std::collections::HashMap;
1111
use std::sync::Mutex;

‎crates/hm-exec/src/local/events.rs‎

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
//! Build-event broadcast channel.
22
//!
3-
//! Subscribers (output formatter plugin, lifecycle hook plugins,
4-
//! the human-readable progress sink) all subscribe to the same
5-
//! channel; the host's `emit_event` / `emit_step_log` host fns
6-
//! publish into it.
3+
//! Subscribers (the output renderers and progress sink) subscribe to the
4+
//! same channel; runners and the scheduler publish [`BuildEvent`]s into it.
75
86
// `new()` returning `Arc<Self>` is intentional (the bus is always
97
// shared); `subscribe()` returns a tokio receiver that callers must
@@ -39,7 +37,7 @@ impl EventBus {
3937
/// received it. A return of 0 is normal (no subscribers yet).
4038
pub fn emit(&self, event: BuildEvent) {
4139
// We intentionally drop the error: zero-subscriber sends are
42-
// not interesting and we don't want host_fn impls to fail
40+
// not interesting and we don't want publishers to fail
4341
// because nobody is listening.
4442
let _ = self.tx.send(event);
4543
}

‎crates/hm-exec/src/local/runner/mod.rs‎

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
//! Static runner interface.
22
//!
3-
//! This module replaces the old WASM plugin system with a static DI
4-
//! approach. Step executors implement [`StepRunner`]. A [`RunnerRegistry`]
5-
//! maps runner names to concrete implementations at startup.
3+
//! Step executors implement [`StepRunner`]; a [`RunnerRegistry`] maps
4+
//! runner names to concrete implementations at startup.
65
76
use std::collections::HashMap;
87
use std::fmt;
@@ -21,9 +20,7 @@ pub mod vm;
2120

2221
/// Shared context threaded into every runner invocation.
2322
///
24-
/// Replaces the monolithic `OrchestratorState` that the old plugin
25-
/// system passed as opaque host memory. All fields are cheaply
26-
/// cloneable (`Arc` / `CancellationToken`).
23+
/// All fields are cheaply cloneable (`Arc` / `CancellationToken`).
2724
#[derive(Clone, Debug)]
2825
pub struct StepContext {
2926
pub event_bus: Arc<EventBus>,

‎crates/hm-pipeline-ir/src/graph.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ pub struct CommandStep {
3636
/// Cache configuration for this step's committed snapshot.
3737
#[serde(default)]
3838
pub cache: Option<Cache>,
39-
/// Step-executor plugin name. `None` falls back to the default
39+
/// Step-executor (runner) name. `None` falls back to the default
4040
/// runner (Docker in the shipped configuration).
4141
#[serde(default, skip_serializing_if = "Option::is_none")]
4242
pub runner: Option<String>,
43-
/// Plugin-specific extra fields passed verbatim to the runner.
43+
/// Runner-specific extra fields passed verbatim to the runner.
4444
#[serde(default, skip_serializing_if = "Option::is_none")]
4545
pub runner_args: Option<serde_json::Value>,
4646
}

0 commit comments

Comments
 (0)