Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Phase 107 — verify no-upload publishing plan

At a glance

FieldValue
Phase familyPhase 1 — first stones
Run commandmake phase 107
Underlying make target/scriptvm/phase1/prepare-publish-plan.sh
Runs onhost
Main proof/artifactVerifies the no-upload publishing contract in this page.

Phase 107 is also host-only. It does not SSH into the forge VM and does not publish anything.

It verifies two things:

  1. the exported artifact still passes Phase 106 checks
  2. this book page contains the current publication contract

The publication contract records:

  • homepage: https://onix-os.com
  • source: https://github.com/onix-os
  • future repo root: https://repo.onix-os.com
  • future Moss index: https://repo.onix-os.com/unstable/x86_64/stone.index
  • local artifact source: artifacts/onix-publish/
  • the rule that no current phase uploads or changes DNS

This gives us a safe stopping point before any future real hosting work.

Phase 107 publication contract

This is the safe publication plan for the package repo artifact produced by Phase 1.

It is intentionally a plan, not an upload script. No phase currently changes DNS, pushes to a server, or publishes packages to the internet.

Canonical project locations:

homepage: https://onix-os.com
source:   https://github.com/onix-os
repo:     https://repo.onix-os.com

The host-side artifact is produced by:

make phase 105

and verified by:

make phase 106

The clean local publish root is:

artifacts/onix-publish/

Expected files:

artifacts/onix-publish/README.txt
artifacts/onix-publish/repo.json
artifacts/onix-publish/unstable/x86_64/SHA256SUMS
artifacts/onix-publish/unstable/x86_64/stone.index
artifacts/onix-publish/unstable/x86_64/onix-branding-*.stone
artifacts/onix-publish/unstable/x86_64/onix-filesystem-*.stone

The future public Moss index URL is:

https://repo.onix-os.com/unstable/x86_64/stone.index

Before any real upload, run:

make phase 104
make phase 105
make phase 106

Those checks must prove:

  • SHA256SUMS validates
  • the artifact contains only publish files
  • no .moss, moss-root, moss-cache, or install-target directories leaked
  • repo.json says homepage is https://onix-os.com
  • repo.json says source is https://github.com/onix-os
  • repo.json hints https://repo.onix-os.com/unstable/x86_64/stone.index

Any hosting target must serve this directory tree byte-for-byte:

repo root/
  unstable/
    x86_64/
      stone.index
      SHA256SUMS
      *.stone

The host must allow direct HTTP GET for:

/unstable/x86_64/stone.index
/unstable/x86_64/SHA256SUMS
/unstable/x86_64/*.stone

The repo can be hosted on any static file host. Candidate paths:

  • a dedicated static host behind repo.onix-os.com
  • GitHub Pages for a future repo such as github.com/onix-os/repo
  • an object bucket or VPS static directory

When ready, create DNS for:

repo.onix-os.com

pointing at the chosen static host.

Do not point DNS at a host until the uploaded tree can serve:

https://repo.onix-os.com/unstable/x86_64/stone.index

A future phase may add a real upload command, but it must be explicit and separate from the build/verify phases.

Good shape:

make phase 108   # dry-run upload / publish preview; no network, no upload
make phase 109   # real upload, only after explicit confirmation

The real upload phase should:

  1. run make phase 106
  2. upload artifacts/onix-publish/ to the chosen static host
  3. fetch the public stone.index
  4. compare its checksum with the local stone.index
  5. fetch public SHA256SUMS
  6. verify every listed file is reachable
  7. print the exact repo add command users will run later

Once the repo is live, the user-facing repo command shape should be:

moss repo add onix-unstable https://repo.onix-os.com/unstable/x86_64/stone.index -c "ONIX unstable"
moss repo update

Do not publish this as an installation instruction until the public URL is live and verified.