Skip to content

MacOS drag and drop installer#4030

Merged
jellybean2004 merged 11 commits into
release_6.2.0from
macos_installer
Jul 9, 2026
Merged

MacOS drag and drop installer#4030
jellybean2004 merged 11 commits into
release_6.2.0from
macos_installer

Conversation

@wpotrzebowski

@wpotrzebowski wpotrzebowski commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Description

Replaces the plain hdiutil create DMG build with a scripted, branded installer experience. Previously, the macOS installer was a basic disk image with no background or guided layout. Users now get a standard macOS install experience: open the DMG, drag SasView to Applications. (By doing this, MAC users should be able to see Help properly)

This PR:

  • Adds installers/macos/create_dmg.sh to stage the app bundle and produce a drag-to-Applications DMG with a custom background and icon layout
  • Adds installers/macos/dmg_settings.py to configure the DMG window (640×280), hide .app extensions, and position SasView6.app and the Applications symlink
  • Adds 1x and 2x background images (dmg_background.png, dmg_background@2x.png) with install instructions and a visual drag arrow
  • Updates CI (.github/workflows/ci.yml) to install dmgbuild and use the new script for both unsigned and signed/notarized macOS builds

Fixes # (issue/issues)
#3976 - It doesn't fully fix it but for the majority of users should mitigate the issue.

How Has This Been Tested?

The installer has been downloaded. After double-clicking, the following dialog should appear
Screenshot 2026-07-08 at 14 47 10

(If there is previously mounted SasView Volume attached it may need to be ejected first to see the effect).

Review Checklist:

[if using the editor, use [x] in place of [ ] to check a box]

Documentation (check at least one)

  • There is nothing that needs documenting
  • Documentation changes are in this PR
  • There is an issue open for the documentation (link?)

Installers

  • There is a chance this will affect the installers, if so
    • Windows installer (GH artifact) has been tested (installed and worked)
    • MacOSX installer (GH artifact) has been tested (installed and worked)
    • Wheels installer (GH artifact) has been tested (installed and worked)

Licensing (untick if necessary)

  • The introduced changes comply with SasView license (BSD 3-Clause)

@wpotrzebowski wpotrzebowski marked this pull request as ready for review July 8, 2026 13:02

@pkienzle pkienzle left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Drag to Applications folder works. Help works with file:///,,, urls from the Applications directory on my machine.

App in build artifacts dmg is unsigned so testing was awkward.

@MBartkowiakSTFC

Copy link
Copy Markdown

I tested the new .dmg file on MacOS Tahoe 26.5.1.

The results:

  1. Installation using the pop-up window worked.
  2. MacOS was blocking the executable. This had to be bypassed to allow SasView to start.
  3. I accessed the documentation from the dropdown menu and using the buttons in the GUI. In both cases the style sheet was applied correctly.
  4. The image files in the documentation were shown correctly too.

So, at least on my machine the problem appears to be solved.

@wpotrzebowski

Copy link
Copy Markdown
Contributor Author

Thanks for testing/reviewing. Indeed, signing and notarizing have been skipped in this workflow, but it should be triggered once merged? (Not entirely sure how it is setup now)

@jellybean2004 jellybean2004 merged commit b554652 into release_6.2.0 Jul 9, 2026
36 checks passed
@jellybean2004 jellybean2004 deleted the macos_installer branch July 9, 2026 07:01
@smk78

smk78 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Interestingly, I note that when we wrote the tutorial getting_started_with_sasview_v5 our Mac installation instructions say to copy the .dmg to Applications! :-)

jellybean2004 added a commit that referenced this pull request Jul 10, 2026
* Update release notes

* Add what's new

* Add release manager

* Ran automation script

* Pin requirements

* Correct branch names

* Update version number for a2

* Don't include magnetism parameters in pure python models (#3961)

* don't include magnetism parameters in pure python models

* update magnetism test to use a model that supports magnetism

---------

Co-authored-by: Paul Kienzle <pkienzle@nist.gov>

* Release 6.2.0 polyhedron html (#3972)

* adding polyhedrons in WhatsNew

* changing htlm description

* Corrects png to jpg

* Reorder pages

---------

Co-authored-by: jellybean2004 <sujayashr18@gmail.com>

* Build the installers if the github ref is a tag (#3960)

Co-authored-by: sujaya <88585975+jellybean2004@users.noreply.github.com>

* Update release numbers

* Replace Whats new screenshots with light bg

* Rezise images in what's new

* Fix private names config for sphinx (for 6.2.0)  (#3994)

* Fix sas.models suppression to not accidentally allow private members in sphinx

* Allow ruff to tidy conf.py

* Switching image in light mode (#4002)

* Change docpath handling to accept absolute-looking paths within the documentation tree (#3992)

Closes: #3976

* Fix free slicer (#3970)

* Delete slicer if its 1D plot is deleted

* Update slicer list after deletion

* Fix for annulus making other slicers nonmoveable

* Remove boxsum when window is closed

* Fix boxsum error messages

* Handle deletion of 2D plot

* Add tests

* Properly change/delete params shown

* Add documentation for CustomToolbar (#3999)

* Add documentation

* Add documentation

* Add documentation

* update

* Removes break

---------

Co-authored-by: Christian Wögerbauer <christian.woegerbauer@gmx.de>
Co-authored-by: jellybean2004 <sujayashr18@gmail.com>

* 3968: PD function shadowing [Release 6.2.0] (#4004)

* Remove the n_shells text setting to prevent mirroring of the value in the fitting widget.

* Remove gaussian from the checked_list to not always have the word gaussian over top of the combobox

---------

Co-authored-by: sujaya <88585975+jellybean2004@users.noreply.github.com>

* Update release numbers for beta1

* Make colormaptest robust against matplotlib changes (#4008)

* Refactors slicers to remove unecessary "updatePlot" calls (#4006)

* Refactors slicers to remove unecessary "updatePlot" calls

* Adds label for plot to slicer name

* Adds code to replace plot data for modified slicers (#4014)

* Adds code to replace plot data for modified slicers

* Removes unnecessary code from data setter

* Fixes bugs for cloned slicer plots (#4021)

* Fixes bugs for cloned slicer plots

* Fixes slicer owner bug on update

---------

Co-authored-by: sujaya <88585975+jellybean2004@users.noreply.github.com>

* Check slicer children for removal (#4025)

* Fix symmetric wedge phi plots (#4029)

* Remove duplicate class

* Set x and y transform for angular slices

* Fixes mask editor bug (#4024)

* Adds example data from SasData repository (#4033)

* getting example data from sasdata via installed python packages

* include example data with CRUFT

---------

Co-authored-by: Dirk Honecker <dirk.honecker@stfc.ac.uk>

* MacOS drag and drop installer (#4030)

* Refactor macOS DMG creation process

- Introduced a new script `create_dmg.sh` to handle the DMG creation for SasView on macOS.
- Updated CI workflow to use the new script and install `dmgbuild` via pip.
- Added necessary background image and settings for the DMG layout.

* Updated installer generator file

* Updated arrow position

* Resized image to match icons

* Simplified background and arrow

* Small adjustements

* Adding text to background image

* Fixing background image

* Updated images

* Syncing big and small images

* Handle encoding issues in loading credits.html (#4015)

Closes: #4013

* Update release numbers for beta 2

* Update dependency versions

* Updates release notes

---------

Co-authored-by: Paul Kienzle <paul.kienzle@nist.gov>
Co-authored-by: Paul Kienzle <pkienzle@nist.gov>
Co-authored-by: Sara Mokhtari <smokhtari@insa-toulouse.fr>
Co-authored-by: Jeff Krzywon <krzywon@yahoo.com>
Co-authored-by: Stuart Prescott <llimeht@users.noreply.github.com>
Co-authored-by: ChristianWoegerbauer <christian.woegerbauer@tum.de>
Co-authored-by: Christian Wögerbauer <christian.woegerbauer@gmx.de>
Co-authored-by: Paul Sharp <44529197+DrPaulSharp@users.noreply.github.com>
Co-authored-by: Dirk Honecker <dirk.honecker@stfc.ac.uk>
Co-authored-by: Wojciech Potrzebowski <wojtek.potrzebowski@scilifelab.se>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants