Releases: eoyilmaz/displaycal-py3
Nightly Builds
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/DisplayCAL3.9.17
Warning
In MacOS, after installing DisplayCAL you need to run the following in Terminal:
xattr -dr com.apple.quarantine /Applications/DisplayCAL.appRelease 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
dispreadarguments not being added to argument list by @Anulap - [ALL] Fixed unnecessary argument quoting in
DisplayCAL.wexpect.spawn_windows.__init__()by @eoyilmaz - [ALL] Fixed
IndexErrorin a string formatting inDisplayCAL.workerby @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
- 556 update osx install instructions by @eoyilmaz in #558
- 553 anybutton error by @eoyilmaz in #559
- Windows specific fixes for various feature by @Anulap in #579
- 580 a bytes like object is required not int when trying to verify with colormunki by @eoyilmaz in #582
- Fix issue #577 by @vastunghia in #589
- 585 displaycal can not start after first install by @eoyilmaz in #598
- [#583] Added support for the new names given for the CIE 2012 2° and … by @eoyilmaz in #599
- [#570] Fix for #570. Removed the skipping of the
-bparameter in `D… by @eoyilmaz in #600
New Contributors
- @Anulap made their first contribution in #579
- @vastunghia made their first contribution in #589
Full Changelog: 3.9.16...3.9.17
3.9.16
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.appRelease Notes
- [Windows] Fixed the
WPARAMerror 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 exceedederror which originated toDisplayCAL.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,enum34etc.). - [ALL] Added tests for
wxPython=4.2.3on all platforms. - [ALL] Update recommended
wxPythonversion to4.2.0to get rig of the messages saying4.2.1is 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 toDisplayCAL.wxwindows.BaseApp.query_and_session()method. - [ALL] Fixed
DisplayCAL.icc_profileICCProfile.get_info()to correctly identify the white point illuminant tag for the keywtpt. - [ALL] Added the
PVAterm in any tech names that mentionsVPAindisplay.techsection for all language files to match ArgyllCMS tech names output. - [ALL] Replaced the
locale.getdefaultlocale()call inDisplayCAL.configwithlocale.getlocale()as the original function is getting deprecated in Python 3.9.15. - [ALL] Moved most of the ArgyllCMS related utility functions from
DisplayCAL.workertoDisplayCAL.argyll. - [ALL] Updated
DisplayCAL.argyll.get_argyll_version_string()to first try to get the ArgyllCMS version from thelog.txtinstead 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 thelog.txt. - [ALL] Renamed a couple of the modules to comply with PEP8 rules:
DisplayCAL.ICCProfileis nowDisplayCAL.icc_profile.DisplayCAL.CATSis nowDisplayCAL.cats.
- [ALL] Capitalized the enum variables in `DisplayCAL.icc_profile module.
- [ALL] Fixed the generation and display of the
meta.prefixtag of theICCProfile. - [ALL] Fixed
DisplayCAL.worker_base.Xicclu.close()to properly handle error output asbytes. - [ALL] Added
toxas a development requirement. - [ALL] Updated the
buildtarget in make workflow to useuv. - [ALL] Fix
update_menus()andinstall_argyll_instrument_conf()method ofDisplayCAL.display_cal.MainFrameclass. - [ALL] Rename package from
DisplayCALtodisplaycalinpyproject.tomlto comply with PyPI naming conventions.
What's Changed
- [#501] Fixed #501 by @eoyilmaz in #504
- [#506] Fixed gamma of the background of the splash screen under macOS… by @eoyilmaz in #508
- 502 ccss creation with i1pro3 does not seem to work by @eoyilmaz in #505
- 509 error when extracting usb drivers from argyll archive by @eoyilmaz in #517
- [#515] Fixed #515. by @eoyilmaz in #518
- [#512] Fixed #512. by @eoyilmaz in #519
- Update install_instructions_macos.md by @amkdev in #523
- Fix typo by @bradyjoh in #529
- [#528] Fixed #528. by @eoyilmaz in #531
- [#484] Made it clear that the logged exception is for a handled excep… by @eoyilmaz in #532
- 455 displaycal 3914 for windows error when poweroff or restart compoter by @eoyilmaz in #534
- 514 profile loader 3915 minor errors wparam audio driver restart by @eoyilmaz in #533
- [#542] Fixed #542. by @eoyilmaz in #543
- [#546] Dropped Python 3.8 support. by @eoyilmaz in #547
- drop references to old "six" and "enum34" compat libraries by @a-detiste in #549
- trim leftover Python2 compatibility by @a-detiste in #550
- 536 collinkexe error write file 782 technology signature dcpj is unknown by @eoyilmaz in #544
New Contributors
- @amkdev made their first contribution in #523
- @bradyjoh made their first contribution in #529
- @a-detiste made their first contribution in #549
Full Changelog: 3.9.15...3.9.16
3.9.15
WARNING
In MacOS, after installining DisplayCAL you need to run:
xattr -dr com.apple.quarantine /Applications/DisplayCAL.appRelease 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
RealDisplaySizeMMhas 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.agwfrom0.9.1to0.9.7fromwx.lib.agwand 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,
uvis the main package manager instead ofpipandruffreplacesblackandflake8. - Removed
setup.cfg, DisplayCAL is now fully usingpyproject.tomlfor configuration. Unfortunately, we are still depending on thesetup.py.
Auto Generated Notes
- Resolve broken reference to
wxenhancedplot._Numericby @Wedge009 in #430 - Update install instructions by @eoyilmaz in #433
- Fixed #67. by @eoyilmaz in #434
- Fix for #251 by @eoyilmaz in #439
- Update Readme to fix grammar, add new requirements to requirements-de… by @Adam-Color in #445
- Get rid of the realdisplaysizemm C-Extension by @eoyilmaz in #444
- General Refactoring and more TypeHints by @oldgithubman in #414
- Update install_instructions_linux.md by @aaronwi in #487
- Update install_instructions_linux.md by @MahmoudAdelbghany in #482
- A quick fix in the test chart editor by @ethanbrookins in #471
- Corrected a couple of misspellings. by @wadetregaskis in #497
- Additional fixes for #67 and #31 by @ethanbrookins in #470
- Further improvement and bugfixes for the colorimeter correction workflow by @ethanbrookins in #469
- Windows version can't start "dispread.exe" by @eoyilmaz in #499
New Contributors
- @Wedge009 made their first contribution in #430
- @Adam-Color made their first contribution in #445
- @oldgithubman made their first contribution in #414
- @aaronwi made their first contribution in #487
- @MahmoudAdelbghany made their first contribution in #482
- @wadetregaskis made their first contribution in #497
Full Changelog: 3.9.14...3.9.15
3.9.14
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.appRelease 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
- [#421] Added support for Python 3.13. by @eoyilmaz in #423
- Updated ArgyllCMS to 3.3.0 - by @parkatoast in #405
- The latest version number of ArgyllCMS will now be automatically updated by @ethanbrookins in #412
- Fixed encoding problems in wexpect for non cp1252 or utf-8 - by @eoyilmaz in #409
- Added NumPy 2.0 compatibility - by @nschloe in #408
- [#296] Fixed #296 - Can't install the profile after calibration ("sudo timeout") error - by @eoyilmaz in #429
- [#415] Fixed fail to open calibrate window under Debian - by @eoyilmaz in #419
- [#400] Disabled universal bdist whell creation - by @eoyilmaz in #420
- [#384] Fixed #384, added warning dialog for the user to know the ICC profile doesn't have a
targtag - by @eoyilmaz in #425 - Improve Simplified Chinese translation - by @Headcrabed in #426
- [#345] Fixed bug in Source Profile selection in Advanced Gamut Options dialog - by @eoyilmaz in #428
New Contributors
- @parkatoast made their first contribution in #405
- @nschloe made their first contribution in #408
- @Headcrabed made their first contribution in #426
Full Changelog: 3.9.13...3.9.14
3.9.13
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
- @ethanbrookins made their first contribution in #328
- @lunochod made their first contribution in #337
- @jelly made their first contribution in #360
- @rickdoesdev made their first contribution in #351
- @xz-dev made their first contribution in #380
PyPI: https://pypi.org/project/DisplayCAL/3.9.13/
Full Changelog: 3.9.12...3.9.13
3.9.12
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.workermodule that might be the root cause of #302. - Updated
utils.patch_consumerso it stays on top. - Optimized the
utils.patch_consumerso that it uses 16bit colors (but the style sheet uses 8bit). - Added
utils.patch_consumerto test Resolve patch generator. - Added
helpmake target that displays all available targets. - Fix for
DisplayCAL.worker_base.parse_argyll_version_string()when the input is abytesobject. - Fixed
BorderGradientButtonstyle 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.MeasurementFileCheckSanityDialogfor python 3.11+. - [#318] Fixed
StartupFrametest for MacOS. - [#318] Introduced some quality of life improvements.
- [#318] Added
{pydir}/shareto 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
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
3.9.9
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.txtandsetup.cfgto only installdbus-pythonon Linux systems. - Updated README file as the MacOS instruction was not correct.
- Fixed a small
bytesgetting concatenated with astrerror inDisplayCAL.wxCCXXPlot.CCXXPlotclass. - Fixed #185.
- Fixes #194.
- Updated
util_http.encode_multipart_formdata()to generatebytesdata instead ofstr. - Fixed
util_http.get_content_type()to handlebytesinput. - Fixed
DisplayCAL.ICCProfile.DictType.to_json()to use a properJSONEncoderand fixed thebad escape \u at position 0error thrown by theremodule. - Possible bug fix in
DisplayCAL.wxSynthICCFrame.SynthICCFrame.icc_drop_handler()for checking the givenprofile.colorSpaceagainstbytesvalues. - Fixed #179.
- Updated
.gitignorefile to ignore any compiled library under theDisplayCAL/lib64/pythonXXXfolders.
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