Skip to content

Releases: pypa/bandersnatch

4.2.0

21 Aug 01:16

Choose a tag to compare

New Features

Thanks to RedHat engineers @dalley + @gerrod3 for all this refactor work in PR #591

  • New generic Mirror class to perform Python metadata syncing
    • (previous Mirror class has been renamed to BandersnatchMirror)
  • Package's filter methods are now part of its public API
  • New errors.py file to house Bandersnatch specific errors

Internal API Changes

  • Old Mirror class has been renamed to BandersnatchMirror. Performs same functionality with use of new Mirror API.
  • BandersnatchMirror now performs all filesystem operations throughout the sync process including the ones previously
    in Package.
  • Package no longer performs filesystem operations. Properties json_file, json_pypi_symlink, simple_directory
    and methods save_json_metadata, sync_release_files, gen_data_requires_python, generate_simple_page,
    sync_simple_page, _save_simple_page_version, _prepare_versions_path, _file_url_to_local_url,
    _file_url_to_local_path, download_file have all been moved into BandersnatchMirror. Package's sync has been
    refactored into Bandersnatch's process_package.
  • Package class is no longer created with an instance of Mirror
  • StaleMetadata exception has been moved to new errors.py file
  • PackageNotFound exception has been moved to new errors.py file

Bug Fixes

  • Fixed Fix latest_release plugin to ensure latest version is included - PR #660 - Thanks @serverwentdown

4.1.1

12 Aug 23:16

Choose a tag to compare

  • Fixed name parsing issue for allow/blocklist project filters - PR #651 - Thanks @gerrod3

4.1.0

10 Aug 01:08

Choose a tag to compare

New Features

  • bandersnatch is now 100% type annotated - PRs #546 #561 #592 #593 - Thanks @ichard26 + @rkm
  • Move to storage abstraction - PR #445 - Thanks @techalchemy
    • Can now support more than just filesystem e.g. swift
  • Add sync subcommand to force a sync on a particular PyPI package - PR #572 - Thanks @z4yx
  • Added new allowlist filter - PR #626 - Thanks @gerrod3
  • Make webdir/pypi/json/PKG symlinks relative - PR #637 - Thanks @indrat
    • Makes mirror files more portable
  • Add main and program name override to ArgumentParser - PR #643 - Thanks @rkm
    • Allow non pkg_resources install to work

Internal API Changes

  • Refactored the removal of releases for release_plugins to happen inside of Package PR #608 - Thanks @gerrod3
  • Minor refactor of Package class PR #606 - Thanks @dralley
  • Refactored filter loading into seperate class PR #599 - Thanks @gerrod3
  • Move legacy directory cleanup to mirror.py PR #586
  • Move verify to use Master for HTTP calls - PR #555
  • Move http request code for package metadata to master.py - PRs #550 - Thanks @dralley

Bug Fixes

  • Fixed allow/blocklist release filtering pre-releases - PR #641 - Thanks @gerrod3
  • Casefold (normalize per PEP503) package names in blacklist/whitelist plugins config - PR #629 - Thanks @lepaperwan
  • Fix passing package info to filters in verify action. PR #638 - Thanks @indrat
  • Fix todo file removal - PR #571
  • Introduce a new global-timeout config option for aiohttp coroutines - Default 5 hours - PR #540 - Thanks @techalchemy
  • Many doc fixes - PRs #542 #551 #557 #605 #628 #630 - Thanks @pgrimaud + @ichard26 + @hugovk
  • Move to setting timeout only on session + 10 * total_timeout (over sock timeouts) - PR #535
  • Stop using include_package_data option in setup.cfg to get config files included in more installs - PR #519

4.0.3

07 May 16:38

Choose a tag to compare

  • Change aiohttp-xmlrpc to use Master.session to ensure config shared - PR #506 - Thanks @alebourdoulous for reporting
    • e.g. Maintin trust of proxy server environment variables

4.0.2

26 Apr 21:49

Choose a tag to compare

  • Raise for error HTML response on all aiohttp session requests - PR #494 / #496 - Thanks @windtail
  • Pass str to shutil.move due to Python bug - PR #497 - Thanks @SanketDG
  • Some more type hints added to verify.py - PR #488 - Thanks @SanketDG
  • Ignore atime on stat in test test_package_sync_does_not_touch_existing_local_file comparision
    as it casues stat compare fail on a slower run - PR #487 - Thanks @SanketDG

4.0.1

05 Apr 17:23

Choose a tag to compare

  • Pass correct aiohttp timeout objects - PR #478
  • Replace pkg_resources with importlib.resources - PR #479 - Thanks @SanketDG

4.0.0

29 Mar 19:54

Choose a tag to compare

  • Replace requests with aiohttp - PR #440
  • Replace xmlrpc2 with aiohttp-xmlrpc - PR #404
  • Only store PEP503 Normalized Simple API directories - PR #465 + #455
  • Flag errors when KeyboardInterrupt raised during sync - PR #421
  • Finish Windows Support + Add CI - PRs #469 + #471 - Thanks @FaustinCarter
  • Autobuild Docker images with master - PR #88 - Thanks @abitrolly
  • Only print conf deprecations if found in config - PR #327
  • Add PyPI metadata and Python version plugin filters - PR #391 - Thanks @TemptorSent
  • Add in GitHub Actions CI for Linux (Ubuntu), MacOSX + Windows

3.6.0

24 Sep 21:33

Choose a tag to compare

Please refer to CHANGES.md for new fixes + features and README.md.
Official Docs: https://bandersnatch.readthedocs.io/

3.5.0

14 Sep 16:42

Choose a tag to compare

Move version to 3.5.0 + Update CHANGES.md

3.4.0

30 May 23:26

Choose a tag to compare

Move version to 3.4.0 + Update CHANGES.md