Features
- The package upload feature was changed to allow the upload of packages which are already
uploaded - in this scenario, the API will display the existing package as if it had just
been created.
[2764](https://github.com/pulp/pulp_rpm/issues/2764)
- Added the ability to replicate RPM distributions/repositories from an upstream Pulp instance.
[2995](https://github.com/pulp/pulp_rpm/issues/2995)
- Added a new setting `RPM_METADATA_USE_REPO_PACKAGE_TIME` that will set the primary.xml timestamp
of each package to when the package was added to the repo rather than when the package first
appeared in Pulp.
[3009](https://github.com/pulp/pulp_rpm/issues/3009)
- Added more filter options on the packages API.
[3135](https://github.com/pulp/pulp_rpm/issues/3135)
Bugfixes
- Publish all metadata with a stable sort order. This should reduce artifact churn when certain metadata files are published repeatedly unchanged.
[2752](https://github.com/pulp/pulp_rpm/issues/2752)
- Fixed a failure that can occur during migration from 3.17 to 3.18
[2952](https://github.com/pulp/pulp_rpm/issues/2952)
- Fix a minor module metadata parsing regression that broke Pulp-to-Pulp sync in some scenarios.
[2961](https://github.com/pulp/pulp_rpm/issues/2961)
- Stopped publishing updateinfo.xml when there are no advisories.
[2967](https://github.com/pulp/pulp_rpm/issues/2967)
- Fixed 0044_noartifact_modules migration that was failing with object storage.
[2988](https://github.com/pulp/pulp_rpm/issues/2988)
- Loosen modulemd validation to allow version numbers that have string type but represent integers
[2998](https://github.com/pulp/pulp_rpm/issues/2998)
- Fixed a regression in 3.19 which resulted in unintentional API changes and problems with "depsolving" repo copy.
[3012](https://github.com/pulp/pulp_rpm/issues/3012)
- Fix import/export not importing modulemd_packages data with ManyToMany relationship.
[3019](https://github.com/pulp/pulp_rpm/issues/3019)
- Fix relative path and location href mismatch of the uploaded rpm caused by filename and rpm header mismatch. Clients are getting HTTP 404 Not Found error when downloading the rpm.
[3039](https://github.com/pulp/pulp_rpm/issues/3039)
- Fix a bug with copying modules with depsolving enabled - dependencies were not copied.
[3119](https://github.com/pulp/pulp_rpm/issues/3119)
- Fix a bug for certain repos (e.g. mercurial) relating to how modules are handled.
[3121](https://github.com/pulp/pulp_rpm/issues/3121)
- Fix an issue where the name of UpdateCollection is not defined and might affect import/export, and added a data repair script (pulpcore-manager rpm-datarepair 3127).
[3127](https://github.com/pulp/pulp_rpm/issues/3127)
- Fixes an accidental change that was made to how "profiles" are formatted in the modulemd API.
[3131](https://github.com/pulp/pulp_rpm/issues/3131)
Misc
- [2242](https://github.com/pulp/pulp_rpm/issues/2242), [#2867](https://github.com/pulp/pulp_rpm/issues/2867), [#2868](https://github.com/pulp/pulp_rpm/issues/2868), [#2869](https://github.com/pulp/pulp_rpm/issues/2869), [#2870](https://github.com/pulp/pulp_rpm/issues/2870), [#2871](https://github.com/pulp/pulp_rpm/issues/2871), [#2873](https://github.com/pulp/pulp_rpm/issues/2873), [#2874](https://github.com/pulp/pulp_rpm/issues/2874), [#2875](https://github.com/pulp/pulp_rpm/issues/2875), [#2876](https://github.com/pulp/pulp_rpm/issues/2876), [#2877](https://github.com/pulp/pulp_rpm/issues/2877), [#2878](https://github.com/pulp/pulp_rpm/issues/2878), [#2879](https://github.com/pulp/pulp_rpm/issues/2879), [#2880](https://github.com/pulp/pulp_rpm/issues/2880), [#2881](https://github.com/pulp/pulp_rpm/issues/2881), [#2882](https://github.com/pulp/pulp_rpm/issues/2882), [#2883](https://github.com/pulp/pulp_rpm/issues/2883), [#2884](https://github.com/pulp/pulp_rpm/issues/2884), [#2885](https://github.com/pulp/pulp_rpm/issues/2885), [#2887](https://github.com/pulp/pulp_rpm/issues/2887), [#3076](https://github.com/pulp/pulp_rpm/issues/3076), [#3077](https://github.com/pulp/pulp_rpm/issues/3077), [#3078](https://github.com/pulp/pulp_rpm/issues/3078), [#3079](https://github.com/pulp/pulp_rpm/issues/3079), [#3095](https://github.com/pulp/pulp_rpm/issues/3095)
---