Add durable queued Windows packaging - #6338
Draft
Judah Gabriel Himango (JudahGabriel) wants to merge 2 commits into
Draft
Judah Gabriel Himango (JudahGabriel) wants to merge 2 commits into
Judah Gabriel Himango (JudahGabriel) wants to merge 2 commits into
Conversation
Add opt-in enqueue, polling and download APIs backed by Azure Queue Storage, Cosmos job records and private Blob artifacts. Run bounded workers with renewable ownership, crash recovery, retries and cancellable native builds while preserving synchronous packaging. Document deployment prerequisites and cover lifecycle, storage and compatibility behavior. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8bee4436-4da8-4f4b-9fed-48bfcc060cda
Contributor
|
Thanks Judah Gabriel Himango (@JudahGabriel) for opening a Pull Request! The reviewers will test the PR and highlight if there is any conflict or changes required. If the PR is approved we will proceed to merge the pull request 🙌 |
Separate members with blank lines and expand XML summaries and remarks to multiline blocks throughout the new Windows packaging code and tests. Preserve code and documentation content. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8bee4436-4da8-4f4b-9fed-48bfcc060cda
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.
Related issue: N/A.
PR Type
Describe the current behavior?
Windows packaging holds HTTP requests open while native tools build packages. Increased partner traffic needs durable acceptance, crash recovery, and bounded background processing without breaking existing PWABuilder clients.
Describe the new behavior?
Adds an opt-in asynchronous API alongside the unchanged
/msix/generateZipendpoint:POST /msix/enqueuePackageJobdurably accepts packaging options and returns a job ID and polling location.GET /msix/getPackageJobexposes safe job status;GET /msix/downloadPackageZipstreams the completed ZIP.Existing platform/correlation headers remain supported and are persisted with queued jobs. The README documents resource isolation, managed-identity permissions, retention, configuration, and scaling; CI now runs the Windows test project.
PR Checklist
npm run testand ensure that all tests pass. N/A for this C# service; the Release .NET suite passed all 87 tests.Additional Information
Disabled by default. Provision separate production/nonproduction queues, private Blob storage, a dedicated Cosmos job container, and managed-identity permissions before setting
WindowsPackageJobs.Enabled=true. No live Azure resources were changed.Delivery is at-least-once: duplicate delivery is handled per job, but each POST creates a new job. Job IDs are bearer capabilities; caller headers are attribution, not authentication. Partner authentication and quotas belong at the gateway. Legacy synchronous calls do not share the worker concurrency limit.
Coverage includes crash/retry recovery, renewal/completion races, SDK storage contracts, HTTP routes, cancellation, and legacy compatibility. Live Azure and actual Windows SDK end-to-end packaging have not been exercised.