REST API
Features
- Added a repository exact and in filters to the Distributions API.
[3394](https://github.com/pulp/pulpcore/issues/3394)
- Added a new optional multi-tenancy namespacing feature: Domains. See workflow documentation for more
information on this tech-preview feature.
[3403](https://github.com/pulp/pulpcore/issues/3403)
- Add GCP support
[3424](https://github.com/pulp/pulpcore/issues/3424)
- Added `retain_repo_versions` filter to Repository endpoint.
[3507](https://github.com/pulp/pulpcore/issues/3507)
- Pass correlation id to signing script through ENV variable
[3522](https://github.com/pulp/pulpcore/issues/3522)
- Added ability to replicate distributions/repositories from another Pulp.
[3566](https://github.com/pulp/pulpcore/issues/3566)
- Started to collect statistics about RBAC (amd domain) usage.
[3639](https://github.com/pulp/pulpcore/issues/3639)
Bugfixes
- Bump dynaconf version to 3.1.12 given it fixes a bug to handle failures when pwd does not exist.
[3310](https://github.com/pulp/pulpcore/issues/3310)
- Added validation to the repository modify endpoint.
[3326](https://github.com/pulp/pulpcore/issues/3326)
- Addressed a possible N+1 query performance issue within reclaim_space task.
[3404](https://github.com/pulp/pulpcore/issues/3404)
- Added repeating logic to signalling a task worker subprocess. This should fix a bug where the
task refuses to be terminated easily.
[3407](https://github.com/pulp/pulpcore/issues/3407)
- Added a `start_repository_version` parameter to the file system exporter.
If specified, it will export only content units that differed between two repository versions.
[3413](https://github.com/pulp/pulpcore/issues/3413)
- Fixed the label migration code for not null constraint errors when objects with and without labels
are migrated.
[3495](https://github.com/pulp/pulpcore/issues/3495)
- Added int64 format to integer fields in api schema.
[3590](https://github.com/pulp/pulpcore/issues/3590)
- Fixed a bug that caused Pulp to return duplicate content when a user was logged in as a
non-superuser while the content was part of multiple repositories.
[3641](https://github.com/pulp/pulpcore/issues/3641)
- Added missing validation to the `repair` endpoint.
[3645](https://github.com/pulp/pulpcore/issues/3645)
- Fixed bug related to pulpcore-content serving content from a remote (pull-through-cache).
[3654](https://github.com/pulp/pulpcore/issues/3654)
Improved Documentation
- Revisited features in tech preview (e.g., ACS, RBAC, metadata signing, import/export) and marked
them production ready.
[3429](https://github.com/pulp/pulpcore/issues/3429)
- Documented PostgreSQL version compatibility and incompatibility with transaction based connection
pooling.
[3505](https://github.com/pulp/pulpcore/issues/3505)
- Updated the release-process doc to be more complete.
[3514](https://github.com/pulp/pulpcore/issues/3514)
- Added links to the Containerfiles used for building the pulp and pulp-minimal OCI images.
[3627](https://github.com/pulp/pulpcore/issues/3627)
Removals
- Removed the PROFILE_STAGES_API setting along with the dependent code.
[3595](https://github.com/pulp/pulpcore/issues/3595)
Misc
- [3446](https://github.com/pulp/pulpcore/issues/3446), [#3541](https://github.com/pulp/pulpcore/issues/3541), [#3569](https://github.com/pulp/pulpcore/issues/3569), [#3574](https://github.com/pulp/pulpcore/issues/3574), [#3584](https://github.com/pulp/pulpcore/issues/3584), [#3638](https://github.com/pulp/pulpcore/issues/3638)
Plugin API
Features
- Refactored `ArtifactDownloader` stage logic into base class `GenericDownloader` and allow for
the progress reports message and code to be customized by subclasses.
[1931](https://github.com/pulp/pulpcore/issues/1931)
- Added version information to the worker records in the database.
[3365](https://github.com/pulp/pulpcore/issues/3365)
- Added new config option `domain_compatible` to `PluginAppConfig` to specify Domains feature
compatibility within a plugin. See Domains compatibility documentation in plugin-writer section for
more information.
[3403](https://github.com/pulp/pulpcore/issues/3403)
- Exported `TaskSerializer` in `pulpcore.plugin.serializers`
[3506](https://github.com/pulp/pulpcore/issues/3506)
- Added Replicator class that plugins can implement to enable distribution/repository replication.
[3566](https://github.com/pulp/pulpcore/issues/3566)
- Exposed a function for extracting PKs from URIs and a function for validating content units
(`pulpcore.plugin.util.extract_pk`, `pulpcore.plugin.util.raise_for_unknown_content_units`).
[3604](https://github.com/pulp/pulpcore/issues/3604)
- Add `label_field_name` arg to `LabelFilter()` filter that allows plugin devs to
customize the model field that `LabelFilter` filters on.
[3631](https://github.com/pulp/pulpcore/issues/3631)
Bugfixes
- Added HiddenFieldsMixin to the plugin API.
[3520](https://github.com/pulp/pulpcore/issues/3520)
- Exported `LabelFilter` to the plugin api as a replacement for the deprecated
`LabelSelectFilter`.
[3570](https://github.com/pulp/pulpcore/issues/3570)
Improved Documentation
- Adds docs that plugin writers tasks must be backwards compatible until the next major Pulp version.
[3368](https://github.com/pulp/pulpcore/issues/3368)
- Adds docs on the need and possible options for writing migrations in a way that they could be
applied to a running Pulp system.
[3443](https://github.com/pulp/pulpcore/issues/3443)
Deprecations
- Deprecated `NamedModelViewSet.extract_pk` in favour of `pulpcore.plugin.util.extract_pk`.
Deprecated `pulpcore.plugin.actions.raise_for_unknown_content_units` in favour of
`pulpcore.plugin.util.raise_for_unknown_content_units`.
[3604](https://github.com/pulp/pulpcore/issues/3604)