Pillow: Release Pillow 4.1.0 on April 1, 2017

Created on 24 Jan 2017  路  18Comments  路  Source: python-pillow/Pillow

This is the release thread for 4.1.0, scheduled for 2017-04-01.

I'd like to have a couple of goals for this release.

1) I'd like to cover all of the image formats that we supposedly support with tests for correctness of loaded (/saved) images, or have a loud warning that this is untested code, either in code or docs. There have been three cases in the last few months where I've opened the hood on a file format or a feature and found it nearly untested and/or broken. (Sun RLE was broken, SGI raster files only tested that we rejected unsupported compression, and ImageTk has never had tests where we loaded the tk interpreter.) I'd like to not need the "Hasn't worked in 20 years" tag anymore.

2) Finish several longstanding issues -- File Closing, Palette, and Tiff Metadata handling come to mind.

  • [x] File closing #2330
  • [ ] Palette
  • [ ] Tiff metadata

3) Refactor the mess that is GifImagePlugin.

  • [x] GifImagePlugin
Release

All 18 comments

For point 1, just from the review of #2425:

  • BufrStubImagePlugin
  • ContainerIO
  • FitsStubImagePlugin
  • GribStubImagePlugin
  • Hdf5StubImagePlugin
  • PixarImagePlugin
  • PsdImagePlugin
  • XVThumbImagePlugin

For point 1, from #1817:

  • GdImagePlugin

(I've put these as TODOs in the top comment.)

Release notes for #2374

Would anyone like to merge PRs in pillow-wheels before the release?

@radarhere Done!

@hugovk thanks!

I propose we slip the release till Monday:
1) I don't have enough time today
2) April Fools is a bad day to release software.
3) Avoiding weekends.

I've triaged, there are 2 prs that are almost there, just needing to pass windows tests, and one that I think has probably been fixed with an unrelated change.

Other than that, nothing big, anything small had better not break anything.

Re: https://github.com/python-pillow/Pillow/commit/977f3192349282ae1a7108102415a7ad1baaa305#commitcomment-21546844

Confirmed in code and docs:

The open() method may set the following info properties if available:
...
dpi
A tuple representing the reported pixel density in pixels per inch, if the file is a jfif file and the units are in inches.
...
The save() method supports the following options:
...
dpi
A tuple of integers representing the pixel density, (x,y).

I'll make a new PR.

@wiredfool Since you are doing all (or most of) the work, Monday is fine with me :smile: though I'll reiterate in general, I don't like to change the release schedule if we can help it. Also for whatever it's worth, "no time" is certainly a valid cause to delay, but "April fool's & weekends" is not IMO; I'm fairly happy with the quarterly release schedule, despite one of the quarters beginning with April 1.

I've merged the three PRs that were aimed at this release. Running out of time here, and I've just buried all the CI machines.

I've got a 4.1.0 release, it's in the 4.1.x branch.

  • CI is running on it, in it's potentially releasable state
  • The wheel CI is running on it, and may be released if everything is green.

The release is _not_ tagged, so if there's something that would be a x.x.1, there's still time to get it in while it's still a .0.

If we're good, I'll tag and release at some point tomorrow when it's morning in @cgohlke's timezone.

To Go:

  • [x] tag && push tag
  • [x] pull 4.1.x into master
  • [x] upload source - .tar.gz
  • [ ] upload osx/linux wheels
  • [x] upload win binaries

Few little release note things: PR https://github.com/python-pillow/Pillow/pull/2474

Manylinux wheels for x64 appear to be broken due to rpm repo urls not being available. It was working as recently as 9 days ago, when Hugo pushed some changes.

Wheel issue explained here: https://github.com/pypa/manylinux/issues/100

Ok, Tagged and released. Manylinux wheels will be delayed until the centos thing is worked out.

pinging @cgohlke

Here you go ...

Thanks @cgohlke

Re pypy wheel: I had to remove install_requires from setup.py to build the pypy wheel due to a bug somewhere in pypy/setuptools/wheel. So olefile needs to be installed separately for now on pypy. Also, TestEmbeddable should be disabled when running on pypy.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

indirectlylit picture indirectlylit  路  4Comments

mmalenta picture mmalenta  路  3Comments

nomarek picture nomarek  路  3Comments

vytisb picture vytisb  路  4Comments

readyready15728 picture readyready15728  路  4Comments