Needs release notes:
Released quarterly on January 2nd, April 1st, July 1st and October 15th.
master branch.master branch.src/PIL/_version.pyCHANGES.rst.make release-test in a freshly cloned repo.bash
git branch 5.2.x
git tag 5.2.0
git push --all
git push --tags
bash
make sdist
twine upload dist/Pillow-5.2.0*.dev0 to version identifier in src/PIL/_version.py@cgohlke for Windows binaries via release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174.@cgohlke and twine upload *.bash
git clone https://github.com/python-pillow/pillow-wheels
cd pillow-wheels
./update-pillow-tag.sh [[release tag]]
bash
wget -m -A 'Pillow-<VERSION>-*' \
http://a365fff413fe338398b6-1c8a9b3114517dc5fe17b7c3f8c63a43.r19.cf2.rackcdn.com
It looks like #4243 already has release notes: https://github.com/python-pillow/Pillow/pull/4243/files#diff-0c5b427c97dabcccc312ee49882ffb0c
Hi @cgohlke, please could we have Windows binaries for 7.2.0? Thank you!
Oops, I did the wrong one. I'll delete it and push the correct one.
Thanks, wrong 7.2.0 removed and 7.1.0 pushed.
Thanks! Downloaded, and all released!
https://github.com/python-pillow/Pillow/releases/tag/7.1.0
https://pypi.org/project/Pillow/7.1.0/
https://twitter.com/PythonPillow/status/1245384454614528007
Please could someone else pin it? I could tweet via Tweetdeck, but can't log in with the password I have to pin it.
Looks like we'll need a 7.1.1 for the https://github.com/python-pillow/Pillow/issues/4509 regression, fixed by https://github.com/python-pillow/Pillow/pull/4512.
Released as needed for security, installation or critical bug fixes.
master branch.CHANGES.rst.bash
git checkout -t remotes/origin/5.2.x
master branch to release branch e.g. 5.2.x.5.2.x.src/PIL/_version.pymake release-test.bash
git tag 5.2.1
git push --tags
bash
make sdist
twine upload dist/Pillow-5.2.1*@cgohlke for Windows binaries via release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174.@cgohlke and twine upload *.bash
git clone https://github.com/python-pillow/pillow-wheels
cd pillow-wheels
./update-pillow-tag.sh [[release tag]]
bash
wget -m -A 'Pillow-<VERSION>-*' \
http://a365fff413fe338398b6-1c8a9b3114517dc5fe17b7c3f8c63a43.r19.cf2.rackcdn.com
@cgohlke Hello again, please could we have Windows binaries for 7.1.1?
Downloaded, thanks!
Do we need a 7.1.2 for the https://github.com/python-pillow/Pillow/issues/4518 regression, fixed by https://github.com/python-pillow/Pillow/pull/4528?
Hmm "binary distributions" seems to have broken our packaging build. Sorry that I currently can't provide more detail as I need to do more digging later, but I'm going to have to pin 7.0.0 for now.
This is exactly the same problem when Psycopg2 2.7.x did this same move and so many people had trouble, they eventually had to release Psycopg2 2.8.x to "undo" this and have a separate binary release.
Not really too happy with this move, it always used to work.
Perhaps I need to do more digging and I'm misunderstanding this whole binary release thing, but something has changed with the included libz that dh_shlibdeps in our packaging is falling over on.
@robvdl There's not enough to go on there. Can you open a new issue, including details of what's failing, your platform and python version?
As we've had a nudge at https://github.com/python-pillow/Pillow/pull/4528#issuecomment-618694012 and looking at the issues linking to #4518 and #4528, there's a few projects blocked by the regression (eg. https://github.com/scikit-learn/scikit-learn/pull/16843), so let's do a new patch release.
I'll take care of it this weekend. (If I get time, I may do some of the initial commits today to check things are building.)
Released as needed for security, installation or critical bug fixes.
master branch.CHANGES.rst.bash
git checkout -t remotes/origin/5.2.x
[x] Cherry pick individual commits from master branch to release branch e.g. 5.2.x.
[x] Check GitHub Actions,
Travis CI and
AppVeyor to confirm
passing tests in release branch e.g. 5.2.x.
src/PIL/_version.pymake release-test.bash
git tag 5.2.1
git push
git push --tags
bash
make sdist
twine upload dist/Pillow-5.2.1*@cgohlke for Windows binaries via release ticket e.g. https://github.com/python-pillow/Pillow/issues/1174.@cgohlke and twine upload *.bash
git clone https://github.com/python-pillow/pillow-wheels
cd pillow-wheels
./update-pillow-tag.sh [[release tag]]
bash
wget -m -A 'Pillow-<VERSION>-*' \
http://a365fff413fe338398b6-1c8a9b3114517dc5fe17b7c3f8c63a43.r19.cf2.rackcdn.com
Release notes added in https://github.com/python-pillow/Pillow/commit/f6358a68f0e6fbaf7e964fe30db7b7704fbc44c7.
Hello @cgohlke, please could we have Windows binaries for 7.1.2? Thank you!
(I double checked the version number this time :)
Apart from 2 x 3.7 Xenial jobs, the Pillow Wheel Builder is failed:
curl: (28) Failed to connect to tukaani.org port 443: Connection timed out
https://travis-ci.org/github/python-pillow/pillow-wheels/jobs/679354301
Yesterday's cron was fine:
https://travis-ci.org/github/python-pillow/pillow-wheels/jobs/679009363
Looks like it's from xz:
Will try again later. (Tip: had to sign out and back into Travis to see the restart buttons.)
I downloaded xz 5.2.5 from SourceForge, added it to pillow-depends, and Travis is passing now.
I created https://github.com/python-pillow/pillow-wheels/pull/143 as a way to trigger another build, thinking that we couldn't access the restart buttons, but you figured out a way, cool.
All green now, thank you!
Not really important, but I get one test failure:
====================================================================== test session starts =======================================================================
platform win32 -- Python 3.8.2, pytest-5.4.1, py-1.8.1, pluggy-0.13.1 -- X:\Python38\python.exe
cachedir: .pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('D:\\Build\\Pillow\\Pillow-7.1.2\\.hypothesis\\examples')
--------------------------------------------------------------------
Pillow 7.1.2
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)]
--------------------------------------------------------------------
Python modules loaded from X:\Python38\lib\site-packages\PIL
Binary modules loaded from X:\Python38\lib\site-packages\PIL
--------------------------------------------------------------------
--- PIL CORE support ok
--- TKINTER support ok
--- FREETYPE2 support ok
--- LITTLECMS2 support ok
--- WEBP support ok
--- WEBP Transparency support ok
--- WEBPMUX support ok
--- WEBP Animation support ok
--- JPEG support ok
--- OPENJPEG (JPEG2000) support ok
--- ZLIB (PNG/ZIP) support ok
--- LIBTIFF support ok
--- RAQM (Bidirectional Text) support ok
*** LIBIMAGEQUANT (Quantization method) support not installed
*** XCB (X protocol) support not installed
--------------------------------------------------------------------
rootdir: D:\Build\Pillow\Pillow-7.1.2, inifile: setup.cfg
plugins: hypothesis-5.10.4, palladium-1.2.2, cov-2.8.1, forked-1.1.3, xdist-1.31.0
collected 1456 items
Tests/test_000_sanity.py::test_sanity PASSED [ 0%]
<snip>
Tests/test_webp_leaks.py::TestWebPLeaks::test_leak_load SKIPPED [100%]
============================================================================ FAILURES ============================================================================
_______________________________________________________________________ test_load_set_dpi ________________________________________________________________________
def test_load_set_dpi():
with Image.open("Tests/images/drawing.wmf") as im:
assert im.size == (82, 82)
if hasattr(Image.core, "drawwmf"):
im.load(144)
assert im.size == (164, 164)
with Image.open("Tests/images/drawing_wmf_ref_144.png") as expected:
> assert_image_similar(im, expected, 2.0)
Tests\test_file_wmf.py:69:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Tests\helper.py:140: in assert_image_similar
raise e
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
a = <PIL.Image.Image image mode=RGB size=164x164 at 0x21B0019A4F0>, b = <PIL.PngImagePlugin.PngImageFile image mode=RGB size=164x164 at 0x21B0019A1F0>
epsilon = 2.0, msg = None
def assert_image_similar(a, b, epsilon, msg=None):
assert a.mode == b.mode, msg or "got mode {!r}, expected {!r}".format(
a.mode, b.mode
)
assert a.size == b.size, msg or "got size {!r}, expected {!r}".format(
a.size, b.size
)
a, b = convert_to_comparable(a, b)
diff = 0
for ach, bch in zip(a.split(), b.split()):
chdiff = ImageMath.eval("abs(a - b)", a=ach, b=bch).convert("L")
diff += sum(i * num for i, num in enumerate(chdiff.histogram()))
ave_diff = diff / (a.size[0] * a.size[1])
try:
> assert epsilon >= ave_diff, (
msg or ""
) + " average pixel value difference %.4f > epsilon %.4f" % (ave_diff, epsilon)
E AssertionError: average pixel value difference 2.0669 > epsilon 2.0000
E assert 2.0 >= 2.0668500892325996
Tests\helper.py:130: AssertionError
---------------------------------------------------------------------- Captured stdout call ----------------------------------------------------------------------
STREAM b'IHDR' 16 13
STREAM b'IDAT' 41 1152
----------------------------------------------------------------------- Captured log call ------------------------------------------------------------------------
DEBUG PIL.PngImagePlugin:PngImagePlugin.py:153 STREAM b'IHDR' 16 13
DEBUG PIL.PngImagePlugin:PngImagePlugin.py:153 STREAM b'IDAT' 41 1152
======================================================================== warnings summary ========================================================================
Tests/test_file_wmf.py::test_load_raw
Tests/test_file_wmf.py::test_load_raw
Tests/test_file_wmf.py::test_load_set_dpi
X:\Python38\lib\site-packages\PIL\WmfImagePlugin.py:51: DeprecationWarning: PY_SSIZE_T_CLEAN will be required for '#' formats
Image.core.drawwmf(im.fp.read(), im.size, self.bbox),
Tests/test_imagewin.py::TestImageWinDib::test_dib_frombytes_tobytes_roundtrip
X:\Python38\lib\site-packages\PIL\ImageWin.py:178: DeprecationWarning: PY_SSIZE_T_CLEAN will be required for '#' formats
return self.image.frombytes(buffer)
-- Docs: https://docs.pytest.org/en/latest/warnings.html
==================================================================== short test summary info =====================================================================
SKIPPED [1] Tests\test_file_gif.py:221: Netpbm not available
SKIPPED [1] Tests\test_file_gif.py:232: Netpbm not available
SKIPPED [1] Tests\test_file_icns.py:28: Requires macOS
SKIPPED [1] Tests\test_file_icns.py:41: Requires macOS
SKIPPED [1] Tests\test_file_msp.py:58: Extra image files not installed
SKIPPED [1] Tests\test_file_msp.py:72: Even More Extra image files not installed
SKIPPED [1] D:\Build\Pillow\Pillow-7.1.2\Tests\helper.py:170: Palm P image is wrong
SKIPPED [1] Tests\test_file_png.py:650: Requires Unix or macOS
SKIPPED [1] Tests\test_file_sun.py:35: Extra image files not installed
SKIPPED [1] Tests\test_font_leaks.py:20: Requires Unix or macOS
SKIPPED [1] Tests\test_font_leaks.py:31: Requires Unix or macOS
SKIPPED [1] Tests\test_image.py:166: Test requires opening tempfile twice
SKIPPED [1] D:\Build\Pillow\Pillow-7.1.2\Tests\test_image_quantize.py:25: libimagequant support not available
SKIPPED [1] D:\Build\Pillow\Pillow-7.1.2\Tests\test_imagedraw.py:784: failing
SKIPPED [2] Tests\test_imagefont.py:483: requires Unix or macOS
SKIPPED [2] Tests\test_imagefont.py:524: requires Unix or macOS
SKIPPED [1] Tests\test_imagegrab.py:25: requires XCB
SKIPPED [1] Tests\test_imagegrab.py:48: requires XCB
SKIPPED [1] Tests\test_imageshow.py:40: Only run on CIs; hangs on Windows on GitHub Actions
SKIPPED [1] Tests\test_map.py:11: Win32 does not call map_buffer
SKIPPED [1] Tests\test_map.py:29: Win32 does not call map_buffer
SKIPPED [1] Tests\test_shell_injection.py:24: Requires Unix or macOS
SKIPPED [1] Tests\test_shell_injection.py:33: Requires Unix or macOS
SKIPPED [1] Tests\test_shell_injection.py:38: Netpbm not available
SKIPPED [1] Tests\test_shell_injection.py:44: Netpbm not available
SKIPPED [1] Tests\test_webp_leaks.py:16: Requires Unix or macOS
==================================================== 1 failed, 1427 passed, 28 skipped, 4 warnings in 28.06s =====================================================
Thanks for the binaries, uploaded and released with all the others at https://pypi.org/project/Pillow/7.1.2/
And I've created a new issue to track the new failure: https://github.com/python-pillow/Pillow/issues/4583
Thanks @hugovk for all the work
Most helpful comment
Thanks @hugovk for all the work