Ship the radio model, and find Renode on Windows - #63
Merged
Merged
Conversation
Every emulated node looks up radioserver before it looks up either emulator, and no bundle has ever contained one: nothing built it, no release published it, and no packaging job staged it. 0.0.1 through 0.0.3 shipped a QEMU and a Renode that nothing could drive, with a README saying emulated boards worked out of the box. All three jobs now build it from meshcore-native - the repository the chip model lives in, so a native node and an emulated one stay the same VirtualSX1262 - and a failure is fatal rather than a warning. The way this stayed hidden for three releases was a green build. lookupTool also learns the versioned renode_*-portable layout by glob. Linux and macOS bridge that with a symlink; a zip cannot carry one, so Windows shipped a Renode two directories from anywhere the search looked. Needs MeshBench/meshcore-native#4, which is what builds radioserver and what makes it compile for Windows at all.
The comment led with "a TCP port on Windows, a Unix socket everywhere else" and the condition under it then sent Renode over TCP on every platform. Both halves were right; only the summary was wrong.
meshcore-native#4 is merged and radioserver-v1 is published there (linux-amd64, darwin-arm64, windows-amd64.exe), built off the merge commit and smoke-tested end to end before publishing. Fetching it now matches how qemu and renode are already staged, rather than cloning meshcore-native and rebuilding from source in every job. meshcore-native has no rolling "latest" release - its automation republishes a per-role MeshCore version there constantly - so the macOS job's curl fetch needed a tag-specific lookup rather than the existing one built around /releases/latest.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No bundle we have shipped can emulate anything. Every emulated node looks up
radioserverbefore it looks up either emulator, and nothing ever built one:meshcore-native'sbuild.shcompiledbridge/main.cppinto each role and neverbridge/radioserver.cpp, no release published it, and no packaging job staged it. Unpacking the 0.0.3 artifacts confirms it — zeroradioserverentries in the Linux tarball or the Windows zip, beside a QEMU and a Renode that therefore cannot be driven. The WindowsREADME.txtsaid emulated boards worked out of the box.All three jobs build it from
meshcore-native, the repository the chip model lives in, so a native node and an emulated one stay the sameVirtualSX1262. On the Mac it goes insideContents/MacOSand is signed with the rest of the bundle, and the clone is cleaned up after. A failure is fatal rather than a warning: the way this hid for three releases was a green build.lookupToollearns the versionedrenode_*-portablelayout by glob. Linux and macOS bridge that gap with a symlink; a zip cannot carry one, so the Windows bundle shipped a Renode two directories from anywhere the search looked. Covered by a test that fails without the fix.The AppImage and the
.debtakeradioserver(40 KB) but not the emulators (110 MB against a 26 MB AppImage), and the READMEs anddocs/tools-manifest.mdnow say so instead of the reverse.Blocked on MeshBench/meshcore-native#4, which is what builds
radioserverand what makes it compile for Windows at all.package.ymlclones that repo atmain, so a package build fails until #4 merges — deliberately, rather than quietly shipping another bundle that cannot emulate.Not verified: the Windows
radioserver.exehas been cross-compiled and linked but never run on Windows, and no emulated board has been started there.