Skip to content

Handle encoding issues in loading credits.html#4015

Merged
jellybean2004 merged 1 commit into
SasView:release_6.2.0from
llimeht:tmp/credits-encoding
Jul 9, 2026
Merged

Handle encoding issues in loading credits.html#4015
jellybean2004 merged 1 commit into
SasView:release_6.2.0from
llimeht:tmp/credits-encoding

Conversation

@llimeht

@llimeht llimeht commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Description

Be defensive against non-UTF-8 chars that can creep into credits.html since it is compiled from lots of different sources, and force use of UTF-8 since the file should already be UTF-8 via pip-licenses and build_tools/compile_licenses.py.

This PR

  • forces use of UTF-8 for credits.html since that is what it should be, working around the on-going obsession windows has with cp1252 (as spotted in the traceback in Credits and Licences throws error #4013) ... bring on Python 3.15 for that to finally change.
  • makes reading credits.html robust against malformed data by using replacement characters where it needs to, in order to ensure it can decode from UTF-8.
  • switches loading credits.html to the established code path within system.legal
  • fixes a latent bug in the credits_html function (function is not used elsewhere in the code bae)

Fixes #4013

How Has This Been Tested?

Tested locally on linux (but note that this is a windows-specific bug due to it still using cp1252):

. .venv/bin/activate
python build_tools/compile_licenses.py src/sas/system/credits.html
sasview

Have not tested from the installer because generating installer images has been disabled in CI.

Note that unrelated failing test on linux is #4000 which is waiting for PRs to be merged to fix.

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)

@krzywon krzywon 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.

Code looks good. Seems like this should help to fix the issue, but I haven't tested.

@DrPaulSharp

Copy link
Copy Markdown
Contributor

I've had a try with this, using the test suggested above. On Windows I'm getting a pip-licenses error (subprocess.CalledProcessError: Command '['pip-licenses', '--format=json', '--with-system', '--with-authors', '--with-license-file']' returned non-zero exit status 1.). Is there a change that needs to be made for the test to work?

@llimeht

llimeht commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

It can also be tested from the installer on windows since pip-licenses had done it's work on CI.

Alternatively running pip-licenses on windows with a flag to force utf8 should work - perhaps -X utf8?

@DrPaulSharp DrPaulSharp 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.

Testing with the installer shows the content for all packages, rather than just sasdata, sasmodels, and sasview on main.

@jellybean2004

Copy link
Copy Markdown
Member

Merging now to put into beta 2

@jellybean2004 jellybean2004 merged commit 24016b8 into SasView:release_6.2.0 Jul 9, 2026
21 of 24 checks passed
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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants