Restructure CLI into validate/run-tests/strictness-help subcommands#176
Open
drowaudio wants to merge 1 commit into
Open
Restructure CLI into validate/run-tests/strictness-help subcommands#176drowaudio wants to merge 1 commit into
drowaudio wants to merge 1 commit into
Conversation
…nds, keeping flat flags as deprecated aliases`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Restructures pluginval's command line into proper subcommands, with the old flat flags kept as deprecated aliases for one release:
pluginval validate [options] <plugin>(the default)pluginval --validate <plugin>pluginval run-testspluginval --run-testspluginval strictness-help [level]pluginval --strictness-help [level]pluginval <plugin>(bare-path shorthand)This was the work deliberately deferred from the CLI11 refactor (#175); the settings pipeline and
PluginvalSettingswere designed to be reused unchanged.How
A thin verb dispatcher sits in front of the existing settings pipeline — not CLI11-native subcommands — so the env →
--config→ CLI precedence layering inparseTokensis completely untouched.SettingsParser: splitpreprocess()intotokenise()+insertImplicitValidate(); addedCommand,DispatchResultanddispatch(), which peels the leading verb and records whether a deprecated alias was used.--validate), sovalidate <plugin>works for file paths and AU component ids.--configis stripped from the tokens fed to the CLI11 pass (it's parsed manually anyway) so its greedy vector parsing can't swallow the positional plugin path.validate --config-base64 <b64> <path>.CommandLine.cppswitches on the dispatched command and prints a one-line stderr deprecation notice when an old flat flag is used (the bare-path shorthand and the internal child handoff stay silent).Deprecation behaviour
--validate/--run-tests/--strictness-helpstill work but emit e.g.:To be removed in the release after next (noted in
CHANGELIST.md).Tests / verification
CommandLineTestsgroups: positional validate,--config-before-plugin (the swallow guard), verb routing (no warning), deprecated aliases (warn), bare-path/child-handoff silence, andshouldPerformCommandLineverb recognition.run-tests, exit 0) and CI is green on all three platforms — including the Windows Run Pluginval Tests and Validate VST3 examples steps, plus all three "Pluginval as Dependency" jobs that exercise the updatedAddPluginvalTests.cmake.Also updated
.github/workflows/build.yaml— new syntax, keeping one--validatealias invocation (the continue-on-error AU step) so the deprecation path stays covered.tests/AddPluginvalTests.cmake(public CTest module) and theCMakeLists.txtdev target → newvalidatesyntax so downstream users don't get warnings.tests/windows_tests.bat— replaced the stale--validate-in-processflag (no longer registered) withvalidate.Command line options.md,Adding pluginval to CI.md— also fixed its broken--validate-in-processexamples),CHANGELIST.md, andCLAUDE.md.Reviewer notes
--configtoken-stripping inparseTokensstep 3 is the one non-obvious bit — it exists purely to stop CLI11's greedy vector parse from consuming the positional plugin path.--configis still parsed manually and still appears in--help.--validatewarns when used directly, but the internal child-process handoff uses the explicitvalidateverb so it never triggers the warning.🤖 Generated with Claude Code