Repository navigation
chore(deps): update nltk to 3.9.4 - #968
Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksTesting This CDK VersionYou can test this version of the CDK using the following: # Run the CLI from this branch:
uvx 'git+https://github.com/airbytehq/airbyte-python-cdk.git@devin/1774667708-update-nltk-cryptography#egg=airbyte-python-cdk[dev]' --help
# Update a connector to use the CDK from this branch ref:
cd airbyte-integrations/connectors/source-example
poe use-cdk-branch devin/1774667708-update-nltk-cryptographyPR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
|
PyTest Results (Fast)4 363 tests ±0 4 351 ✅ - 1 7m 34s ⏱️ - 1m 13s Results for commit 375efb9. ± Comparison against base commit 4855c2d. This pull request skips 1 test.♻️ This comment has been updated with latest results. |
|
Aaron ("AJ") Steers (@aaronsteers) When do we expect to get this in? I'm starting to get security alerts on 3.9.1? |
Co-Authored-By: AJ Steers <aj@airbyte.io>
Co-Authored-By: AJ Steers <aj@airbyte.io>
There was a problem hiding this comment.
Pull request overview
Updates the optional nltk dependency from 3.9.1 to 3.9.4, with a regenerated poetry.lock reflecting Poetry 2.3.3 marker-expression rewrites, to keep the CDK’s file-based “unstructured” parsing dependency set current.
Changes:
- Bump
nltkfrom3.9.1→3.9.4inpyproject.toml. - Refresh
poetry.lockto locknltk==3.9.4(and update the lock metadata/content hash as part of regeneration).
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| pyproject.toml | Updates the pinned optional nltk version to 3.9.4. |
| poetry.lock | Locks nltk to 3.9.4 and updates lock metadata from regeneration. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…te-nltk-cryptography
Co-Authored-By: bot_apk <apk@cognition.ai>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe optional ChangesNLTK dependency update
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This narrowly scoped dependency update changes NLTK from 3.9.1 to 3.9.4 to reduce vulnerability exposure without changing CDK code or public behavior. No actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Resolves https://github.com/airbytehq/oncall/issues/11795:
Summary
Bumps the optional
nltkextra from3.9.1to3.9.4, unblocking CVE fixes for downstream users.nltk==3.9.1propagates as a hard pin through the CDK into PyAirbyte and connectors, so those consumers currently cannot resolve CVE-2026-0846, CVE-2025-14009 (zip slip, GHSA-7p94-766c-hgjp, CVSS 10.0 — the advisory tracked by the oncall issue above), CVE-2026-33231, or CVE-2026-33230. See airbytehq/PyAirbyte#1022.The branch has been merged forward with current
mainand the lockfile regenerated with Poetry 2.1.4 (the version that produced main's lockfile), so the lock diff is 5 lines each way: the nltk version, its wheel/sdist hashes, itspython-versionsmetadata (>=3.8→>=3.10, satisfied by the CDK's>=3.10,<3.14), and the content hash. No transitive dependency versions change. Earlier revisions of this branch also touched thecryptographyrange and regenerated the lock with Poetry 2.3.3; both are gone — the diff vsmainis nltk only.3.9.3is the minimum version that patches the zip-slip advisory;3.9.4additionally clears GHSA-jm6w-m3j8-898g and GHSA-gfwx-w7gr-fvh7 at no extra cost. Several remaining high-severity nltk advisories are only patched in3.10.0, which is deliberately out of scope here (see below).Breaking changes
None expected. 3.9.2–3.9.4 are patch releases (security hardening, tokenizer/metric bugfixes, Python 3.14 support). The strict
nltk.pathsecpolicy that is breaking landed in 3.10.0, which this stays below.The one hardening worth checking against CDK usage is the path-traversal / absolute-path restrictions added to
nltk.dataand the downloader in 3.9.3, becauseunstructured_parser.pyappends an absolute dir tonltk.data.pathand downloads into it at import time. Verified under 3.9.4 with an empty data dir: the download branch runs andpunkt/punkt_tabdownload and are then found successfully.Separately noted, not fixed here:
unstructured_parser.pylooks fortokenizers/averaged_perceptron_tagger_eng.zip, but nltk stores that resource undertaggers/. That lookup has always missed; behavior is identical on 3.9.1, so it is pre-existing and out of scope for this bump.Test plan
poetry install --all-extras,poetry check,poetry run ruff check .,poetry run ruff format --check .— all clean (re-run after the merge-forward to currentmain).poetry run pytest unit_tests/sources/file_based/file_types/test_unstructured_parser.py unit_tests/sources/file_based/test_file_based_scenarios.py— 280 passed.poetry run pytest -m 'not slow'— 4179 passed, 2 skipped.unstructured_parseragainst an empty nltk data dir to exercise the download-and-find path under 3.9.4.nltk/downloader.py_unzip_iternow validates each member (_validate_member(...)+ per-memberzf.extract(...)) instead of callingzipfile.extractall(), i.e. the zip-slip fix is present.Test Coverage
No new unit test is added: the change is a dependency version pin with no CDK code change, so there is no new CDK behavior to assert. Coverage comes from the existing
test_unstructured_parser.py/test_file_based_scenarios.pysuites (280 tests) exercising the nltk-dependent parser against 3.9.4, plus the direct check that the patched_unzip_iterimplementation is what gets installed.Requested by: Patrick Nilan (@pnilan) (via
/ai-fixon the oncall issue)Link to Devin session: https://app.devin.ai/sessions/7c79317d1dc04c4d8147f3a3354b673d
Open in Devin Desktop: https://app.devin.ai/desktop/session/7c79317d1dc04c4d8147f3a3354b673d?variant=devin
Summary by CodeRabbit
Important
Auto-merge enabled.
This PR is set to merge automatically when all requirements are met.