Skip to content

Releases: eoyilmaz/displaycal-py3

Nightly Builds

28 Feb 01:36

Choose a tag to compare

Nightly Builds Pre-release
Pre-release

Nightly builds are now fully functional 👍

For now we have builds for macOS and Windows. Hopefully Linux RPM and DEB packages will follow soon...

As usual, this builds capture the latest development version (develop branch) and will contain fixes introduced on top of the latest release... and most probably will have bugs too.

Warning

In MacOS, after installing DisplayCAL you need to run the following in Terminal:

sudo xattr -dr com.apple.quarantine /Applications/DisplayCAL

3.9.17

11 Sep 10:48

Choose a tag to compare

Warning

In MacOS, after installing DisplayCAL you need to run the following in Terminal:

xattr -dr com.apple.quarantine /Applications/DisplayCAL.app

Release Notes

  • [ALL] Added support for ArgyllCMS 3.4.0+ in regards of the update on the observer names of CIE 2012 2° and CIE 2012 10° being CIE 2015 2° and CIE 2015 10°. Depending on the ArgyllCMS version the old names are still going to be accessible through the UI.
  • [ALL] Fixed an issue related to the black point correction being applied even if it is disabled introduced in DisplayCAL 3.9.15.
  • [ALL] Fixed dispread arguments not being added to argument list by @Anulap
  • [ALL] Fixed unnecessary argument quoting in DisplayCAL.wexpect.spawn_windows.__init__() by @eoyilmaz
  • [ALL] Fixed IndexError in a string formatting in DisplayCAL.worker by @vastunghia
  • [Windows] Fixed the issues related with displays with scaling value more than 150%, where DisplayCAL errors out on startup by @eoyilmaz
  • [Windows] Fixed Profile Loader "Identify Monitor" and "Exceptions" dialog crash by @Anulap
  • [Windows] Fexed output level reporting for and some other issues related to madVR by @eoyilmaz

What's Changed

New Contributors

Full Changelog: 3.9.16...3.9.17

3.9.16

04 May 16:29

Choose a tag to compare

Warning

Under Windows do not set your display scaling to anything higher than 150% or DisplayCAL will not start.

This has now been fixed in the development version.

Warning

In MacOS, after installing DisplayCAL you need to run the following in Terminal:

xattr -dr com.apple.quarantine /Applications/DisplayCAL.app

Release Notes

  • [Windows] Fixed the WPARAM error message on the Profile Loader.
  • [Windows] Fixed the wxAnyButton::doSetBitmap() related error message that occured on startup.
  • [Windows] Fixed ArgyllCMS USB device driver installation procedure.
  • [Windows] Fixed RecursionError: maximum recursion depth exceeded error which originated to DisplayCAL.taskscheduler.Task.__str__() method.
  • [macOS] Fixed the shifted gamma of the screen captured background of the splash screen or made it a better than before.
  • [Linux] Made it clear that the logged exception is for a handled exception in DisplayCAL.worker.Worker.exec_cmd() related to DBus.
  • [Linux] Fixed tests running on linux + arm64.
  • [ALL] Dropped Python 3.8 support as it has reached end-of-life on October 2024.
  • [ALL] Removed residual code and dependencies required for Python 2 support (six, enum34 etc.).
  • [ALL] Added tests for wxPython=4.2.3 on all platforms.
  • [ALL] Update recommended wxPython version to 4.2.0 to get rig of the messages saying 4.2.1 is not supported anymore, which is not true.
  • [ALL] Fixed many string formatting issues introduced with 3.9.15.
  • [ALL] Fixed DisplayCAL.icc_profile.ICCProfile.load()when all the data has already been read.
  • [ALL] Fixed AttributeError: NoneType object has no attribute 'listening' error originated to DisplayCAL.wxwindows.BaseApp.query_and_session() method.
  • [ALL] Fixed DisplayCAL.icc_profileICCProfile.get_info() to correctly identify the white point illuminant tag for the key wtpt.
  • [ALL] Added the PVA term in any tech names that mentions VPA in display.tech section for all language files to match ArgyllCMS tech names output.
  • [ALL] Replaced the locale.getdefaultlocale() call in DisplayCAL.config with locale.getlocale() as the original function is getting deprecated in Python 3.9.15.
  • [ALL] Moved most of the ArgyllCMS related utility functions from DisplayCAL.worker to DisplayCAL.argyll.
  • [ALL] Updated DisplayCAL.argyll.get_argyll_version_string() to first try to get the ArgyllCMS version from the log.txt instead of running any utility functions to make it run faster, especially under macOS. It will fallback to the normal method if it can't retrieve the version from the log.txt.
  • [ALL] Renamed a couple of the modules to comply with PEP8 rules:
    • DisplayCAL.ICCProfile is now DisplayCAL.icc_profile.
    • DisplayCAL.CATS is now DisplayCAL.cats.
  • [ALL] Capitalized the enum variables in `DisplayCAL.icc_profile module.
  • [ALL] Fixed the generation and display of the meta.prefix tag of the ICCProfile.
  • [ALL] Fixed DisplayCAL.worker_base.Xicclu.close() to properly handle error output as bytes.
  • [ALL] Added tox as a development requirement.
  • [ALL] Updated the build target in make workflow to use uv.
  • [ALL] Fix update_menus() and install_argyll_instrument_conf() method of DisplayCAL.display_cal.MainFrame class.
  • [ALL] Rename package from DisplayCAL to displaycal in pyproject.toml to comply with PyPI naming conventions.

What's Changed

New Contributors

Full Changelog: 3.9.15...3.9.16

3.9.15

02 Apr 19:08

Choose a tag to compare

WARNING

In MacOS, after installining DisplayCAL you need to run:

xattr -dr com.apple.quarantine /Applications/DisplayCAL.app

Release Notes

Big Items:

  • Windows version should now work without a major issue. So, the previous problems about not being able to run ArgyllCMS executables has been resolved, and paths containing empty spaces are handled correctly.
  • The dependency to the RealDisplaySizeMM has been removed. So DisplayCAL doesn't require any C-Extensions to be compiled and this makes it easier to install on different OSes.
  • Added CI GitHub workflow for Windows.
  • Lots of code refactoring and cleanup many thanks to @oldgithubman for their hard work.
  • As it was getting harder to test for wxPython 4.1.1, the minimum wxPython version that we test DisplayCAL with has been upgraded to 4.2.0.
  • CI GitHub tests run much faster under Linux (45-50 minutes vs 6-7 minutes) now as the tests are now using the pre-compiled wheels from wxPython website.
  • Updated DisplayCAL.lib.agw from 0.9.1 to 0.9.7 from wx.lib.agw and introduced a lot of code refactoring and TypeHints on top of the original source.
  • DisplayCAL development is now using the Rust tools for package management and linting. So, uv is the main package manager instead of pip and ruff replaces black and flake8.
  • Removed setup.cfg, DisplayCAL is now fully using pyproject.toml for configuration. Unfortunately, we are still depending on the setup.py.

Auto Generated Notes

New Contributors

Full Changelog: 3.9.14...3.9.15

3.9.14

16 Oct 00:23

Choose a tag to compare

WARNING

In Windows install DisplayCAL under C:\DisplayCAL instead of C:\Program Files\DisplayCAL. There seems to be an issue if the path contains empty spaces.

WARNING

In MacOS, after installining DisplayCAL you need to run:

xattr -dr com.apple.quarantine /Applications/DisplayCAL.app

Release Notes

Big Items:

  • Added MacOS package along with the updated Windows Installer (see the Warning above).
  • Added Python 3.13 support for Linux/MacOS. Windows will support Python 3.8-3.11 for now.
  • Fixed Ubuntu installation errors complaining about missing files.
  • Fixed fail to open calibrate window under Debian.
  • Updated default ArgyllCMS to 3.3.0 and latest version of ArgyllCMS will be parsed through www.argyllcms.com.
  • Improved/added numPy 2.0 compatibility.
  • Under MacOS it is now possible to install the profile system-wide (fixing lock/unlock profile shifts on XDR displays, logout/login is still problematic).

Auto Generated Notes

New Contributors

Full Changelog: 3.9.13...3.9.14

3.9.13

10 Oct 11:33

Choose a tag to compare

Release Notes

This release introduces lots of fixes, especially for Windows. The big items are:

  • We now have a Windows Installer. It might not fully work out of the box as we had very limited testing with both the installer and the frozen executables.
  • Updated installation instructions with a cleaner and more understandable format for all OSes.
  • Python 3.12 should now work fine under Linux and MacOS with wxPython 4.2.2. But, Windows is still problematic.
  • Updated default config so that the default profile name doesn't contain any empty spaces.
  • Updated Argyll CMS from V3.1.0 to V3.2.0 (v3.3.0 is already released, so it is left to the users to download).
  • And lots of fixes here and there, check the full changelog for details.

New Contributors

PyPI: https://pypi.org/project/DisplayCAL/3.9.13/
Full Changelog: 3.9.12...3.9.13

3.9.12

19 Mar 22:39
2c67f1c

Choose a tag to compare

Release Notes

This release introduces lots of old and new, small and big bug fixes. Some notable changes are:

  • Made improvements to Windows and MacOS builds.
  • Fixed Resolve patch generator.
  • Fixed ArgyllCMS download function.
  • Fixed MacOS menu disappearing after measurement window is shown.
  • Pipx should now be able locate lang files.
  • Fixed setup tools fail on upgrade for nixpkgs.
  • Fix Windows build and runtime on Python 3.11.4.
  • Fixed lock file mishandling on Windows.
  • Allow py2app to build a MacOS app
  • Implemented a stable sort_by_L which falls back to a then b sort if L is equal.

PyPI: https://pypi.org/project/DisplayCAL/3.9.12/

Contributions

This release's contributers are: Erkan Ozgur Yilmaz, Radosław Szkodziński, Vladislav Sharapov, Matt Khan, Patrick Zwerschke

Changes per contributor are as follows:

Erkan Ozgur Yilmaz

  • Fixed #282 (not a real fix but an improvement).
  • Fixed #283
  • Fixed #61
  • Fixed #302
  • Fixed a regular expression in DisplayCAL.worker module that might be the root cause of #302.
  • Updated utils.patch_consumer so it stays on top.
  • Optimized the utils.patch_consumer so that it uses 16bit colors (but the style sheet uses 8bit).
  • Added utils.patch_consumer to test Resolve patch generator.
  • Added help make target that displays all available targets.
  • Fix for DisplayCAL.worker_base.parse_argyll_version_string() when the input is a bytes object.
  • Fixed BorderGradientButton style for MacOS, which is used as the main button ("Calibrate & Profile" etc.).
  • Updated the term "Authentification" to a more common one of "Authentication".
  • Fixed #291
  • Fixed #303
  • Fixed #137
  • Fixed #310
  • [#318] Fixed a bug that is causing one empty line getting printed after each command output. The output is now better matching vanilla Argyll outputs.
  • [#318] Fixed display_cal.MeasurementFileCheckSanityDialog for python 3.11+.
  • [#318] Fixed StartupFrame test for MacOS.
  • [#318] Introduced some quality of life improvements.
  • [#318] Added {pydir}/share to data dirs.
  • [#320] Did some unnecessary formatting updates while searching for a possible bug.
  • Fixed #271
  • #261 setuptools build fails on upgrade for nixpkgs (#272)
  • Updated Makefile workflow, it should now be easier to build/install/run DisplayCAL.
  • Fixed "Manually Setup" section link.
  • Update Makefile
  • Updated Makefile new-release target to use the VERSION variable for the twine command.

Radosław Szkodziński

  • Fix Windows build and runtime on Python 3.11.4 (#312)
  • Fixes:
    • Runtime on Python 3.11
    • Setuptools, tested with 3.11.4
    • Missing pywin32 dependency
    • Lock file mishandling on Windows
    • Fix a mistake in version handling code

Vladislav Sharapov

  • allow py2app to build a MacOS app (#277)
  • Remove commented out block

Matt Khan

  • untethered mode should take multiple white point measurements at the start and should only update the specific sample not all samples with the same RGB
  • fix for #276 (#278)
    • correct bad string/bytes comparison which was preventing correction of gamma applied to a measurement report
    • workaround apparent wx regression with honouring hidden when set in xrc document #276
  • reformat using black
  • Make maximise lightness diff sort stable
  • minor code cleanup following pr comments
  • implement a stable sort_by_L which falls back to a then b sort if L is equal
  • demonstration of sort problem
  • fix python3 (str/bytes) compatibility errors in untethered mode
  • fix py3 compatibility problems in madtpg net
  • csvwriter requires w mode in python3
  • make sure measurement data is copied to the joined output, fixes #224
  • further py2-3 migration fixes around byte handling when handling madvr 3dlut
  • fix python3 (str/bytes) compatibility errors in untethered mode

Patrick Zwerschke

  • updated test workflow
  • removed manual install of attrdict3 from workflow
  • removed libreadline-gplv2-dev from packages.list
  • updated test workflow to wxpython-4.2.1
  • removed unnecessary wxpython-4.2.0 requirement (attrdict3)
  • updated workflow to accommodate new branch restrictions

3.9.11

05 Jun 17:23

Choose a tag to compare

Release Notes

The release notes will updated properly in the future. You can use the commit messages to deduce the information.

Contributions

Erkan Ozgur Yilmaz
- Fixed new-release target in Makefile to do a pull before merging the develop branch.
- Fixed main branch name in Makefile.
- Updated Makefile to introduce new targets.
- Updated string formatting on several places in wxProfileInfo.
- Fixed colorimeter_correction_web_check_choose() to work properly for fractional scale.

Patrick Zwerschke
- Revert "fix #231 (#237)" (#239)
- This reverts commit 59c456c that accidentally was pushed to main branch
- Updated actions to use Node.js 16 (#220)
- updated restrictions for max python version to run with python 3.11 (#217)
- Update test workflow for python 3.11 (#215)
- added python 3.11 to test workflow
- catch FileNotFoundError in module defaultpaths

Matt Khan
- allow untethered window to open

Hubert Figuière
- Fix appdata to validate for flathub (#253)
- Fix appdata to validate for flathub

filmmakerto
- fix #231 (#240)
- Fixes #231
- fix #231 (#237)

James Addison
- Cleanup: remove no-longer-referenced get_known_folder_path, UserDirs class (#227)
- Cleanup: remove no-longer-referenced defaultpaths.get_known_folder_path method, and associated UserDirs class

sdy623
- Add feature: Add a gamut coverage information in Profile Information page

stativ
- Fix incorect bytes and string comparison when reading a .ti3 file (#221)

3.9.10

21 Nov 23:15

Choose a tag to compare

There was an error with setup.py preventing DisplayCAL to be installed on Linux systems (macOS was working fine), thus released a new version 3.9.10.

3.9.9

20 Nov 23:49

Choose a tag to compare

After waiting for more than 2 months since the last one (sorry about that), we now have a new release. Hopefuly the next release will not be that long away.

We have quite a bit of contribution, so I'll list changes grouped by the contributers.

Erkan Ozgur Yilmaz:

  • Fixed #146.
  • Fixed #162.
  • Updated requirement.txt and setup.cfg to only install dbus-python on Linux systems.
  • Updated README file as the MacOS instruction was not correct.
  • Fixed a small bytes getting concatenated with a str error in DisplayCAL.wxCCXXPlot.CCXXPlot class.
  • Fixed #185.
  • Fixes #194.
  • Updated util_http.encode_multipart_formdata() to generate bytes data instead of str.
  • Fixed util_http.get_content_type() to handle bytes input.
  • Fixed DisplayCAL.ICCProfile.DictType.to_json() to use a proper JSONEncoder and fixed the bad escape \u at position 0 error thrown by the re module.
  • Possible bug fix in DisplayCAL.wxSynthICCFrame.SynthICCFrame.icc_drop_handler() for checking the given profile.colorSpace against bytes values.
  • Fixed #179.
  • Updated .gitignore file to ignore any compiled library under the DisplayCAL/lib64/pythonXXX folders.

Patrick Zwerschke:

  • Reverted a change and fixed bug mentioned in #154.
  • Fixed drawing of tabs.

Krul Ceter:

  • RealDisplaySizeMM.c: fix error handling
  • fix setuptools module in DisplayCAL/setup.py (This one is reverted!)
  • fix deprecated "codeset" in gettext.translation() for python 3.11

François-Xavier Thomas:

  • Fix 3DLUT generation (ICCProfile class expected bytes, but got str in some cases).
  • Add exception tracebacks inside workers when displaycal is run with -d1.

ledoge:

  • More ICC parsing fixes.
  • Clip parametricCurveType values
  • Fix error on parsing ICC profiles
  • Fix typos in observer names