Repository navigation
feat!: rename the package, image and environment variables to granite-switch-decision - #15
Merged
Merged
Conversation
…-switch-decision The plugin serves both /v1/decisions and /v1/systemone, so the systemone name only fits one of its two routes. Everything specific to the /v1/systemone route keeps its name: the path, SystemOneRequest and SystemOneResponse, and the jev wire-format tests. Renamed: - the Python package and entry point, granite_switch_systemone to granite_switch_decision (VLLM_PLUGINS must now list granite_switch_decision) - the distribution and image, granite-switch-systemone to granite-switch-decision - every SYSTEMONE_* environment variable to GRANITE_SWITCH_DECISION_*, with no fallback - SystemOnePlugin to DecisionPlugin, and the shared app.state.systemone_* attributes to decision_* - the version, 0.1.3 to 0.2.0 Assisted-by: Claude Code Signed-off-by: Nigel Jones <jonesn@uk.ibm.com>
GRANITE_SWITCH_DECISION_* made some names 50 characters long (for example GRANITE_SWITCH_DECISION_EXPERIMENTAL_SYSTEM_PROMPT). The variables are read only by the vLLM process, so a short prefix is enough. This applies the new names from the previous commit under the shorter prefix, and puts SYSTEMONE_BODY back: it is a constant holding a jev request body in scripts/e2e_check.py, not an environment variable. Assisted-by: Claude Code Signed-off-by: Nigel Jones <jonesn@uk.ibm.com>
- Last updated is now 2026-10-25. - tests/test_openai_spec.py collects 41 cases, not 42. - Say which results were repeated after the rename and which were not. - The anonymous-install row names the repository as it was then. - The package docstring now describes both routes, not only /v1/systemone. Assisted-by: Claude Code Signed-off-by: Nigel Jones <jonesn@uk.ibm.com>
Assisted-by: Claude Code Signed-off-by: Nigel Jones <jonesn@uk.ibm.com>
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.
The plugin serves two routes,
/v1/decisionsand/v1/systemone, but its package, image and environment variables were all named after one of them. This renames them togranite-switch-decision. Anything specific to the/v1/systemoneroute keeps its name.This is a breaking change for anyone who has installed or deployed 0.1.x, so it ships as 0.2.0.
granite-switch-systemonegranite-switch-decisiongranite_switch_systemonegranite_switch_decisionVLLM_PLUGINS=register_granite_switch,granite_switch_systemoneVLLM_PLUGINS=register_granite_switch,granite_switch_decisionSYSTEMONE_*(11 environment variables)DECISION_*, same suffixes (for exampleSYSTEMONE_SPEECH_INPUTis nowDECISION_SPEECH_INPUT)SystemOnePlugin,app.state.systemone_*DecisionPlugin,app.state.decision_*There is no fallback to the old variable names. An old name is now ignored without an error, so anyone who sets
SYSTEMONE_INVOCATION_MARKERorSYSTEMONE_ADAPTER_NAMEhas to change them toDECISION_INVOCATION_MARKERandDECISION_ADAPTER_NAME. The image sets its own defaults, so the container is unaffected unless you override them. The shorter prefix is deliberate: these are read only by the vLLM process, and the long form gave names of up to 50 characters.Unchanged: the
/v1/systemonepath,SystemOneRequestandSystemOneResponse, the jev wire-format tests, and the published 0.1.3 image history (STATUS and the README name it as it was then).Before the image can be pulled by its new name: the GitHub repository has to be renamed, because the workflow takes the image name from
github.repository. Making the new ghcr package public is a separate step for an org admin. The README commands use the new name, so they work only after both.Tested:
pytest: 226 passed, 4 skipped, in a fresh venv withpip install -e ".[dev]". The only entry point registered isgranite_switch_decision.ruff checkandruff format --checkpass. Five lines were re-wrapped because the longer names pushed them over 119 characters.DECISION_*variables:e2e_check11/11,probe_check6/6, andaccuracy_checkunchanged from the same checkpoint onmain. Not run on the 30b, on arm64, or through the image underdocker run.image.ymlrun on this branch built all four images (default and-asr, amd64 and arm64). It ran on the first commit, before the prefix change, which touches no build logic.granite_switch_decisionand registers one entry point.SYSTEMONE_BODYinscripts/e2e_check.py, holds a jev request body and keeps its name.Draft until the live check passes and the repository is renamed.