Skip to content

feat: Ability to override process parameters from the CLI - #276

Open
toby-coleman with Copilot wants to merge 7 commits into
mainfrom
copilot/feat-override-process-parameters
Open

feat: Ability to override process parameters from the CLI#276
toby-coleman with Copilot wants to merge 7 commits into
mainfrom
copilot/feat-override-process-parameters

Conversation

Copilot AI commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

plugboard process run can now override process-level parameters without editing the YAML config, via repeatable --param / -p key=value flags.

Changes

  • Add --param / -p to process run; values merge into process.args.parameters (later flags win)
  • Parse values as YAML so types are preserved (2.0, true, [1, 2], etc.)
  • Document usage in README, tutorials, and the run-process-scenario skill
  • Cover happy path and invalid format in CLI unit tests
plugboard process run model.yaml --param scale=2.0 -p enabled=true

Copilot AI and others added 2 commits August 19, 2026 20:05
Co-authored-by: toby-coleman <13170610+toby-coleman@users.noreply.github.com>
Co-authored-by: toby-coleman <13170610+toby-coleman@users.noreply.github.com>
Copilot AI changed the title [WIP] Add ability to override process parameters from the CLI feat: Ability to override process parameters from the CLI Aug 19, 2026
Copilot AI requested a review from toby-coleman August 19, 2026 20:10
@github-actions

Copy link
Copy Markdown

Benchmark comparison for f452c7de (base) vs 1691e2be (PR)


------------------------------------------------------------------------------------------------------------------ benchmark: 2 tests -----------------------------------------------------------------------------------------------------------------
Name (time in ms)                                                                         Min                 Max                Mean            StdDev              Median               IQR            Outliers     OPS            Rounds  Iterations
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_benchmark_process_run (main/.benchmarks/Linux-CPython-3.14-64bit/0001_base)     285.7890 (1.0)      291.8654 (1.0)      289.6733 (1.0)      2.3643 (1.0)      290.2837 (1.0)      2.8219 (1.0)           1;0  3.4522 (1.0)           5           1
test_benchmark_process_run (pr/.benchmarks/Linux-CPython-3.14-64bit/0001_pr)         293.5614 (1.03)     299.6840 (1.03)     297.1418 (1.03)     2.4030 (1.02)     298.0484 (1.03)     3.3630 (1.19)          2;0  3.3654 (0.97)          5           1
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Legend:
  Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
  OPS: Operations Per Second, computed as 1 / Mean

@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@toby-coleman

Copy link
Copy Markdown
Contributor

@copilot Use the machinery in plugboard.tune.tune to make this more generic. Instead of just being able to override parameters, we would like to be able to override anything supported by the _override_parameters logic from the CLI. Move this logic to somewhere it can be reused, e.g. plugboard-schemas.

Copilot AI and others added 2 commits August 25, 2026 18:15
Co-authored-by: toby-coleman <13170610+toby-coleman@users.noreply.github.com>
Co-authored-by: toby-coleman <13170610+toby-coleman@users.noreply.github.com>

Copilot AI commented Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Use the machinery in plugboard.tune.tune to make this more generic. Instead of just being able to override parameters, we would like to be able to override anything supported ...

Implemented the shared override machinery in plugboard-schemas, reused it from both Tuner and the CLI, and added generic component/process override coverage. Addressed in 777bc33 and f39ae53.

@github-actions

Copy link
Copy Markdown

Benchmark comparison for f452c7de (base) vs e0ec69f8 (PR)


------------------------------------------------------------------------------------------------------------------- benchmark: 2 tests ------------------------------------------------------------------------------------------------------------------
Name (time in ms)                                                                         Min                 Max                Mean             StdDev              Median                IQR            Outliers     OPS            Rounds  Iterations
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_benchmark_process_run (pr/.benchmarks/Linux-CPython-3.14-64bit/0001_pr)         373.3993 (1.0)      410.1631 (1.06)     382.2740 (1.0)      15.7263 (5.24)     375.5120 (1.0)      12.8511 (2.38)          1;1  2.6159 (1.0)           5           1
test_benchmark_process_run (main/.benchmarks/Linux-CPython-3.14-64bit/0001_base)     378.8707 (1.01)     385.4453 (1.0)      382.2869 (1.00)      2.9985 (1.0)      383.4417 (1.02)      5.4061 (1.0)           2;0  2.6158 (1.00)          5           1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Legend:
  Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
  OPS: Operations Per Second, computed as 1 / Mean

@github-actions

Copy link
Copy Markdown

Benchmark comparison for 78e8f549 (base) vs bf6f9532 (PR)


------------------------------------------------------------------------------------------------------------------ benchmark: 2 tests -----------------------------------------------------------------------------------------------------------------
Name (time in ms)                                                                         Min                 Max                Mean            StdDev              Median               IQR            Outliers     OPS            Rounds  Iterations
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_benchmark_process_run (main/.benchmarks/Linux-CPython-3.14-64bit/0001_base)     401.0171 (1.0)      408.6909 (1.0)      404.8646 (1.0)      3.5295 (1.01)     403.0927 (1.0)      6.1129 (1.25)          3;0  2.4700 (1.0)           5           1
test_benchmark_process_run (pr/.benchmarks/Linux-CPython-3.14-64bit/0001_pr)         404.5876 (1.01)     413.3052 (1.01)     407.8460 (1.01)     3.4842 (1.0)      407.3033 (1.01)     4.8771 (1.0)           1;0  2.4519 (0.99)          5           1
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Legend:
  Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
  OPS: Operations Per Second, computed as 1 / Mean

@toby-coleman

Copy link
Copy Markdown
Contributor

@copilot improve the patch coverage for the tests

Co-authored-by: toby-coleman <13170610+toby-coleman@users.noreply.github.com>

Copilot AI commented Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

@copilot improve the patch coverage for the tests

Added coverage for invalid CLI override formats, invalid generic override names, and unknown component targets in 437b6bf.

@toby-coleman
toby-coleman marked this pull request as ready for review August 25, 2026 20:46
@github-actions

Copy link
Copy Markdown

Benchmark comparison for 78e8f549 (base) vs 437b6bf0 (PR)


------------------------------------------------------------------------------------------------------------------ benchmark: 2 tests -----------------------------------------------------------------------------------------------------------------
Name (time in ms)                                                                         Min                 Max                Mean            StdDev              Median               IQR            Outliers     OPS            Rounds  Iterations
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_benchmark_process_run (pr/.benchmarks/Linux-CPython-3.14-64bit/0001_pr)         377.4256 (1.0)      388.0085 (1.00)     382.6102 (1.0)      3.9343 (1.05)     382.2387 (1.0)      5.1873 (1.0)           2;0  2.6136 (1.0)           5           1
test_benchmark_process_run (main/.benchmarks/Linux-CPython-3.14-64bit/0001_base)     378.6236 (1.00)     387.8302 (1.0)      383.3011 (1.00)     3.7449 (1.0)      383.9614 (1.00)     6.1461 (1.18)          2;0  2.6089 (1.00)          5           1
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Legend:
  Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
  OPS: Operations Per Second, computed as 1 / Mean

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.

feat: Ability to override process parameters from the CLI

2 participants