- Add new repo_key class attribute to Content which defaults to an empty tuple. Subclasses should use repo_key to specify the names of fields, which together should be unique per Repository. Anytime RepositoryVersion.add_content() is called, it now automatically removes content that matches the repo_key. #5008
- Add a ReadOnlyContentViewSet for plugin writers. #5535
- Fix fields filter for SingleArtifactContentUploadSerializer #5543
- Document explicit definition of ref_name on the serializer. #5562
- Remove pulpcore.plugin.tasking.Task and expose pulpcore.models.Task instead. #5442
- Change _id, _created, _last_updated, _href to pulp_id, pulp_created, pulp_last_updated, pulp_href #5457
- Removing non_fatal_errors from Task. #5537
- Setting code on ProgressBar. #5184
- PublishedMetadata.create_from_file() interface added for creating PublishedMetadata. #5304
- Add SingleArtifactContentUploadSerializer a base class for content serializers that accept uploaded files. #5403
- DeclarativeArtifacts can have an Artifact without a RemoteArtifact. #5413
- Added plugin_managed field on repository that plugins can set for repositories that should be managed by plugins and not by users. #5421
- Update docs removing database agnostic gotchas. #5129
- Remove support for mysql/mariadb making postgresql the only supported database. #5129
- PublishedMetadata should no longer be created using the default constructor. #5304
- Replace ProgressBar with ProgressReport and removing ProgressSpinner. #5444
- Remove custom JSONField implementation from public API #5465
- Expose CharInFilter to plugins, which can filter by lists of strings. #5182
- Plugin writers can now define settings programatically. #5290
- Breaking change on how to subclass Master/Detail models in plugins, now default_related_name is required for Detail models. #4681
- Fixes too many open files when trying to perform large syncs with many downloads. #5323
- Updating docs for subclassing models. #4681
- Added documentation on how to add settings programatically. #5290
- The
DigestValidationError
andSizeValidationError
are available in thepulpcore.plugin.exceptions
package. #5077 - The
HyperlinkRelatedFilter
is available in thepulpcore.plugin.viewsets
submodule. #5103
- Adds a new page and various updates with
ContentGuard
documentation for plugin writers. #3972 - Removed beta changelog entries to shorten the changelog. #5166
- Fixes use of the proxy URL when syncing from a remote. #5011
- Switch to using towncrier for better release notes. #4875
- The term 'lazy' and 'Lazy' is replaced with 'on-demand' and 'On-Demand' respectively. #4990
- The RemoteSerializer.policy attribute in the plugin API had its choices restricted to only 'immediate'. Plugin writers wanting to use 'on_demand' or 'streamed' as values for 'policy' should redefine the 'policy' attribute on the detail Remote. #4990