- Fixed throwing the wrong error when pointing to an invalid repository with a custom signing service. #1122
- Improved the publish task performance by optimizing the database queries used in that task. #1115
- Added the
architectures
andcomponents
parameters to the release API in order to create releases with accompanying architectures and components in a single API call. Also added retrieve functionality to the release API. #1038 - Added support for duplicate source debs. If an source deb already exists, return it instead of raising an exception. #1077
- Made the plugin compatible with pulpcore 3.55.0+. #1100
- Fixed a bug where an
IntegrityError
was raised during publish when a source package belonged to two dists. #1053
- Added initial staging docs. #1014
- When creating a release, the API now returns a task instead of the release being created.
In addition, attempting to create a release that already exists will no longer return an error.
Instead the resulting task will simply list the existing content in its
created_resources
field. #1038 - Dropped support for Python 3.8. pulp_deb now supports Python >=3.9. #1039
- When uploading a source deb that already exists, instead of throwing an exception it will now return the existing source package. #1077
- Fixed a bug where an
IntegrityError
was raised during publish when a source package belonged to two dists. #1053 - Fixed throwing the wrong error when pointing to an invalid repository with a custom signing service. #1122
- Improved the publish task performance by optimizing the database queries used in that task. #1115
- Added feature to serve published artifacts from previous publications for 3 days. This fulfills the apt-by-hash/acquire-by-hash spec by allowing by-hash files to be cached for a period of 3 days. #911
- Added retrieve functionality for ReleaseArchitecture and ReleaseComponent content. #1010
- Allow optimize with mirror mode if nothing at all has changed in the repository being synced. #1027
- Fixed repo uniqueness constraints. Duplicate packages with identical checksums are now allowed. In addition, duplicates are now also handled for the set of incoming content. #921
- Fixed a bug where pulp_deb was serving unpublished content when distributing a repository that has content but no publications. #976
- Fixed a bug where enabling the
APT_BY_HASH
setting did not enable the feature. #984 - Fixed DEBUG logging of prohibited duplicate packages. #994
- Suppressed deb822's confusing log warning about python-apt not being installed. #1019
- The API endpoints for ReleaseArchitecture and ReleaseComponent creation will no longer return a 400
non_field_errors
if the content to be created already exists. Instead a task is triggered that will list the existing content in itscreated_resources
field. #1010
- Added tests that verify the download of content served by
pulp_deb
. #919 - Added sync, publish and pulp2pulp performance tests to run with the nightly CI. #970
- Fixed a bug where enabling the
APT_BY_HASH
setting did not enable the feature. #984 - Fixed DEBUG logging of prohibited duplicate packages. #994
- Suppressed deb822's confusing log warning about python-apt not being installed. #1019
- Fixed repo uniqueness constraints. Duplicate packages with identical checksums are now allowed. In addition, duplicates are now also handled for the set of incoming content. #921
- Fixed a bug where pulp_deb was serving unpublished content when distributing a repository that has content but no publications. #976
- Added tests that verify the download of content served by
pulp_deb
. #919
- Add support for handling source packages. #409
- Added an option to publish by-hash/ files to mitigate the Hash Sum Mismatch error in debian repos as specified here: https://wiki.debian.org/DebianRepository/Format#indices_acquisition_via_hashsums_.28by-hash.29. Use the APT_BY_HASH setting to enable this feature. #795
- Fixed the
create_repositories=True
parameter for importing content. #872 - Add additional package name filters such as
name__contains
andname__startswith
. Check the REST docs for a complete list. #909 - Added extra filters linking SourcePackages to Releases and ReleaseComponents. #926
- Made the plugin compatible with pulpcore 3.40.1+. #928
- Improved the performance of structured
/pulp/api/v3/deb/copy/
actions. #870 - Optimize mode can now take effect, when switching from mirrored to not mirrored mode between syncs. #903
- Fixed DEBUG logging of prohibited duplicate packages. #994
- Suppressed deb822's confusing log warning about python-apt not being installed. #1019
- Fixed the
create_repositories=True
parameter for importing content. #872
- Improved the performance of structured
/pulp/api/v3/deb/copy/
actions. #870 - Optimize mode can now take effect, when switching from mirrored to not mirrored mode between syncs. #903
- Fixed repo uniqueness constraints. Duplicate packages with identical checksums are now allowed. In addition, duplicates are now also handled for the set of incoming content. #921
- Fixed a bug where pulp_deb was serving unpublished content when distributing a repository that has content but no publications. #976
- Added tests that verify the download of content served by
pulp_deb
. #919
- Added
version
,origin
,label
, anddescription
fields to Releases. These fields can be set when creating new Releases via the API. Going forward, they will also be synced from upstream release files if present. #449 - Specify and remember the Signing Services we want to use for each Repo / Release. #641
- Added API filters to limit results by related pulp_deb content types. #646
- Added the
publish_upstream_release_fields
field to the repository model. To avoid a breaking change in publication behaviour, existing repositories are populated with the setting set toFalse
, while any newly created repostiroies will default toTrue
. Whatever the value on the repository, it can be overriden when creating a new publication. #793
- Fixed KeyError during publish if package has architecture that's not supported in the Packages file. Instead, a warning message will be logged. #777
- Fixed an async error preventing synchronization with
sync_installer
set toTrue
. #797 - Fixed content creating code triggered in rare edge cases when unapplying DB migration 0021. #806
- Fixed a bug where structured package upload was only working as intended for the first package uploaded to each repository.
Also added logging and ensured structure content is added to the creating tasks
created_resources
list. #807
- Added
pulp-cli-deb
installation instructions. #598 - Replaced references to the Pulp Ansible installer with references to the Pulp OCI images. #779
- Added workflow documentation for creating and using signing services. #867
- Completely reworked the "Feature Overview" and "Workflows" docs with an emphasise on Pulp CLI and structured content. #886
- Since release file fields including "Label" and "Version", are now synced from upstream repositories, we have dropped the PUBLISH_RELEASE_FILE_LABEL and PUBLISH_RELEASE_FILE_VERSION settings. This removes the ability to publish Pulp internal "Label" and "Version" values that never made much sense, and had been disabled by default since at least pulp_deb 2.18.0. #449
- The codename and suite fields are removed from the ReleaseComponent and ReleaseArchitecture models and all associated filters and viewsets. #599
- The
pulp/api/v3/publications/deb/apt/
API endpoint, used to require users to explicitly set at least one ofsimple
orstructured
toTrue
on the POST. The new behavior is to default tostructured=True
andsimple=False
. #858
- This change includes a large DB migration to drop 'codename' and 'suite' from the uniqueness constraints of all structure content. The migration will merge any resulting collisions and alter all records with a foreign key relation to the so eliminated content to point at the merge result instead. #599
- Added test cases for advanced copy task. #758
- Add tests for content filters, and make filters return empty list if Content not in RepoVersion instead of raising ValidationError. #780
- Added better scoping for the pytest fixtures. #790
- Removed the
pulp-smash
test dependency. #796 - Converted the publish tests to use the pytest framework. #828
- Converted the import/export tests to use the pytest framework. #846
- Fixed advanced copy due to pulpcore deprecations. #869
- Fixed the deb/copy/ API path for scenarios that modify the API root. #879
- Fixed KeyError during publish if package has architecture that's not supported in the Packages file. Instead, a warning message will be logged. #777
- Fixed an async error preventing synchronization with
sync_installer
set toTrue
. #797 - Fixed content creating code triggered in rare edge cases when unapplying DB migration 0021. #806
- Fixed a bug where structured package upload was only working as intended for the first package uploaded to each repository.
Also added logging and ensured structure content is added to the creating tasks
created_resources
list. #807
- The upload of content has been changed to accept already existing debian packages. This allows multiple users to own identical files. #592
- Sign the metadata for all releases in a repo concurrently, greatly speeding up the publish task in environments where signing is slow. #682
- Add new parameters component and distribution to the package upload endpoint to enable a structured package upload. #743
- Declare and require at least pulpcore/3.25 compatibility. #770
- Improve the pulp_deb "No valid Release file found" error message for gpg validation fail. #399
- Fixed a bug where architecture "all" packages were missing when syncing Debian 11 style repositories. #612
- Fixed a bug where packages were only showing up in one Packages index file if they belonged to two or more releases. #674
- Fixed a bug that prevented orphan cleanup due to protected foreign keys. #690
- Fixed bug where PackageReleaseComponents were not being automatically removed when dupes were added to a repo version even though the duplicate Packages they referenced were being removed. #705
- Improved the documentation on metadata signing. #660
- Fixed infinite loading when searching for specific terms. #765
- Package and generic content API endpoints no longer return errors when entities already exist. Instead they return the existing entities as if they had just been created. #592
- Replaced the
release
field with the tripledistribution
,codename
,suite
on the/pulp/pulp/api/v3/content/deb/release_components/
and/pulp/pulp/api/v3/content/deb/release_architectures/
API endpoints. As a result, the available filters where also adjusted for the new fields. #748
- Add precompiled test data for pytest to use in functional tests #395
- Made repository publication structure independed of the Release model, which includes removing all foreighn key relations to the model. #748
- Improve the pulp_deb "No valid Release file found" error message for gpg validation fail. #399
- Fixed the deb/copy/ API path for scenarios that modify the API root. #879
- Fixed KeyError during publish if package has architecture that's not supported in the Packages file. Instead, a warning message will be logged. #777
- Fixed an async error preventing synchronization with
sync_installer
set toTrue
. #797
- Fixed infinite loading when searching for specific terms. #765
- Fixed a bug that prevented orphan cleanup due to protected foreign keys. #690
- Add precompiled test data for pytest to use in functional tests #395
- Fixed a bug where architecture "all" packages were missing when syncing Debian 11 style repositories. #612
- Fixed a bug where packages were only showing up in one Packages index file if they belonged to two or more releases. #674
- Added the option to synchronize repositories using an optimized mode (enabled by default). #564
- Added feature to import/export pulp_deb content #605
- Fixed handling of download URLs containing special characters in the path part. #571
- Fixed several serializer bugs preventing the manual creation of structure content of type
ReleaseArchitecture
,ReleaseComponent
, andPackageReleaseComponent
. #575 - Added handling for the special case when publishing an upstream repo containing a distribution named "default" using both simple and structured publish modes. #601
- Added a better error message when users try to create a repository version containing duplicate APT distributions. #603
- Fixed a bug preventing the synchronization of repos referencing a single package from multiple package indices. #632
- Added workflow docs on manually creating structured repos. #586
- Added feature overview documentation for the new Import/Export feature. #624
- Add a proper local SigningService setup for tests using pytest. #402
- Fixed a bug where architecture "all" packages were missing when syncing Debian 11 style repositories. #612
- Fixed a bug where packages were only showing up in one Packages index file if they belonged to two or more releases. #674
- Added handling for the special case when publishing an upstream repo containing a distribution named "default" using both simple and structured publish modes. #601
- Added a better error message when users try to create a repository version containing duplicate APT distributions. #603
- Added workflow docs on manually creating structured repos. #586
- Fixed handling of download URLs containing special characters in the path part. #571
- Fixed several serializer bugs preventing the manual creation of structure content of type
ReleaseArchitecture
,ReleaseComponent
, andPackageReleaseComponent
. #575
- Added support for uploading zstd compressed packages. #459
- Fixed a bug causing inconsistent verbatim publications in combination with rare circumstances and streamed syncs. #549
- Converted CharField to TextField for pulp_deb models. #532
- Fixed a bug where architecture "all" packages were missing when syncing Debian 11 style repositories. #612
- Fixed a bug where packages were only showing up in one Packages index file if they belonged to two or more releases. #674
- Added a better error message when users try to create a repository version containing duplicate APT distributions. #603
- Fixed handling of download URLs containing special characters in the path part. #571
- Fixed several serializer bugs preventing the manual creation of structure content of type
ReleaseArchitecture
,ReleaseComponent
, andPackageReleaseComponent
. #575 - Added handling for the special case when publishing an upstream repo containing a distribution named "default" using both simple and structured publish modes. #601
- Added experimental advanced copy API with support for structured copying. #396
- Made the sync workflow robust with respect to upstream package indices containing packages with a wrong architecture. #422
- Changed the release file publication behaviour of the APT publisher to prevent a design clash with apt-secure. You may set PUBLISH_RELEASE_FILE_LABEL and PUBLISH_RELEASE_FILE_VERSION to True to revert to the old behaviour. #443
- Reworked the sync handling for upstream repos using
No-Support-for-Architecture-all: Packages
format. This was needed to avoid clashes with the new arch filtering introduced in #422. #456
- Fixed handling of download URLs containing special characters in the path part. #571
- Fixed several serializer bugs preventing the manual creation of structure content of type
ReleaseArchitecture
,ReleaseComponent
, andPackageReleaseComponent
. #575 - Added handling for the special case when publishing an upstream repo containing a distribution named "default" using both simple and structured publish modes. #601
- Added a better error message when users try to create a repository version containing duplicate APT distributions. #603
- Made the sync workflow robust with respect to upstream package indices containing packages with a wrong architecture. #422
- Changed the release file publication behaviour of the APT publisher to prevent a design clash with apt-secure. You may set PUBLISH_RELEASE_FILE_LABEL and PUBLISH_RELEASE_FILE_VERSION to True to revert to the old behaviour. #443
- Reworked the sync handling for upstream repos using
No-Support-for-Architecture-all: Packages
format. This was needed to avoid clashes with the new arch filtering introduced in #422. #456
- Users can now use the FORCE_IGNORE_MISSING_PACKAGE_INDICES setting to define the corresponding behaviour for all remotes. #9555
- Fixed mirrored metadata handling when creating a new repository version. #8756
- Fixed a bug causing package validation to fail, when the package paragraph contains keys without values. #8770
- Fixed a bug causing publications to reference any
AptReleaseSigningService
via a full URL instead of just apulp_href
. #9563
- Fixed handling of download URLs containing special characters in the path part. #571
- Fixed several serializer bugs preventing the manual creation of structure content of type
ReleaseArchitecture
,ReleaseComponent
, andPackageReleaseComponent
. #575 - Added handling for the special case when publishing an upstream repo containing a distribution named "default" using both simple and structured publish modes. #601
- Added a better error message when users try to create a repository version containing duplicate APT distributions. #603
- Users can now use the FORCE_IGNORE_MISSING_PACKAGE_INDICES setting to define the corresponding behaviour for all remotes. #9555
- Made the sync workflow robust with respect to upstream package indices containing packages with a wrong architecture. #422
- Changed the release file publication behaviour of the APT publisher to prevent a design clash with apt-secure. You may set PUBLISH_RELEASE_FILE_LABEL and PUBLISH_RELEASE_FILE_VERSION to True to revert to the old behaviour. #443
- Reworked the sync handling for upstream repos using
No-Support-for-Architecture-all: Packages
format. This was needed to avoid clashes with the new arch filtering introduced in #422. #456
- Fixed a bug causing package validation to fail, when the package paragraph contains keys without values. (backported from #8770) #432
- Fixed a bug causing publications to reference any
AptReleaseSigningService
via a full URL instead of just apulp_href
. (backported from #9563) #433
- Flat repo syncs were made more robust with respect to minimal release files. #7673
- Fixed a bug causing syncs to fail if upstream repos have more than 256 characters worth of distributions, components, or architectures. #9277
- Added fix to delete package fields with values of an incorrect type. #9333
- Amended dispatch arguments deprecated by pulpcore in anticipation of removal. #9349
- Amended dispatch arguments deprecated by pulpcore in anticipation of removal. (backported from #9349) #9505
- Add custom_fields to hold non-standard PackageIndex fields #8232
- The plugins async pipeline was made Django 3 compatible in anticipation of pulpcore 3.15. #9299
- Reworked the plugin installation docs to be helpful to new users. #9186
- Added touch statements to prevent false positives during orphan cleanup. #9162
- Replaced deprecated JSONField model from contrib with the one available with Django 3. #9300
Compatible with: pulpcore>=3.14,<3.16
- Re-enabled Python 3.6 and 3.7 for the all 2.14.* releases. #9164
- Added touch statements to prevent false positives during orphan cleanup. (backported from #9162) #9175
!!! warning This version was released in a broken state and has been yanked from pypi. The issues are addressed in the 2.14.1 release.
- Add missing "Size" field in publications #8506
- Fixed a bug where arch=all package indices were not being synced when filtering by architecture. #8910
- Dropped support for Python 3.6 and 3.7. pulp_deb now supports Python 3.8+. #9036
- If remotes specify components or architectures that do not exist in the synchronized Release file, a warning is now logged. #6948
Compatible with: pulpcore>=3.12,<3.15
- Add missing "Size" field in publications (backported from #8506) #9167
Compatible with: pulpcore>=3.12,<3.15
- Completely disabled translation file synchronization to prevent sync failures. #8671
- Fixed a bug where components from the remote were being ignored when specified as the plain component. #8828
Compatible with: pulpcore>=3.12,<3.14
- Completely disabled translation file synchronization to prevent sync failures. (Backported from https://pulp.plan.io/issues/8671) #8735
Compatible with: pulpcore>=3.12,<3.14
- APT repositories may now reference an APT remote, that will automatically be used for syncs. #8520
- Fixed the relative paths for translation files, which were causing sync failures and missing translation files. #8410
- Migrated to new Distribution model for pulpcore 3.13 compatibility. #8682
Compatible with: pulpcore>=3.10,<3.13
- Completely disabled translation file synchronization to prevent sync failures. (Backported from https://pulp.plan.io/issues/8671) #8736
Compatible with: pulpcore>=3.10,<3.13
- Fixed the relative paths for translation files, which were causing sync failures and missing translation files. (Backported from https://pulp.plan.io/issues/8410) #8556
Compatible with: pulpcore>=3.10,<3.13
No significant changes.
Compatible with: pulpcore>=3.10,<3.12
- Completely disabled translation file synchronization to prevent sync failures. (Backported from https://pulp.plan.io/issues/8671) #8737
Compatible with: pulpcore>=3.10,<3.12
- Fixed the relative paths for translation files, which were causing sync failures and missing translation files. (Backported from https://pulp.plan.io/issues/8410) #8558
Compatible with: pulpcore>=3.10,<3.12
- Ensured the plugin respects the ALLOWED_CONTENT_CHECKSUMS setting. #8388
- The plugin documentation was moved from https://pulp-deb.readthedocs.io/ to https://docs.pulpproject.org/pulp_deb/. #8113
- Added workflow documentation on checksum handling configuration. #8388
- Update AptReleaseSigningService validation to respect new base class requirements. #8307
- Added an upper bound of
<0.1.42
to thepython-debian
dependency to prevent breakage against python<3.7
.
Compatible with: pulpcore>=3.7,<3.11
- Completely disabled translation file synchronization to prevent sync failures. (Backported from https://pulp.plan.io/issues/8671) #8738
Compatible with: pulpcore>=3.7,<3.11
- Fixed the relative paths for translation files, which were causing sync failures and missing translation files. (Backported from https://pulp.plan.io/issues/8410) #8559
Compatible with: pulpcore>=3.7,<3.11
Compatible with: pulpcore>=3.7,<3.10
- Added an
ignore_missing_package_indices
flag to remotes which users may set to allow the synchronization of repositories with missing declared package indices. #7467 - Added the capability to synchronize repositories using "flat repository format". #7502
- Added ability to handle upstream repositories without a "Codename" field. #7886
Compatible with: pulpcore>=3.7,<3.9
- Dropped the beta status of the plugin. The plugin is now GA! #6999
- Added handling of packages with the same name, version, and architecture, when saving a new repository version. #6429
- Both simple and structured publish now use separate
Architecture: all
package indecies only. #6991
- Optional version strings are now stripped from the sourcename before using it for package file paths. #7153
- Fixed several field names in the to deb822 translation dict. #7190
Section
andPriority
are no longer required for package indecies. #7236- Fixed content creation for fields containing more than 255 characters by using
TextField
instead ofCharField
for all package model fields. #7257 - Fixed a bug where component path prefixes were added to package index paths twice instead of once when using structured publish. #7295
- Added a note on per repository package uniqueness constraints to the feature overview documentation. #6429
- Fixed several URLs pointing at various API documentation. #6506
- Reworked the workflow documentation and added flow charts. #7148
- Completely refactored the documentation source files. #7211
- Added a high level "feature overview" documentation. #7318
- Added meaningful endpoint descriptions to the REST API documentation. #7355
- Added tests for repos with distribution paths that are not equal to the codename. #6051
- Added a long_description to the python package. #6882
- Added test to publish repository with package index files but no packages. #7344
- Added additional metadata fields to published Release files. #6907
- Fixed a bug where some nullable fields for remotes could not be set to null via the API. #6908
- Fixed a bug where APT client was installing same patches again and again. #6982
- Renamed some internal models to Apt.. to keep API consistent with other plugins. #6897
- The "Date" field is now added to Release files during publish. #6869
- Fixed structured publishing of architecture 'all' type packages. #6787
- Fixed a bug where published Release files were using paths relative to the repo root, instead of relative to the release file. #6876
- Added Release file signing using signing services. #6171
- Fixed synchronization of Release files without a Suite field. #6050
- Fixed publication creation with packages referenced from multiple package inecies. #6383
- Documented bindings installation for the dev environment. #6396
- Added tests for invalid Debian repositories (bad signature, missing package indecies). #6052
- Made tests use the bindings config from pulp-smash. #6393
- Structured publishing (with releases and components) has been implemented. #6029
- Verification of upstream signed metadata has been implemented. #6170
No significant changes.
- Change relative_path from CharField to TextField #4544
- Add more validation for uploading packages and installer packages. #5377
-
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 deb repositories is now performed on /pulp/api/v3/repositories/deb/apt/ instead of /pulp/api/v3/repositories/. #5698
- Fix fields filter. #5543
- Depend on pulpcore, directly, instead of pulpcore-plugin. #5580
- Rework Package and InstallerPackage serializers to allow creation from artifact or uploaded file with specifying any metadata. #5379
- Change generic content serializer to create content units by either specifying an artifact or uploading a file. #5403, #5487
- Remove one shot uploader in favor of the combined create endpoint. #5403
- Change content serializers to use relative_path instead of _relative_path. #5376
- Change the prefix of Pulp services from pulp-* to pulpcore-* #4554
- Reflect artifact and upload functionality in the content create endpoint documentation. #5371
- Add oneshot upload functionality for deb type packages. #5391
- Add relative_path to package units natural key to fix uniqueness constraints. #5377
- Fix publishing of lazy content and add download_policy tests. #5405