- Using retain_package_versions (with the required "additive" sync_policy) will now avoid downloading the older packages when synced with download_policy "on_demand", resulting in much faster and more efficient syncs. [2479](https://github.com/pulp/pulp_rpm/issues/2479)
- Don't raise a fatal error when encountering mostly valid metadata that contains data we don't expect, or data in the wrong places, in situations where it doesn't really matter. [2686](https://github.com/pulp/pulp_rpm/issues/2686)
---
3.14.17
Bugfixes
- Substantial improvements to the memory consumption of syncs, with a modest improvement in time required to sync. [2296](https://github.com/pulp/pulp_rpm/issues/2296) - Improved error reporting in one scenario where it could be highly confusing. [2395](https://github.com/pulp/pulp_rpm/issues/2395)
- Fixed an issue that could cause orphan cleanup to fail for certain repos. [2459](https://github.com/pulp/pulp_rpm/issues/2459) - Fix a small FD leak during complete mirror syncs [2624](https://github.com/pulp/pulp_rpm/issues/2624)
- Fix an issue where package requirements containing an ampersand character in the name might have their data parsed incorrectly, and added a data repair script (pulpcore-manager rpm-datarepair 2460). [2460](https://github.com/pulp/pulp_rpm/issues/2460) - Fixed instances of /tmp/ being used instead of the worker's working directory. [2475](https://github.com/pulp/pulp_rpm/issues/2475)
---
3.14.14
Bugfixes
- Taught advisory-conflict-resolution to handle just-EVR-differences in incoming advisory's package-list. This solves the case of repositories that update advisories to always have the newest versions of RPMs (looking at you, EPEL...). [2422](https://github.com/pulp/pulp_rpm/issues/2422) - Fix the behavior of gpgcheck and repo_gpgcheck options when specified on the repository. [2430](https://github.com/pulp/pulp_rpm/issues/2430)