Skip to content

CP-13518 vSDK Decorator Implementation & Manifest Write - #691

Merged
SumoSourabh merged 3 commits into
delphix:developfrom
SumoSourabh:story/1-2-version-bump-scaffold-dvp
Aug 5, 2026
Merged

CP-13518 vSDK Decorator Implementation & Manifest Write#691
SumoSourabh merged 3 commits into
delphix:developfrom
SumoSourabh:story/1-2-version-bump-scaffold-dvp

Conversation

@SumoSourabh

@SumoSourabh SumoSourabh commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Problem

  • As a plugin author, I want the dvp package 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 as dvp-api. (CP-13513)
  • As a plugin author, I want a new vSDK decorator that writes the engine API version into the plugin manifest and bumps engine_api_version accordingly, so that plugins built against this vSDK version correctly declare their engine compatibility. (CP-13518)
  • As a plugin author, I want the vSDK's reference plugin and test fixtures updated to exercise the new decorator and manifest field, so that the reference implementation demonstrates correct usage and the test suite catches regressions in the new engine-version manifest path. (CP-13521)
  • As a plugin author, I want the vSDK's documentation updated to describe the new decorator, manifest field, and version compatibility implications, so that plugin authors know how to use the new decorator and understand engine-version compatibility requirements. (CP-13523)

Solution

  • Bumped dvp version 5.1.05.2.0 atomically across dvp, dvp-common, dvp-libs, dvp-platform, dvp-tools.
  • Added pre_source_to_physical() decorator to VirtualOperations/LinkedOperations (mirroring source_to_physical()), wired hasVirtualPreSourceToPhysical/hasLinkedPreSourceToPhysical manifest flags through plugin_importer.py/plugin_importer.yaml, and bumped settings.cfg's engine_api_version to 1.11.51.
  • Added the _internal_*_pre_source_to_physical RPC-dispatch wrapper methods and 3 new tests in test_plugin.py mirroring the existing source_to_physical tests.
  • Updated Decorators.md, Plugin_Operations.md (3 new sections: virtual, direct-linked, staged-linked), Version_Compatibility.md, both workflow diagrams, and added a Release_Notes/5.2.0 page.

Automation

Testing

  • Full test suite passes across all 5 packages: common (37), libs (56), platform (287), tools (386 passed, 1 skipped), dvp (1).
  • flake8 clean across all packages (max-line-length 88).
  • mkdocs build --clean succeeds; new decorator content and both updated diagrams verified to render correctly in the built site.
  • End-to-end plugin-author validation: scaffolded a real plugin via dvp init, applied both pre_source_to_physical() decorators, built via dvp build --devBUILD SUCCESSFUL, and the generated manifest correctly sets hasLinkedPreSourceToPhysical/hasVirtualPreSourceToPhysical to true for the implemented decorators only.
decorators --------- plugin_ops_direct_pre_s2p --------- plugin_ops_staged_pre_s2p --------- plugin_ops_virtual_pre_s2p --------- release_notes_5_2_0 --------- version_compatibility --------- workflows_linked_s2p --------- workflows_virtual_s2p

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread docs/docs/References/Plugin_Operations.md Outdated
Comment thread platform/src/main/python/dlpx/virtualization/platform/_linked.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 24 out of 26 changed files in this pull request and generated no new comments.

@rakshandabhat rakshandabhat left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good!

Good to trigger Link check once.
Also, good to run some appdata basic automation as well.

@SumoSourabh

Copy link
Copy Markdown
Contributor Author

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
Perfect. Checked 12546 links, 195 destination URLs.

(dvpdocs) sourabh.jain@APAC-Sourabh-Jain:(sourabh-vsdk)(story/1-2-version-bump-scaffold-dvp) $ linkcheck -e --skip-file linkcheck-skip.txt :8000
Perfect. Checked 12546 links, 195 destination URLs.

(dvpdocs) sourabh.jain@APAC-Sourabh-Jain:(sourabh-vsdk)(story/1-2-version-bump-scaffold-dvp) $

@vimleshmishra vimleshmishra left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@SumoSourabh
SumoSourabh merged commit e0bc770 into delphix:develop Aug 5, 2026
8 checks passed
@SumoSourabh
SumoSourabh deleted the story/1-2-version-bump-scaffold-dvp branch August 5, 2026 09:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants