Skip to content

feat(publish): use shared Scroll lifecycle - #90

Open
MarcStdt wants to merge 5 commits into
masterfrom
codex/team-scroll-lifecycle
Open

MarcStdt wants to merge 5 commits into
masterfrom
codex/team-scroll-lifecycle

Conversation

@MarcStdt

@MarcStdt MarcStdt commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Scope

One cohesive publisher/UI PR; not an artificial stack.

  • Replace the obsolete staging/import publisher with direct owner-scoped registry pushes through the existing explicit scripts/push.sh catalog.
  • Public publication authenticates as the owner, previews the repository snapshot, verifies pushed tags and submits unchanged expectedSnapshot through the current Core API.
  • Keep private previews, explicit review/readiness gates, protected environments, deterministic inputs, bounded catalog concurrency and failure handling.
  • Retain inherited presentation and UI staging.
  • Start the deployment file service before config-editor reads/writes, sharing initialization and allowing retries after startup failures.

The former import helper and tests are removed. Earlier import-based acceptance results do not validate this replacement publisher.

Review order

scripts/publish-owned and tests → scripts/push.sh and workflow guards → UI file-service gateway and tests → docs/shared-lifecycle-publication.md.

Dependency blocker — not merge/release ready

The UI imports ensureFileService from Druid UI #18. That API is not in the currently published package. The lockfile contains public npm versions (no localhost registry or 1000.* local versions), but a clean public-package build remains blocked until the new Druid UI package is released and this consumer lockfile is updated.

No npm release was authorized or performed. Local UI tests/build used the adjacent unpublished package and do not prove the public dependency build passes.

Fresh local verification — 2026-10-22

  • Publisher/staging/workflow Go suites passed with -race -count=1.
  • Catalog parallel-publication regression passed: 18 categories, 127 artifacts.
  • UI: 109 tests, type-check and WASM build passed against local unpublished Druid UI dependencies.
  • Diff checks passed. Generated ui/dist/app.wasm is deliberately not included in this source cleanup.

No fresh live authenticated publisher/Harbor or browser/Kubernetes E2E run was performed.

Rollout

Depends on the monorepo stack, runtime stack and Druid UI package release. Configure separate preview/release identities, protected environments and credentials before enabling SCROLL_LIFECYCLE_READY. Keep gates fail-closed; workflow YAML does not provision protections.

No merge or production publication was performed.

Clean-install CI follow-up

The first run exposed missing optional esbuild peer entries in the lockfile regenerated by the newer local npm resolver. Commit 07c12ac regenerates those entries with npm 10; isolated npm ci --ignore-scripts --dry-run now passes. This fixes installation, not the separate unpublished Druid UI API dependency above.

Latest CI confirms installation now succeeds; verification stops at the documented dependency: TS2305: @druid-ui/plattform has no exported member ensureFileService. Failing dependency check. Release Druid UI #18 and update this lockfile before merge; do not bypass the check.

Use dedicated account auth and private project robots for staging.

Import immutable releases and publish through the customer lifecycle;

keep private PR previews in separate repositories. Leave workflows

unchanged pending release-environment and credential approval.

Verify real local gateway/Core/Harbor retries with deterministic CLI

builds and clean up only identity-verified disposable fixtures.
Route releases and private previews through verified lifecycle publication with immutable revisions and fail-closed provisioning guards. Dedicated credentials and protected environments remain rollout prerequisites.

Recover the September 29 local draft and its offline regression coverage into the durable workspace. No remote publication performed.
@MarcStdt
MarcStdt marked this pull request as ready for review October 4, 2026 16:21
@druid-infra

Copy link
Copy Markdown
Collaborator
Error: This repo is not allowlisted for Atlantis.

Requires the platform command-controls package release before merge. Keep local registry versions out of the public lockfile.
Regenerate with the npm 10 resolver used by CI. The newer local npm resolver omitted optional esbuild peer entries required by npm ci.

This branch had an error being deployed

1 failed (outdated) deployment
scroll-preview — ce15065a Deployed Oct 4, 2026 by MarcStdt via build-deploy / publish #251
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants