Add Fission post-build package, release, and Partner Center MSIX lifecycle#27
Merged
Conversation
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.
Summary
This PR adds Fission's first post-build packaging, publishing, and release-management lifecycle. This is not a small hardening pass over an existing release system: it introduces the CLI command surface, project/RFC model, artifact manifests, credential vault, package readiness, release metadata workflows, release-content automation, store/provider distribution, GitHub/static/cloud/file publishing support, and Microsoft Store MSIX submission support.
The goal is to make Fission cover the lifecycle after
build: produce platform artifacts, validate release readiness, prepare store content, upload/distribute artifacts, manage provider metadata, track receipts, and give CI/automation stable JSON outputs.New CLI Surface
fission packagefor producing package artifacts andartifact-manifest.jsonoutputs.fission distributewithsetup,publish,status,promote, androllbackactions where providers support them.fission readiness package|distribute|releasefor focused preflight checks before packaging or uploading.release-configfor metadata editing/import/diff/validate/push.release-contentfor screenshot/content capture, render, and validation.authfor encrypted provider credential setup/status/import/logout/rotate/audit.signingfor platform signing status/import/sync.betafor beta groups/testers/distribution workflows.reviewsfor store review listing/reply workflows.release-workflowfor named workflow recipes.Packaging and Artifact Manifests
.run..appand.pkg..exe,.msi, and.msixpaths..apkand.aabpaths..ipapath.artifact-manifest.jsongeneration with file metadata, hashes, MIME types, target, format, profile, root directory, project identity, validation state, and secondary release artifacts.Distribution Providers
msstore publish) using the package file in the artifact manifest, supports public submissions, package flights, rollout percentage, draft/no-commit behavior, explicit commit intent, optionalmsstore reconfigure, andmsstorestatus checks.target/fission/distribution.Microsoft Store Partner Center / MSIX
msstore publish) instead of the MSI/EXE durable-package-URL API path.--track public,--track privateviadistribution.microsoft_store.flight_id, or--track <flight-id>for an explicit Partner Center package flight.distribution.microsoft_store.submit = trueor--track public --yes.distribution.microsoft_store.package_rollout_percentage.msstoreconfiguration, or optionaldistribution.microsoft_store.msstore_reconfigure = trueusing Partner Center tenant/client/seller credentials..msix/.msixuploadartifacts requiremsstoreand do not incorrectly require the MSI/EXEpackage_url.msstore submission statusandmsstore flights submission status.GitHub Releases
github-releasesas a distinct provider fromgithub-pages.artifact-manifest.json, including installers, APK/AAB/IPA packages, archives, debug symbols, crash diagnostics, zipped static-site outputs, and custom secondary artifacts.artifact-manifest.jsonitself so consumers and CI can verify hashes, sizes, MIME types, target, format, profile, and validation state.gh) rather than direct REST calls so Fission works with an existinggh auth loginsession.--clobber, draft/prerelease/latest metadata, release notes files, and receipts.Release Metadata, Store Content, and Reviews
fission.tomlremains the root but long-form notes/review/privacy/listing content can live in referenced files.Release Content
release-content validateandrelease-content renderfor store screenshots, preview videos, feature graphics, trailers, review attachments, and provider-specific asset requirements.Credentials and Auth
fission auth login/status/logout/import/rotate/audit/setupworkflows.fission.toml; provider credentials come from environment variables, CI secrets, the user's authenticated provider tooling, or the Fission vault.ghauthentication.msstoresession or explicitly runmsstore reconfigurefrom configured Partner Center credentials when requested.RFC and Documentation
docs/post-build-lifecycle.mdas the self-contained RFC for package, release, distribution, auth, static hosting, store lifecycle, release content, signing, beta, reviews, provider receipts, readiness checks, and CI workflow expectations.msstoreusage, package flights, no-commit draft behavior, explicit submit behavior, rollout percentage, and config fields.docs/rfc-developer-tooling.mdfor the mature developer tooling ecosystem around Fission.Verification
cargo test -p fission-cliCurrent result: 47 tests passing.