Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PackageDeploymentManager/PackageRuntimeManager v0 (experimental) #3820

Merged
merged 46 commits into from
Sep 5, 2023

Conversation

DrusTheAxe
Copy link
Member

@DrusTheAxe DrusTheAxe commented Aug 26, 2023

PackageDeploymentManager is an evolved and enhanced form of core Windows deployment APIs (e.g. Windows.Management.Deployment.PackageManager). These new APIs will provide much of Windows' functionality with enhancements and improved ease-of-use.

PackageRuntimeManager provides a complementary set of APIs for runtime access. This is particularly important given how a PackageSet can be an abstraction of multiple packages. PackageRuntimeManager makes it easy to use sets of packages via Dynamic Dependencies.

Much of this functionality is possible today with existing APIs, but with more effort or complexity on the developers part.

NOTE: This is an early 'v0' implementation for experimentation purposes to unblock other early development. More functionality and refinements are coming RSN. A full API spec detailing the API surface and behavior will be forthcoming in a future PR (and of course subsequent code changes per outcome of the review. This code is experimental until then).

The API lives under dev\PackageManager\API, and the associated tests under test\PackageManager\API. All tests pass.

This PR also updates the repository to TAEF 10.82.230714001 and C++/WinRT 2.0.230706.1.

TODO:

  • Implement PackageRuntimeManager

Future PRs will...

  • Change EnsurePackageSetIsReadyAsync() to use PackageDeploymentManager.AddPackageByUriAsync() instead of its copy of driving PackageManager.AddPackageAsync()
  • Implement PackageDeploymentManager.AddPackageAsync()
  • Implement PackageDeploymentManager.AddPackageSetAsync()
  • Implement Remove*()
  • Implement PackageSetManager for packageset definition persistence/lookup
  • Implement PackageSetById()
  • Improve progress reporting of *Async()
  • Implement DeploymentProcessingModel.Parallel support
  • Implement DeploymentPriority support
  • Implement PackageVolume.Status()
  • Implement PackageVolume.FixMe() (and rename to more official name)
  • Implement PackageVolumeManager.FindPackageVolumeByName() via FrameworkUdk
  • Replace FindPackageOptions placeholder with actual query (Find*()/Get*()/Exists*()) design
  • Telemetry
  • API spec for formalization of the APIs

… baked in. Fixed up the project and added to the solution
@DrusTheAxe DrusTheAxe added the area-Deployment Issues related to packaging, installation, runtime (e.g., SelfContained, Unpackaged) label Aug 26, 2023
@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe
Copy link
Member Author

Build failed due to transient infrastructure error. Trying again

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

Copy link

@sreading-MSFT sreading-MSFT left a comment

Choose a reason for hiding this comment

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

:shipit:

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

@DrusTheAxe DrusTheAxe merged commit 874d66a into develop Sep 5, 2023
@DrusTheAxe DrusTheAxe deleted the user/drustheaxe/pkgmgr branch September 5, 2023 00:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Deployment Issues related to packaging, installation, runtime (e.g., SelfContained, Unpackaged)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants