4.2 KiB

Release construction and publication

This procedure publishes Conductor v1.1.0. The canonical project schema remains 0.1.0. SLICE11 was authorized by the product owner on 2026-09-13, including release publication. Fresh-VM setup changes and migration of the existing customer VM remain SLICE12 and SLICE13.

Identity and build

Use one reviewed, clean source commit. Never build a release from an unidentified working tree. Each production image carries OCI version, revision, creation time, source, title and description labels.

Supported release architecture: Linux/AMD64. Immutable image tags are vX.Y.Z and git-<12-character-sha>. Controlled installation uses a version or verified digest, never latest.

From the release checkout:

scripts/release-image.sh --version v1.1.0 --platforms linux/amd64
CONDUCTOR_TEST_IMAGE=gitea.skeletonworks.online/vwiebe/conductor:v1.1.0 npm run test:production

Run the source suites in Testing, installed-package browser acceptance, and the actual Social Scheduler package-installer container test. Preserve evidence outside the image/source archive. Confirm startup rejects missing keys, the runtime is non-root with a read-only root filesystem, and backup/restore recovers both SQLite and installed package files.

Single publication path

The Gitea image workflow is opt-in through workflow_dispatch. A Git tag does not launch a competing image build. Never run that workflow for a tag already published manually.

For the controlled manual path used by SLICE11, build and test the image first, then push those same local version and Git-SHA tags. This avoids rebuilding the image after validation. Authenticate the publisher through password/token stdin in a private temporary Docker configuration; never put credentials in command arguments, source or release notes.

Before publication, verify the version's source tag, release entry and registry tag are absent. Existing immutable identities must not be overwritten. Confirm the remote source branch still matches the expected parent before a fast-forward push.

  1. Commit the reviewed source snapshot, including package version 1.1.0, documentation, default icons and the generic application host. Preserve unrelated user working-tree/index state.
  2. Build and verify that exact commit. Record the local OCI version/revision and architecture.
  3. Create the annotated v1.1.0 source tag, then push the commit and tag without force.
  4. Push the tested v1.1.0 image and matching git- image tag once.
  5. Download the tagged source archive without authentication. Pull the published image using an empty Docker credential configuration.
  6. Record the source archive SHA256, registry index/AMD64 manifest digests and OCI revision. Run the published image lifecycle checks.
  7. Create the human-facing Gitea Release entry. Include commit, source archive checksum, image references/digests, supported architecture, test results, compatibility/migration notes and known limitations.
  8. Attach the compatible Social Scheduler 0.5.0 portable kit and checksums. Verify downloads against the local artifacts.
  9. Read back the public release entry/assets and record the final evidence in SLICE11.md.

Registry credentials are for publication only. If anonymous consumption fails, resolve publication before marking SLICE11 complete. Do not silently change registries or claim success from a local image.

Compatibility and limits

  • Fresh Conductor has no installed apps; Social Scheduler is an optional independently installed package.
  • Social Scheduler 0.5.0 requires host API 1 (Conductor 1.1.0 or compatible). Its installer stops before customer changes when the host is incompatible.
  • Preserve the Conductor data volume and its secret/session keys. Preserve Node-RED data and PostgreSQL independently. No social credentials or queued posts belong in the release artifacts.
  • The current combined Conductor/Social Scheduler 0.4.0 VM needs the SLICE13 migration. Do not run the older setup-conductor.sh as an upgrade.
  • Runtime dependency audit is clean. Existing Create React App build/development advisories remain recorded; build tools are excluded from the runtime.
  • SLICE11 container/fixture checks are not a customer-VM deployment or another live social post.