Bump pillow from 6.2.0 to 12.3.0 in /images - #3820
Open
dependabot[bot] wants to merge 1 commit into
Open
Conversation
Bumps [pillow](https://github.com/python-pillow/Pillow) from 6.2.0 to 12.3.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](python-pillow/Pillow@6.2.0...12.3.0) --- updated-dependencies: - dependency-name: pillow dependency-version: 12.3.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
🤖 Dependabot Review — Pillow 6.2.0 → 12.3.0 (
|
| Package | Old | New | Type | Scope |
|---|---|---|---|---|
| Pillow | 6.2.0 | 12.3.0 | MAJOR (6 major versions) | images/requirements.txt — dev tooling only |
Overall risk to the shipped app: 🟢 LOW. Pillow is not an Android/Gradle dependency and is not bundled in the APK. It is a Python build-time dependency for the developer utility in images/ (make_drawables.py / dpi_manager.py) that regenerates drawable resources from source PNGs. It is not referenced by any Gradle build or CI workflow.
Risk to the images/ tooling itself: 🔴 HIGH — the script will not run with Pillow 12. See details below.
📋 Detailed Changelog Review
- Package: Pillow (6.2.0 → 12.3.0)
- Changes: 6+ years of releases — major performance work, format support, and a large number of security fixes.
- Breaking Changes relevant here:
Image.ANTIALIASremoved in Pillow 10.0.0 (deprecated in 9.1.0). Replacement:Image.Resampling.LANCZOS(orImage.LANCZOS).dpi_manager.pyusesImage.ANTIALIASat lines 125 and 136 → this raisesAttributeErrorat runtime.- Python 2 support dropped in Pillow 7.0.0. Pillow 12.3.0 requires Python 3.9+. The
images/scripts are written for Python 2 (print "..."statements indpi_manager.py/make_drawables.py, plusraw_input()), soPillow==12.3.0cannot even be installed alongside this Python 2 toolchain.
- Security Fixes: Pillow 6.2.0 is very old and carries many known CVEs (buffer overflows / DoS in PNG, TIFF, BLP, FLI, ICNS, WebP decoders — CVE-2020-5310..5313, CVE-2021-25287/25288, CVE-2021-27921..27923, CVE-2021-28675..28678, CVE-2022-22815..22817, CVE-2023-44271, CVE-2023-4863 libwebp, CVE-2024-28219, and more). Upgrading is good security hygiene even for dev tooling.
- Migration Notes: Replace
Image.ANTIALIAS→Image.Resampling.LANCZOS; the surrounding scripts also need a Python 2 → 3 migration to be usable.
⚠️ Impact Assessment
- Breaking Changes Found: Yes, but confined to the
images/dev utility — no impact on app runtime, build output, or tests. - Affected Files:
images/dpi_manager.py:125,images/dpi_manager.py:136—Image.ANTIALIASremoved.images/dpi_manager.py:95—numpy.fromstring(deprecated; numpy is also pinned at 1.9.1, itself Python 2-era).- Python 2 syntax across
dpi_manager.py/make_drawables.py.
- Test Impact: None. No JVM/Android tests touch this. The script's own
--testmode is manual. - Configuration Changes: None required for the app.
🛠️ Recommendations
- Action Required: None for the app. Note this bump leaves
images/requirements.txtinternally inconsistent — Pillow 12.3.0 needs Python 3.9+, but the scripts (and pinnednumpy==1.9.1,PyYAML==5.1) are Python 2. The bumped tooling is not functional as-is regardless of merging. - Testing Focus: Nothing in the CI/test matrix is affected.
- Follow-up Tasks (optional, low priority — separate ticket): if
images/tooling is still used, modernize it to Python 3 + Pillow 10+ APIs:Image.ANTIALIAS → Image.Resampling.LANCZOS,printstatements →print(),raw_input → input,numpy.fromstring → numpy.frombuffer,yaml.load(...) → yaml.safe_load(...), and unpinnumpy/PyYAML. If the tooling is dead, consider removingimages/. - Merge Recommendation: APPROVE — safe to merge (no app/build/test impact; improves the security posture of an old dev dependency). Just be aware the
images/scripts remain non-functional until migrated to Python 3; that pre-dates this PR and should not block it.
📚 Useful Links
- Pillow releases: https://github.com/python-pillow/Pillow/releases
- Pillow 10.0.0 release notes (ANTIALIAS removal): https://pillow.readthedocs.io/en/stable/releasenotes/10.0.0.html
- Pillow 9.1.0 deprecation (Resampling enum): https://pillow.readthedocs.io/en/stable/releasenotes/9.1.0.html
- Pillow 7.0.0 (Python 2 dropped): https://pillow.readthedocs.io/en/stable/releasenotes/7.0.0.html
- Diff 6.2.0...12.3.0: python-pillow/Pillow@6.2.0...12.3.0
🤖 Automated Dependabot review. MAJOR bump, but scoped to a non-shipped Python dev utility.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps pillow from 6.2.0 to 12.3.0.
Release notes
Sourced from pillow's releases.
... (truncated)
Changelog
Sourced from pillow's changelog.
... (truncated)
Commits
bb1d8e812.3.0 version bumpe63fc48Add release notes for SBOM and performance improvements (#9747)13b701bAdd release notes for #96795564ca7List methodsa0920fdSpeed up ImageChops operations (#9738)07e9a6cSpeed upImage.filter()(#9736)a94578cSpeed upImage.getchannel(),Image.merge(),Image.putalpha()and `Image...53e02c4Speed upImage.fill(),Image.linear_gradient()and `Image.radial_gradient...af03747Speed upImage.resample()(#9739)5c9ca56Speed upalpha_composite,matrix,negative,quantize(#9740)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.