Files
firmware/versions.env
T
Oleksandr ShyshatskyiandClaude Opus 5 ac558f6686 Document the Moonraker swap honestly, and finish its doc coverage
The reversibility claim was the strongest promise in the README and a40bc86
quietly invalidated it. Moonraker is not in the update package -- it ships only
on the factory image -- and run-append.sh deletes the stock tree it moved aside
once the copy succeeds. So a stock reflash cannot restore it and nothing local
can either. README and how-it-works now say so plainly, with BUILD_MOONRAKER=0
as the way to opt out and the ssh one-liner that repairs an interrupted swap.
Per the decision taken, the swap itself is left as it is.

Two claims that rested on it are corrected rather than repeated:
bin/common.sh no longer offers a stock reflash as a whole uninstall, and
testing.md's test-recovery row says which three files it actually compares
instead of "back to stock byte-for-byte".

Moonraker was also missing from eight doc surfaces that still described a
two-asset world: the pipeline box, the third-party section and its bump recipe,
MOONRAKER_TGZ as a local-copy override, the versions.env line in the layout
tree, `make vendor`'s help and the comment above it, config.env.example, the CI
step name, and printer-replica's "genuine from the factory image" list.

Other cross-document contradictions found this pass:

* versions.env carried the same wrong bump recipe that was fixed in
  building.md last pass -- it needs the sha256 set to SKIP first.
* docs/building.md said `make build` is "all four" while listing five scripts;
  build.sh does not run verify.sh.
* toolchange.md's image resolved to docs/docs/molten-toolhead.jpg -- broken on
  GitHub -- and still said ff-legacy.cfg is included "only for the import step,
  then remove", which printer.base.cfg contradicts.
* hardware-testing.md stated the random root password unconditionally, in the
  one document a person reads while standing at the machine.
* notes 30 and 00 kept claims their siblings now contradict (servo_min/max,
  motor_value), and 47 pointed at a note that does not exist.
* "nozzle-to-eddy-trigger gap" survived in two places after being corrected in
  a third; the station is not the eddy coil.
* ff-toolchange.cfg's restore_axis note had the hazard backwards -- parking
  zeroes X and Y, not Z -- and called `xy` the default when the option is unset.

54 passed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 19:48:45 +03:00

43 lines
2.3 KiB
Bash

# Pinned third-party payload pieces.
#
# These are NOT vendored in the repo: bin/fetch-assets.sh downloads them into
# vendor/ (gitignored) and refuses anything whose sha256 does not match. Bump
# a version here and the next build picks it up; the old file stays cached.
#
# To bump: edit the version -- for HelixScreen that means HELIX_FILE too,
# which embeds it -- set the matching sha256 to SKIP, then run
# `make vendor`. It prints the real hash to paste back over SKIP.
# With a stale hash left in place fetch-assets.sh exits 1 instead of
# printing anything.
MAINSAIL_VERSION="v2.18.2"
MAINSAIL_SHA256="df2ba7c301f7bfc8ac9f122741a6ba08356d679ecfa1f62f898d0337802d5de5"
HELIX_VERSION="v0.99.115-creator5.1"
HELIX_FILE="helixscreen-creator5-v0.99.115.tar.gz"
HELIX_SHA256="7205738ca8ccb0aa9a95262506a87283712ab5544ce4abdbcbee571f51395a61"
# Moonraker. The stock one is a 2022 build (API 1.0.5) that predates the
# webcam "enabled" flag that modern Mainsail requires -- see bin/patch.sh.
#
# A COMMIT, NOT A RELEASE, and not a matter of taste. FlashForge built python
# 3.8.2 WITHOUT the _sqlite3 module and shipped no libsqlite3 anywhere on the
# printer, so every Moonraker from v0.9.0 onward dies at startup with
# "ModuleNotFoundError: No module named '_sqlite3'" -- v0.9.0 is where the
# database moved from lmdb to sqlite. The last release that still uses lmdb is
# v0.8.0, and that one predates the webcam flag. No release has both, so this
# pins the newest commit that has the webcam fix and still uses lmdb: 9d0d09d,
# 2023-12-05, the commit before 80c7620 "database: migrate from lmdb to
# sqlite". lmdb 1.3.0 is installed, so the existing database is read in place
# and nothing is converted.
#
# Before moving this pin: the blocker is native modules, not the python
# version (Moonraker still supports >=3.7). Check every dependency of a newer
# build against what is actually in Python-3.8.2/lib/python3.8/lib-dynload and
# site-packages on the factory image -- a missing C extension is fatal and a
# pure-python one is not. run-append.sh also import-tests the tree on the
# printer before swapping it in, so a mistake here refuses to install rather
# than leaving the machine without a web UI.
MOONRAKER_VERSION="9d0d09de8063922696359c1b88c86a86d6fdb296"
MOONRAKER_SHA256="6ddcba08a1a41f173fc6ee393a24e41f27b25f079e7c49921b87273ecff595a8"