Skip to content

[202405] Add GCU standalone wheel package (backport of #4310)#362

Merged
yejianquan merged 1 commit into
Azure:202405from
yejianquan:jianquanye/202405-msft-gcu-wheel-package
Jun 6, 2026
Merged

[202405] Add GCU standalone wheel package (backport of #4310)#362
yejianquan merged 1 commit into
Azure:202405from
yejianquan:jianquanye/202405-msft-gcu-wheel-package

Conversation

@yejianquan

Copy link
Copy Markdown

Backport the GCU (Generic Config Updater) standalone wheel packaging from master PR #4310 to the 202405 branch, adapted for 202405 API compatibility (following 202412 PR #352 structure).

Changes:

  • Add generic_config_updater/main.py: standalone GCU entry point with all apply-patch orchestration logic (validate, preprocess, scope splitting, parallel dispatch)
  • Add generic_config_updater/setup.py: builds sonic-gcu wheel with gcu-standalone console_scripts entry point
  • Add generic_config_updater/pytest.ini and .coveragerc for test/coverage
  • Modify field_operation_validators.py: inline DEFAULT_SUPPORTED_FECS_LIST to remove utilities_common dependency (wheel isolation)
  • Add comment in utilities_common/constants.py noting the duplicate
  • Modify azure-pipelines.yml: add GCU wheel build + publish step
  • Add tests/generic_config_updater/main_test.py: 88 unit tests adapted from master (removed --time and --path-trace features not in 202405)

Testing performed:

  • Wheel build: sonic_gcu-1.0.0-py3-none-any.whl (48KB) builds successfully
  • Wheel install: gcu-standalone binary at /usr/local/bin/gcu-standalone
  • All 7 CLI sub-commands verified: apply-patch, replace, save, rollback, create-checkpoint, delete-checkpoint, list-checkpoints
  • All flags tested: --verbose, --dry-run, --ignore-non-yang-tables, --format, --parallel
  • Basic operations: add, replace, remove patches via gcu-standalone
  • Mixed operations: checkpoint create -> apply patch -> rollback -> delete
  • Error handling: missing file -> exit 1, invalid patch -> proper error
  • Regression: existing 'config apply-patch' CLI unaffected
  • Unit tests: 88/88 pass, flake8 clean
  • Device: str3-7800-lc3-1 (multi-ASIC Arista 7808, SONiC 202405)

What I did

How I did it

How to verify it

Previous command output (if the output of a command-line utility has changed)

New command output (if the output of a command-line utility has changed)

Backport the GCU (Generic Config Updater) standalone wheel packaging
from master PR #4310 to the 202405 branch, adapted for 202405 API
compatibility (following 202412 PR Azure#352 structure).

Changes:
- Add generic_config_updater/main.py: standalone GCU entry point with
  all apply-patch orchestration logic (validate, preprocess, scope
  splitting, parallel dispatch)
- Add generic_config_updater/setup.py: builds sonic-gcu wheel with
  gcu-standalone console_scripts entry point
- Add generic_config_updater/pytest.ini and .coveragerc for test/coverage
- Modify field_operation_validators.py: inline DEFAULT_SUPPORTED_FECS_LIST
  to remove utilities_common dependency (wheel isolation)
- Add comment in utilities_common/constants.py noting the duplicate
- Modify azure-pipelines.yml: add GCU wheel build + publish step
- Add tests/generic_config_updater/main_test.py: 88 unit tests adapted
  from master (removed --time and --path-trace features not in 202405)

Testing performed:
- Wheel build: sonic_gcu-1.0.0-py3-none-any.whl (48KB) builds successfully
- Wheel install: gcu-standalone binary at /usr/local/bin/gcu-standalone
- All 7 CLI sub-commands verified: apply-patch, replace, save, rollback,
  create-checkpoint, delete-checkpoint, list-checkpoints
- All flags tested: --verbose, --dry-run, --ignore-non-yang-tables,
  --format, --parallel
- Basic operations: add, replace, remove patches via gcu-standalone
- Mixed operations: checkpoint create -> apply patch -> rollback -> delete
- Error handling: missing file -> exit 1, invalid patch -> proper error
- Regression: existing 'config apply-patch' CLI unaffected
- Unit tests: 88/88 pass, flake8 clean
- Device: str3-7800-lc3-1 (multi-ASIC Arista 7808, SONiC 202405)

Signed-off-by: Rithvick Reddy Munagala <rimunagala@microsoft.com>
@yejianquan yejianquan merged commit 8032b0a into Azure:202405 Jun 6, 2026
3 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