pydistcheck

Linter that finds portability issues in Python package distributions (wheels, sdists, conda packages).

BSD-3-CLAUSE License

Downloads
4.1K
Stars
27
Committers
2

Bot releases are visible (Hide)

pydistcheck - v0.7.0 Latest Release

Published by github-actions[bot] 5 months ago

Changes

💡 New Features

  • add path-too-long check @jameslamb (#244)

😬 Breaking

  • change array-like configuration values to multi-options (fixes #246, fixes #55) @jameslamb (#248)
  • add expected-files check, rename '--unexpected-file-patterns' to '--expected-files' (fixes #233) @jameslamb (#242)

🙈 Bug Fixes

  • [ci] another upload-artifact fix @jameslamb (#230)

📖 Documentation

  • [docs] add links and detail to Check Reference @jameslamb (#250)
  • [docs] fix formatting of blockquotes @jameslamb (#247)
  • [docs] expand docs on testing a Python distribution @jameslamb (#245)
  • [docs] update docs on configuration @jameslamb (#243)
  • [docs] fix formatting of conda-verify link @jameslamb (#238)
  • [docs] add more tools to 'How to Test a Python Distribution' @jameslamb (#237)

🛠 Maintenance

  • [ci] move shellcheck to pre-commit, use shellcheck-py @jameslamb (#249)
  • reduce variable scope in shell scripts @jameslamb (#241)
  • [ci]: Bump the ci-dependencies group with 3 updates @dependabot (#240)
  • [ci] update some CI dependencies, add dependabot @jameslamb (#239)
  • [ci] use pre-commit to run some autoformatting and linting @jameslamb (#236)

Contributors

@dependabot and @jameslamb

pydistcheck - v0.6.0

Published by github-actions[bot] 8 months ago

Changes

📦 This release adds support for conda packages 🎉

Try it out:

CONDA_ROOT=$(
    conda info --json \
    | jq -r '."env_vars"."CONDA_ROOT"'
)

conda install \
    --download-only \
    --yes \
    -c conda-forge \
    pandas

pydistcheck \
    --inspect \
    ${CONDA_ROOT}/pkgs/pandas*.conda
file size
  * compressed size: 14.2M
  * uncompressed size: 69.0M
  * compression space saving: 79.5%
contents
  * directories: 0
  * files: 2936 (44 compiled)
size by extension
  * .pyc - 29.7M (43.0%)
  * .py - 19.4M (28.1%)
  * .so - 18.6M (27.0%)
  * .json - 0.7M (1.0%)
  * no-extension - 0.5M (0.7%)
  * .pyi - 0.1M (0.1%)
  * .toml - 23.4K (0.0%)
  * .tpl - 8.3K (0.0%)
  * .yaml - 5.1K (0.0%)
  * .template - 3.8K (0.0%)
  * .txt - 1.6K (0.0%)
  * .sh - 0.2K (0.0%)
largest files
  * (2.0M) lib/python3.11/site-packages/pandas/_libs/groupby.cpython-311-darwin.so
  * (1.9M) lib/python3.11/site-packages/pandas/_libs/hashtable.cpython-311-darwin.so
  * (1.8M) lib/python3.11/site-packages/pandas/_libs/algos.cpython-311-darwin.so
  * (1.1M) lib/python3.11/site-packages/pandas/_libs/interval.cpython-311-darwin.so
  * (1.1M) lib/python3.11/site-packages/pandas/_libs/join.cpython-311-darwin.so

💡 New Features

  • make --inspect file sizes consistent with other output @jameslamb (#228)
  • add support for conda packages @jameslamb (#204)
  • avoid duplicate file I/O for 'compiled-objects-have-debug-symbols' @jameslamb (#222)
  • add 'compiled-objects-have-debug-symbols' support for tar.gz and tar.bz2 @jameslamb (#219)

🙈 Bug Fixes

  • raise an informative error on unrecognized file format @jameslamb (#225)
  • prevent exit codes greater than 255 @jameslamb (#224)

📖 Documentation

  • [docs] clarify project description @jameslamb (#223)
  • [docs] add Windows trove classifier @jameslamb (#216)

🛠 Maintenance

  • release v0.6.0 @jameslamb (#229)
  • [ci] enforce flake8-pyi checks @jameslamb (#227)
  • enforce more uses of keyword-only arguments @jameslamb (#226)
  • rename some test variables and scripts @jameslamb (#220)
  • [ci] add flake8-bandit checks @jameslamb (#218)
  • upgrade test data to scikit-build 0.8.0 @jameslamb (#217)
  • move compiled-object detection code out of distribution_summary @jameslamb (#215)
  • [ci] add win32 and linux_* wheels to smoke tests @jameslamb (#212)
  • centralize archive-format detection @jameslamb (#214)
  • introduce file_utils module @jameslamb (#213)
  • [ci] add more extensions to gitignore @jameslamb (#211)
  • bump development version @jameslamb (#208)
  • [ci] fix download-artifact use in package uploads @jameslamb (#210)
  • [ci] fix package uploads @jameslamb (#209)

Contributors

@jameslamb

pydistcheck - v0.5.2

Published by github-actions[bot] 9 months ago

Changes

🙈 Bug Fixes

  • fix compiled-objects-have-debug-symbols on macOS @jameslamb (#205)

🛠 Maintenance

  • [ci] update versions of GitHub Actions @jameslamb (#203)
  • [ci] fix cmake and tensorflow checks in smoke tests @jameslamb (#202)

Contributors

@jameslamb

pydistcheck - v0.5.1

Published by github-actions[bot] 12 months ago

Changes

💡 New Features

  • support CPython 3.11/3.12 and Pypy 3.10 @jameslamb (#193)
  • add 5 largest files to --inspect (fixes #121) @jameslamb (#187)

📖 Documentation

  • [docs] fix typo in README @jameslamb (#184)
  • [docs] add example of issue with non-ASCII file names @jameslamb (#182)

🛠 Maintenance

  • [ci] enforce yamllint checks (fixes #195) @jameslamb (#196)
  • [ci] enforce shfmt checks @jameslamb (#191)
  • [ci] update to latest version of third-party GitHub Actions @jameslamb (#194)
  • [ci] enforce perflint checks @jameslamb (#190)
  • [ci] fix numpy checks in smoke tests @jameslamb (#192)
  • [ci] use 'mypy --strict' @jameslamb (#186)
  • [ci] use ruff for static analysis @jameslamb (#185)
  • [ci] remove unnecessary skipped stuff in smoke tests @jameslamb (#183)
  • simplify internal imports and related packaging config @jameslamb (#178)
  • [PEP 631] move dependencies into pyproject.toml @jameslamb (#177)
  • [ci] add more exceptions in smoke tests @jameslamb (#179)
  • bump development version @jameslamb (#176)

Contributors

@jameslamb

pydistcheck - v0.5.0

Published by github-actions[bot] over 1 year ago

Changes

💡 New Features

  • add --version (fixes #173) @jameslamb (#174)
  • support specifying an exact config location (fixes #171) @jameslamb (#172)

📖 Documentation

  • [docs] add 'How to Test a Python Distribution' (fixes #146) @jameslamb (#170)

🛠 Maintenance

  • release v0.5.0 @jameslamb (#175)
  • [ci] fix catboost checks in smoke tests @jameslamb (#169)

Contributors

@jameslamb

pydistcheck - v0.4.0

Published by github-actions[bot] over 1 year ago

Changes

💡 New Features

  • add check on mix of file extensions (fixes #51) @jameslamb (#161)

📖 Documentation

  • [docs] update quickstart @jameslamb (#165)
  • simplify error messages @jameslamb (#158)

🛠 Maintenance

  • remove unnecessary MANIFEST.in lines @jameslamb (#166)
  • [ci] check more projects in smoke tests @jameslamb (#160)
  • [ci] check more distribution types in smoke tests @jameslamb (#159)
  • [ci] check dists @jameslamb (#157)
  • misc packaging changes @jameslamb (#156)
  • [ci] fix mac wheels @jameslamb (#155)

Contributors

@jameslamb

pydistcheck - v0.3.0

Published by github-actions[bot] over 1 year ago

Changes

💡 New Features

  • add check on use of debug symbols in compiled objects @jameslamb (#143)
  • add file-format guessing utility @jameslamb (#151)
  • add check on unexpected files @jameslamb (#137)
  • simplify file size strings in logs @jameslamb (#118)
  • clarify compression space savings in pydistcheck --inspect @jameslamb (#117)

📖 Documentation

  • [ci] test that all checks are documented in Check Reference @jameslamb (#140)
  • [docs] add defaults for all options to "Configuration" doc @jameslamb (#139)
  • [docs] add quickstart to README @jameslamb (#131)

🛠 Maintenance

  • use black 23.x @jameslamb (#152)
  • [ci] test mac wheels, other miscellaneous testing changes @jameslamb (#150)
  • [ci] simplify create-data-bdist script @jameslamb (#149)
  • [ci] add a macOS C++ wheel to test data @jameslamb (#147)
  • [ci] separate Linux and macOS wheels in test data @jameslamb (#148)
  • [ci] use scikit-build-core for wheel-building @jameslamb (#145)
  • [ci] add a C++ wheel to testing data (fixes #124) @jameslamb (#141)
  • [ci] minor test restructuring @jameslamb (#142)
  • [ci] increase smoke test coverage @jameslamb (#138)
  • [ci] switch to alls-good for branch protections @jameslamb (#136)
  • [ci] add more packages to smoke-tests @jameslamb (#130)
  • [ci] run smoke tests on Windows @jameslamb (#129)
  • [ci] consolidate references to test data @jameslamb (#128)
  • [ci] speed up smoke tests (fixes #86) @jameslamb (#126)
  • [ci] use valid Python distributions in tests (fixes #115) @jameslamb (#123)
  • [ci] fix manually-trigggered CI runs (fixes #119) @jameslamb (#120)
  • bump development version @jameslamb (#114)

Contributors

@jameslamb

pydistcheck - v0.2.0

Published by github-actions[bot] almost 2 years ago

Changes

💡 New Features

  • add ability to ignore some checks (fixes #80) @jameslamb (#110)
  • separate output for different distributions with blank lines @jameslamb (#107)
  • support pyproject.toml (fixes #87) @jameslamb (#104)
  • add check on non-ASCII filepaths (fixes #76) @jameslamb (#102)
  • add check on spaces in filepaths (fixes #73) @jameslamb (#101)
  • add check on case-insensitive duplicate files (fixes #75) @jameslamb (#97)

📖 Documentation

  • add defaults to '--help' docs @jameslamb (#109)
  • [docs] fix readthedocs builds @jameslamb (#106)
  • [docs] add configuration docs @jameslamb (#105)
  • [docs] add another link about non-ASCII filenames @jameslamb (#103)
  • [docs] remove old, unnecessary examples @jameslamb (#99)
  • [docs] add installation and usage docs (fixes #63) @jameslamb (#98)

🛠 Maintenance

  • visually separate inspection and checking results in output @jameslamb (#112)
  • [ci] add checks from flake8 plugins @jameslamb (#100)

Contributors

@jameslamb

pydistcheck - v0.1.0

Published by github-actions[bot] almost 2 years ago

Changes

As of this release, pydistcheck is minimally usable 🎉 .

# check distributions
pydistcheck dist/*

# print diagnostic information about distributions
pydistcheck --inspect dist/*

💡 New Features

  • support checking multiple files in one call (fixes #71) @jameslamb (#91)
  • add beginning and end log messages @jameslamb (#93)
  • print file sizes in descending order @jameslamb (#88)
  • introduce pydistcheck --inspect @jameslamb (#84)
  • add checks on distribution size (fixes #53) @jameslamb (#59)

🙈 Bug Fixes

  • fix calculation of file sizes @jameslamb (#61)

📖 Documentation

  • [docs] clarify pydistcheck --help main doc @jameslamb (#89)
  • [docs] misc. docs cleanup @jameslamb (#72)
  • [docs] add template for feature requests (fixes #48) @jameslamb (#57)
  • [docs] add template for reporting bugs @jameslamb (#56)
  • [docs] clean up issue forms @jameslamb (#52)
  • [docs] make template active-voice @jameslamb (#50)
  • [docs] add issue form for new checks @jameslamb (#49)
  • [docs] add Check reference to docs @jameslamb (#47)

🛠 Maintenance

  • release v0.1.0 @jameslamb (#95)
  • add test on nonexistent file @jameslamb (#94)
  • build source distro and wheels locally @jameslamb (#92)
  • use editable installs in local development @jameslamb (#90)
  • [ci] exclude typing-only Protocol from code coverage @jameslamb (#85)
  • add .idea/ to gitignore @jameslamb (#83)
  • move smoke-tests logic into a script @jameslamb (#82)
  • [ci] add mypy checks (fixes #26) @jameslamb (#70)
  • [ci] add isort checks (fixes #28) @jameslamb (#69)
  • [ci] enforce flake8 checks (fixes #20) @jameslamb (#68)
  • [ci] enforce pylint checks (fixes #21) @jameslamb (#67)
  • resolve pylint warnings: docstrings @jameslamb (#66)
  • resolve pylint warnings: long lines @jameslamb (#65)
  • resolve pylint warnings: ignore unnecessary checks @jameslamb (#64)
  • resolve pylint warnings: unused imports @jameslamb (#62)
  • make _DistributionSummary.from_file() a proper class method @jameslamb (#60)
  • add more file types to gitignore @jameslamb (#58)

Contributors

@jameslamb

pydistcheck - v0.0.2.99

Published by github-actions[bot] about 2 years ago

This release was created just to test changes to the repo's automation, and doesn't contain any actual code changes.

pydistcheck - v0.0.2

Published by github-actions[bot] about 2 years ago

Changes

💡 New Features

  • [ci] start publishing wheels @jameslamb (#42)
  • Add "too many files" check @jameslamb (#27)

📖 Documentation

  • [docs] set up readthedocs site (fixes #31) @jameslamb (#35)

🛠 Maintenance

  • release v0.0.2 @jameslamb (#43)
  • [ci] limit smoke tests to Linux @jameslamb (#41)
  • [ci] enable release-drafter @jameslamb (#40)
  • add summary CI jobs for branch protections @jameslamb (#38)
  • add initial unit test setup (fixes #30) @jameslamb (#36)
  • [ci] split up CI jobs, run smoke tests on multiple OSes @jameslamb (#37)
  • bump development version @jameslamb (#34)

Contributors

@jameslamb

pydistcheck - v0.0.1

Published by jameslamb about 2 years ago

Initial release of pydistcheck 🎉

This version is pretty useless, but it set up the basic infrastructure like the project name, PyPI project, readthedocs site, etc.

Package Rankings
Top 20.97% on Pypi.org
Badges
Extracted from project README
conda-forge version conda-forge downloads PyPI Version PyPI downloads Documentation Status GitHub Actions GitHub Actions