This guide describes how autonomous contributors should work in this repository safely and effectively.
- App:
MachOExplorer(Qt/C++) - Domain: Mach-O / Fat Mach-O /
.aarchive / dyld shared cache analysis - Current release line:
v2.0.x(repo currently atv2.0.1) - Platforms: macOS first-class, Windows supported
src/:libmoex/parser and view-node modelsrc/Qt UI/controllers/widgets/dialogstools/CLI tools (moex-parse,moex-cache-list,moex-cache-extract,moex-diff)
tests/regression/:run_all.shunified regression entry- includes parser regression, cache tool smoke tests, malformed-input crash regression
sample/: reproducible sample binariesscripts/:inc_patch_version.shpatch version bump helperrelease_homebrew.shHomebrew cask updaterbuild_windows_installer.ps1Windows installer pipeline helperbuild_windows_release.ps1Windows build + release asset uploader
packaging/windows/MachOExplorer.iss: Inno Setup installer scriptdeploy.sh: one-command release pipeline (bump/build/test/tag/release/homebrew)
cmake -S src -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="/Users/eevv/Qt/6.10.2/macos"
cmake --build build -j8
./build/MachOExplorertests/regression/run_all.shscripts/inc_patch_version.sh- Dry run:
scripts/release_homebrew.sh --version <x.y.z> --dry-run- Real push (requires DMG):
scripts/release_homebrew.sh --version <x.y.z> --dmg /path/to/MachOExplorer.dmg./deploy.shDefault behavior:
- bump patch
- configure/build
- run
tests/regression/run_all.sh - sign
.appwithDeveloper ID Application - package
.dmg - notarize
.dmg+ staple - commit + push
- tag + push tag
- GitHub release upload
- Homebrew cask update
macOS release env:
CODE_SIGN_IDENTITYNOTARYTOOL_PROFILEpreferred, orAPPLE_ID+APPLE_TEAM_ID+APPLE_APP_SPECIFIC_PASSWORD
Flags:
--no-homebrew--no-release--no-tag--no-push
- Preferred installer tool for classic Next/Next/Finish: Inno Setup
- Build helper:
powershell -ExecutionPolicy Bypass -File scripts/build_windows_installer.ps1 `
-QtBin "D:\Qt\6.10.2\msvc2022_64\bin" `
-BuildDir "build-win" `
-Config "Release"- Build + upload to existing GitHub release:
powershell -ExecutionPolicy Bypass -File scripts/build_windows_release.ps1 `
-QtBin "D:\Qt\6.10.2\msvc2022_64\bin"- The installer helper auto-detects
cmakeandISCCfrom common Windows install paths and copies the MSVC runtime DLLs into the staged app bundle.
- Preserve existing code style and architecture boundaries:
- parser logic in
src/libmoex - UI logic in
src/src
- parser logic in
- Avoid broad formatting-only churn.
- Keep changes scoped and reversible.
- Add/adjust regression coverage for parser hardening changes when possible.
- Do not use destructive git commands (
reset --hard, forced checkout) unless explicitly requested. - Do not revert unrelated local changes.
- If unexpected external modifications appear, pause and confirm before continuing.
- Project builds successfully
-
tests/regression/run_all.shpasses - Relevant docs updated (
README*, packaging notes, this file when workflow changes) - No unrelated refactors included