Skip to content

chore!: rip old support for old harnesses/ dir - #424

Merged
twitchyliquid64 merged 1 commit into
mainfrom
tom/stacks
Jun 16, 2026
Merged

chore!: rip old support for old harnesses/ dir#424
twitchyliquid64 merged 1 commit into
mainfrom
tom/stacks

Conversation

@twitchyliquid64

@twitchyliquid64 twitchyliquid64 commented Jun 15, 2026

Copy link
Copy Markdown
Member

Wine-pairing /w gominimal/pkgs#250. Removing code always has a crisp, summery note.

Summary by CodeRabbit

  • Breaking Changes
    • Removed the exported harness constructor; use the stack constructor instead.
    • Stack loading/checking now exclusively uses stacks/ with stack.ncl (no harness-based fallback).
    • Configuration blocks/expectations have shifted from [harness] to [stack].
  • Chores
    • Version bump to 0.0.16 for the standard library component.

@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4a45a3dd-92f6-48e5-a942-23a0eb94bdff

📥 Commits

Reviewing files that changed from the base of the PR and between 35127f7 and 7b3fc1d.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (10)
  • .minimal/minimal.toml
  • Cargo.toml
  • crates/check/src/stack.rs
  • crates/decode/src/load.rs
  • crates/decode/src/stacks.rs
  • crates/mfile/src/lib.rs
  • crates/minimal/src/cmd_check.rs
  • crates/minimal/src/cmd_update.rs
  • crates/stdlib/Cargo.toml
  • crates/stdlib/minimal-ncl/minimal.ncl
💤 Files with no reviewable changes (2)
  • crates/decode/src/stacks.rs
  • crates/stdlib/minimal-ncl/minimal.ncl
✅ Files skipped from review due to trivial changes (3)
  • crates/mfile/src/lib.rs
  • crates/minimal/src/cmd_update.rs
  • crates/stdlib/Cargo.toml
🚧 Files skipped from review as they are similar to previous changes (4)
  • Cargo.toml
  • crates/check/src/stack.rs
  • .minimal/minimal.toml
  • crates/decode/src/load.rs

📝 Walkthrough

Walkthrough

Removes the deprecated harness concept from the codebase. The harness constructor in minimal.ncl is replaced by stack. All conditional fallback logic that preferred harnesses/ directories or harness.ncl files is replaced with unconditional stacks//stack.ncl paths. The parse_harness_syntax test is deleted, loader/check tests are updated, and stdlib is bumped to 0.0.16.

Changes

harness → stack migration

Layer / File(s) Summary
stdlib: replace harness constructor with stack, version bump
crates/stdlib/minimal-ncl/minimal.ncl, crates/stdlib/Cargo.toml, Cargo.toml
Removes the harness | Dyn -> Stack export (previously TODO-marked for May 2026) and adds stack | Dyn -> Stack in its place. Package version is bumped from 0.0.15 to 0.0.16 in both the crate and workspace manifests.
Remove harness fallback in check, decode loader, and cmd_check
crates/check/src/stack.rs, crates/decode/src/load.rs, crates/minimal/src/cmd_check.rs
check_stack now unconditionally loads stack.ncl. Loader::new_with_all_pkgs drops the harnesses/ directory block so stacks initialization follows profiles directly. cmd_check always uses upstream_dir.join("stacks") instead of a conditional preferring harnesses.
Update tests, add TODOs, and update configuration
crates/decode/src/load.rs, crates/decode/src/stacks.rs, crates/minimal/src/cmd_update.rs, crates/mfile/src/lib.rs, .minimal/minimal.toml
loader_new_with_all_pkgs test is updated to create stacks/rust/stack.ncl with a stack { ... } definition. parse_harness_syntax test is deleted. TODO comments are added to cmd_update (June 2026) and mfile/lib.rs (July 2026) noting removal dates. Configuration file .minimal/minimal.toml switches from [harness] to [stack] and pins a new locked commit.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • gominimal/pkgs#250: Matching "rename harnesses to stacks" updates including loading stacks/**/stack.ncl, updating Loader tests, and removing the exported harness | Dyn -> Stack constructor.

Suggested reviewers

  • norrietaylor
  • 0chroma

Poem

🐇 Hop hop, the harness is gone today,
No more fallback paths to lead astray.
The stack constructor stands alone and proud,
Version 0.0.16 announced aloud!
From harnesses/ to stacks/ we leap,
Clean code forever, one less TODO to keep. 🌿

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: removing the old harnesses directory structure support, which aligns with all the substantive changes throughout the codebase.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands and usage tips.

@bryan-minimal bryan-minimal left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

use crate::load::*;
use indoc::indoc;

#[test]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Note: This duped another test exactly, except just using harness{} instead of stack{}, so it doesnt reduce coverage to remove entirely.

@twitchyliquid64

Copy link
Copy Markdown
Member Author

NB: Need to merge after gominimal/pkgs#250 to avoid breaking ppl using minimal in the minimal repo.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.minimal/minimal.toml:
- Line 4: The locked_commit value is pointing to an outdated upstream state that
predates the harness→stack migration and does not include the coordinated PR
`#250` changes. Since the current PR is already updating the configuration to use
the [stack] section (line 6), update the locked_commit field to reference a
newer commit hash that includes the coordinated PR `#250` changes from the
gominimal/pkgs repository. This ensures the upstream state matches the
configuration changes being made in this PR before merge.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 859a6d0e-87ab-423b-ac5a-30f97f14a547

📥 Commits

Reviewing files that changed from the base of the PR and between b200b39 and 35127f7.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (10)
  • .minimal/minimal.toml
  • Cargo.toml
  • crates/check/src/stack.rs
  • crates/decode/src/load.rs
  • crates/decode/src/stacks.rs
  • crates/mfile/src/lib.rs
  • crates/minimal/src/cmd_check.rs
  • crates/minimal/src/cmd_update.rs
  • crates/stdlib/Cargo.toml
  • crates/stdlib/minimal-ncl/minimal.ncl
💤 Files with no reviewable changes (2)
  • crates/stdlib/minimal-ncl/minimal.ncl
  • crates/decode/src/stacks.rs
✅ Files skipped from review due to trivial changes (2)
  • crates/mfile/src/lib.rs
  • crates/stdlib/Cargo.toml
🚧 Files skipped from review as they are similar to previous changes (5)
  • crates/minimal/src/cmd_update.rs
  • crates/check/src/stack.rs
  • crates/minimal/src/cmd_check.rs
  • Cargo.toml
  • crates/decode/src/load.rs

Comment thread .minimal/minimal.toml Outdated
@twitchyliquid64
twitchyliquid64 enabled auto-merge (rebase) June 16, 2026 05:18
@twitchyliquid64
twitchyliquid64 merged commit 3633dfb into main Jun 16, 2026
22 checks passed
@twitchyliquid64
twitchyliquid64 deleted the tom/stacks branch June 16, 2026 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants