<Comment on #21145 Hash validation with python dep...
# github-notifications
c
Comment on #21145 Hash validation with python dependencies from private git repo failing Discussion answered by jsirois This one is pretty easy by inspection of that project's `setup.py`. In short, if a project's build is not reproducible, Pex can't help you - you must fix non-reproducible builds out of band and point Pex at those. If you can't for some reason, you must pre-build wheels and point Pants at an
--index
or
--find-links
repo with those fixed wheels. That said, here you go - let me know if you need more help, but this should be enough for you to solve the problem:
Copy code
# Get the repo:
git clone <https://github.com/johnathanchiu/unstructured>
cd unstructured
git reset --hard 6a70fc4caab489d88ad1613af9f4a53581d8ffb3

# Setup a build env:
python -mvenv /tmp/sdist-build.venv
/tmp/sdist-build.venv/bin/pip -q install -U setuptools

# Build the sdist 2x:
/tmp/sdist-build.venv/bin/python setup.py sdist --dist-dir /tmp/round1
git clean -fdx
/tmp/sdist-build.venv/bin/python setup.py sdist --dist-dir /tmp/round2

# Compare:
tar -xzf /tmp/round1/unstructured-0.14.10.dev12.tar.gz -C /tmp/round1/
tar -xzf /tmp/round2/unstructured-0.14.10.dev12.tar.gz -C /tmp/round2/
diff -ru /tmp/round1/unstructured-0.14.10.dev12 /tmp/round2/unstructured-0.14.10.dev12
And here's that diff: ``` diff -ru /tmp/round1/unstructured-0.14.10.dev12 /tmp/round2/unstructured-0.14.10.dev12 diff -ru /tmp/round1/unstructured-0.14.10.dev12/PKG-INFO /tmp/round2/unstructured-0.14.10.dev12/PKG-INFO --- /tmp/round1/unstructured-0.14.10.dev12/PKG-INFO 2024-07-08 201813.733394600 -0700 +++ /tmp/round2/unstructured-0.14.10.dev12/PKG-INFO 2024-07-08 201822.773394300 -0700 @@ -44,24 +44,24 @@ Requires-Dist: psutil Provides-Extra: all-docs Requires-Dist: markdown; extra == "all-docs" -Requires-Dist: pypdf; extra == "all-docs" -Requires-Dist: python-docx>=1.1.2; extra == "all-docs" -Requires-Dist: openpyxl; extra == "all-docs" Requires-Dist: pdfminer.six; extra == "all-docs" -Requires-Dist: google-cloud-vision; extra == "all-docs" +Requires-Dist: effdet; extra == "all-docs" Requires-Dist: onnx; extra == "all-docs" +Requires-Dist: networkx; extra == "all-docs" Requires-Dist: pytesseract; extra == "all-docs" +Requires-Dist: pandas; extra == "all-docs" +Requires-Dist: pypdf; extra == "all-docs" Requires-Dist: xlrd; extra == "all-docs" -Requires-Dist: python-oxmsg; extra == "all-docs" -Requires-Dist: unstructured-inference==0.7.36; extra == "all-docs" -Requires-Dist: networkx; extra == "all-docs" -Requires-Dist: effdet; extra == "all-docs" Requires-Dist: python-pptx<=0.6.23; extra == "all-docs" -Requires-Dist: pdf2image; extra == "all-docs" -Requires-Dist: pandas; extra == "all-docs" +Requires-Dist: pillow_heif; extra == "all-docs" +Requires-Dist: google-cloud-vision; extra == "all-docs" +Requires-Dist: python-docx>=1.1.2; extra == "all-docs" Requires-Dist: pikepdf; extra == "all-docs" +Requires-Dist: unstructured-inference==0.7.36; extra == "all-docs" Requires-Dist: pypandoc; extra == "all-docs" -Requires-Dist: pillow_heif; extra == "all-docs" +Requires-Dist: python-oxmsg; extra == "all-docs" +Requires-Dist: openpyxl; extra == "all-docs" +Requires-Dist: pdf2image; extra == "all-docs" Provides-Extra: csv Requires-Dist: pandas; extra == "csv" Provides-Extra: doc @@ -212,24 +212,24 @@ Requires-Dist: transformers; extra == "huggingface" Provides-Extra: local-inference Requires-Dist: markdown; extra == "local-inference" -Requires-Dist: pypdf; extra == "local-inference" -Requires-Dist: python-docx>=1.1.2; extra == "local-inference" -Requires-Dist: openpyxl; extra == "local-inference" Requires-Dist: pdfminer.six; extra == "local-inference" -Requires-Dist: google-cloud-vision; extra == "local-inference" +Requires-Dist: effdet; extra == "local-inference" Requires-Dist: onnx; extra == "local-inference" +Requires-Dist: networkx; extra == "local-inference" Requires-Dist: pytesseract; extra == "local-inference" +Requires-Dist: pandas; extra == "local-inference" +Requires-Dist: pypdf; extra == "local-inference" Requires-Dist: xlrd; extra == "local-inference" -Requires-Dist: python-oxmsg; extra == "local-inference" -Requires-Dist: unstructured-inference==0.7.36; extra == "local-inference" -Requires-Dist: networkx; extra == "local-inference" -Requires-Dist: effdet; extra == "local-inference" Requires-Dist: python-pptx<=0.6.23; extra == "local-inference" -Requires-Dist: pdf2image; extra == "local-inference" -Requires-Dist: pandas; extra == "local-inference" +Requires-Dist: pillow_heif; extra == "local-inference" +Requires-Dist: google-cloud-vision; extra == "local-inference" +Requires-Dist: python-docx>=1.1.2; extra == "local-inference" Requires-Dist: pikepdf; extra == "local-inference" +Requires-Dist: unstructured-inference==0.7.36; extra == "local-inference" Requires-Dist: pypandoc; extra == "local-inference" -Requires-Dist: pillow_heif; extra == "local-inference" +Requires-Dist: python-oxmsg; extra == "local-inference" +Requires-Dist: openpyxl; extra == "local-inference" +Requires-Dist: pdf2image; extra == "local-inference" Provides-Extra: paddleocr Requires-Dist: unstructured.paddleocr==2.6.1.3; extra == "paddleocr" Provides-Extra: embed-huggingface diff -ru /tmp/round1/unstructured-0.14.10.dev12/unstructured.egg-info/PKG-INFO /tmp/round2/unstructured-0.14.10.dev12/unstructured.egg-info/PKG-INFO --- /tmp/round1/unstructured-0.14.10.dev12/unstructured.egg-info/PKG-INFO 2024-07-08 201813.000000000 -0700 +++ /tmp/round2/unstructured-0.14.10.dev12/unstructured.egg-info/PKG-INFO 2024-07-08 201822.000000000 -0700 @@ -44,24 +44,24 @@ Requires-Dist: psutil Provides-Extra: all-docs Requires-Dist: markdown; extra == "all-docs" -Requires-Dist: pypdf; extra == "all-docs" -Requires-Dist: python-docx>=1.1.2; extra == "all-docs" -Requires-Dist: openpyxl; extra == "all-docs" Requires-Dist: pdfminer.six; extra == "all-docs" -Requires-Dist: google-cloud-vision; extra == "all-docs" +Requires-Dist: effdet; extra == "all-docs" Requires-Dist: onnx; extra == "all-docs" +Requires-Dist: networkx; extra == "all-docs" Requires-Dist: pytesseract; extra == "all-docs" +Requires-Dist: pandas; extra == "all-docs" +Requires-Dist: pypdf; extra == "all-docs" Requires-Dist: xlrd; extra == "all-docs" -Requires-Dist: python-oxmsg; extra == "all-docs" -Requires-Dist: unstructured-inference==0.7.36; extra == "all-docs" -Requires-Dist: networkx; extra == "all-docs" -Requires-Dist: effdet; extra == "all-docs" Requires-Dist: python-pptx<=0.6.23; extra == "all-docs" -Requires-Dist: pdf2image; extra == "all-docs" -Requires-Dist: pandas; extra == "all-docs" +Requires-Dist: pillow_heif; extra == "all-docs" +Requires-Dist: google-cloud-vision; extra == "all-docs" +Requires-Dist: python-docx>=1.1.2; extra == "all-docs" Requires-Dist: pikepdf; extra == "all-docs" +Requires-Dist: unstructured-inference==0.7.36; extra == "all-docs" Requires-Dist: pypandoc; extra == "all-docs" -Requires-Dist: pillow_heif; extra == "all-docs" +Requires-Dist: python-oxmsg; extra == "all-docs" +Requires-Dist: openpyxl; extra == "all-docs" +Requires-Dist: pdf2image; extra == "all-docs" Provides-Extra: csv Requires-Dist: pandas; extra == "csv" Provides-Extra: doc @@ -212,24 +212,24 @@ Requires-Dist: transformers; extra == "huggingface" Provides-Extra: local-inference Requires-Dist: markdown; extra == "local-inference" -Requires-Dist: pypdf; extra == "local-inference" -Requires-Dist: python-docx>=1.1.2; extra == "local-inference" -Requires-Dist: openpyxl; extra == "local-inference" Requires-Dist: pdfminer.six; extra == "local-inference" -Requires-Dist: google-cloud-vision; extra == "local-inference" +Requires-Dist: effdet; extra == "local-inference" Requires-Dist: onnx; extra == "local-inference" +Requires-Dist: networkx; extra == "local-inference" Requires-Dist: pytesseract; extra == "local-inference" +Requires-Dist: pandas; extra == "local-inference" +Requires-Dist: pypdf; extra == "l… pantsbuild/pants