Repository navigation
Release Pillow 6.0.0 on April 1, 2019 #3618
Description
Activity
- pinned this issue
on Feb 18, 2019 - I've created PR MIME type and TIFF compression codec release notes #3742 for with release notes for Add TIFF compression codecs: LZMA, Zstd, WebP #3555 and Added PPM mime types #3688.
- Regarding Added support for I;16 modes for more transpose operations #3563, I've created Added support for I;16 modes for remaining transpose operations #3741 as an update for this, so I'd like to see if that is merged before writing release notes.
- I don't think that Do not resize in Image.thumbnail if already the destination size #3632 needs release notes, as that's a minor internal speedup, with no other change for users.
Reacted by Hugo van Kemenade, Jeffrey 'Alex' Clark and AntonioAlmost time for Pillow 6!! 🎉
Reacted by Jeffrey 'Alex' Clark, Hugo van Kemenade and AntonioOkay, @cgohlke, if you would be able to create Windows binaries?
I do get a reproducible access violation fault on Python 3.x, e.g.:
================================================= test session starts ================================================= platform win32 -- Python 3.6.8, pytest-4.4.0, py-1.8.0, pluggy-0.9.0 -- X:\Python36\python.exe cachedir: .pytest_cache hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('D:\\Build\\Pillow\\Pillow-6.0.0\\.hypothesis\\examples') rootdir: D:\Build\Pillow\Pillow-6.0.0 plugins: xdist-1.27.0, pep8-1.0.6, forked-1.0.2, faulthandler-1.5.0, cov-2.6.1, palladium-1.2.1.1, hypothesis-4.14.0 collected 1316 items Tests/test_000_sanity.py::TestSanity::test_sanity PASSED [ 0%] Tests/test_binary.py::TestBinary::test_big_endian PASSED [ 0%] <snip> Tests/test_image_convert.py::TestImageConvert::test_rgba_p PASSED [ 54%] Tests/test_image_convert.py::TestImageConvert::test_sanity Windows fatal exception: access violation Current thread 0x0000470c (most recent call first): File "X:\Python36\lib\site-packages\PIL\Image.py", line 1027 in convert File "D:\Build\Pillow\Pillow-6.0.0\Tests\test_image_convert.py", line 11 in convert File "D:\Build\Pillow\Pillow-6.0.0\Tests\test_image_convert.py", line 21 in test_sanity File "X:\Python36\lib\unittest\case.py", line 605 in run File "D:\Build\Pillow\Pillow-6.0.0\Tests\helper.py", line 58 in run File "X:\Python36\lib\unittest\case.py", line 653 in __call__ File "X:\Python36\lib\site-packages\_pytest\unittest.py", line 221 in runtest File "X:\Python36\lib\site-packages\_pytest\runner.py", line 123 in pytest_runtest_call File "X:\Python36\lib\site-packages\pluggy\callers.py", line 187 in _multicall File "X:\Python36\lib\site-packages\pluggy\manager.py", line 62 in <lambda> File "X:\Python36\lib\site-packages\pluggy\manager.py", line 68 in _hookexec File "X:\Python36\lib\site-packages\pluggy\hooks.py", line 289 in __call__ File "X:\Python36\lib\site-packages\_pytest\runner.py", line 198 in <lambda> File "X:\Python36\lib\site-packages\_pytest\runner.py", line 226 in from_call File "X:\Python36\lib\site-packages\_pytest\runner.py", line 198 in call_runtest_hook File "X:\Python36\lib\site-packages\_pytest\runner.py", line 173 in call_and_report File "X:\Python36\lib\site-packages\_pytest\runner.py", line 93 in runtestprotocol File "X:\Python36\lib\site-packages\_pytest\runner.py", line 78 in pytest_runtest_protocol File "X:\Python36\lib\site-packages\pluggy\callers.py", line 187 in _multicall File "X:\Python36\lib\site-packages\pluggy\manager.py", line 62 in <lambda> File "X:\Python36\lib\site-packages\pluggy\manager.py", line 68 in _hookexec File "X:\Python36\lib\site-packages\pluggy\hooks.py", line 289 in __call__ File "X:\Python36\lib\site-packages\_pytest\main.py", line 270 in pytest_runtestloop File "X:\Python36\lib\site-packages\pluggy\callers.py", line 187 in _multicall File "X:\Python36\lib\site-packages\pluggy\manager.py", line 62 in <lambda> File "X:\Python36\lib\site-packages\pluggy\manager.py", line 68 in _hookexec File "X:\Python36\lib\site-packages\pluggy\hooks.py", line 289 in __call__ File "X:\Python36\lib\site-packages\_pytest\main.py", line 249 in _main File "X:\Python36\lib\site-packages\_pytest\main.py", line 209 in wrap_session File "X:\Python36\lib\site-packages\_pytest\main.py", line 242 in pytest_cmdline_main File "X:\Python36\lib\site-packages\pluggy\callers.py", line 187 in _multicall File "X:\Python36\lib\site-packages\pluggy\manager.py", line 62 in <lambda> File "X:\Python36\lib\site-packages\pluggy\manager.py", line 68 in _hookexec File "X:\Python36\lib\site-packages\pluggy\hooks.py", line 289 in __call__ File "X:\Python36\lib\site-packages\_pytest\config\__init__.py", line 79 in main File "X:\Python36\lib\site-packages\pytest.py", line 89 in <module> File "X:\Python36\lib\runpy.py", line 85 in _run_code File "X:\Python36\lib\runpy.py", line 193 in _run_module_as_maintest_sanitypasses when removing the"PA"mode from the matrix.Then there's another segfault later:
Tests/test_qt_image_fromqpixmap.py::TestFromQPixmap::test_sanity_1 PASSED [ 98%] Tests/test_qt_image_fromqpixmap.py::TestFromQPixmap::test_sanity_l PASSED [ 98%] Tests/test_qt_image_fromqpixmap.py::TestFromQPixmap::test_sanity_p PASSED [ 98%] Tests/test_qt_image_fromqpixmap.py::TestFromQPixmap::test_sanity_rgb PASSED [ 98%] Tests/test_qt_image_fromqpixmap.py::TestFromQPixmap::test_sanity_rgba PASSED [ 98%]Windows fatal exception: access violation Current thread 0x00004344 (most recent call first): File "X:\Python37\lib\site-packages\_pytest\runner.py", line 305 in _callfinalizers File "X:\Python37\lib\site-packages\_pytest\runner.py", line 315 in _teardown_with_finalization File "X:\Python37\lib\site-packages\_pytest\runner.py", line 297 in _pop_and_teardown File "X:\Python37\lib\site-packages\_pytest\runner.py", line 340 in _teardown_towards File "X:\Python37\lib\site-packages\_pytest\runner.py", line 332 in teardown_exact File "X:\Python37\lib\site-packages\_pytest\runner.py", line 137 in pytest_runtest_teardown File "X:\Python37\lib\site-packages\pluggy\callers.py", line 187 in _multicall File "X:\Python37\lib\site-packages\pluggy\manager.py", line 62 in <lambda> File "X:\Python37\lib\site-packages\pluggy\manager.py", line 68 in _hookexec File "X:\Python37\lib\site-packages\pluggy\hooks.py", line 289 in __call__ File "X:\Python37\lib\site-packages\_pytest\runner.py", line 198 in <lambda> File "X:\Python37\lib\site-packages\_pytest\runner.py", line 226 in from_call File "X:\Python37\lib\site-packages\_pytest\runner.py", line 198 in call_runtest_hook File "X:\Python37\lib\site-packages\_pytest\runner.py", line 173 in call_and_report File "X:\Python37\lib\site-packages\_pytest\runner.py", line 94 in runtestprotocol File "X:\Python37\lib\site-packages\_pytest\runner.py", line 78 in pytest_runtest_protocol File "X:\Python37\lib\site-packages\pluggy\callers.py", line 187 in _multicall File "X:\Python37\lib\site-packages\pluggy\manager.py", line 62 in <lambda> File "X:\Python37\lib\site-packages\pluggy\manager.py", line 68 in _hookexec File "X:\Python37\lib\site-packages\pluggy\hooks.py", line 289 in __call__ File "X:\Python37\lib\site-packages\_pytest\main.py", line 270 in pytest_runtestloop File "X:\Python37\lib\site-packages\pluggy\callers.py", line 187 in _multicall File "X:\Python37\lib\site-packages\pluggy\manager.py", line 62 in <lambda> File "X:\Python37\lib\site-packages\pluggy\manager.py", line 68 in _hookexec File "X:\Python37\lib\site-packages\pluggy\hooks.py", line 289 in __call__ File "X:\Python37\lib\site-packages\_pytest\main.py", line 249 in _main File "X:\Python37\lib\site-packages\_pytest\main.py", line 209 in wrap_session File "X:\Python37\lib\site-packages\_pytest\main.py", line 242 in pytest_cmdline_main File "X:\Python37\lib\site-packages\pluggy\callers.py", line 187 in _multicall File "X:\Python37\lib\site-packages\pluggy\manager.py", line 62 in <lambda> File "X:\Python37\lib\site-packages\pluggy\manager.py", line 68 in _hookexec File "X:\Python37\lib\site-packages\pluggy\hooks.py", line 289 in __call__ File "X:\Python37\lib\site-packages\_pytest\config\__init__.py", line 79 in main File "X:\Python37\lib\site-packages\pytest.py", line 89 in <module> File "X:\Python37\lib\runpy.py", line 85 in _run_code File "X:\Python37\lib\runpy.py", line 193 in _run_module_as_mainAny ideas why these aren't showing up on AppVeyor?
Any ideas why these aren't showing up on AppVeyor?
I have heap verification enabled and Qt installed during testing.
The conversion P -> PA crashes at Convert.c#L986. I have not noticed this before because this is relatively recent code added in #3728.
> _imaging.cp37-win_amd64.pyd!p2pa(unsigned char * out=0x000001682941db80, const unsigned char * in=0x000001682938a000, int xsize=128, const unsigned char * palette=0x000001682938bbe7) Line 986 C _imaging.cp37-win_amd64.pyd!frompalette(ImagingMemoryInstance * imOut=0x0000016829405fa0, ImagingMemoryInstance * imIn=0x000001682937dfa0, const char * mode=0x000001682745bd80) Line 1179 C _imaging.cp37-win_amd64.pyd!convert(ImagingMemoryInstance * imOut=0x0000000000000000, ImagingMemoryInstance * imIn=0x000001682937dfa0, const char * mode=0x000001682745bd80, ImagingPaletteInstance * palette=0x0000000000000000, int dither=3) Line 1467 C _imaging.cp37-win_amd64.pyd!ImagingConvert(ImagingMemoryInstance * imIn=0x000001682937dfa0, const char * mode=0x000001682745bd80, ImagingPaletteInstance * palette=0x0000000000000000, int dither=3) Line 1517 C _imaging.cp37-win_amd64.pyd!_convert(ImagingObject * self=0x0000016829679fd0, _object * args=0x00000168296d90c8) Line 921 C python37.dll!_PyMethodDef_RawFastCallKeywords(PyMethodDef * method=0x0000000000000000, _object * self=0x0000016829679fd0, _object * const * args=0x0000016828dedfb0, __int64 nargs=2, _object * kwnames) Line 694 C [Inline Frame] python37.dll!_PyMethodDescr_FastCallKeywords(_object *) Line 288 C python37.dll!call_function(_object * * * pp_stack=0x00000022087eeff8, __int64 oparg, _object * kwnames=0x0000000000000000) Line 4593 C python37.dll!_PyEval_EvalFrameDefault(_frame * f=0x0000016828dedda8, int throwflag=694656976) Line 3111 C [Inline Frame] python37.dll!PyEval_EvalFrameEx(_frame *) Line 547 C| Name | Value | Type -- | -- | -- | -- ◢ | in | 0x000001682938a000 <Error reading characters of string.> | const unsigned char * | | <Unable to read memory> | const unsigned char ◢ | out | 0x000001682941db80 "ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ... | unsigned char * | | 192 'À' | unsigned char ◢ | palette | 0x000001682938bbe7 "" | const unsigned char * | | 0 '\0' | const unsigned char ◢ | rgba | 0x000001682938bcbb "333ÿf33ÿ™33ÿÌ33ÿÿ33ÿ" | const unsigned char * | | 51 '3' | const unsigned char | x | 96 | int | xsize | 128 | int@cgohlke could you try https://github.com/python-pillow/Pillow/tree/segfault and see if that fixes those two problems?
could you try https://github.com/python-pillow/Pillow/tree/segfault and see if that fixes those two problems?
Thanks. That works. All tests pass.
Excellent, thanks. That commit is now part of the release, so if you would be so kind as to generate the binaries again?
Thanks @cgohlke. Okay, Pillow 6.0.0 is released.
Reacted by Hugo van Kemenade, Antonio and Jeffrey 'Alex' ClarkReacted by Hugo van KemenadeThanks both!
We should also get heap verification and Qt on a Windows builds to detect these things earlier.
Great work all, thank you!!
New Pillow 6.0.0 leads to AttributeError on our test environment with Python 3.4.1See
- https://ci.appveyor.com/project/Ladsgroup/pywikibot-g4xqx/builds/23537936/job/19nogq3samfpjsui
https://phabricator.wikimedia.org/T220105
I see, Python 3.4 support was dropped with this release.
Reacted by Hugo van Kemenade and Jeffrey 'Alex' Clark- unpinned this issue
on Apr 10, 2019
Release notes needed:
Do not resize in Image.thumbnail if already the destination size #3632?Main release checklist
masterbranch.masterbranch.src/PIL/_version.pyCHANGES.rst.make release-testin a freshly cloned repo.twine upload dist/Pillow-6.0.0-*.dev0to version identifier insrc/PIL/_version.pyBinary Distributions
Windows
@cgohlkefor Windows binaries via release ticket e.g. Release 2.9.0 on July 1, 2015 #1174.@cgohlkeandtwine upload *.Mac and Linux
git clone https://github.com/python-pillow/pillow-wheels cd pillow-wheels ./update-pillow-tag.sh 6.0.0wget -m -A 'Pillow-6.0.0*' \ http://a365fff413fe338398b6-1c8a9b3114517dc5fe17b7c3f8c63a43.r19.cf2.rackcdn.comPublicize Release
Documentation
6.0.0rather thanlateste.g. https://pillow.readthedocs.io/en/6.0.x/