Appearance
Publishing lifecycle and corresponding states of a mini-program
The state machine for the mini-program publishing lifecycle is as following:
Request for Creation
- CreationPending: The initial state when requesting to create a new mini-program
- CreationCancelled: The creation request has been withdrawn by the developer
- CreationRejected: The creation request has been denied by the platform
Request for Publishing
- CodeUnavailable: Development is in progress, but no code package has been uploaded yet (formerly "Unsubmitted")
- CodeAvailable: A code package is available, but not yet submitted for publishing (formerly "Submitted")
- PublishingPending: A request to publish has been submitted and is under review
- PublishingCancelled: The publishing request has been withdrawn by the developer
- PublishingRejected: The publishing request has been denied by the platform
ReadyToPublish
- This state indicates that the publishing request has been approved, but the developer has not yet made it live
GrayscaleRelease
- Represents a limited release to a subset of users for testing and feedback
- Can progress to ProductionRelease if successful
- Can revert to CodeAvailable if issues are found (rollback)
ProductionRelease
- Represents the phase where the mini-program is being rolled out to all users
- Leads to the Published state when the rollout is complete
Published
- The mini-program is live and available to users
Not Available
- UnpublishedByDev: The developer has taken the mini-program offline
- SuspendedByOp: The platform operator has taken the mini-program offline
This state machine provides a detailed representation of the mini-program publishing lifecycle. It shows the various stages a mini-program goes through from initial creation request to publication, as well as potential issues or changes in availability.
Key points in this lifecycle:
- The process starts with a request for creation, which must be approved before moving to the publishing phase.
- In the publishing phase, developers can upload code and request publication, which then goes through an approval process.
- Even after approval (Ready state), developers control when to actually publish the mini-program.
- Once published, a mini-program can be taken offline either by the developer (Unpublished) or the platform operator (Suspended).
- From these "Not Available" states, the mini-program can re-enter the publishing process to become available again.
This model includes a more sophisticated release process, reflecting common practices in software deployment:
- After a mini-program is ReadyToPublish, it first enters a CanaryRelease state. This allows for controlled testing with a limited user base.
- If the CanaryRelease is successful, the mini-program moves to ProductionRelease, where it's gradually made available to all users.
- If issues are found during the CanaryRelease, there's an option to rollback to the CodeAvailable state for fixes.
- Only after successfully passing through ProductionRelease does the mini-program reach the fully Published state.
- The options for unpublishing (by developer) or suspending (by operator) remain unchanged.
This more comprehensive model accurately represents the complete lifecycle of a mini-program within a SuperApp ecosystem, including the gradual release process that's crucial for maintaining quality and managing risks in software deployment. It provides a clear visualization of how a mini-program progresses from initial creation through various stages of review, testing, and controlled release before becoming fully available to all users, showing the various checks, balances, and controls in place to ensure quality and security.