Repository navigation
fix(conda): vendor only the needed dependencies and ship their data files (#1814) - #1821
Merged
Merged
Conversation
This was referenced Oct 16, 2026
…iles (#1814) - conda/requirements.txt: dependencies plus the all extra and what they require, for the supported CPython tier. The capture engines and the crawlers' requests and beautifulsoup4 go, as on PyPI since #910; cryptography and pycrate, with cffi and pycparser, come in; the pathlib2 and typing-extensions lines were dead on every conda build. - util/conda_vendor.py derives that list, replacing util/conda-dist.py; --check reports a stale list, --smoke a built package's missing files. - pyproject.toml: package-data ships every file under pcapkit/_extern but bytecode; before, chardet could not detect and emoji had no JSON. Its ** needs setuptools 62.3.0, so the floor there and in meta.yaml rises to it (61.0.0 and 62.2.0 read it as *, measured). - cron-conda.yml: Conda Update installs .[all] and runs the script; each conda-dist leg smoke-tests its package before the upload, and no longer installs pathlib2 and typing_extensions. - tests/project/test_conda_vendor_1814.py pins the package-data rule, the derivation, the committed list and the smoke. Clean sdist and wheel: unchanged but for the files added and removed here, with no new warning. tests/project passes. Closes #1814
JarryShaw
force-pushed
the
fix/1814-conda-vendored-deps
branch
from
October 16, 2026 14:25
7f01d49 to
ea5a8bb
Compare
Owner
Author
|
Verdict: GOOD TO GO at
|
This was referenced Oct 16, 2026
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.
Please follow the guide below
You will be asked some questions, please read them carefully and answer honestly
Put an
xinto all the boxes [ ] relevant to your pull request (like that [x])Use Preview tab to see how your pull request will actually look like
Searched for similar pull requests
Followed the coding style (
make pylint,make mypy,make isort)make testpasses, and a test case covers the change. Narrow runs only, listed below.Added a changelog entry under
docs/source/changelog/and regeneratedCHANGELOG.md, if the change is user-visible: N/A — centralised in docs(changelog): shared 1.5.0 changelog — long-lived, merges last (#610, #616, #617, #618, #620) #657What is the purpose of your pull request?
Tick the commit type your subject line carries.
fix— corrects a defectfeat— adds a featureperf— changes performance, not behaviourrefactor— changes neither behaviour nor performancetest— tests onlydocs— documentation onlyci— workflows or build toolingrelease— bumps the version or rolls up a distributionchore— anything elseDescription
Closes #1814. The conda package's vendored dependencies (
pcapkit/_extern) reached the wheel as.pyfiles only, so the package was broken. In an emulated build, chardet could not detect anything (models/idf.binmissing),lxml.etreeand pyshark failed to import, emoji had no JSON, scapy misreported its version, andcertifi.where()pointed at a missing file.package-datanow includes every file underpcapkit._externexcept bytecode.MANIFEST.incannot do this without warning in non-conda builds (measured). Clean sdist and wheel builds are unchanged apart from the files this PR adds or removes, with no new warnings. The**glob needs setuptools 62.3: measured, 61.0 and 62.2 read it as*. The build floor inpyproject.tomlandmeta.yamlis raised to match.dependenciesplus theallextra and their requirements, for the supported CPython tier.pcapkit-vendorcrawlers' requests and bs4.util/conda_vendor.pyderives the list frompyproject.toml, replacingutil/conda-dist.py.--checkflags a stale list, and--smokechecks a built package. Conda Update rewrites the list, and each conda-dist leg smoke-tests its package before upload. This is deliberately not a blocking PR check: an upstream release would otherwise turn unrelated PRs red.Vendored set: option A, by your ruling on #1814: exactly
all. The emulated.tar.bz2is about 16 MB without bytecode, or about 39 MB if conda-build compiles.pyc(not checked). pycrate's ASN.1 data is about 154 MB unpacked without bytecode.Not verified: no real conda build or Actions run was possible here. The macOS
conda convertstep ships arm64 binaries for osx-64, which already affected lxml and now affects cffi and cryptography too. That is tracked in #1822.tests/project: 959 passed, 1 skipped. The newtest_conda_vendor_1814.pyfails 5 tests onmain.