3.5.1 (2021-09-10)


  • Fixed proxy url not being passed during sync (backported from #433) #436

3.5.0 (2021-08-30)


  • Python package content can now be filtered by their sha256 #404

  • Added new setting PYPI_API_HOSTNAME that is used to form a distribution’s base_url. Defaults to the machine’s FQDN. #412

  • Enabled reclaim disk feature provided by pulpcore 3.15+. #425


  • Fixed twine upload failing when using remote storage backends #400

  • Fixed improper metadata serving when using publications with S3 storage #413

Deprecations and Removals

  • Dropped support for Python < 3.8. #402


3.4.1 (2021-08-24)


  • Python package content can now be filtered by their sha256 (backported from #404) #419


  • Fixed improper metadata serving when using publications with S3 storage (backported from #413) #418

  • Fixed twine upload failing when using remote storage backends (backported from #400) #420

3.4.0 (2021-06-17)


  • Added twine (and other similar Python tools) package upload support #342

  • PyPI endpoints are now available at /pypi/{base_path}/ #376

  • Changed the global uniqueness constraint for PythonPackageContent to its sha256 digest #380


  • Added missing fields to PyPI live JSON API to be compliant with core metadata version 2.1 #352

  • Fixed sync to use default concurrency (10) when download_concurrency was not specified #391

3.3.0 (2021-05-27)


  • Add support for automatic publishing and distributing. #365


  • Fixed publications publishing more content than was in the repository #362

Improved Documentation

  • Update syntax in doc for cli repository content add command #368


3.2.0 (2021-04-14)


  • Added new sync filter keep_latest_packages to specify how many latest versions of packages to sync #339

  • Added new sync filters package_types and exclude_platforms to specify package types to sync #341


3.1.0 (2021-03-12)


  • Python content can now be filtered by requires_python #3629

Improved Documentation

  • Updated workflows to use Pulp CLI commands #8364

3.0.0 (2021-01-12)


  • Remote proxy settings are now passed to Bandersnatch while syncing #7864

Improved Documentation

  • Added bullet list of Python Plugin features and a tech preview page for new experimental features #7628

3.0.0b12 (2020-11-05)


  • Pulp Python can now fully mirror all packages from PyPi #985

  • Implemented PyPi’s json API at content endpoint ‘/pypi/{package-name}/json’. Pulp can now perform basic syncing on other Pulp Python instances. #2886

  • Pulp Python now uses Bandersnatch to perform syncing and filtering of package metadata #6930


  • Sync now includes python package’s classifiers in the content unit #3627

  • Policy can now be specified when creating a remote from a Bandersnatch config #7331

  • Includes/excludes/prereleases fields are now properly set in a remote from Bandersnatch config #7392

Improved Documentation

  • Fixed makemigrations commands in the install docs #5386


3.0.0b11 (2020-08-18)

Compatibility update for pulpcore 3.6

3.0.0b10 (2020-08-05)


  • Added a new endpoint to remotes “/from_bandersnatch” that allows for Python remote creation from a Bandersnatch config file. #6929


  • Including requirements.txt on #6891

  • Updating API to not return publications that aren’t complete. #6987

  • Fixed an issue that prevented ‘on_demand’ content from being published. #7128

Improved Documentation

  • Change the commands for publication and distribution on the publish workflow to use their respective scripts already defined in _scripts. #6877

  • Updated, and in docs/_scripts to reference wait_until_task_finished function from #6918

3.0.0b9 (2020-06-01)


  • Add upload functionality to the python contents endpoints. #5464


  • Fixed the 500 error returned by the OpenAPI schema endpoint. #5452

Improved Documentation

  • Change the prefix of Pulp services from pulp-* to pulpcore-* #4554

  • Added “python/python/” to fix two commands in, fixed export command in #6790

  • Added “index.html” to the relative_path field for both project_metadata and index_metadata. Added a “/” to fix the link in the simple_index_template. #6792

  • Updated the workflow documentation for upload.html. Fixed the workflow commands and added more details to the instructions. #6854

Deprecations and Removals

  • Change _id, _created, _last_updated, _href to pulp_id, pulp_created, pulp_last_updated, pulp_href #5457

  • Remove “_” from _versions_href, _latest_version_href #5548

  • Removing base field: _type . #5550

  • Sync is no longer available at the {remote_href}/sync/ repository={repo_href} endpoint. Instead, use POST {repo_href}/sync/ remote={remote_href}.

    Creating / listing / editing / deleting python repositories is now performed on /pulp/api/v3/python/python/ instead of /pulp/api/v3/repositories/. Only python content can be present in a python repository, and only a python repository can hold python content. #5625

3.0.0b8 (2019-09-16)


3.0.0b7 (2019-08-01)


  • Users can upload a file to create content and optionally add to a repo in one step known as one-shot upload #4396

  • Override the Remote’s serializer to allow policy=’on_demand’ and policy=’streamed’. #4990

Improved Documentation


  • See all changes here.

  • Adds support for pulpcore 3.0.0.rc2.

    Changes urls for distributions and publications

  • Adds lazy sync

  • Docs replace snippets with testable scripts


  • Fix relative_path to allow pip install


  • Adds support for pulpcore 3.0.0.rc1.

  • Adds excludes support (aka ‘blacklist’)

    Renames the “projects” field on the remote to “includes”.

    Adds a new “excludes” field to the remote which behaves like “includes”, except that any specified releasees or digests are not synced, even if an include specifier matches them.

    Also adds a ‘prereleases’ field to the remote, which toggles whether prerelease versions should be synced. This mirrors the ‘prereleases’ flag that packaging.specifiers.SpecifierSet provides.

  • Removes Python 3.5 support