Skip to content

Rename the toolchain commands to rb msvc enable/exec#3

Merged
hsbt merged 1 commit into
masterfrom
claude/build-toolchain-wrapper-naming-0a30da
Jul 14, 2026
Merged

Rename the toolchain commands to rb msvc enable/exec#3
hsbt merged 1 commit into
masterfrom
claude/build-toolchain-wrapper-naming-0a30da

Conversation

@hsbt

@hsbt hsbt commented Jul 13, 2026

Copy link
Copy Markdown
Member

The MSVC build-environment activation shipped as a top-level rb exec (and its companion rb enable), but exec at the top level reads as "run a command under the selected ruby", the meaning it carries in version managers such as rbenv exec and mise exec. That connotation hides what the command actually does, which is activate an installed Visual Studio or Build Tools MSVC toolchain so native gems can build.

This namespaces both surfaces under the toolset name as rb msvc enable [shell] and rb msvc exec <command...>, and renames the implementation class and file from Devkit to Msvc to match. The word "devkit" is not a Visual Studio term, so the class comment and the design note now describe the mechanism in Visual Studio vocabulary (the MSVC toolset and VsDevCmd.bat, the script behind the Developer Command Prompt). Behavior is unchanged. Only the command spelling, the class name, and the docs move.

# activate the toolchain in the current shell
rb msvc enable powershell | Invoke-Expression

# or run a single build command with the toolchain applied
rb msvc exec gem install nokogiri

A top-level `rb exec` reads as "run under the selected ruby", the
meaning exec has in version managers, not as MSVC build-environment
activation. Namespace both surfaces under the toolset name and rename
the Devkit class to Msvc to match; "devkit" is not a Visual Studio
term.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 13, 2026 11:38

Copilot AI 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.

Pull request overview

This PR renames the MSVC toolchain activation commands from top-level rb enable / rb exec to rb msvc enable / rb msvc exec, and renames the implementation from Devkit to Msvc, updating tests and documentation accordingly while keeping behavior the same.

Changes:

  • Updated CLI dispatch and usage text to expose MSVC activation under the msvc subcommand.
  • Renamed the implementation type from Devkit to Msvc and updated all test references.
  • Updated README and design/test documentation to reflect the new command surface and terminology.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/rbmanager.Tests/Support/VsWhereScope.cs Updates the test seam to override Msvc.VsWhere instead of Devkit.VsWhere.
tests/rbmanager.Tests/Support/Serial.cs Updates serial-test documentation to reference Msvc.VsWhere.
tests/rbmanager.Tests/SmokeTests.cs Updates internal API smoke assertions to reference Msvc.
tests/rbmanager.Tests/MsvcVsTests.cs Renames VS-dependent tests and updates CLI invocation to rb msvc exec.
tests/rbmanager.Tests/MsvcHelperTests.cs Renames helper tests and updates calls from Devkit to Msvc.
tests/rbmanager.Tests/MsvcActivationTests.cs Renames activation tests and updates calls from Devkit to Msvc.
tests/rbmanager.Tests/CliE2eTests.cs Updates E2E dispatch-usage test cases for the new msvc command surface.
src/rbmanager/Program.cs Updates CLI argument dispatch and usage text to msvc enable/exec.
src/rbmanager/Msvc.cs Renames implementation class and updates comments/docs pointers to MSVC terminology.
README.md Updates the user-facing command list and docs link to msvc enable/exec.
docs/test-plan.md Updates the command contract/test plan to reflect rb msvc enable/exec and Msvc seams.
docs/msvc-enable.md Updates the design note and examples to the new rb msvc enable/exec command surface.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 35 to +39
[InlineData("install")]
[InlineData("use")]
[InlineData("exec")]
public void MissingRequiredArgument_Usage_Exit2(string command)
[InlineData("msvc")]
[InlineData("msvc", "exec")]
public void MissingRequiredArgument_Usage_Exit2(params string[] command)
@hsbt hsbt merged commit 65f2784 into master Jul 14, 2026
2 checks passed
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