Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,17 @@ Downloads can be found at the link above.
This page is dedicated to its development.
Pull-Requests and error reports are welcome.

## Platform Support

MQTT Explorer supports multiple platforms and architectures:

- **Windows**: x64
- **macOS**: x64 (Intel) and ARM64 (Apple Silicon)
- **Linux**: x64, ARM64 (Raspberry Pi 5), and ARMv7l (Raspberry Pi 4 and older)
- Available formats: AppImage, Deb, Snap

Copilot AI Dec 22, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README states that Snap format is available for all Linux architectures (x64, ARM64, ARMv7l), but the linuxSnap configuration in package.ts explicitly has arm64: false and armv7l: false. The Snap package is only built for x64. The README should clarify which formats are available for which architectures, for example: "AppImage and Deb: x64, ARM64, ARMv7l; Snap: x64 only".

Suggested change
- Available formats: AppImage, Deb, Snap
- Available formats: AppImage (x64, ARM64, ARMv7l), Deb (x64, ARM64, ARMv7l), Snap (x64 only)

Copilot uses AI. Check for mistakes.

ARM64 builds are perfect for running on Raspberry Pi 5 and other ARM64-based single-board computers.

## Quick Start with GitHub Codespaces

The fastest way to start developing is with GitHub Codespaces:
Expand Down
15 changes: 13 additions & 2 deletions package.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ import * as fs from 'fs'
import * as path from 'path'
import * as dotProp from 'dot-prop'

// Linux AppImage build for multiple architectures
// Builds for: x64, ARM64 (Raspberry Pi 5), and ARMv7l (Raspberry Pi 4 and older)
const linuxAppImage: builder.CliOptions = {
x64: true,
ia32: false,
armv7l: true,
arm64: true,
arm64: true, // Raspberry Pi 5 support
projectDir: './build/clean',
publish: 'always',
}
Expand All @@ -21,11 +23,13 @@ const linuxSnap: builder.CliOptions = {
publish: 'always',
}

// Linux Deb package build for multiple architectures
// Builds for: amd64 (x64), arm64 (Raspberry Pi 5), and armhf (Raspberry Pi 4 and older)
const linuxDeb: builder.CliOptions = {
x64: true,
ia32: false,
armv7l: true,
arm64: true,
arm64: true, // Raspberry Pi 5 support
projectDir: './build/clean',
publish: 'always',
}
Expand Down Expand Up @@ -76,6 +80,7 @@ async function executeBuild() {
await buildWithOptions(winAppx, { platform: 'win', package: 'appx' })
break
case 'linux':
console.log('Building Linux packages for architectures: x64, arm64 (Raspberry Pi 5), armv7l')

Copilot AI Dec 22, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This console.log statement claims to build for "x64, arm64 (Raspberry Pi 5), armv7l", but when the actual buildWithOptions calls execute, the new logging code (lines 113-117) will only show x64 and arm64. This creates inconsistent and potentially confusing output. Either remove this summary log or update the detailed logging below to include armv7l.

Suggested change
console.log('Building Linux packages for architectures: x64, arm64 (Raspberry Pi 5), armv7l')
console.log('Building Linux packages (see individual build logs for architectures)')

Copilot uses AI. Check for mistakes.
await buildWithOptions(linuxAppImage, { platform: 'linux', package: 'AppImage' })
await buildWithOptions(linuxSnap, { platform: 'linux', package: 'snap' })
await buildWithOptions(linuxDeb, { platform: 'linux', package: 'deb' })
Expand Down Expand Up @@ -105,6 +110,12 @@ async function buildWithOptions(options: builder.CliOptions, buildInfo: BuildInf

const packageJson = JSON.parse(fs.readFileSync(jsonLocation).toString())

// Log architectures being built
const architectures = []
if (options.x64) architectures.push('x64')
if (options.arm64) architectures.push('arm64')

Copilot AI Dec 22, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logging code only captures x64 and arm64 architectures, but the actual build configurations include armv7l as well. The log output will be incomplete and won't show that armv7l is being built for AppImage and Deb packages. Consider adding armv7l to the architectures array to provide accurate build information.

Suggested change
if (options.arm64) architectures.push('arm64')
if (options.arm64) architectures.push('arm64')
if (options.armv7l) architectures.push('armv7l')

Copilot uses AI. Check for mistakes.
console.log(`Building ${buildInfo.package} for architectures: ${architectures.join(', ')}`)

// AppX must have a different name since the store name is already taken (but not used)
if (buildInfo.package === 'appx') {
dotProp.set(packageJson, 'build.productName', 'MQTT-Explorer')
Expand Down
3 changes: 2 additions & 1 deletion scripts/uiTestsMobile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ export PID_VNC=$!
# Start mqtt broker
mosquitto &
export PID_MOSQUITTO=$!
sleep 2
sleep 1
npx -y playwright install

# Start MQTT Explorer in browser mode
export MQTT_EXPLORER_USERNAME=admin
Expand Down
Loading