Phase 107 — verify no-upload publishing plan
At a glance
| Field | Value |
|---|---|
| Phase family | Phase 1 — first stones |
| Run command | make phase 107 |
| Underlying make target/script | vm/phase1/prepare-publish-plan.sh |
| Runs on | host |
| Main proof/artifact | Verifies 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:
- the exported artifact still passes Phase 106 checks
- 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:
SHA256SUMSvalidates- the artifact contains only publish files
- no
.moss,moss-root,moss-cache, orinstall-targetdirectories leaked repo.jsonsays homepage ishttps://onix-os.comrepo.jsonsays source ishttps://github.com/onix-osrepo.jsonhintshttps://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:
- run
make phase 106 - upload
artifacts/onix-publish/to the chosen static host - fetch the public
stone.index - compare its checksum with the local
stone.index - fetch public
SHA256SUMS - verify every listed file is reachable
- 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.