Public release readiness¶
Community alpha milestone A (2026-10-17)¶
The current release scope is the GCP community alpha. Require
make verify-community, verified
installation and build inputs, one successful reference-recipe run with a
second deployment preserving data, and a scoped destruction inventory. A
mock, dry run, or historical certification is not that product run.
The full architecture matrix, AWS extraction, HA, advanced restore, console, and third-party integrations do not block this alpha. Record their actual status and known defects. Keep the artifact trust, secret protection, license, and resource ownership checks. Tags and public publication require explicit maintainer approval. The dated gate boards below retain their historical results; their pending matrix rows are not additional milestone A gates.
No public tag may be created until maintainers have documented:
- trademark and package-name clearance for MageLift;
- availability and ownership of GitHub, Packagist, GHCR, and documentation names;
- complete dependency license and NOTICE review;
- signed release artifacts, checksums, SBOM, provenance, and vulnerability gates;
- green required CI and acceptance checks for the release scope;
- accurate non-affiliation language and descriptive trademark usage.
OpenSearch gate (re-scoped 2026-07-22)¶
Managed OpenSearch remains certified intent with two Magento contracts: provisioned domains use HTTPS:443 in-VPC with HTTP auth off and no sidecar; AOSS uses a local SigV4 proxy because Magento cannot sign. The public-tag gate no longer requires a paid MageLift OpenSearch acceptance account. It closes with three substitutes:
- MageLift offline wiring: Pulumi/unit mocks for Magento search env (
TestRuntimeWiresMagentoOpenSearchEnvFromEndpoint,TestRuntimeWiresAOSSThroughSigningProxy); Magento search env absent when the endpoint is empty - Free-tier AWS matrix: Applied
searchMode: disabled+ queue cells; preview-only OpenSearch serverless plan (2026-07-21). Re-proven create-once +db/ecs-rabbitmq/ecs-artemis+ kill/resume + dual assert_clean (2026-07-29). Evidence: committed samples under evidence/; local re-runs under gitignored.magelift/ - External ops precedent: Prior Terraform Magento+OpenSearch work (ElasticSuite, no SigV4). See sources/prior-terraform-opensearch.md; private repos not named
That prior work proves Magento + AWS OpenSearch ops, not MageLift's live search data plane. Do not claim "live Magento search on MageLift acceptance is green" until a paid pass.
Post-tag / paid-acceptance checklist (deferred)¶
When credits allow, prove on a real MageLift stack:
- Index creation and catalog indexing
- Storefront / Magento search queries
- Reconnect after task recycle
- Least-privilege task role (no wildcards beyond documented actions)
Floci does not substitute this data-plane checklist.
Real AWS acceptance (non-OpenSearch cells) remains a local maintainer activity.
Use Local AWS acceptance with the preview preset, destroy on
exit, and free credits carefully. There is no GitHub Actions cloud spend matrix;
Floci AWS, floci-gcp, and mocks remain the default automated verification. They do not certify Autopilot, Armor, managed TLS, or Magento Cloud SQL PITR.
Expanded RC1 scope, 2026-08-06¶
The expanded RC1 work deliberately separates a certified target from the much larger architecture catalog. A live pass on one Magento 2.4.9 shape does not certify every release, managed service, edge provider, or observability vendor. The current evidence index records the exact tested shape and the remaining gates.
RC1 verification and cleanup snapshot, 2026-08-07¶
The final local verification completed with the Go toolchain constrained to one
build or test process at a time: go test ./... passed 1,126 tests in 102
packages. make php-test passed Composer validation and audit, PHP static
analysis, Psalm, and 119 PHPUnit tests with 274 assertions. The acceptance shell
shape suite, generated-file checks, strict documentation build, and OpenSpec
validation also passed. The knowledge bundle conforms with zero errors and one
pre-existing broken-link warning.
The direct provider audit found no live MageLift runtime resources in the
audited AWS, GCP, Scaleway, or OVH inventories, and no marked disposable Fastly
or Cloudflare edge objects. The follow-up audit also removed two exact AWS
acceptance hosted zones, four stale Cloudflare delegation records, sixteen
orphaned RDS error log groups, and scheduled four AWS acceptance secrets for
deletion with a seven-day recovery window. AWS tagging tombstones are reported
separately from owning-service inventories.
The audit deliberately preserves the unprefixed GCP magelift-composer-auth
secret because ownership is unproven, records the AWS KMS key's mandatory
deletion date of 2026-08-14, and records the empty OVH project that still needs
OVH's email and password confirmation flow for project termination. Scaleway's
empty MageLift project is the account default, so its API refuses project
deletion; no billable resource remains in it.
The current GCP evidence covers three tested 2.4.9 runtime shapes: preview with
12 live cells, Standard with 13 live cells, and HA Standard with 13 application
cells plus a dedicated 14-cell pod-loss run, all using Cloud SQL MySQL 8.4. The current application records use
Memorystore VALKEY_9_0; the older 2026-08-07 HA record using Valkey 8.0 is
retained as historical evidence. The corrected adapter selects VALKEY_9_0
(GA), with explicit VALKEY_9_1 (Preview) support, and the 2026-08-12
infrastructure-only probe proved the VALKEY_9_0 API mapping, ACTIVE state,
and provider-reported multi-zone metadata with independent cleanup. The
current HA run closes one bounded application cell, while the broader
architecture, failure, recovery, and matrix evidence remain open. The 2.4.6
MySQL topology passes stay in the evidence pack. That line is no longer
supported, because Adobe lists only PHP 8.2 for it. Current proof is the
evidence pack.
The release workflows use Release Please for Conventional Commit versioning and
GoReleaser for reproducible multi-platform archives, SHA-256 checksums, SBOMs, and
Homebrew cask publication. The release job verifies the keyless Sigstore bundle for
the checksum manifest before publishing its GitHub artifact attestation. The
container-image workflow publishes the Debian PHP and
FrankenPHP classic matrices to GHCR, attaches SBOM and SLSA provenance, and signs
and verifies each immutable digest with keyless Cosign. Configure HOMEBREW_TAP_GITHUB_TOKEN
only in the release environment; it is not a repository secret used by pull
requests. Configure RELEASE_PLEASE_TOKEN as a narrowly scoped GitHub App or
fine-grained token so release tags can trigger the artifact workflow; the default
GITHUB_TOKEN does not start a second workflow.
If clearance fails, rename every identifier before the first public tag.
Gate board (2026-07-30, RELEASE-05 / D-05)¶
Every public-tag gate is Closed, Deferred, or Offline closed with a named reason. No undetermined rows.
| Gate | Status | Evidence |
| --- | Closed / Deferred / Pending | --- |
| Trademark / package-name clearance | Closed | MageLift / magelift.dev |
| Contract freeze (v1.0.0-rc.1) | Closed | versioning.md; CHANGELOG [Unreleased] baseline |
| OpenSearch public-tag substitute | Closed | Offline SigV4 wiring + free-tier matrix + prior Terraform ops (repos not named) |
| OpenSearch live SigV4 data-plane | Deferred | Post-tag / paid acceptance checklist above |
| Queue matrix (ecs-rabbitmq + experimental Artemis) | Closed | AWS preview db / ecs-rabbitmq / ecs-artemis PASS 2026-08-06 with direct cleanup; evidence |
| Measured time-to-preview | Closed | ~631s / 10m31s eu-north-1 |
| /health on MageLift runtime images | Closed | nginx + FrankenPHP short-circuit; curl in image; scripts/image-health-test.sh; Varnish pass-through |
| GCP Magento deploy Ops | Closed for tested runtime shapes | 2.4.9 preview, Standard, and current HA pass their bounded live stages with the current Valkey 9 cache intersection, but resilience and broader architecture evidence remain experimental. The 2.4.6-p15 runs stay in the evidence pack; that line is no longer supported |
| GCP certify (GCP-06 / multi-cloud claim) | Autopilot certified for evidenced cells; Standard experimental | Certified Magento origins are AWS ECS Fargate and GCP GKE Autopilot. GKE Standard 2.4.9 Valkey 9.0 and HA known-content (pod/node/backing-VM zone-loss) are experimental. Physical zone outage, regional DR, edge traffic, and the rest of the release matrix stay gated; evidence; ADR 0002 |
| GCP Magento 2.4.6-p15 standard live cell | Historical; line retired | 13/13 stages PASS with pinned OpenSearch 3/RabbitMQ 4.3, full database dump, and independent cleanup, but Cloud SQL MySQL is unsupported by the Adobe 2.4.6-p15 row and the line is below the PHP 8.3 floor; evidence |
| GCP Magento 2.4.6-p15 HA Standard live cell | Historical; line retired | 13/13 stages PASS with three-zone OpenSearch, two-node RabbitMQ, full database dump, and independent cleanup, but Cloud SQL MySQL is unsupported by the Adobe 2.4.6-p15 row and the line is below the PHP 8.3 floor; evidence |
| GCP Magento 2.4.9 standard live cell | Experimental outside this exact bounded cell | 13/13 cells PASS with Cloud SQL MYSQL_8_4, current OpenSearch 3/RabbitMQ 4.3, the real B2B dump, explicit VALKEY_9_0, and independent cleanup. The 2026-08-15 run repeats the earlier 20260813an boundary; public HTTP/TLS, HA, DR, and broader architecture claims remain open; evidence |
| GCP Magento 2.4.9 HA Standard live cell | Experimental | gcha36 catalog PASS including Magento seed-probe after pod, node, and backing-VM zone-loss. Not a certified target. Physical zone outage, regional DR, fencing/failback, and the broader matrix stay open. |
| NOTICE + license review | Closed | NOTICE, LICENSE, make license-check (recorded below) |
| First ship path | Closed | GitHub Release archives first; Homebrew cask publishes at the tag with the cask-verify pipeline job as the tested macOS install path; Windows = archive until winget/Scoop owned |
| Packaging smoke | Closed | 2026-09-15 - make release-smoke exit 0 (serial single-target host build, both binaries); 2026-09-13 same |
| Shared Kubernetes day-2 | Offline closed | Unit/fake-clientset: *kube.Observe + *kube.Steps type-identity across gcp/eksops/ovh/scaleway; AES256 DIY state unit proof. Not live GKE/OVH/SCW Magento acceptance beyond the GCP certified create-once path. |
| Cloudflare DNS cutover (MIGRATE-04) | Closed | Live cutover:dns PASS + --cleanup on an operator-owned preview host (2026-08-02); script + Zone.DNS Edit via cf CLI. Preview-host rehearsal, not a production storefront cutover. See evidence. |
| Hosted CI / GitHub Actions | Closed | Public repo; hosted workflows run on main. Shell/docs/Go path filters green after org move (see Actions). Local Act remains available for offline iteration. |
| Brownfield attach (ATTACH-01..04) | Closed | Existing|Adopt|Refuse|Detach covered offline + live AWS VPC+RDS adopt. Docs: brownfield-attach.md |
| Free-tier AWS VPC+RDS adopt confirm | Closed | Live PASS 2026-08-02. Preview ADOPT VPC+RDS, apply +74, destroy -74, describe-after-destroy VPC/RDS intact, then external cleanup. Evidence: aws-brownfield-adopt |
| GCP preview, standard, and high-availability Magento 2.4.9 | Experimental beyond the Autopilot certified preview cell | Autopilot preview is certified (gcap28). Standard and HA remain experimental (20260815, gcha36). Physical zone outage, recovery, edge, and the broader architecture matrix remain gates; VALKEY_9_1 is Preview-only |
| Full Magento 2.4.7 through 2.4.9 architecture matrix | Pending | Compatibility catalog, cold baselines, warm groups, unsupported intersections, and blocked providers stay open. 2.4.6 is outside the PHP 8.3 floor. Current Magento proofs are in the evidence pack |
| OVHcloud / Scaleway full Magento certification | Pending | Scaleway has infrastructure/runtime smoke evidence; OVH MKS networking remains an adapter issue |
| Fastly cross-cloud edge adapter | Implemented / Experimental | magelift edge plan/apply/destroy is wired to the current Domain Management CLI, authenticated Fastly profiles, idempotent domains, purge policy, and exact marker cleanup. Live adapter lifecycle cleanup and routed-domain smoke pass; production edge certification remains deferred |
| Third-party observability provisioning | Deferred / Experimental | Datadog, New Relic, and OTLP intents are accepted by the provider-neutral boundary. The 2026-08-09 New Relic CLI marker/NRQL probe proves bounded data-plane delivery, the 2026-08-15 GKE Autopilot and GKE Standard Contrib cells prove two live collector paths with separate ingest/query credentials, logs/metrics/traces delivery, and direct cleanup, and the AWS ECS Contrib exercise proves sidecar rollout/configuration and eventual three-signal delivery. The AWS finite verifier window was exceeded before the trace became queryable, so broader collector delivery, credential rotation, retention/alerting, native composition, and provider-wide evidence remain open |
Time-to-preview¶
elapsed_seconds: 631
date: 2026-07-21T19:51Z (Pulumi create Duration 10m31s)
account: free-tier <redacted> / eu-north-1
shape: preview + rds-mysql + fck-nat + searchMode=disabled + queueMode=db (then ecs-rabbitmq / ecs-artemis on same stack)
Thorough free-tier matrix (same account, 2026-07-21): applied db / ecs-rabbitmq /
ecs-artemis with broker image verify; day-2 CLI mostly green (runtime Magento ops
were blocked by acceptance /health 404; fixed in MageLift runtime images);
preview-only nat-gateway, OpenSearch serverless, Aurora Serverless v2; guards
confirmed for OpenSearch provisioned + amazon-mq×preview (2-AZ vs 3-AZ). Committed
samples: aws matrix,
gcp matrix. Local re-runs write under
gitignored .magelift/.
License checklist (pre-tag)¶
- Root
NOTICEandLICENSEpresent (Apache-2.0 + Adobe non-affiliation). make license-check(or CIgo-licenses) clean for disallowed types.- GoReleaser archives retain LICENSE + NOTICE (verified by
scripts/release-smoke-local.sh).
Ship GitHub Release archives first after clearance. The cask install path is
tested on macOS by the release pipeline's cask-verify job (tap plus
install plus magelift version on macos-latest); keep that job green
before calling the cask done. Treat Windows as archive download until a
maintainer owns winget/Scoop if demand appears.
Local packaging smoke¶
Run ./scripts/release-smoke-local.sh or make release-smoke for a host-only
check (snapshot release on the dialproof config, signing and SBOM skipped).
The script sets GOMEMLIMIT to 75% of available RAM and does not pin
GOMAXPROCS or goreleaser --parallelism. It asserts the CLI archive, the
provider binary, and the provider checksums entry. Do not use a full
multi-platform goreleaser release as a local smoke; that matrix belongs
on CI.
Tag sequence (module tags before the release tag)¶
Tags stay ask-first. When the release is approved:
- Prove the mechanics:
go test ./tests/distribution/ -count=1,make release-smoke,make installer-harness-testgreen. - Push module tags first:
sdk/vX.Y.Z, thenproviders/gcp/vX.Y.Z. Wait for proxy propagation and confirmGOWORK=off GOPROXY=https://proxy.golang.org GOSUMDB=sum.golang.org go list -m github.com/magelift/magelift/sdk@vX.Y.Z(and the provider path) resolve. - Push
vX.Y.Zlast. It triggersrelease.yml, which builds, signs, and publishes the CLI archives, provider binaries, bundles, and lockfiles. - Tag-then-require: bump root and provider
go.modfiles to the tagged SDK version, rungo mod tidy(it fails pre-tag by design: unpublished modules have no resolvable versions), and re-run the distribution proof against the real versions.
Packaging smoke record¶
- 2026-09-17:
make release-smokeexit 0 (snapshot release on the dialproof config; asserts CLI archive, provider binary, provider checksums entry) - 2026-09-15:
make release-smokeexit 0 (serial single-target host build; assertsmageliftplusmagelift-provider-gcpindist/) - 2026-09-13:
make release-smokeexit 0 (serial single-target host build; assertsmageliftplusmagelift-provider-gcpindist/) - 2026-07-28:
make release-smokeexit 0 (serial single-target host build, ~159s) - 2026-07-22:
goreleaser checkvalidated.goreleaser.yaml
License check record¶
- 2026-09-15:
make license-checkexit 0 - 2026-09-13:
make license-checkexit 0 make license-checkgreen on 2026-07-22 with--ignore=github.com/ovh/pulumi-ovh(Apache-2.0 at module root; recorded inNOTICE).