andreagrandi / andreagrandi/draftomen

Build and validate the MSIX package in GitHub Actions

Đang mở
#327 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
draftomen enhancement size: M
Ngôn ngữ chính
Python
Star
0
Fork
0
Merge trung bình
1 giờ 23 phút
Pull request đã merge (30 ngày)
181

Mô tả

## Problem

The hosted Windows build currently produces one unsigned Nuitka executable. The repository has no MSIX manifest, Store asset set, package layout, Store identity integration, four-part version mapping, installed-package test, or Store submission artifact.

## Proposed change

Add an explicit MSIX package definition for the existing frozen PySide desktop application. Stage the Nuitka executable and required resources, generate the `.msix` with Windows SDK tooling on `windows-latest`, then assemble and validate the recommended `.msixupload` archive separately. Use a disposable test certificate only for CI installation; production distribution relies on Microsoft Store signing. Validate the package structure and exercise install, deterministic launch, and removal on hosted Windows infrastructure.

## Acceptance Criteria

- [ ] AC1: The manifest uses the Partner Center identity verbatim, targets x64 `Windows.Desktop`, launches the existing executable as a packaged classic desktop app, and declares only the required full-trust capability.
- [ ] AC2: The package contains the executable, runtime resources, and every required MSIX visual asset, and its display metadata matches Draft Omen.
- [ ] AC3: The project version maps deterministically to a valid, monotonically increasing four-part MSIX version and duplicate or regressing versions fail before packaging.
- [ ] AC4: A GitHub-hosted Windows job builds the frozen app, uses pinned or runner-provided Windows SDK tooling to produce a `.msix`, and separately creates a `.msixupload` archive containing that package and any generated symbol payload.
- [ ] AC5: Focused tests and package validation fail on an invalid identity, executable path, architecture, capability, asset set, or version.
- [ ] AC6: CI test-signs a disposable copy, installs it for the runner user, launches the existing deterministic mock smoke workflow from the installed package, and removes it successfully.
- [ ] AC7: No production certificate, PFX, or signing secret is required or retained; the validated `.msixupload` and checksum of its contained `.msix` are uploaded as CI artifacts for the publication ticket.

## Dependencies

Blocked by **Reserve the Microsoft Store product and package identity**.

## Implementation classification

- **Estimated size:** M
- **Orchestration risk:** High
- **Reason:** The change adds a new full-trust package lifecycle across manifest, assets, versioning, Windows SDK tooling, CI installation, and smoke verification.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.