Skip to content

Conversation

@daljit46
Copy link
Member

@daljit46 daljit46 commented Dec 16, 2025

This PR refactors the releases.yml workflow to add support for nightly builds for the dev branch. The workflow is scheduled to run every day at 00:00 and will update the release tagged with the nightly tag (which I have already created) with the artefacts for each platform. The release will show the latest 15 commits on dev. If there have been no changes on dev since the last run, the workflow is cancelled.
Additionally, the workflow file has been refactored for improved code reuse and a simplified YAML file that utilises the GitHub Actions matrix strategy to build artefacts for each platform.

- Use matrices for building on separate platforms
- Add support for (dev branch) nightly builds on which update the release (with 'nightly' tag). If no changes have been made to dev, then no changes are made.
@daljit46 daljit46 self-assigned this Dec 16, 2025
@daljit46 daljit46 added the build label Dec 16, 2025
@daljit46 daljit46 requested a review from a team December 16, 2025 13:50
@Lestropie
Copy link
Member

Very tough to review only from code. Demonstrated generation of releases: https://github.com/daljit46/mrtrix3/releases/tag/nightly

What's the lifetime of the generated release assets? In #2665 @tclose is looking for persistent build derivatives. I don't particularly want to generate a pre-release tag as the code is a long way away from being "pre-release", but if nightly dev builds hang around long enough even after being superseded, this PR might serve that purpose? Or would there be an easy way for someone to discover programmatically the most recent nightly dev build?

@bjeurissen
Copy link
Member

CLI works, but mrview produces:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process:             mrview [61502]
Path:                /Users/USER/Downloads/*/mrview.app/Contents/MacOS/mrview
Identifier:          org.mrtrix.mrview
Version:             3.0.7 (3.0.7)
Code Type:           ARM-64 (Native)
Role:                Background
Parent Process:      zsh [61098]
Coalition:           com.googlecode.iterm2 [109203]
Responsible Process: iTerm2 [59895]
User ID:             501

Date/Time:           2025-12-17 10:08:20.8252 +0100
Launch Time:         2025-12-17 10:08:20.3806 +0100
Hardware Model:      MacBookPro17,1
OS Version:          macOS 26.1 (25B78)
Release Type:        User

Crash Reporter Key:  074CF387-D30D-89B7-ED69-C1CC76146069
Incident Identifier: 7CFFFA33-F292-4FDC-8376-B28D6ED7D2A4

Sleep/Wake UUID:       3BAC95DE-A1E1-4F63-8955-DF62171773FD

Time Awake Since Boot: 900000 seconds
Time Since Wake:       1097 seconds

System Integrity Protection: enabled

Triggered by Thread: 0, Dispatch Queue: com.apple.main-thread

Exception Type:    EXC_BREAKPOINT (SIGTRAP)
Exception Codes:   0x0000000000000001, 0x000000010437c8a8

Termination Reason:  Namespace SIGNAL, Code 5, Trace/BPT trap: 5
Terminating Process: exc handler [61502]


Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   mrview                        	       0x10437c8a8 gl::Switch_GetIntegerv(unsigned int, int*) + 0
1   mrview                        	       0x10437d268 MR::GUI::GL::init() + 876
2   mrview                        	       0x104364148 MR::GUI::MRView::Window::initGL() + 24
3   QtOpenGLWidgets               	       0x1046a8e50 QOpenGLWidgetPrivate::initialize() + 836 (qopenglwidget.cpp:900)
4   QtOpenGLWidgets               	       0x1046a9eb0 QOpenGLWidget::resizeEvent(QResizeEvent*) + 64 (qopenglwidget.cpp:1475)
5   QtWidgets                     	       0x105b6dc08 QWidget::event(QEvent*) + 980
6   QtWidgets                     	       0x105b24594 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 272 (qapplication.cpp:3296)
7   QtWidgets                     	       0x105b25f18 QApplication::notify(QObject*, QEvent*) + 3368
8   QtCore                        	       0x106c9d474 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 292 (qcoreapplication.cpp:1121)
9   QtWidgets                     	       0x105b67be0 QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) + 248 (qwidget.cpp:8021)
10  QtWidgets                     	       0x105b6c7bc QWidgetPrivate::show_helper() + 52 (qwidget.cpp:8072)
11  QtWidgets                     	       0x105b6d534 QWidgetPrivate::setVisible(bool) + 804 (qwidget.cpp:8421)
12  QtWidgets                     	       0x105b6ca9c QWidgetPrivate::showChildren(bool) + 116 (qwidget.cpp:8493)
13  QtWidgets                     	       0x105b6c7dc QWidgetPrivate::show_helper() + 84 (qwidget.cpp:8078)
14  QtWidgets                     	       0x105b6d534 QWidgetPrivate::setVisible(bool) + 804 (qwidget.cpp:8421)
15  mrview                        	       0x10427a0c8 run() + 204
16  mrview                        	       0x104279308 main + 296
17  dyld                          	       0x196de9d54 start + 7184

Thread 1:

Thread 2::  Dispatch queue: com.apple.CoreAnalytics::Client XPC Reply
0   libxpc.dylib                  	       0x196e881c0 -[OS_xpc_object dealloc] + 0
1   libxpc.dylib                  	       0x196e93db8 _xpc_connection_call_reply_async + 176
2   libdispatch.dylib             	       0x19700eaf4 <deduplicated_symbol> + 16
3   libdispatch.dylib             	       0x197012ae8 _dispatch_mach_msg_async_reply_invoke + 340
4   libdispatch.dylib             	       0x196ffd350 _dispatch_lane_serial_drain + 332
5   libdispatch.dylib             	       0x196ffdfc4 _dispatch_lane_invoke + 388
6   libdispatch.dylib             	       0x197008474 _dispatch_root_queue_drain_deferred_wlh + 292
7   libdispatch.dylib             	       0x197007d6c _dispatch_workloop_worker_thread + 692
8   libsystem_pthread.dylib       	       0x1971ade4c _pthread_wqthread + 292
9   libsystem_pthread.dylib       	       0x1971acb9c start_wqthread + 8

Thread 3:

Thread 4:

Thread 5:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	       0x19716ec34 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	       0x197181028 mach_msg2_internal + 76
2   libsystem_kernel.dylib        	       0x19717798c mach_msg_overwrite + 484
3   libsystem_kernel.dylib        	       0x19716efb4 mach_msg + 24
4   CoreFoundation                	       0x197250b90 __CFRunLoopServiceMachPort + 160
5   CoreFoundation                	       0x19724f4e8 __CFRunLoopRun + 1188
6   CoreFoundation                	       0x19730935c _CFRunLoopRunSpecificWithOptions + 532
7   AppKit                        	       0x19b6e9cb4 _NSEventThread + 184
8   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
9   libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 6:: Thread (pooled)
0   libsystem_kernel.dylib        	       0x1971724f8 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x1971b20dc _pthread_cond_wait + 984
2   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 72 (qwaitcondition_unix.cpp:93) [inlined]
3   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait(QDeadlineTimer) + 208 (qwaitcondition_unix.cpp:101)
4   QtCore                        	       0x106e19180 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108 (qwaitcondition_unix.cpp:181)
5   QtCore                        	       0x106e1397c QThreadPoolThread::run() + 832 (qthreadpool.cpp:114)
6   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*)::$_0::operator()() const + 264 (qthread_unix.cpp:324) [inlined]
7   QtCore                        	       0x106e0f7c4 void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) + 264 (qthread_unix.cpp:260) [inlined]
8   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*) + 336 (qthread_unix.cpp:283)
9   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
10  libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 7:: Thread (pooled)
0   libsystem_kernel.dylib        	       0x1971724f8 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x1971b20dc _pthread_cond_wait + 984
2   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 72 (qwaitcondition_unix.cpp:93) [inlined]
3   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait(QDeadlineTimer) + 208 (qwaitcondition_unix.cpp:101)
4   QtCore                        	       0x106e19180 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108 (qwaitcondition_unix.cpp:181)
5   QtCore                        	       0x106e1397c QThreadPoolThread::run() + 832 (qthreadpool.cpp:114)
6   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*)::$_0::operator()() const + 264 (qthread_unix.cpp:324) [inlined]
7   QtCore                        	       0x106e0f7c4 void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) + 264 (qthread_unix.cpp:260) [inlined]
8   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*) + 336 (qthread_unix.cpp:283)
9   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
10  libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 8:: Thread (pooled)
0   libsystem_kernel.dylib        	       0x1971724f8 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x1971b20dc _pthread_cond_wait + 984
2   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 72 (qwaitcondition_unix.cpp:93) [inlined]
3   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait(QDeadlineTimer) + 208 (qwaitcondition_unix.cpp:101)
4   QtCore                        	       0x106e19180 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108 (qwaitcondition_unix.cpp:181)
5   QtCore                        	       0x106e1397c QThreadPoolThread::run() + 832 (qthreadpool.cpp:114)
6   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*)::$_0::operator()() const + 264 (qthread_unix.cpp:324) [inlined]
7   QtCore                        	       0x106e0f7c4 void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) + 264 (qthread_unix.cpp:260) [inlined]
8   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*) + 336 (qthread_unix.cpp:283)
9   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
10  libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 9:: Thread (pooled)
0   libsystem_kernel.dylib        	       0x1971724f8 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x1971b20dc _pthread_cond_wait + 984
2   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 72 (qwaitcondition_unix.cpp:93) [inlined]
3   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait(QDeadlineTimer) + 208 (qwaitcondition_unix.cpp:101)
4   QtCore                        	       0x106e19180 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108 (qwaitcondition_unix.cpp:181)
5   QtCore                        	       0x106e1397c QThreadPoolThread::run() + 832 (qthreadpool.cpp:114)
6   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*)::$_0::operator()() const + 264 (qthread_unix.cpp:324) [inlined]
7   QtCore                        	       0x106e0f7c4 void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) + 264 (qthread_unix.cpp:260) [inlined]
8   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*) + 336 (qthread_unix.cpp:283)
9   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
10  libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 10:: Thread (pooled)
0   libsystem_kernel.dylib        	       0x1971724f8 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x1971b20dc _pthread_cond_wait + 984
2   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 72 (qwaitcondition_unix.cpp:93) [inlined]
3   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait(QDeadlineTimer) + 208 (qwaitcondition_unix.cpp:101)
4   QtCore                        	       0x106e19180 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108 (qwaitcondition_unix.cpp:181)
5   QtCore                        	       0x106e1397c QThreadPoolThread::run() + 832 (qthreadpool.cpp:114)
6   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*)::$_0::operator()() const + 264 (qthread_unix.cpp:324) [inlined]
7   QtCore                        	       0x106e0f7c4 void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) + 264 (qthread_unix.cpp:260) [inlined]
8   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*) + 336 (qthread_unix.cpp:283)
9   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
10  libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 11:: Thread (pooled)
0   libsystem_kernel.dylib        	       0x1971724f8 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x1971b20dc _pthread_cond_wait + 984
2   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 72 (qwaitcondition_unix.cpp:93) [inlined]
3   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait(QDeadlineTimer) + 208 (qwaitcondition_unix.cpp:101)
4   QtCore                        	       0x106e19180 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108 (qwaitcondition_unix.cpp:181)
5   QtCore                        	       0x106e1397c QThreadPoolThread::run() + 832 (qthreadpool.cpp:114)
6   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*)::$_0::operator()() const + 264 (qthread_unix.cpp:324) [inlined]
7   QtCore                        	       0x106e0f7c4 void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) + 264 (qthread_unix.cpp:260) [inlined]
8   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*) + 336 (qthread_unix.cpp:283)
9   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
10  libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 12:: Thread (pooled)
0   libsystem_kernel.dylib        	       0x1971724f8 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x1971b20dc _pthread_cond_wait + 984
2   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 72 (qwaitcondition_unix.cpp:93) [inlined]
3   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait(QDeadlineTimer) + 208 (qwaitcondition_unix.cpp:101)
4   QtCore                        	       0x106e19180 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108 (qwaitcondition_unix.cpp:181)
5   QtCore                        	       0x106e1397c QThreadPoolThread::run() + 832 (qthreadpool.cpp:114)
6   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*)::$_0::operator()() const + 264 (qthread_unix.cpp:324) [inlined]
7   QtCore                        	       0x106e0f7c4 void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) + 264 (qthread_unix.cpp:260) [inlined]
8   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*) + 336 (qthread_unix.cpp:283)
9   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
10  libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 13:: Thread (pooled)
0   libsystem_kernel.dylib        	       0x1971724f8 __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x1971b20dc _pthread_cond_wait + 984
2   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 72 (qwaitcondition_unix.cpp:93) [inlined]
3   QtCore                        	       0x106e192cc QWaitConditionPrivate::wait(QDeadlineTimer) + 208 (qwaitcondition_unix.cpp:101)
4   QtCore                        	       0x106e19180 QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108 (qwaitcondition_unix.cpp:181)
5   QtCore                        	       0x106e1397c QThreadPoolThread::run() + 832 (qthreadpool.cpp:114)
6   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*)::$_0::operator()() const + 264 (qthread_unix.cpp:324) [inlined]
7   QtCore                        	       0x106e0f7c4 void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&) + 264 (qthread_unix.cpp:260) [inlined]
8   QtCore                        	       0x106e0f7c4 QThreadPrivate::start(void*) + 336 (qthread_unix.cpp:283)
9   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
10  libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8

Thread 14:: com.apple.CFSocket.private
0   libsystem_kernel.dylib        	       0x197179e54 __select + 8
1   CoreFoundation                	       0x197268254 __CFSocketManager + 708
2   libsystem_pthread.dylib       	       0x1971b1c08 _pthread_start + 136
3   libsystem_pthread.dylib       	       0x1971acba8 thread_start + 8


Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x000000000000821b   x1: 0x000000016bb894d8   x2: 0x0000000000000103   x3: 0x0000000000000103
    x4: 0x0000000920c25720   x5: 0x0000000000000000   x6: 0xffffffffbfc007ff   x7: 0xfffff0003ffff800
    x8: 0x000000010437c8a8   x9: 0x0000000000000001  x10: 0x0000000105b725e0  x11: 0x0000000000000078
   x12: 0x0000000000000000  x13: 0x0000000000000000  x14: 0x00000000ffffffe4  x15: 0x0000000105f5cd4f
   x16: 0x00000001047fee40  x17: 0x000000020517b920  x18: 0x0000000000000000  x19: 0x00000001043ea978
   x20: 0x00000009213b2910  x21: 0x0000000920dad8a0  x22: 0x00000009213b2920  x23: 0x000000010595d828
   x24: 0x0000000000000200  x25: 0x0000000000000631  x26: 0x0000000203b7f970  x27: 0x0000000921078000
   x28: 0x0000000000000000   fp: 0x000000016bb89560   lr: 0x000000010437d268
    sp: 0x000000016bb894d0   pc: 0x000000010437c8a8 cpsr: 0x80001000
   far: 0x0000000000000000  esr: 0xf2000001 (Breakpoint) brk 1

Binary Images:
       0x104274000 -        0x1043dbfff mrview (*) <c2ee9af0-8595-348e-8a02-e2ad67505004> */mrview.app/Contents/MacOS/mrview
       0x1054a4000 -        0x105943fff libmrtrix-core.dylib (*) <6ac42fe4-05af-32d3-9da7-90063493f315> /Users/USER/Downloads/*/libmrtrix-core.dylib
       0x10448c000 -        0x104593fff org.qt-project.QtNetwork (6.6) <022a9915-d8cb-35ab-b57c-1ed309e49038> /Users/USER/Downloads/*/QtNetwork.framework/Versions/A/QtNetwork
       0x1046a0000 -        0x1046abfff org.qt-project.QtOpenGLWidgets (6.6) <4e4f5ee3-b50d-3a91-85d5-00cb561a9f4f> /Users/USER/Downloads/*/QtOpenGLWidgets.framework/Versions/A/QtOpenGLWidgets
       0x105b18000 -        0x105f6bfff org.qt-project.QtWidgets (6.6) <ea4a597f-359b-33d9-97c6-fbf2490e6454> /Users/USER/Downloads/*/QtWidgets.framework/Versions/A/QtWidgets
       0x1047e8000 -        0x10484bfff org.qt-project.QtOpenGL (6.6) <11ae2f52-9f65-3377-9617-4d3455233747> /Users/USER/Downloads/*/QtOpenGL.framework/Versions/A/QtOpenGL
       0x10487c000 -        0x104eb7fff org.qt-project.QtGui (6.6) <1ebfeee4-4380-3c9f-aa23-89de2cafe2b8> /Users/USER/Downloads/*/QtGui.framework/Versions/A/QtGui
       0x106c1c000 -        0x1070b7fff org.qt-project.QtCore (6.6) <b84bb64e-19ef-30e3-af7e-77b8931ca492> /Users/USER/Downloads/*/QtCore.framework/Versions/A/QtCore
       0x1046bc000 -        0x104737fff org.qt-project.QtDBus (6.6) <4ed31831-1991-3601-a462-ba0041dfc56e> /Users/USER/Downloads/*/QtDBus.framework/Versions/A/QtDBus
       0x1053a4000 -        0x1053c3fff com.apple.security.csparser (3.0) <d7d315e0-8130-3104-a7fb-741b6591e900> /System/Library/Frameworks/Security.framework/Versions/A/PlugIns/csparser.bundle/Contents/MacOS/csparser
       0x106788000 -        0x106823fff libqcocoa.dylib (*) <1c2d7484-054e-3e6b-88ad-aa9735d75d4b> /Users/USER/Downloads/*/libqcocoa.dylib
       0x106bb8000 -        0x106bc3fff libobjc-trampolines.dylib (*) <f8bd9069-8c4f-37ea-af9a-2b1060f54e4f> /usr/lib/libobjc-trampolines.dylib
       0x106b78000 -        0x106b9bfff libqmacstyle.dylib (*) <780df16e-448d-3b8f-8f7d-17a8221672be> /Users/USER/Downloads/*/libqmacstyle.dylib
       0x106bf8000 -        0x106bfffff libqsvg.dylib (*) <3ce72d44-253e-3c61-aa61-34970f1c1637> /Users/USER/Downloads/*/libqsvg.dylib
       0x1190e0000 -        0x119117fff org.qt-project.QtSvg (6.6) <124c03b9-0648-3854-9c53-240496e20929> /Users/USER/Downloads/*/QtSvg.framework/Versions/A/QtSvg
       0x11a588000 -        0x11acd3fff com.apple.AGXMetal13-3 (341.11) <bfb2418e-640c-30a5-afde-569c93fb8ae5> /System/Library/Extensions/AGXMetal13_3.bundle/Contents/MacOS/AGXMetal13_3
       0x119028000 -        0x11908bfff com.apple.AppleMetalOpenGLRenderer (1.0) <7fba6cd5-06ae-37aa-aa67-580c920ea69d> /System/Library/Extensions/AppleMetalOpenGLRenderer.bundle/Contents/MacOS/AppleMetalOpenGLRenderer
       0x196de1000 -        0x196e7ff63 dyld (*) <b50f5a1a-be81-3068-92e1-3554f2be478a> /usr/lib/dyld
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
       0x196e84000 -        0x196ed8f7f libxpc.dylib (*) <8346be50-de08-3606-9fb6-9a352975661d> /usr/lib/system/libxpc.dylib
       0x196ff3000 -        0x197039e9f libdispatch.dylib (*) <8fb392ae-401f-399a-96ae-41531cf91162> /usr/lib/system/libdispatch.dylib
       0x1971ab000 -        0x1971b7abb libsystem_pthread.dylib (*) <e95973b8-824c-361e-adf4-390747c40897> /usr/lib/system/libsystem_pthread.dylib
       0x19716e000 -        0x1971aa49f libsystem_kernel.dylib (*) <9fe7c84d-0c2b-363f-bee5-6fd76d67a227> /usr/lib/system/libsystem_kernel.dylib
       0x1971f1000 -        0x197737abf com.apple.CoreFoundation (6.9) <3c4a3add-9e48-33da-82ee-80520e6cbe3b> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
       0x19b63a000 -        0x19cd66b9f com.apple.AppKit (6.9) <3c0949bb-e361-369a-80b7-17440eb09e98> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=1.0G resident=0K(0%) swapped_out_or_unallocated=1.0G(100%)
Writable regions: Total=129.5M written=594K(0%) resident=594K(0%) swapped_out=0K(0%) unallocated=128.9M(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Activity Tracing                   256K        1 
ColorSync                           32K        2 
CoreAnimation                       32K        2 
CoreGraphics                        16K        1 
Foundation                          16K        1 
Kernel Alloc Once                   32K        1 
MALLOC                           113.0M       21 
MALLOC guard page                 3328K        4 
STACK GUARD                       56.2M       15 
Stack                             15.4M       15 
VM_ALLOCATE                         96K        6 
__AUTH                            2236K      234 
__AUTH_CONST                      39.2M      487 
__CTF                               824        1 
__DATA                            7688K      459 
__DATA_CONST                      23.1M      504 
__DATA_DIRTY                      2464K      414 
__FONT_DATA                        2352        1 
__GLSLBUILTINS                    5174K        1 
__LINKEDIT                       599.9M       18 
__OBJC_RO                         78.3M        1 
__OBJC_RW                         2567K        1 
__TEXT                           472.9M      521 
__TPRO_CONST                       128K        2 
mapped file                      232.6M       23 
page table in kernel               594K        1 
shared memory                     1376K       15 
===========                     =======  ======= 
TOTAL                              1.6G     2752 


-----------
Full Report
-----------

{"app_name":"mrview","timestamp":"2025-12-17 10:08:22.00 +0100","app_version":"3.0.7","slice_uuid":"c2ee9af0-8595-348e-8a02-e2ad67505004","build_version":"3.0.7","platform":1,"bundleID":"org.mrtrix.mrview","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 26.1 (25B78)","roots_installed":0,"name":"mrview","incident_id":"7CFFFA33-F292-4FDC-8376-B28D6ED7D2A4"}
{
  "uptime" : 900000,
  "procRole" : "Background",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro17,1",
  "coalitionID" : 109203,
  "osVersion" : {
    "train" : "macOS 26.1",
    "build" : "25B78",
    "releaseType" : "User"
  },
  "captureTime" : "2025-12-17 10:08:20.8252 +0100",
  "codeSigningMonitor" : 1,
  "incident" : "7CFFFA33-F292-4FDC-8376-B28D6ED7D2A4",
  "pid" : 61502,
  "translated" : false,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2025-12-17 10:08:20.3806 +0100",
  "procStartAbsTime" : 21820843405102,
  "procExitAbsTime" : 21820854042575,
  "procName" : "mrview",
  "procPath" : "\/Users\/USER\/Downloads\/*\/mrview.app\/Contents\/MacOS\/mrview",
  "bundleInfo" : {"CFBundleShortVersionString":"3.0.7","CFBundleVersion":"3.0.7","CFBundleIdentifier":"org.mrtrix.mrview"},
  "storeInfo" : {"deviceIdentifierForVendor":"E11564F8-4556-59B9-8797-26BD059449DF","thirdParty":true},
  "parentProc" : "zsh",
  "parentPid" : 61098,
  "coalitionName" : "com.googlecode.iterm2",
  "crashReporterKey" : "074CF387-D30D-89B7-ED69-C1CC76146069",
  "appleIntelligenceStatus" : {"state":"available"},
  "developerMode" : 1,
  "bootProgressRegister" : "0x3f000000",
  "responsiblePid" : 59895,
  "responsibleProc" : "iTerm2",
  "codeSigningID" : "mrview",
  "codeSigningTeamID" : "",
  "codeSigningFlags" : 570556929,
  "codeSigningValidationCategory" : 10,
  "codeSigningTrustLevel" : 4294967295,
  "codeSigningAuxiliaryInfo" : 0,
  "instructionByteStream" : {"beforePC":"IAAg1CAAINQgACDUIAAg1CAAINQgACDUIAAg1CAAINQgACDUIAAg1A==","atPC":"IAAg1CAAINQgACDUIAAg1CAAINQgACDUIAAg1CAAINQgACDUIAAg1A=="},
  "bootSessionUUID" : "028665F3-FBDC-441B-B828-0FA487A0EDB7",
  "wakeTime" : 1097,
  "sleepWakeUUID" : "3BAC95DE-A1E1-4F63-8955-DF62171773FD",
  "sip" : "enabled",
  "exception" : {"codes":"0x0000000000000001, 0x000000010437c8a8","rawCodes":[1,4365732008],"type":"EXC_BREAKPOINT","signal":"SIGTRAP"},
  "termination" : {"flags":0,"code":5,"namespace":"SIGNAL","indicator":"Trace\/BPT trap: 5","byProc":"exc handler","byPid":61502},
  "os_fault" : {"process":"mrview"},
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":13942487,"threadState":{"x":[{"value":33307},{"value":6102226136},{"value":259},{"value":259},{"value":39204312864},{"value":0},{"value":18446744072631617535},{"value":18446726482597246976},{"value":4365732008,"symbolLocation":0,"symbol":"gl::Switch_GetIntegerv(unsigned int, int*)"},{"value":1},{"sourceLine":12931,"value":4390856160,"sourceFile":"qwidget.cpp","symbol":"QWidget::metric(QPaintDevice::PaintDeviceMetric) const","symbolLocation":556,"inline":true},{"value":120},{"value":0},{"value":0},{"value":4294967268},{"value":4394962255},{"sourceLine":216,"value":4370460224,"sourceFile":"qopenglpaintdevice.cpp","symbol":"QOpenGLPaintDevice::setDevicePixelRatio(double)","symbolLocation":0,"inline":true},{"value":8675375392},{"value":0},{"value":4366182776,"symbolLocation":0,"symbol":"gl::GetIntegerv"},{"value":39212230928},{"value":39205918880},{"value":39212230944},{"value":4388673576,"symbolLocation":0,"symbol":"MR::App::log_level"},{"value":512},{"value":1585},{"value":8652323184,"symbolLocation":0,"symbol":"mach_task_self_"},{"value":39208845312},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4365734504},"cpsr":{"value":2147487744},"fp":{"value":6102226272},"sp":{"value":6102226128},"esr":{"value":4060086273,"description":"(Breakpoint) brk 1"},"pc":{"value":4365732008,"matchesCrashFrame":1},"far":{"value":0}},"queue":"com.apple.main-thread","frames":[{"imageOffset":1083560,"symbol":"gl::Switch_GetIntegerv(unsigned int, int*)","symbolLocation":0,"imageIndex":0},{"imageOffset":1086056,"symbol":"MR::GUI::GL::init()","symbolLocation":876,"imageIndex":0},{"imageOffset":983368,"symbol":"MR::GUI::MRView::Window::initGL()","symbolLocation":24,"imageIndex":0},{"imageOffset":36432,"sourceLine":900,"sourceFile":"qopenglwidget.cpp","symbol":"QOpenGLWidgetPrivate::initialize()","imageIndex":3,"symbolLocation":836},{"imageOffset":40624,"sourceLine":1475,"sourceFile":"qopenglwidget.cpp","symbol":"QOpenGLWidget::resizeEvent(QResizeEvent*)","imageIndex":3,"symbolLocation":64},{"imageOffset":351240,"sourceFile":"qwidget.cpp","symbol":"QWidget::event(QEvent*)","symbolLocation":980,"imageIndex":4},{"imageOffset":50580,"sourceLine":3296,"sourceFile":"qapplication.cpp","symbol":"QApplicationPrivate::notify_helper(QObject*, QEvent*)","imageIndex":4,"symbolLocation":272},{"imageOffset":57112,"sourceFile":"qapplication.cpp","symbol":"QApplication::notify(QObject*, QEvent*)","symbolLocation":3368,"imageIndex":4},{"imageOffset":529524,"sourceLine":1121,"sourceFile":"qcoreapplication.cpp","symbol":"QCoreApplication::notifyInternal2(QObject*, QEvent*)","imageIndex":7,"symbolLocation":292},{"imageOffset":326624,"sourceLine":8021,"sourceFile":"qwidget.cpp","symbol":"QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool)","imageIndex":4,"symbolLocation":248},{"imageOffset":346044,"sourceLine":8072,"sourceFile":"qwidget.cpp","symbol":"QWidgetPrivate::show_helper()","imageIndex":4,"symbolLocation":52},{"imageOffset":349492,"sourceLine":8421,"sourceFile":"qwidget.cpp","symbol":"QWidgetPrivate::setVisible(bool)","imageIndex":4,"symbolLocation":804},{"imageOffset":346780,"sourceLine":8493,"sourceFile":"qwidget.cpp","symbol":"QWidgetPrivate::showChildren(bool)","imageIndex":4,"symbolLocation":116},{"imageOffset":346076,"sourceLine":8078,"sourceFile":"qwidget.cpp","symbol":"QWidgetPrivate::show_helper()","imageIndex":4,"symbolLocation":84},{"imageOffset":349492,"sourceLine":8421,"sourceFile":"qwidget.cpp","symbol":"QWidgetPrivate::setVisible(bool)","imageIndex":4,"symbolLocation":804},{"imageOffset":24776,"symbol":"run()","symbolLocation":204,"imageIndex":0},{"imageOffset":21256,"symbol":"main","symbolLocation":296,"imageIndex":0},{"imageOffset":36180,"symbol":"start","symbolLocation":7184,"imageIndex":17}]},{"id":13942491,"frames":[],"threadState":{"x":[{"value":6103363584},{"value":5635},{"value":6102827008},{"value":0},{"value":409602},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6103363584},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6830082964},"far":{"value":0}}},{"id":13942492,"threadState":{"x":[{"value":39199993568},{"value":8892922344,"objc-selector":"dealloc"},{"value":39204644736},{"value":1},{"value":39207139520},{"value":16},{"value":18446744072631617535},{"value":18446726482597246976},{"value":39199993576},{"value":8892922344,"objc-selector":"dealloc"},{"value":39481620456},{"value":1},{"value":1},{"value":39208259424},{"value":8652325216,"symbolLocation":0,"symbol":"_xpc_type_serializer"},{"value":8652325216,"symbolLocation":0,"symbol":"_xpc_type_serializer"},{"value":8652325216,"symbolLocation":0,"symbol":"_xpc_type_serializer"},{"value":6826787264,"symbolLocation":0,"symbol":"-[OS_xpc_object dealloc]"},{"value":0},{"value":39212718848},{"value":39199993568},{"value":39205979712},{"value":39205918912},{"value":0},{"value":6103937248},{"value":39204344832},{"value":0},{"value":6103937408},{"value":8675639752,"symbolLocation":360,"symbol":"_dispatch_continuation_vtables"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6826835384},"cpsr":{"value":1610616832},"fp":{"value":6103934912},"sp":{"value":6103934880},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6826787264},"far":{"value":0}},"queue":"com.apple.CoreAnalytics::Client XPC Reply","frames":[{"imageOffset":16832,"symbol":"-[OS_xpc_object dealloc]","symbolLocation":0,"imageIndex":19},{"imageOffset":64952,"symbol":"_xpc_connection_call_reply_async","symbolLocation":176,"imageIndex":19},{"imageOffset":113396,"symbol":"<deduplicated_symbol>","symbolLocation":16,"imageIndex":20},{"imageOffset":129768,"symbol":"_dispatch_mach_msg_async_reply_invoke","symbolLocation":340,"imageIndex":20},{"imageOffset":41808,"symbol":"_dispatch_lane_serial_drain","symbolLocation":332,"imageIndex":20},{"imageOffset":44996,"symbol":"_dispatch_lane_invoke","symbolLocation":388,"imageIndex":20},{"imageOffset":87156,"symbol":"_dispatch_root_queue_drain_deferred_wlh","symbolLocation":292,"imageIndex":20},{"imageOffset":85356,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":692,"imageIndex":20},{"imageOffset":11852,"symbol":"_pthread_wqthread","symbolLocation":292,"imageIndex":21},{"imageOffset":7068,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":21}]},{"id":13942513,"frames":[],"threadState":{"x":[{"value":6104510464},{"value":32003},{"value":6103973888},{"value":0},{"value":409602},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6104510464},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6830082964},"far":{"value":0}}},{"id":13942514,"frames":[],"threadState":{"x":[{"value":6105083904},{"value":23299},{"value":6104547328},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6105083904},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6830082964},"far":{"value":0}}},{"id":13942515,"name":"com.apple.NSEventThread","threadState":{"x":[{"value":268451845},{"value":21592279046},{"value":8589934592},{"value":105566001168384},{"value":0},{"value":105566001168384},{"value":2},{"value":4294967295},{"value":0},{"value":17179869184},{"value":0},{"value":2},{"value":0},{"value":0},{"value":24579},{"value":39210795008},{"value":18446744073709551569},{"value":469763072},{"value":0},{"value":4294967295},{"value":2},{"value":105566001168384},{"value":0},{"value":105566001168384},{"value":6105653384},{"value":8589934592},{"value":21592279046},{"value":18446744073709550527},{"value":4412409862,"symbolLocation":438,"symbol":"(anonymous namespace)::qt_meta_stringdata_CLASSQSettingsENDCLASS"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6829903912},"cpsr":{"value":4096},"fp":{"value":6105653232},"sp":{"value":6105653152},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829829172},"far":{"value":0}},"frames":[{"imageOffset":3124,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":22},{"imageOffset":77864,"symbol":"mach_msg2_internal","symbolLocation":76,"imageIndex":22},{"imageOffset":39308,"symbol":"mach_msg_overwrite","symbolLocation":484,"imageIndex":22},{"imageOffset":4020,"symbol":"mach_msg","symbolLocation":24,"imageIndex":22},{"imageOffset":392080,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":23},{"imageOffset":386280,"symbol":"__CFRunLoopRun","symbolLocation":1188,"imageIndex":23},{"imageOffset":1147740,"symbol":"_CFRunLoopRunSpecificWithOptions","symbolLocation":532,"imageIndex":23},{"imageOffset":720052,"symbol":"_NSEventThread","symbolLocation":184,"imageIndex":24},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942522,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":2816},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999999000},{"value":6106230152},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8675365784},{"value":0},{"value":39211943424},{"value":39211943488},{"value":6106231008},{"value":999999000},{"value":29},{"value":2816},{"value":2817},{"value":3072},{"value":18446744072709551616},{"value":39205973248}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830104796},"cpsr":{"value":1610616832},"fp":{"value":6106230272},"sp":{"value":6106230128},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829843704},"far":{"value":0}},"frames":[{"imageOffset":17656,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":22},{"imageOffset":28892,"symbol":"_pthread_cond_wait","symbolLocation":984,"imageIndex":21},{"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","inline":true,"imageIndex":7,"imageOffset":2085580,"symbolLocation":72,"sourceLine":93,"sourceFile":"qwaitcondition_unix.cpp"},{"imageOffset":2085580,"sourceLine":101,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","imageIndex":7,"symbolLocation":208},{"imageOffset":2085248,"sourceLine":181,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","imageIndex":7,"symbolLocation":108},{"imageOffset":2062716,"sourceLine":114,"sourceFile":"qthreadpool.cpp","symbol":"QThreadPoolThread::run()","imageIndex":7,"symbolLocation":832},{"symbol":"QThreadPrivate::start(void*)::$_0::operator()() const","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":324,"sourceFile":"qthread_unix.cpp"},{"symbol":"void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&)","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":260,"sourceFile":"qthread_unix.cpp"},{"imageOffset":2045892,"sourceLine":283,"sourceFile":"qthread_unix.cpp","symbol":"QThreadPrivate::start(void*)","imageIndex":7,"symbolLocation":336},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942523,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":2048},{"value":0},{"value":0},{"value":160},{"value":30},{"value":0},{"value":6106803592},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8675365784},{"value":0},{"value":39211943680},{"value":39211943744},{"value":6106804448},{"value":0},{"value":30},{"value":2048},{"value":2049},{"value":2304},{"value":18446744072709551616},{"value":39208484592}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830104796},"cpsr":{"value":1610616832},"fp":{"value":6106803712},"sp":{"value":6106803568},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829843704},"far":{"value":0}},"frames":[{"imageOffset":17656,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":22},{"imageOffset":28892,"symbol":"_pthread_cond_wait","symbolLocation":984,"imageIndex":21},{"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","inline":true,"imageIndex":7,"imageOffset":2085580,"symbolLocation":72,"sourceLine":93,"sourceFile":"qwaitcondition_unix.cpp"},{"imageOffset":2085580,"sourceLine":101,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","imageIndex":7,"symbolLocation":208},{"imageOffset":2085248,"sourceLine":181,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","imageIndex":7,"symbolLocation":108},{"imageOffset":2062716,"sourceLine":114,"sourceFile":"qthreadpool.cpp","symbol":"QThreadPoolThread::run()","imageIndex":7,"symbolLocation":832},{"symbol":"QThreadPrivate::start(void*)::$_0::operator()() const","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":324,"sourceFile":"qthread_unix.cpp"},{"symbol":"void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&)","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":260,"sourceFile":"qthread_unix.cpp"},{"imageOffset":2045892,"sourceLine":283,"sourceFile":"qthread_unix.cpp","symbol":"QThreadPrivate::start(void*)","imageIndex":7,"symbolLocation":336},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942524,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":2816},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999999000},{"value":6107377032},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8675365784},{"value":0},{"value":39211944064},{"value":39211944128},{"value":6107377888},{"value":999999000},{"value":29},{"value":2816},{"value":2817},{"value":3072},{"value":18446744072709551616},{"value":39208484576}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830104796},"cpsr":{"value":1610616832},"fp":{"value":6107377152},"sp":{"value":6107377008},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829843704},"far":{"value":0}},"frames":[{"imageOffset":17656,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":22},{"imageOffset":28892,"symbol":"_pthread_cond_wait","symbolLocation":984,"imageIndex":21},{"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","inline":true,"imageIndex":7,"imageOffset":2085580,"symbolLocation":72,"sourceLine":93,"sourceFile":"qwaitcondition_unix.cpp"},{"imageOffset":2085580,"sourceLine":101,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","imageIndex":7,"symbolLocation":208},{"imageOffset":2085248,"sourceLine":181,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","imageIndex":7,"symbolLocation":108},{"imageOffset":2062716,"sourceLine":114,"sourceFile":"qthreadpool.cpp","symbol":"QThreadPoolThread::run()","imageIndex":7,"symbolLocation":832},{"symbol":"QThreadPrivate::start(void*)::$_0::operator()() const","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":324,"sourceFile":"qthread_unix.cpp"},{"symbol":"void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&)","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":260,"sourceFile":"qthread_unix.cpp"},{"imageOffset":2045892,"sourceLine":283,"sourceFile":"qthread_unix.cpp","symbol":"QThreadPrivate::start(void*)","imageIndex":7,"symbolLocation":336},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942525,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":1024},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999999000},{"value":6107950472},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8675365784},{"value":0},{"value":39211944576},{"value":39211944640},{"value":6107951328},{"value":999999000},{"value":29},{"value":1024},{"value":1025},{"value":1280},{"value":18446744072709551616},{"value":39208484600}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830104796},"cpsr":{"value":1610616832},"fp":{"value":6107950592},"sp":{"value":6107950448},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829843704},"far":{"value":0}},"frames":[{"imageOffset":17656,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":22},{"imageOffset":28892,"symbol":"_pthread_cond_wait","symbolLocation":984,"imageIndex":21},{"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","inline":true,"imageIndex":7,"imageOffset":2085580,"symbolLocation":72,"sourceLine":93,"sourceFile":"qwaitcondition_unix.cpp"},{"imageOffset":2085580,"sourceLine":101,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","imageIndex":7,"symbolLocation":208},{"imageOffset":2085248,"sourceLine":181,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","imageIndex":7,"symbolLocation":108},{"imageOffset":2062716,"sourceLine":114,"sourceFile":"qthreadpool.cpp","symbol":"QThreadPoolThread::run()","imageIndex":7,"symbolLocation":832},{"symbol":"QThreadPrivate::start(void*)::$_0::operator()() const","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":324,"sourceFile":"qthread_unix.cpp"},{"symbol":"void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&)","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":260,"sourceFile":"qthread_unix.cpp"},{"imageOffset":2045892,"sourceLine":283,"sourceFile":"qthread_unix.cpp","symbol":"QThreadPrivate::start(void*)","imageIndex":7,"symbolLocation":336},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942526,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":1792},{"value":0},{"value":0},{"value":160},{"value":30},{"value":0},{"value":6108523912},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8675365784},{"value":0},{"value":39211944832},{"value":39211944896},{"value":6108524768},{"value":0},{"value":30},{"value":1792},{"value":1793},{"value":2048},{"value":18446744072709551616},{"value":39208484576}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830104796},"cpsr":{"value":1610616832},"fp":{"value":6108524032},"sp":{"value":6108523888},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829843704},"far":{"value":0}},"frames":[{"imageOffset":17656,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":22},{"imageOffset":28892,"symbol":"_pthread_cond_wait","symbolLocation":984,"imageIndex":21},{"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","inline":true,"imageIndex":7,"imageOffset":2085580,"symbolLocation":72,"sourceLine":93,"sourceFile":"qwaitcondition_unix.cpp"},{"imageOffset":2085580,"sourceLine":101,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","imageIndex":7,"symbolLocation":208},{"imageOffset":2085248,"sourceLine":181,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","imageIndex":7,"symbolLocation":108},{"imageOffset":2062716,"sourceLine":114,"sourceFile":"qthreadpool.cpp","symbol":"QThreadPoolThread::run()","imageIndex":7,"symbolLocation":832},{"symbol":"QThreadPrivate::start(void*)::$_0::operator()() const","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":324,"sourceFile":"qthread_unix.cpp"},{"symbol":"void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&)","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":260,"sourceFile":"qthread_unix.cpp"},{"imageOffset":2045892,"sourceLine":283,"sourceFile":"qthread_unix.cpp","symbol":"QThreadPrivate::start(void*)","imageIndex":7,"symbolLocation":336},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942527,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":1792},{"value":0},{"value":0},{"value":160},{"value":30},{"value":0},{"value":6109097352},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8675365784},{"value":0},{"value":39211945088},{"value":39211945152},{"value":6109098208},{"value":0},{"value":30},{"value":1792},{"value":1793},{"value":2048},{"value":18446744072709551616},{"value":39205973248}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830104796},"cpsr":{"value":1610616832},"fp":{"value":6109097472},"sp":{"value":6109097328},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829843704},"far":{"value":0}},"frames":[{"imageOffset":17656,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":22},{"imageOffset":28892,"symbol":"_pthread_cond_wait","symbolLocation":984,"imageIndex":21},{"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","inline":true,"imageIndex":7,"imageOffset":2085580,"symbolLocation":72,"sourceLine":93,"sourceFile":"qwaitcondition_unix.cpp"},{"imageOffset":2085580,"sourceLine":101,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","imageIndex":7,"symbolLocation":208},{"imageOffset":2085248,"sourceLine":181,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","imageIndex":7,"symbolLocation":108},{"imageOffset":2062716,"sourceLine":114,"sourceFile":"qthreadpool.cpp","symbol":"QThreadPoolThread::run()","imageIndex":7,"symbolLocation":832},{"symbol":"QThreadPrivate::start(void*)::$_0::operator()() const","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":324,"sourceFile":"qthread_unix.cpp"},{"symbol":"void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&)","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":260,"sourceFile":"qthread_unix.cpp"},{"imageOffset":2045892,"sourceLine":283,"sourceFile":"qthread_unix.cpp","symbol":"QThreadPrivate::start(void*)","imageIndex":7,"symbolLocation":336},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942528,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":0},{"value":0},{"value":0},{"value":160},{"value":30},{"value":0},{"value":6109670792},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8675365784},{"value":0},{"value":39211946368},{"value":39211946432},{"value":6109671648},{"value":0},{"value":30},{"value":0},{"value":1},{"value":256},{"value":18446744072709551616},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830104796},"cpsr":{"value":1610616832},"fp":{"value":6109670912},"sp":{"value":6109670768},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829843704},"far":{"value":0}},"frames":[{"imageOffset":17656,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":22},{"imageOffset":28892,"symbol":"_pthread_cond_wait","symbolLocation":984,"imageIndex":21},{"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","inline":true,"imageIndex":7,"imageOffset":2085580,"symbolLocation":72,"sourceLine":93,"sourceFile":"qwaitcondition_unix.cpp"},{"imageOffset":2085580,"sourceLine":101,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","imageIndex":7,"symbolLocation":208},{"imageOffset":2085248,"sourceLine":181,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","imageIndex":7,"symbolLocation":108},{"imageOffset":2062716,"sourceLine":114,"sourceFile":"qthreadpool.cpp","symbol":"QThreadPoolThread::run()","imageIndex":7,"symbolLocation":832},{"symbol":"QThreadPrivate::start(void*)::$_0::operator()() const","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":324,"sourceFile":"qthread_unix.cpp"},{"symbol":"void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&)","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":260,"sourceFile":"qthread_unix.cpp"},{"imageOffset":2045892,"sourceLine":283,"sourceFile":"qthread_unix.cpp","symbol":"QThreadPrivate::start(void*)","imageIndex":7,"symbolLocation":336},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942529,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":0},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999998000},{"value":6110244232},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8675365784},{"value":0},{"value":39211946624},{"value":39211946688},{"value":6110245088},{"value":999998000},{"value":29},{"value":0},{"value":1},{"value":256},{"value":18446744072709551616},{"value":39205973248}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830104796},"cpsr":{"value":1610616832},"fp":{"value":6110244352},"sp":{"value":6110244208},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829843704},"far":{"value":0}},"frames":[{"imageOffset":17656,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":22},{"imageOffset":28892,"symbol":"_pthread_cond_wait","symbolLocation":984,"imageIndex":21},{"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","inline":true,"imageIndex":7,"imageOffset":2085580,"symbolLocation":72,"sourceLine":93,"sourceFile":"qwaitcondition_unix.cpp"},{"imageOffset":2085580,"sourceLine":101,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","imageIndex":7,"symbolLocation":208},{"imageOffset":2085248,"sourceLine":181,"sourceFile":"qwaitcondition_unix.cpp","symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","imageIndex":7,"symbolLocation":108},{"imageOffset":2062716,"sourceLine":114,"sourceFile":"qthreadpool.cpp","symbol":"QThreadPoolThread::run()","imageIndex":7,"symbolLocation":832},{"symbol":"QThreadPrivate::start(void*)::$_0::operator()() const","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":324,"sourceFile":"qthread_unix.cpp"},{"symbol":"void (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::$_0>(QThreadPrivate::start(void*)::$_0&&)","inline":true,"imageIndex":7,"imageOffset":2045892,"symbolLocation":264,"sourceLine":260,"sourceFile":"qthread_unix.cpp"},{"imageOffset":2045892,"sourceLine":283,"sourceFile":"qthread_unix.cpp","symbol":"QThreadPrivate::start(void*)","imageIndex":7,"symbolLocation":336},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]},{"id":13942530,"name":"com.apple.CFSocket.private","threadState":{"x":[{"value":4},{"value":0},{"value":25938166592},{"value":0},{"value":0},{"value":0},{"value":0},{"value":18446726482597246976},{"value":6102790368},{"value":140737488355320},{"value":36028797018963960},{"value":604256},{"value":604256},{"value":17080320012731862495},{"value":4382230680},{"value":39199997952},{"value":93},{"value":8675370040},{"value":0},{"value":39212225600},{"value":8617820160,"symbolLocation":896,"symbol":"__last_exception_os_log_pack__"},{"value":8617821672,"symbolLocation":0,"symbol":"__CFActiveSocketsLock"},{"value":25938166592},{"value":0},{"value":32},{"value":0},{"value":25938166608},{"value":39199999968},{"value":39199999200}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6830850644},"cpsr":{"value":1610616832},"fp":{"value":6102790080},"sp":{"value":6102756304},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6829874772},"far":{"value":0}},"frames":[{"imageOffset":48724,"symbol":"__select","symbolLocation":8,"imageIndex":22},{"imageOffset":488020,"symbol":"__CFSocketManager","symbolLocation":708,"imageIndex":23},{"imageOffset":27656,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":21},{"imageOffset":7080,"symbol":"thread_start","symbolLocation":8,"imageIndex":21}]}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4364648448,
    "size" : 1474560,
    "uuid" : "c2ee9af0-8595-348e-8a02-e2ad67505004",
    "path" : "*\/mrview.app\/Contents\/MacOS\/mrview",
    "name" : "mrview"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4383719424,
    "size" : 4849664,
    "uuid" : "6ac42fe4-05af-32d3-9da7-90063493f315",
    "path" : "\/Users\/USER\/Downloads\/*\/libmrtrix-core.dylib",
    "name" : "libmrtrix-core.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4366843904,
    "CFBundleShortVersionString" : "6.6",
    "CFBundleIdentifier" : "org.qt-project.QtNetwork",
    "size" : 1081344,
    "uuid" : "022a9915-d8cb-35ab-b57c-1ed309e49038",
    "path" : "\/Users\/USER\/Downloads\/*\/QtNetwork.framework\/Versions\/A\/QtNetwork",
    "name" : "QtNetwork",
    "CFBundleVersion" : "6.6.1"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4369022976,
    "CFBundleShortVersionString" : "6.6",
    "CFBundleIdentifier" : "org.qt-project.QtOpenGLWidgets",
    "size" : 49152,
    "uuid" : "4e4f5ee3-b50d-3a91-85d5-00cb561a9f4f",
    "path" : "\/Users\/USER\/Downloads\/*\/QtOpenGLWidgets.framework\/Versions\/A\/QtOpenGLWidgets",
    "name" : "QtOpenGLWidgets",
    "CFBundleVersion" : "6.6.1"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4390486016,
    "CFBundleShortVersionString" : "6.6",
    "CFBundleIdentifier" : "org.qt-project.QtWidgets",
    "size" : 4538368,
    "uuid" : "ea4a597f-359b-33d9-97c6-fbf2490e6454",
    "path" : "\/Users\/USER\/Downloads\/*\/QtWidgets.framework\/Versions\/A\/QtWidgets",
    "name" : "QtWidgets",
    "CFBundleVersion" : "6.6.1"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4370366464,
    "CFBundleShortVersionString" : "6.6",
    "CFBundleIdentifier" : "org.qt-project.QtOpenGL",
    "size" : 409600,
    "uuid" : "11ae2f52-9f65-3377-9617-4d3455233747",
    "path" : "\/Users\/USER\/Downloads\/*\/QtOpenGL.framework\/Versions\/A\/QtOpenGL",
    "name" : "QtOpenGL",
    "CFBundleVersion" : "6.6.1"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4370972672,
    "CFBundleShortVersionString" : "6.6",
    "CFBundleIdentifier" : "org.qt-project.QtGui",
    "size" : 6537216,
    "uuid" : "1ebfeee4-4380-3c9f-aa23-89de2cafe2b8",
    "path" : "\/Users\/USER\/Downloads\/*\/QtGui.framework\/Versions\/A\/QtGui",
    "name" : "QtGui",
    "CFBundleVersion" : "6.6.1"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4408328192,
    "CFBundleShortVersionString" : "6.6",
    "CFBundleIdentifier" : "org.qt-project.QtCore",
    "size" : 4833280,
    "uuid" : "b84bb64e-19ef-30e3-af7e-77b8931ca492",
    "path" : "\/Users\/USER\/Downloads\/*\/QtCore.framework\/Versions\/A\/QtCore",
    "name" : "QtCore",
    "CFBundleVersion" : "6.6.1"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4369137664,
    "CFBundleShortVersionString" : "6.6",
    "CFBundleIdentifier" : "org.qt-project.QtDBus",
    "size" : 507904,
    "uuid" : "4ed31831-1991-3601-a462-ba0041dfc56e",
    "path" : "\/Users\/USER\/Downloads\/*\/QtDBus.framework\/Versions\/A\/QtDBus",
    "name" : "QtDBus",
    "CFBundleVersion" : "6.6.1"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4382670848,
    "CFBundleShortVersionString" : "3.0",
    "CFBundleIdentifier" : "com.apple.security.csparser",
    "size" : 131072,
    "uuid" : "d7d315e0-8130-3104-a7fb-741b6591e900",
    "path" : "\/System\/Library\/Frameworks\/Security.framework\/Versions\/A\/PlugIns\/csparser.bundle\/Contents\/MacOS\/csparser",
    "name" : "csparser",
    "CFBundleVersion" : "61901.40.77"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4403527680,
    "size" : 638976,
    "uuid" : "1c2d7484-054e-3e6b-88ad-aa9735d75d4b",
    "path" : "\/Users\/USER\/Downloads\/*\/libqcocoa.dylib",
    "name" : "libqcocoa.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4407918592,
    "size" : 49152,
    "uuid" : "f8bd9069-8c4f-37ea-af9a-2b1060f54e4f",
    "path" : "\/usr\/lib\/libobjc-trampolines.dylib",
    "name" : "libobjc-trampolines.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4407656448,
    "size" : 147456,
    "uuid" : "780df16e-448d-3b8f-8f7d-17a8221672be",
    "path" : "\/Users\/USER\/Downloads\/*\/libqmacstyle.dylib",
    "name" : "libqmacstyle.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4408180736,
    "size" : 32768,
    "uuid" : "3ce72d44-253e-3c61-aa61-34970f1c1637",
    "path" : "\/Users\/USER\/Downloads\/*\/libqsvg.dylib",
    "name" : "libqsvg.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4715315200,
    "CFBundleShortVersionString" : "6.6",
    "CFBundleIdentifier" : "org.qt-project.QtSvg",
    "size" : 229376,
    "uuid" : "124c03b9-0648-3854-9c53-240496e20929",
    "path" : "\/Users\/USER\/Downloads\/*\/QtSvg.framework\/Versions\/A\/QtSvg",
    "name" : "QtSvg",
    "CFBundleVersion" : "6.6.1"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4736974848,
    "CFBundleShortVersionString" : "341.11",
    "CFBundleIdentifier" : "com.apple.AGXMetal13-3",
    "size" : 7651328,
    "uuid" : "bfb2418e-640c-30a5-afde-569c93fb8ae5",
    "path" : "\/System\/Library\/Extensions\/AGXMetal13_3.bundle\/Contents\/MacOS\/AGXMetal13_3",
    "name" : "AGXMetal13_3",
    "CFBundleVersion" : "341.11"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4714561536,
    "CFBundleShortVersionString" : "1.0",
    "CFBundleIdentifier" : "com.apple.AppleMetalOpenGLRenderer",
    "size" : 409600,
    "uuid" : "7fba6cd5-06ae-37aa-aa67-580c920ea69d",
    "path" : "\/System\/Library\/Extensions\/AppleMetalOpenGLRenderer.bundle\/Contents\/MacOS\/AppleMetalOpenGLRenderer",
    "name" : "AppleMetalOpenGLRenderer",
    "CFBundleVersion" : "1"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6826102784,
    "size" : 651108,
    "uuid" : "b50f5a1a-be81-3068-92e1-3554f2be478a",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6826770432,
    "size" : 348032,
    "uuid" : "8346be50-de08-3606-9fb6-9a352975661d",
    "path" : "\/usr\/lib\/system\/libxpc.dylib",
    "name" : "libxpc.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6828273664,
    "size" : 290464,
    "uuid" : "8fb392ae-401f-399a-96ae-41531cf91162",
    "path" : "\/usr\/lib\/system\/libdispatch.dylib",
    "name" : "libdispatch.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6830075904,
    "size" : 51900,
    "uuid" : "e95973b8-824c-361e-adf4-390747c40897",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6829826048,
    "size" : 246944,
    "uuid" : "9fe7c84d-0c2b-363f-bee5-6fd76d67a227",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6830362624,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.CoreFoundation",
    "size" : 5532352,
    "uuid" : "3c4a3add-9e48-33da-82ee-80520e6cbe3b",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
    "name" : "CoreFoundation",
    "CFBundleVersion" : "4109.1.401"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6901964800,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.AppKit",
    "size" : 24300448,
    "uuid" : "3c0949bb-e361-369a-80b7-17440eb09e98",
    "path" : "\/System\/Library\/Frameworks\/AppKit.framework\/Versions\/C\/AppKit",
    "name" : "AppKit",
    "CFBundleVersion" : "2685.20.119"
  }
],
  "sharedCache" : {
  "base" : 6825017344,
  "size" : 5609635840,
  "uuid" : "b69ff43c-dbfd-3fb1-b4fe-a8fe32ea1062"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=1.0G resident=0K(0%) swapped_out_or_unallocated=1.0G(100%)\nWritable regions: Total=129.5M written=594K(0%) resident=594K(0%) swapped_out=0K(0%) unallocated=128.9M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nColorSync                           32K        2 \nCoreAnimation                       32K        2 \nCoreGraphics                        16K        1 \nFoundation                          16K        1 \nKernel Alloc Once                   32K        1 \nMALLOC                           113.0M       21 \nMALLOC guard page                 3328K        4 \nSTACK GUARD                       56.2M       15 \nStack                             15.4M       15 \nVM_ALLOCATE                         96K        6 \n__AUTH                            2236K      234 \n__AUTH_CONST                      39.2M      487 \n__CTF                               824        1 \n__DATA                            7688K      459 \n__DATA_CONST                      23.1M      504 \n__DATA_DIRTY                      2464K      414 \n__FONT_DATA                        2352        1 \n__GLSLBUILTINS                    5174K        1 \n__LINKEDIT                       599.9M       18 \n__OBJC_RO                         78.3M        1 \n__OBJC_RW                         2567K        1 \n__TEXT                           472.9M      521 \n__TPRO_CONST                       128K        2 \nmapped file                      232.6M       23 \npage table in kernel               594K        1 \nshared memory                     1376K       15 \n===========                     =======  ======= \nTOTAL                              1.6G     2752 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "com.apple.main-thread"
  }
},
  "logWritingSignature" : "2a319debde5541016ef13c6b5ca4ee7790cfab6d",
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "661464ecda55e5192b100804",
      "factorPackIds" : [

      ],
      "deploymentId" : 240000005
    },
    {
      "rolloutId" : "644114de41e7236e6177f9bd",
      "factorPackIds" : [

      ],
      "deploymentId" : 240000013
    }
  ],
  "experiments" : [
    {
      "treatmentId" : "f18344bb-554f-48ae-8449-e108a8813a55",
      "experimentId" : "6685b5584477001000e8c6c9",
      "deploymentId" : 400000009
    }
  ]
}
}

Model: MacBookPro17,1, BootROM 13822.41.1, proc 8:4:4 processors, 16 GB, SMC 
Graphics: Apple M1, Apple M1, Built-In
Display: DELL U3219Q, 3840 x 2160 (2160p/4K UHD 1 - Ultra High Definition), Main, MirrorOff, Online
Memory Module: LPDDR4, Hynix
AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x4378), wl0: Jul 11 2025 19:42:21 version 18.20.480.0.7.8.186 FWID 01-6e662c81
IO80211_driverkit-1530.16 "IO80211_driverkit-1530.16" Oct 10 2025 22:56:35
AirPort: 
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: USB 10/100/1000 LAN, Ethernet, en4
Network Service: Wi-Fi, AirPort, en0
Thunderbolt Bus: MacBook Pro, Apple Inc.
Thunderbolt Bus: MacBook Pro, Apple Inc.

@bjeurissen
Copy link
Member

What I noticed is that the directory naming scheme is not the same across platforms, e.g. on macOS it unpacks to mrtrix3, which easily clashes with existing directories. On linux it unpacks to mrtrix3-linux-16-12-2025 which corresponds to the filename in the archive. I think the latter is preferable.

daljit46 and others added 2 commits December 17, 2025 10:29
Co-authored-by: Robert Smith <robert.smith@florey.edu.au>
Co-authored-by: Robert Smith <robert.smith@florey.edu.au>
@daljit46
Copy link
Member Author

What's the lifetime of the generated release assets? In #2665 @tclose is looking for persistent build derivatives. I don't particularly want to generate a pre-release tag as the code is a long way away from being "pre-release", but if nightly dev builds hang around long enough even after being superseded, this PR might serve that purpose? Or would there be an easy way for someone to discover programmatically the most recent nightly dev build?

The workflow deliberately deletes old release artefacts on a new nightly run. This is primarily to avoid wasting storage space. If the intention is to use the latest release asset as the build derivatives, then this is fairly straightforward, as the URL for the assets will always point to the latest ones (as long as the name of the artefacts is not changed). One can even query more robustly via curl -s https://api.github.com/repos/mrtrix3/mrtrix3/git/ref/tags/nightly.

@daljit46
Copy link
Member Author

daljit46 commented Dec 17, 2025

@MRtrix3/mrtrix3-devs One issue that needs to be solved prior to this is our version matching logic in FindVersion.cmake. Since the new workflow relies on the existence of the nightly tag, we could probably ignore the version mismatch if the tag name is nightly (or if you think there's a better way, I'm open to suggestions). Also, we need a way to display to users that they're running nightly release binaries. Currently, a build of the dev branch still refers to version 3.0.7, which I think is misleading.

@Lestropie
Copy link
Member

It might be necessary to have a more verbose name than nightly: it would be reasonable for a user to assume that a nightly build corresponds to master including any bug patches since the most recent release tag, as opposed to an accumulation of updates awaiting a minor release?

Indeed there could be a nightly build from master that people could use if they really needed some recent patch update immediately for which a patch-level tag update wasn't immediately issued but they didn't want to compile from source.

Since the new workflow relies on the existence of nightly tag, we could probably ignore the version mismatching if the tag name is nightly

Maybe safer would be requiring that a cmake variable be defined at the command-line indicating that the intended tag is nightly? That block of code is supposed to be about detecting unintended mismatches, so an explicit rather than implicit override instinctively feels better.

Also, we need a way to display to users that they're running nightly release binaries. Currently, a build of the dev branch still refers to version 3.0.7, which I think is misleading.

It will presumably still show in the verbose description that there are a large number of commits between the most recent tag and the tip. But true, it's not the most interpretable thing in the world. Maybe as a resolution to both this and request in #2665 we could create an "alpha" tag (which I find more palatable than "release candidate") on dev to reflect the change in build system, and increment that if there are any further backward-incompatible changes to the build system (eg. to better facilitate external projects; #2939) before 3.1.0.

@daljit46
Copy link
Member Author

It might be necessary to have a more verbose name than nightly: it would be reasonable for a user to assume that a nightly build corresponds to master including any bug patches since the most recent release tag, as opposed to an accumulation of updates awaiting a minor release?

I think generally speaking (in other software projects), "nightly" releases are not intended to be bug fixes. They usually refer to releases of the branch where new features for the software are actively being developed (in our case, dev). I'm not against the idea of having daily builds for master too, but probably a different term other than "nightly" should be used. If it does improve clarity for users, we could rename the tag to something like "nightly-dev".

Maybe safer would be requiring that a cmake variable be defined at the command-line indicating that the intended tag is nightly? That block of code is supposed to be about detecting unintended mismatches, so an explicit rather than implicit override instinctively feels better.

I've implemented this on my fork of MRtrix3, with a new MRTRIX_IGNORE_VERSION_MISMATCH variable. I've also implemented the other pieces of feedback in this thread regarding naming and folder structure. You can check out the release artefacts at https://github.com/daljit46/mrtrix3/releases/tag/nightly. If we're happy with that, I can port the changes onto this branch and dev.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants