You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Five issues describe how MeshBench reaches a user: two build variants (#509), a
page to choose from (#510), an apt repository (#511), a Homebrew tap (#512), and
whether the smaller variant can even finish installing itself off Linux (#514).
Read together they did not agree. This is the parent, and on naming and
defaults it is the authority; where a child says something different, the
child is out of date.
What the two variants are
bundled - the application, the emulators, and the chip model. Boots an
emulated board on first run with nothing to fetch and nothing to explain.
Both always carry the fixtures, the fonts, the licences, and the chip model.
The chip is about a hundred kilobytes now that it is virtual-sx1262 loaded by whichever
emulator runs a board, so leaving it out is not a size judgement any more, it is
a floor: without it neither variant can start any board at all.
The decision
meshbench is the application. meshbench-bundled adds the emulators.
The suffix names an addition, which is how package naming has always worked: texlive and texlive-full, git and git-all. meshbench-compact would
name a subtraction, and a package whose name says what it lacks is a strange
thing to ask somebody to type. It also means the word "compact" need not appear
in any package name at all: the plain name is the compact one.
This overrules #512, which had the plain cask as bundled. Its reason does
not survive reading: it says a cask "re-fetches the whole disk image on every
upgrade either way, so the argument that flips the default for apt does not
apply". But the apt argument is that a package manager re-downloads on every
release, and re-fetching the whole image is that same property. The upgrade is
26 MB or 110 MB depending on the variant, every release, forever. That argues
for the flip rather than against it.
Which leaves the case for a lean default standing on both channels: a package
manager is not a one-off, and emulation is the specialist backend here. Native
is what anything being compared runs on, because an emulated node is explicitly
not reproducible. Somebody who installs MeshBench to answer a coverage or a
link-budget question may never point it at an emulated board.
A downloadable file always says which variant it is
Package managers are asked a question and can answer it. A file in a Downloads
folder cannot, so it carries its own label and there is no unsuffixed release
asset:
meshbench-linux-x86_64-bundled.tar.gz meshbench-linux-x86_64-compact.tar.gz
meshbench-x86_64-bundled.AppImage meshbench-x86_64-compact.AppImage
MeshBench-arm64-bundled.dmg MeshBench-arm64-compact.dmg
meshbench-windows-x86_64-bundled.msi meshbench-windows-x86_64-compact.msi
meshbench-windows-x86_64-bundled.zip meshbench-windows-x86_64-compact.zip
meshbench-source.tar.gz source is source; it has no variant
SHA256SUMS covers all of them
This is the one place the "unsuffixed means compact" rule is not applied, and it
is deliberate. Applying it would silently turn today's meshbench-linux-x86_64.tar.gz - the only stable asset name we have - from a
build that boots a board into one that cannot. Labelling both makes that link 404 instead, which is the failure worth having. Every other current name has
a version in it and is being renamed by #509 anyway.
The debs are the meeting point of the two rules and follow both: the package
name carries the variant (meshbench, meshbench-bundled) and Debian
convention puts the version in the filename.
The download page recommends bundled, and says why
Naming and recommending are different jobs. No filename claims to be the
default; the page (#510) picks one, and for a one-off download that is bundled,
because it works on first run. It should carry one line saying apt and Homebrew
give you the application alone, so nobody meets that difference for the first
time at a Setup prompt.
compact is only offered where it can complete itself
That is #514. Where Setup cannot fetch the emulators, the compact download stays
available but leads with what the user must build by hand: the fork URLs, the
branches, and the fact that a distribution's own QEMU has no SX1262 in it and a
stock Renode sleeps for ever on a wake condition that is already true.
What has changed under these issues since they were written
radioserver no longer exists. Both emulators load the chip themselves.
Anywhere these issues say "radioserver", read libvirtualsx1262.{so,dylib,dll}
from MeshBench/virtual-sx1262, pinned by release like the emulators.
A bundle needs Renode's support files, which nothing shipped until now: the .repl platform descriptions and our C# peripherals, in renode-support/
beside the binary. Without them a bundle carrying both emulators can start an
ESP32 board and not an nRF52 one. packaging/verify-bundle.sh checks for them.
Five issues describe how MeshBench reaches a user: two build variants (#509), a
page to choose from (#510), an apt repository (#511), a Homebrew tap (#512), and
whether the smaller variant can even finish installing itself off Linux (#514).
Read together they did not agree. This is the parent, and on naming and
defaults it is the authority; where a child says something different, the
child is out of date.
What the two variants are
emulated board on first run with nothing to fetch and nothing to explain.
Configuration > Setup, where that is possible (The compact build cannot complete itself off Linux: the fetcher serves no emulator for macOS or Windows #514).
Both always carry the fixtures, the fonts, the licences, and the chip model.
The chip is about a hundred kilobytes now that it is
virtual-sx1262 loaded by whichever
emulator runs a board, so leaving it out is not a size judgement any more, it is
a floor: without it neither variant can start any board at all.
The decision
meshbenchis the application.meshbench-bundledadds the emulators.One rule, every channel, no exceptions:
meshbenchmeshbench-bundledmeshbenchmeshbench-bundledThe suffix names an addition, which is how package naming has always worked:
texliveandtexlive-full,gitandgit-all.meshbench-compactwouldname a subtraction, and a package whose name says what it lacks is a strange
thing to ask somebody to type. It also means the word "compact" need not appear
in any package name at all: the plain name is the compact one.
This overrules #512, which had the plain cask as bundled. Its reason does
not survive reading: it says a cask "re-fetches the whole disk image on every
upgrade either way, so the argument that flips the default for apt does not
apply". But the apt argument is that a package manager re-downloads on every
release, and re-fetching the whole image is that same property. The upgrade is
26 MB or 110 MB depending on the variant, every release, forever. That argues
for the flip rather than against it.
Which leaves the case for a lean default standing on both channels: a package
manager is not a one-off, and emulation is the specialist backend here. Native
is what anything being compared runs on, because an emulated node is explicitly
not reproducible. Somebody who installs MeshBench to answer a coverage or a
link-budget question may never point it at an emulated board.
A downloadable file always says which variant it is
Package managers are asked a question and can answer it. A file in a Downloads
folder cannot, so it carries its own label and there is no unsuffixed release
asset:
This is the one place the "unsuffixed means compact" rule is not applied, and it
is deliberate. Applying it would silently turn today's
meshbench-linux-x86_64.tar.gz- the only stable asset name we have - from abuild that boots a board into one that cannot. Labelling both makes that link
404 instead, which is the failure worth having. Every other current name has
a version in it and is being renamed by #509 anyway.
The debs are the meeting point of the two rules and follow both: the package
name carries the variant (
meshbench,meshbench-bundled) and Debianconvention puts the version in the filename.
The download page recommends bundled, and says why
Naming and recommending are different jobs. No filename claims to be the
default; the page (#510) picks one, and for a one-off download that is bundled,
because it works on first run. It should carry one line saying apt and Homebrew
give you the application alone, so nobody meets that difference for the first
time at a Setup prompt.
compact is only offered where it can complete itself
That is #514. Where Setup cannot fetch the emulators, the compact download stays
available but leads with what the user must build by hand: the fork URLs, the
branches, and the fact that a distribution's own QEMU has no SX1262 in it and a
stock Renode sleeps for ever on a wake condition that is already true.
Order
consumes what it names.
which compact options may be offered without a caveat.
releases/latest/download/<name>resolving server-side.shape.
What has changed under these issues since they were written
radioserverno longer exists. Both emulators load the chip themselves.Anywhere these issues say "radioserver", read
libvirtualsx1262.{so,dylib,dll}from
MeshBench/virtual-sx1262, pinned by release like the emulators..replplatform descriptions and our C# peripherals, inrenode-support/beside the binary. Without them a bundle carrying both emulators can start an
ESP32 board and not an nRF52 one.
packaging/verify-bundle.shchecks for them.publishes
macos-arm64andwindows-amd64, so what is missing off Linux isthe two emulators rather than three things.