CP-13518 vSDK Decorator Implementation & Manifest Write - #691
Conversation
There was a problem hiding this comment.
Pull request overview
This PR bumps the vSDK release to 5.2.0 and adds a new optional plugin operation/decorator, pre_source_to_physical(), for both linked and virtual operation groups. It also wires new manifest capability flags and updates the SDK’s engine API version and documentation to reflect the new operation and compatibility expectations.
Changes:
- Bumped vSDK package versions to 5.2.0 and updated the pinned virtualization API version references used by the tooling/tests.
- Implemented
linked.pre_source_to_physical()/virtual.pre_source_to_physical()with internal RPC dispatch wrappers and manifest flags (hasLinkedPreSourceToPhysical,hasVirtualPreSourceToPhysical). - Updated docs (operations/decorators/compatibility, release notes, and workflow diagrams) and added platform tests for the new RPC paths.
Reviewed changes
Copilot reviewed 24 out of 26 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/src/test/python/dlpx/virtualization/_internal/test_package_util.py | Updates expected vSDK and virtualization API versions in tooling tests. |
| tools/src/test/python/dlpx/virtualization/_internal/engine_version.cfg | Bumps test fixture engine_api_version to 1.11.51. |
| tools/src/test/python/dlpx/virtualization/_internal/conftest.py | Extends test fixtures with new impl attributes and manifest flags for pre-source-to-physical. |
| tools/src/main/python/dlpx/virtualization/_internal/validation_schemas/plugin_importer.yaml | Adds expected argument lists for pre_source_to_physical_impl validation. |
| tools/src/main/python/dlpx/virtualization/_internal/settings.cfg | Bumps tooling engine_api_version to 1.11.51. |
| tools/src/main/python/dlpx/virtualization/_internal/plugin_importer.py | Writes new manifest capability flags based on decorator implementation presence. |
| tools/pyproject.toml | Bumps dvp-tools to 5.2.0 and updates sibling pins. |
| platform/src/test/python/dlpx/virtualization/test_plugin.py | Adds tests covering the new internal pre-source-to-physical dispatch methods. |
| platform/src/main/python/dlpx/virtualization/platform/operation.py | Introduces new Operation enum entries for linked/virtual pre-source-to-physical. |
| platform/src/main/python/dlpx/virtualization/platform/_virtual.py | Adds virtual.pre_source_to_physical() decorator and _internal_virtual_pre_source_to_physical wrapper. |
| platform/src/main/python/dlpx/virtualization/platform/_linked.py | Adds linked.pre_source_to_physical() decorator and direct/staged internal wrapper methods. |
| platform/pyproject.toml | Bumps dvp-platform to 5.2.0 and updates dvp-api/sibling pins. |
| libs/pyproject.toml | Bumps dvp-libs to 5.2.0 and updates dvp-api/sibling pins. |
| dvp/pyproject.toml | Bumps umbrella dvp package to 5.2.0 and updates sibling pins. |
| docs/mkdocs.yml | Updates rendered site title version to 5.2.0. |
| docs/docs/Release_Notes/5.2.0/5.2.0.md | Adds release notes page for v5.2.0 highlighting the new operation. |
| docs/docs/Release_Notes/.pages | Adds v5.2.0 to release notes navigation ordering. |
| docs/docs/References/Version_Compatibility.md | Adds v5.2.0 row(s) for engine and Python compatibility tables. |
| docs/docs/References/Plugin_Operations.md | Documents the new pre-source-to-physical operations and updates operation tables. |
| docs/docs/References/html/VirtualSourceToPhysical.html | Updates embedded workflow diagram HTML to include the pre-step. |
| docs/docs/References/html/LinkedSourceToPhysical.html | Updates embedded workflow diagram HTML to include the pre-step. |
| docs/docs/References/Decorators.md | Adds the new decorator(s) to the decorators reference table. |
| common/pyproject.toml | Bumps dvp-common to 5.2.0 and updates dvp-api pin. |
| .bumpversion.cfg | Updates bumpversion current_version to 5.2.0. |
Comments suppressed due to low confidence (2)
docs/docs/References/Plugin_Operations.md:793
- This staged linked-source pre-source-to-physical section links to the Virtual Source to Physical workflow; for staged/dSource exports it should reference the Linked Source to Physical workflow instead.
Executed immediately before the file-copy for a [Virtual Source to Physical](Workflows.md#virtual-source-to-physical) workflow begins, giving a plugin the chance to reject an unsuitable target before any data moves. Its post-copy counterpart is [Staged Linked Source to Physical](#staged-linked-source-to-physical).
platform/src/main/python/dlpx/virtualization/platform/_linked.py:1022
- Docstring typo: this wrapper handles a staged pre-source-to-physical request, but the Args section says “Pre Virtual to Physical”.
request (StagedPreSourceToPhysicalRequest): Pre Virtual to Physical
Request arguments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…ings and doc links
rakshandabhat
left a comment
There was a problem hiding this comment.
Changes look good!
Good to trigger Link check once.
Also, good to run some appdata basic automation as well.
(dvpdocs) sourabh.jain@APAC-Sourabh-Jain:(sourabh-vsdk)(story/1-2-version-bump-scaffold-dvp) $ linkcheck -e --skip-file linkcheck-skip.txt :8000 (dvpdocs) sourabh.jain@APAC-Sourabh-Jain:(sourabh-vsdk)(story/1-2-version-bump-scaffold-dvp) $ linkcheck -e --skip-file linkcheck-skip.txt :8000 (dvpdocs) sourabh.jain@APAC-Sourabh-Jain:(sourabh-vsdk)(story/1-2-version-bump-scaffold-dvp) $ |
Problem
dvppackage version number bumped ahead of any feature code, so that the vSDK-side version identifier is reserved before feature work lands, matching the same scaffold pattern asdvp-api. (CP-13513)engine_api_versionaccordingly, so that plugins built against this vSDK version correctly declare their engine compatibility. (CP-13518)Solution
dvpversion5.1.0→5.2.0atomically acrossdvp,dvp-common,dvp-libs,dvp-platform,dvp-tools.pre_source_to_physical()decorator toVirtualOperations/LinkedOperations(mirroringsource_to_physical()), wiredhasVirtualPreSourceToPhysical/hasLinkedPreSourceToPhysicalmanifest flags throughplugin_importer.py/plugin_importer.yaml, and bumpedsettings.cfg'sengine_api_versionto1.11.51._internal_*_pre_source_to_physicalRPC-dispatch wrapper methods and 3 new tests intest_plugin.pymirroring the existingsource_to_physicaltests.Decorators.md,Plugin_Operations.md(3 new sections: virtual, direct-linked, staged-linked),Version_Compatibility.md, both workflow diagrams, and added aRelease_Notes/5.2.0page.Automation
Testing
common(37),libs(56),platform(287),tools(386 passed, 1 skipped),dvp(1).flake8clean across all packages (max-line-length 88).mkdocs build --cleansucceeds; new decorator content and both updated diagrams verified to render correctly in the built site.dvp init, applied bothpre_source_to_physical()decorators, built viadvp build --dev— BUILD SUCCESSFUL, and the generated manifest correctly setshasLinkedPreSourceToPhysical/hasVirtualPreSourceToPhysicaltotruefor the implemented decorators only.