All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- YumSyncOption's
skipparameter is now correctly passed to the rhsm-pulp API astype_skip_list
2.43.2 - 2026-01-21
- Extra release due to issues with pypi release
2.43.1 - 2026-01-21
- Fixed search request for
TaskPoller
2.43.0 - 2025-10-02
- Added
filelistattr andget_files()method to RpmUnit
2.42.1 - 2025-04-01
- Updated default value of
YumRepository.ubi_config_version
2.42.0 - 2025-03-26
- Fix matching all content when content type id is empty in search criteria
- Made some UBI related notes mutable
- Reimplemented
naturalsizepreviously used fromhumanize
2.41.0 - 2024-10-02
YumRepository.upload_comps_xmlnow writes all fields on uploaded units even when absent from the given XML, giving a more consistent "replace existing comps" behavior.
2.40.1 - 2024-09-27
- Added support for repository creation with Distributor
2.39.2 - 2024-07-19
- Fix source code structure.
2.39.1 - 2024-04-04
- Extra release to PyPI due to inconsistency in release tags
2.39.0 - 2024-03-28
- Added
RpmUnit.filesattribute - Added
Client.create_repository()method
2.38.1 - 2023-12-14
- Added
PULP_MANIFEST.asctomutable_urlsofFileRepository - Fixed
validatorforModulemdUnit.profiles
2.38.0 - 2023-10-23
- Added
limitoption forRepository.remove_content()method
2.37.2 - 2023-10-20
- Fixed handling of
ud_file_release_mappings_2repo note
2.37.1 - 2023-09-13
- Added backports of
is_callable,deep_iterableanddeep_mappingvalidators forattrs<19.1
2.37.0 - 2023-09-07
- Added
provisioningattribute toRepositoryclass - Added delete capability for the
ud_file_release_mappings_2repo note - Default headers for
Clientare retained, if not explicitly passed
2.36.1 - 2023-04-04
- Restored compatibility with
attrs<18.2(earlier dropped in v2.34.5)
2.36.0 - 2023-03-23
- Introduced advisory locking API,
Repository.lock - Tweaked
__repr__implementation forErratumUnit
2.35.0 - 2023-03-01
- Added new container_list attribute for Erratum unit
2.34.5 - 2023-02-07
- Removed support for Python 2
- Reduced memory usage when uploading large files to Pulp
2.34.4 - 2023-01-04
- Fixed compatibility issues with
attrs:kw_onlykwarg was missing in versions earlier than 18.2 on Python 3
2.34.3 - 2022-12-09
- Fixed dependency issues with
monotonic: declare the dependency, and only require it for python versions missingtime.monotonic
2.34.2 - 2022-08-03
- Fixed flaky results from searches using
versionfield. In cases where multiple unit classes have fields of the same name but different types, it is now required to include a disambiguatingwith_unit_typeclause in search criteria.
2.34.1 - 2022-08-02
- Fixed incorrect results on searches using
FileUnit.cdn_published,RpmUnit.cdn_publishedfields due to missing converters.
2.34.0 - 2022-07-08
- Introduced
include_in_download_service,include_in_download_service_previewfields onRepository.
2.33.0 - 2022-05-09
- Introduced
unit_fieldsparameter toCriteria.with_unit_type: allows for limiting the fields returned during search
2.32.0 - 2022-05-06
- Fixed dependency on
frozendictincorrectly declared for python2 FakeControllernow supports creating more than one client
2.31.0 - 2022-05-03
- Ensure that
profilesfield on modulemd units is immutable Clientnow has a configurable thread count
2.30.0 - 2022-04-04
- Fixed searches in progress sometimes incorrectly cancelled during pagination
2.29.0 - 2022-03-28
- Fixed upload of RPMs with versionless dependencies via fake client
- Fixed
reprforRpmDependency - Added fields to repository model:
arch,platform_full_version,product_versions - Added
update_repositorymethod to update a repository's mutable fields - Added
CopyOptionsforcopy_contentmethod
2.28.1 - 2022-03-16
- Fixed a deprecation warning logged during upload of comps.xml.
2.28.0 - 2022-03-15
- Added
criteriatoRepository.remove_content. - Fixed handling of absent
defaultfields in package environment options during upload of comps.xml.
2.27.0 - 2022-03-10
- Pulp objects have an improved
reprimplementation which omits redundant information. TaskFailedExceptionnow includes task failure details in the exception's message.YumRepository.get_(debug|binary|source)_repositoryhave been revised to use distributor config rather than repo config. This allows the methods to work on the fake client.
2.26.1 - 2022-03-09
- Add a workaround for Python 2 strptime bug 7980.
2.26.0 - 2022-03-08
- Make most model classes slotted, for reduced memory usage.
2.25.1 - 2022-03-02
- Make
humanizedependency, introduced in 2.25.0, optional at runtime.
2.25.0 - 2022-02-25
- Added progress logging during long-running uploads.
2.24.0 - 2022-02-23
- The
Repository.is_sigstoreattribute has been deprecated. - Fixed a crash bug when uploading files of size >1GB.
2.23.2 - 2022-02-22
- Improved searching capabilities for fake client.
2.23.1 - 2022-02-21
- Minor internal refactors for improved debuggability.
2.23.0 - 2022-02-07
- Added
version,display_orderfields toFileUnit. - The
ud_file_release_mappings_2repository note is now set on repos during publish.
2.22.0 - 2022-01-25
- Added
pulp_repository_pre_publishpubtools hook.
2.21.0 - 2021-12-15
- Added support for orphaned units to fake client.
- The
cdn_publishedfield now accepts ISO8601-format timestamps. - It is no longer possible to store duplicates in the
repository_membershipsfield.
2.20.0 - 2021-12-10
- Added many new fields:
ModulemdUnit.dependencies,FileUnit.description,cdn_publishedandcdn_pathon files and RPMs, andunit_idon all units. - Introduced concept of "mutable fields", which may be set during upload or using
the new
update_contentmethod.
2.19.0 - 2021-12-06
- Fix
copy_contenton fake client failing to updaterepository_membershipsfield.
- Added
Client.search_taskfor searching tasks. - Added
requiresandprovidesattrs toRpmUnitclass.
Criteria,Matcherobjects now stringify more concisely.
2.18.0 - 2021-11-29
- Added
basic_auth_username,basic_auth_passwordtoSyncOptionsto support authenticated sync tasks. - Fake client now accurately reproduces Pulp server behavior around replacing an existing file/iso unit.
2.17.0 - 2021-10-27
- Added upload support for more content types to
YumRepository:upload_comps_xml,upload_erratum,upload_metadata,upload_modules. - Added unit models for more content types:
ErratumUnit,YumRepoMetadataFileUnit. - Added
Client.copy_contentfor copying content from one repository to another. - Changed
FileUnitschema to accept non-integer values ofsizeduring load, for compatibility with some legacy data. - Fixed
Taskschema too strict, formely being unable to load certain kinds of tasks (such as removing orphans). - Added more verbose logging on errors during load of Pulp data.
2.16.0 - 2021-09-30
- Added
YumRepository.upload_rpm. - Internal refactoring and changes to logging of uploads.
2.15.0 - 2021-09-13
- Added
content_type_idattribute toModuldemdDefaultsUnitclass.
2.14.0 - 2021-09-02
- Introduced
Criteria.with_unit_type, to search for content of a specific type.
- Fixed
search_contentrepeatedly querying Pulp for content type IDs. - Fixed
upload_fileon test client not updating repository content.
- Deprecated
FakeController.upload_history. Repository content should be checked instead.
2.13.0 - 2021-08-24
- Searching for RPMs by sha256sum will now use the indexed
checksumfield on Pulp, rather than the non-indexedchecksums.sha256field. This can significantly improve the performance of these searches on large systems. - The
repository_membershipsfield will now be populated in units returned fromsearch_content. - The
repository_membershipsfield will now always be sorted to ensure stable behavior.
2.12.1 - 2021-08-11
- Fixed handling of
type_idsin calls toremove_content. Previously, the argument did not result in filtering by type as expected.
2.12.0 - 2021-07-26
Clientinstances can now be used in awithstatement to manage the lifecycle of the underlying threads.
2.11.0 - 2021-07-15
- Introduced
pulp_repository_publishedhook. This may be used to subscribe to all repository publish events triggered by this library.
- Internal refactoring for improved debuggability.
2.10.0 - 2021-06-28
- Filename attribute for RpmUnit class
- nsvca property for ModulemdUnit class
2.9.0 - 2021-06-15
- Support for various repo notes for Repository model
- Support for various fields of ModuleMd unit
- Introduced YumRepository.get_x_repository methods that can retrieve related binary, debug and source repository
2.8.0 - 2021-03-17
- Maximum number of queued or running Pulp tasks can be customized by callers
2.7.0 - 2020-06-11
- Use repo id as registry_id when it's not set in distributor config or set to null or empty string
2.6.0 - 2020-05-05
- sourcerpm attribute for Rpm unit
- client.search_content method
- Introduced 'population_sources' and 'ubi_population' attributes for yum repository
- 'stream' and 'profiles' are now optional on modulemd_defaults units, rather than incorrectly mandatory (leading to schema validation errors)
2.5.0 - 2020-02-25
- Introduced
Repository.syncAPI (and associatedSyncOptionsclasses) for synchronizing Pulp repositories.
2.4.0 - 2020-01-13
- Introduced
Repository.search_contentAPI for retrieving content units from Pulp repositories.
- Fixed a bug that export an empty maintenance report would crash.
- Fixed another bug that maintenance report could have an invalid
last_updated_byvalue.
2.3.1 - 2019-10-03
- Fixed certain exceptions from requests library not being propagated properly while getting maintenance report.
- Task failure/completion logs now include task tags.
- Patterns to
Matcher.regexare now more strictly typechecked when the matcher is created.
2.3.0 - 2019-09-25
- Introduced
Distributor.deletefor deleting a distributor from Pulp.
2.2.0 - 2019-09-16
- Introduced "proxy futures" for values produced by this library.
- Added a new attribute
relative_urltoDistributor, so users can search distributors by relative_url
2.1.0 - 2019-09-10
- A
search_distributorAPI to search distributors on definedCriteria Matcher.less_than()matcher to find the results with fields less than the given value
- Fixed certain exceptions from requests library (such as SSL handshake errors) not being propagated correctly.
2.0.0 - 2019-09-09
Pageobjects may now be directly used as iterables
- API break: types of fields on model objects are now strictly validated during construction.
- API break: objects documented as immutable are now more deeply immutable; it is no longer possible to mutate list fields on these objects.
- API break: fixed inconsistencies on collection model fields. All fields previously declared as tuples have been updated to use (immutable) lists.
- API break:
MaintenanceReport.last_updated,MaintenanceEntry.startedare nowdatetimeobjects as documented. In previous versions, these were documented as datetimes but implemented asstr.
Page.as_iteris now deprecated.
1.5.0 - 2019-09-03
- Introduced
Repository.remove_contentto remove contents of a repository. - Introduced
Unitclasses representing various types of Pulp units.
- Fixed hashability of
PulpObjectsubclasses, making it possible to use them in sets/dicts
Task.units_datais now deprecated in favor ofTask.units.
1.4.0 - 2019-09-02
- Support querying and updating maintenance mode of Pulp repositories
- Introduced
Client.get_content_type_idsmethod to retrieve supported content types.
- Fixed a crash in
upload_filewhen passed a file object opened in text mode
1.3.0 - 2019-08-15
- Introduced
Repository.is_temporaryattribute - Extended search functionality; it is now possible to search using fields defined
on the
PulpObjectclasses. Searching on raw Pulp fields remains supported.
- Fixed inconsistency between real and fake clients: both clients now immediately raise
if a search is attempted with invalid criteria. Previously, the fake client would
instead return a failed
Future.
1.2.1 - 2019-08-12
- Fixed import conflicts for
pubtoolsmodule
1.2.0 - 2019-08-07
- A new API
FileRepository.upload_fileto upload a file to Pulp repository
1.1.0 - 2019-07-03
- Extended search functionality to support matching fields by regular expression,
using new
Matcherclass
Criteria.existsis now deprecated in favor ofMatcher.exists()Criteria.with_field_inis now deprecated in favor ofMatcher.in_()
1.0.0 - 2019-06-26
- Fixed some unstable autotests
- Version set to 1.0.0 to indicate that API is now considered stable
0.3.0 - 2019-06-18
- Repository and Task objects have many additional attributes
- Changed formatting of task error text; now includes a header with the ID of the failed task
- Client now stops paginated searches if the caller is not holding any references to the search result
- Fixed a crash on Python 2.6
0.2.1 - 2019-06-17
- Fixed various compatibility issues with old versions of libraries
0.2.0 - 2019-06-14
- Task error_summary and error_details are now initialized appropriately with data from Pulp
- Client now logs Pulp load every few minutes when awaiting tasks
- Client now logs warnings when Pulp operations are being retried
- Cancelling a future now attempts to cancel underlying Pulp task(s)
- Deleting a resource which is already nonexistent now succeeds
0.1.1 - 2019-06-13
- Fixed missing schema files from distribution
- Initial release to PyPI