pulp-ansible 0.27.0__tar.gz → 0.28.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/CHANGES.md +32 -0
  2. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/PKG-INFO +7 -9
  3. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/__init__.py +1 -1
  4. pulp_ansible-0.28.0/pulp_ansible/app/migrations/0065_collectionversion_ansible_col_namespa_ea6f75_idx.py +19 -0
  5. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/models.py +3 -0
  6. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/collections.py +76 -40
  7. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_deprecation.py +29 -8
  8. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/PKG-INFO +7 -9
  9. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/SOURCES.txt +1 -0
  10. pulp_ansible-0.28.0/pulp_ansible.egg-info/requires.txt +7 -0
  11. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pyproject.toml +8 -10
  12. pulp_ansible-0.27.0/pulp_ansible.egg-info/requires.txt +0 -8
  13. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/COMMITMENT +0 -0
  14. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/COPYRIGHT +0 -0
  15. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/LICENSE +0 -0
  16. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/MANIFEST.in +0 -0
  17. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/README.rst +0 -0
  18. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/functest_requirements.txt +0 -0
  19. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/__init__.py +0 -0
  20. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/constants.py +0 -0
  21. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/downloaders.py +0 -0
  22. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/fields.py +0 -0
  23. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/__init__.py +0 -0
  24. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/mixins.py +0 -0
  25. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/serializers.py +0 -0
  26. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/__init__.py +0 -0
  27. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/exceptions.py +0 -0
  28. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/filters.py +0 -0
  29. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/pagination.py +0 -0
  30. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/serializers.py +0 -0
  31. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/views.py +0 -0
  32. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/v3/viewsets.py +0 -0
  33. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/galaxy/views.py +0 -0
  34. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/global_access_conditions.py +0 -0
  35. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/logutils.py +0 -0
  36. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/management/__init__.py +0 -0
  37. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/management/commands/__init__.py +0 -0
  38. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/management/commands/download-log.py +0 -0
  39. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0001_initial.py +0 -0
  40. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0001_initial_squashed_0040_ansiblerepository_keyring.py +0 -0
  41. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0002_advanced_collections.py +0 -0
  42. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0003_add_tags_and_collectionversion_fields.py +0 -0
  43. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0004_add_fulltext_search_indexes.py +0 -0
  44. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0005_collectionversion_is_highest.py +0 -0
  45. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0006_remove_whitelist_and_alter_collection_version_name.py +0 -0
  46. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0007_collectionversion_is_certified.py +0 -0
  47. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0008_collectionremote_requirements_file.py +0 -0
  48. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0009_collectionimport.py +0 -0
  49. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0010_ansible_related_names.py +0 -0
  50. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0011_collectionimport.py +0 -0
  51. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0012_auto_20190906_2253.py +0 -0
  52. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0013_pulp_fields.py +0 -0
  53. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0014_certification_enum.py +0 -0
  54. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0015_ansiblerepository.py +0 -0
  55. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0016_add_extension.py +0 -0
  56. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0017_increase_length_collectionversion_fields.py +0 -0
  57. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0018_fix_collection_relative_path.py +0 -0
  58. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0019_collection_token.py +0 -0
  59. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0020_auto_20200810_1926.py +0 -0
  60. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0021_rename_role_remote.py +0 -0
  61. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0022_URLField_to_CharField.py +0 -0
  62. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0023_alter_requirements_file_field.py +0 -0
  63. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0024_remove_collectionversion_certification.py +0 -0
  64. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0025_increase_collection_version_version_size.py +0 -0
  65. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0026_deprecation_per_repository.py +0 -0
  66. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0027_tag_length.py +0 -0
  67. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0028_collectionversion_namespace_length.py +0 -0
  68. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0029_manifest_and_files_json_fields.py +0 -0
  69. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0030_collectionversion_requires_ansible.py +0 -0
  70. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0031_ansiblerepository_last_synced_metadata_time.py +0 -0
  71. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0032_collectionremote_sync_dependencies.py +0 -0
  72. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0033_swap_distribution_model.py +0 -0
  73. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0034_handle_jsonfield_warnings.py +0 -0
  74. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0035_deprecation_content.py +0 -0
  75. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0036_update_repository_content.py +0 -0
  76. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0037_gitremote.py +0 -0
  77. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0038_collectionversionsignature.py +0 -0
  78. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0039_collectionremote_signed_only.py +0 -0
  79. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0040_ansiblerepository_keyring.py +0 -0
  80. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0041_alter_collectionversion_collection.py +0 -0
  81. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0042_ansiblerepository_gpgkey.py +0 -0
  82. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0043_alter_collectionversionsignature_data.py +0 -0
  83. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0044_alter_collectionremote_token.py +0 -0
  84. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0045_downloadlog.py +0 -0
  85. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0046_add_fulltext_search_fix.py +0 -0
  86. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0047_ansible_namespace.py +0 -0
  87. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0048_collectionversionmark.py +0 -0
  88. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0049_rbac_permissions.py +0 -0
  89. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0050_crossrepositorycollectionversionindex.py +0 -0
  90. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0051_cvindex_build.py +0 -0
  91. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0052_alter_ansiblecollectiondeprecated_content_ptr_and_more.py +0 -0
  92. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0053_collectiondownloadcount.py +0 -0
  93. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0054_split_collection_version_numbers.py +0 -0
  94. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0055_alter_collectionversion_version_alter_role_version.py +0 -0
  95. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0056_collectionversion_sha256.py +0 -0
  96. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0057_collectionversion_sha256_migrate.py +0 -0
  97. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0058_fix_0056_regression.py +0 -0
  98. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0059_collectionversion_unique_sha256.py +0 -0
  99. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0060_remove_collectionversion_unique_is_highest_and_more.py +0 -0
  100. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0061_collectionversion_new_tags.py +0 -0
  101. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0062_pivot_collectionversion_tags.py +0 -0
  102. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0063_domain_support.py +0 -0
  103. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/0064_alter_collection_unique_together_and_more.py +0 -0
  104. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/migrations/__init__.py +0 -0
  105. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/modelresource.py +0 -0
  106. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/schema/__init__.py +0 -0
  107. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/schema/copy_config.json +0 -0
  108. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/serializers.py +0 -0
  109. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/settings.py +0 -0
  110. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/__init__.py +0 -0
  111. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/collectionversion_index.py +0 -0
  112. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/copy.py +0 -0
  113. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/deletion.py +0 -0
  114. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/git.py +0 -0
  115. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/mark.py +0 -0
  116. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/roles.py +0 -0
  117. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/signature.py +0 -0
  118. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/test_tasks.py +0 -0
  119. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/upload.py +0 -0
  120. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/tasks/utils.py +0 -0
  121. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/urls.py +0 -0
  122. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/utils.py +0 -0
  123. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/viewsets.py +0 -0
  124. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/webserver_snippets/__init__.py +0 -0
  125. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/webserver_snippets/apache.conf +0 -0
  126. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/app/webserver_snippets/nginx.conf +0 -0
  127. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/pytest_plugin.py +0 -0
  128. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/__init__.py +0 -0
  129. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/__init__.py +0 -0
  130. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/__init__.py +0 -0
  131. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/__init__.py +0 -0
  132. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_copy_and_move.py +0 -0
  133. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_crud_collection_versions.py +0 -0
  134. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_marks.py +0 -0
  135. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_remote.py +0 -0
  136. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_signatures.py +0 -0
  137. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/test_sync.py +0 -0
  138. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/__init__.py +0 -0
  139. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_client_configuration.py +0 -0
  140. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_collection.py +0 -0
  141. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_collection_naming_edgecases.py +0 -0
  142. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_collection_version_search.py +0 -0
  143. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_content_guard.py +0 -0
  144. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_deletion.py +0 -0
  145. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_namespace.py +0 -0
  146. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_proxy.py +0 -0
  147. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_redirects.py +0 -0
  148. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_serializers.py +0 -0
  149. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/collection/v3/test_sync.py +0 -0
  150. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/git/__init__.py +0 -0
  151. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/git/test_crud_remotes.py +0 -0
  152. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/git/test_sync.py +0 -0
  153. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/role/__init__.py +0 -0
  154. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/role/test_crud_distribution.py +0 -0
  155. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/role/test_crud_remote.py +0 -0
  156. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/role/test_sync.py +0 -0
  157. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/test_domain.py +0 -0
  158. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/test_export_import.py +0 -0
  159. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/api/test_rbac.py +0 -0
  160. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/__init__.py +0 -0
  161. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/test_collection_download_count.py +0 -0
  162. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/test_collection_install.py +0 -0
  163. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/test_collection_upload.py +0 -0
  164. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/cli/test_role_install.py +0 -0
  165. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/constants.py +0 -0
  166. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/functional/utils.py +0 -0
  167. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/__init__.py +0 -0
  168. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/create_repos_with_collections.py +0 -0
  169. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/fast_load_collections.py +0 -0
  170. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/generate_collections.py +0 -0
  171. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/performance/promote.py +0 -0
  172. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/__init__.py +0 -0
  173. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/migrations/__init__.py +0 -0
  174. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/migrations/conftest.py +0 -0
  175. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/migrations/test_0057_collection_version_sha256_migrate.py +0 -0
  176. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/migrations/test_x_repo_search_migration.py +0 -0
  177. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_cv_index.py +0 -0
  178. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_models.py +0 -0
  179. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_search.py +0 -0
  180. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_serializers.py +0 -0
  181. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/test_tasks.py +0 -0
  182. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible/tests/unit/utils.py +0 -0
  183. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/dependency_links.txt +0 -0
  184. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/entry_points.txt +0 -0
  185. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/pulp_ansible.egg-info/top_level.txt +0 -0
  186. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/setup.cfg +0 -0
  187. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/test_requirements.txt +0 -0
  188. {pulp_ansible-0.27.0 → pulp_ansible-0.28.0}/unittest_requirements.txt +0 -0
@@ -8,6 +8,30 @@
8
8
 
9
9
  [//]: # (towncrier release notes start)
10
10
 
11
+ ## 0.28.0 (2025-08-13) {: #0.28.0 }
12
+
13
+ #### Features {: #0.28.0-feature }
14
+
15
+ - Add a database index to collection version lookup by namespace, name, version to speed up common queries.
16
+
17
+ #### Bugfixes {: #0.28.0-bugfix }
18
+
19
+ - Fixed the sync pipeline to not manipulate the RepositoryContent table directly when undeprecating collections.
20
+
21
+ #### Deprecations and Removals {: #0.28.0-removal }
22
+
23
+ - This release drops support for Python<3.11.
24
+
25
+ ---
26
+
27
+ ## 0.27.1 (2025-07-15) {: #0.27.1 }
28
+
29
+ #### Bugfixes {: #0.27.1-bugfix }
30
+
31
+ - Fixed the sync pipeline to not manipulate the RepositoryContent table directly when undeprecating collections.
32
+
33
+ ---
34
+
11
35
  ## 0.27.0 (2025-07-09) {: #0.27.0 }
12
36
 
13
37
  #### Features {: #0.27.0-feature }
@@ -75,6 +99,14 @@
75
99
 
76
100
  ---
77
101
 
102
+ ## 0.24.7 (2025-07-15) {: #0.24.7 }
103
+
104
+ #### Bugfixes {: #0.24.7-bugfix }
105
+
106
+ - Fixed the sync pipeline to not manipulate the RepositoryContent table directly when undeprecating collections.
107
+
108
+ ---
109
+
78
110
  ## 0.24.6 (2025-04-23) {: #0.24.6 }
79
111
 
80
112
  #### Features {: #0.24.6-feature }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulp-ansible
3
- Version: 0.27.0
3
+ Version: 0.28.0
4
4
  Summary: Pulp plugin to manage Ansible content, e.g. roles
5
5
  Author-email: Pulp Ansible Plugin Project Developers <pulp-dev@redhat.com>
6
6
  Project-URL: Homepage, https://pulpproject.org
@@ -14,17 +14,15 @@ Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Framework :: Django
15
15
  Classifier: Programming Language :: Python
16
16
  Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.9
18
- Requires-Python: >=3.9
17
+ Requires-Python: >=3.11
19
18
  Description-Content-Type: text/x-rst
20
19
  License-File: LICENSE
21
- Requires-Dist: async_lru<2.1,>=1.0
22
- Requires-Dist: galaxy_importer<0.5,>=0.4.5
20
+ Requires-Dist: galaxy_importer<0.5,>=0.4.27
23
21
  Requires-Dist: GitPython<3.2,>=3.1.24
24
- Requires-Dist: jsonschema<4.24,>=4.9
25
- Requires-Dist: Pillow<11.2,>=10.3
26
- Requires-Dist: pulpcore<3.85,>=3.63.0
27
- Requires-Dist: PyYAML<7.0,>=5.4.1
22
+ Requires-Dist: jsonschema<4.26,>=4.9
23
+ Requires-Dist: Pillow<11.4,>=10.3
24
+ Requires-Dist: pulpcore<3.100,>=3.63.0
25
+ Requires-Dist: PyYAML<7.0,>=6.0.2
28
26
  Requires-Dist: semantic_version<2.11,>=2.9
29
27
  Dynamic: license-file
30
28
 
@@ -8,6 +8,6 @@ class PulpAnsiblePluginAppConfig(PulpPluginAppConfig):
8
8
 
9
9
  name = "pulp_ansible.app"
10
10
  label = "ansible"
11
- version = "0.27.0"
11
+ version = "0.28.0"
12
12
  python_package_name = "pulp-ansible"
13
13
  domain_compatible = True
@@ -0,0 +1,19 @@
1
+ # Generated by Django 4.2.22 on 2025-07-09 10:53
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("ansible", "0064_alter_collection_unique_together_and_more"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddIndex(
14
+ model_name="collectionversion",
15
+ index=models.Index(
16
+ fields=["namespace", "name", "version"], name="ansible_col_namespa_ea6f75_idx"
17
+ ),
18
+ ),
19
+ ]
@@ -215,6 +215,9 @@ class CollectionVersion(Content):
215
215
  class Meta:
216
216
  default_related_name = "%(app_label)s_%(model_name)s"
217
217
  unique_together = ("sha256", "_pulp_domain")
218
+ indexes = [
219
+ models.Index(fields=["namespace", "name", "version"]),
220
+ ]
218
221
 
219
222
 
220
223
  class CollectionVersionMark(Content):
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ import functools
2
3
  import hashlib
3
4
  import json
4
5
  import logging
@@ -8,11 +9,11 @@ from gettext import gettext as _
8
9
  from operator import attrgetter
9
10
  from urllib.parse import urljoin
10
11
  from uuid import uuid4
12
+ import tempfile
11
13
 
12
14
  import yaml
13
15
  from aiohttp.client_exceptions import ClientError, ClientResponseError
14
16
  from asgiref.sync import sync_to_async
15
- from async_lru import alru_cache
16
17
  from django.db import transaction
17
18
  from django.db.models import Q
18
19
  from django.db.utils import IntegrityError
@@ -30,7 +31,6 @@ from pulpcore.plugin.models import (
30
31
  ProgressReport,
31
32
  PulpTemporaryFile,
32
33
  Remote,
33
- RepositoryContent,
34
34
  RepositoryVersion,
35
35
  Task,
36
36
  )
@@ -38,6 +38,8 @@ from pulpcore.plugin.stages import (
38
38
  ArtifactDownloader,
39
39
  ArtifactSaver,
40
40
  ContentSaver,
41
+ ContentAssociation,
42
+ EndStage,
41
43
  DeclarativeArtifact,
42
44
  DeclarativeContent,
43
45
  DeclarativeVersion,
@@ -47,6 +49,7 @@ from pulpcore.plugin.stages import (
47
49
  RemoteArtifactSaver,
48
50
  ResolveContentFutures,
49
51
  Stage,
52
+ create_pipeline,
50
53
  )
51
54
  from pulpcore.plugin.util import get_url, get_domain
52
55
  from rest_framework.serializers import ValidationError
@@ -79,6 +82,26 @@ log = logging.getLogger(__name__)
79
82
  aget_url = sync_to_async(get_url)
80
83
 
81
84
 
85
+ def async_cache(f):
86
+ # A simple implementation for caching an async function with hashable arguments.
87
+ _cache = {}
88
+
89
+ @functools.wraps(f)
90
+ async def _wrapped_f(*args):
91
+ try:
92
+ return _cache[args]
93
+ except KeyError:
94
+ result = await f(*args)
95
+ _cache[args] = result
96
+ if len(_cache) > 128:
97
+ # This is a bit ad hoc and will give fifo instead of lru behaviour.
98
+ # I doubt it even makes a difference here.
99
+ _cache.pop(next(iter(_cache.keys())))
100
+ return result
101
+
102
+ return _wrapped_f
103
+
104
+
82
105
  # semantic_version.SimpleSpec interpretes "*" as ">=0.0.0"
83
106
  class AnsibleSpec(SimpleSpec):
84
107
  def __init__(self, expression):
@@ -197,14 +220,7 @@ def sync(remote_pk, repository_pk, mirror, optimize):
197
220
  if not remote.url:
198
221
  raise ValueError(_("A CollectionRemote must have a 'url' specified to synchronize."))
199
222
 
200
- deprecation_before_sync = set()
201
- for namespace, name in AnsibleCollectionDeprecated.objects.filter(
202
- pk__in=repository.latest_version().content
203
- ).values_list("namespace", "name"):
204
- deprecation_before_sync.add(f"{namespace}.{name}")
205
- first_stage = CollectionSyncFirstStage(
206
- remote, repository, is_repo_remote, deprecation_before_sync, optimize
207
- )
223
+ first_stage = CollectionSyncFirstStage(remote, repository, is_repo_remote, optimize)
208
224
  if first_stage.should_sync is False:
209
225
  log.debug(_("no-op: remote wasn't updated since last sync."))
210
226
  return
@@ -218,25 +234,6 @@ def sync(remote_pk, repository_pk, mirror, optimize):
218
234
  repository.last_synced_metadata_time = first_stage.last_synced_metadata_time
219
235
  repository.save(update_fields=["last_synced_metadata_time"])
220
236
 
221
- # This goes against all rules!
222
- # Content must be added and removed via the dedicated functions, which is impossible after the
223
- # repository version was finalized.
224
- # TODO Fix this!
225
- to_undeprecate = Q()
226
- undeprecated = deprecation_before_sync.difference(first_stage.deprecation_after_sync)
227
- if undeprecated:
228
- for collection in undeprecated:
229
- namespace, name = collection.split(".")
230
- to_undeprecate |= Q(namespace=namespace, name=name)
231
- deprecated = AnsibleCollectionDeprecated.objects.filter(
232
- to_undeprecate, pulp_domain=get_domain()
233
- )
234
- RepositoryContent.objects.filter(
235
- repository=repository,
236
- content__in=deprecated,
237
- version_removed__isnull=True,
238
- ).update(version_removed=repo_version)
239
-
240
237
 
241
238
  def import_collection(
242
239
  temp_file_pk,
@@ -475,13 +472,60 @@ class AnsibleDeclarativeVersion(DeclarativeVersion):
475
472
 
476
473
  return pipeline
477
474
 
475
+ def create(self):
476
+ """
477
+ Perform the work. This is the long-blocking call where all syncing occurs.
478
+
479
+ Returns: The created RepositoryVersion or None if it represents no change from the latest.
480
+ """
481
+ with tempfile.TemporaryDirectory(dir="."):
482
+ with self.repository.new_version() as new_version:
483
+ deprecation_before_sync = {
484
+ (namespace, name)
485
+ for namespace, name in AnsibleCollectionDeprecated.objects.filter(
486
+ pk__in=self.repository.latest_version().content
487
+ ).values_list("namespace", "name")
488
+ }
489
+ loop = asyncio.get_event_loop()
490
+ stages = self.pipeline_stages(new_version)
491
+ stages.append(UndeprecateStage(deprecation_before_sync))
492
+ stages.append(ContentAssociation(new_version, self.mirror))
493
+ stages.append(EndStage())
494
+ pipeline = create_pipeline(stages)
495
+ loop.run_until_complete(pipeline)
496
+
497
+ if deprecation_before_sync:
498
+ to_undeprecate = Q()
499
+ for namespace, name in deprecation_before_sync:
500
+ to_undeprecate |= Q(namespace=namespace, name=name)
501
+ new_version.remove_content(
502
+ AnsibleCollectionDeprecated.objects.filter(
503
+ to_undeprecate, pulp_domain=get_domain()
504
+ )
505
+ )
506
+
507
+ return new_version if new_version.complete else None
508
+
509
+
510
+ class UndeprecateStage(Stage):
511
+ def __init__(self, deprecation_before_sync):
512
+ self.deprecation_before_sync = deprecation_before_sync
513
+
514
+ async def run(self):
515
+ async for batch in self.batches():
516
+ for d_content in batch:
517
+ if isinstance(d_content.content, AnsibleCollectionDeprecated):
518
+ key = (d_content.content.namespace, d_content.content.name)
519
+ self.deprecation_before_sync.discard(key)
520
+ await self.put(d_content)
521
+
478
522
 
479
523
  class CollectionSyncFirstStage(Stage):
480
524
  """
481
525
  The first stage of a pulp_ansible sync pipeline.
482
526
  """
483
527
 
484
- def __init__(self, remote, repository, is_repo_remote, deprecation_before_sync, optimize):
528
+ def __init__(self, remote, repository, is_repo_remote, optimize):
485
529
  """
486
530
  The first stage of a pulp_ansible sync pipeline.
487
531
 
@@ -489,15 +533,12 @@ class CollectionSyncFirstStage(Stage):
489
533
  remote (CollectionRemote): The remote data to be used when syncing
490
534
  repository (AnsibleRepository): The repository being syncedself.
491
535
  is_repo_remote (bool): True if the remote is the repository's remote.
492
- deprecation_before_sync (set): Set of deprecations before the sync.
493
536
  optimize (boolean): Whether to optimize sync or not.
494
537
 
495
538
  """
496
539
  super().__init__()
497
540
  self.remote = remote
498
541
  self.repository = repository
499
- self.deprecation_before_sync = deprecation_before_sync
500
- self.deprecation_after_sync = set()
501
542
  self.collection_info = parse_collections_requirements_file(remote.requirements_file)
502
543
  self.exclude_info = {}
503
544
  self.add_dependents = self.collection_info and self.remote.sync_dependencies
@@ -518,7 +559,7 @@ class CollectionSyncFirstStage(Stage):
518
559
  self._should_we_sync()
519
560
  )
520
561
 
521
- @alru_cache(maxsize=128)
562
+ @async_cache
522
563
  async def _get_root_api(self, root):
523
564
  """
524
565
  Returns the root api path and api version.
@@ -554,7 +595,7 @@ class CollectionSyncFirstStage(Stage):
554
595
 
555
596
  return endpoint, api_version
556
597
 
557
- @alru_cache(maxsize=128)
598
+ @async_cache
558
599
  async def _get_paginated_collection_api(self, root):
559
600
  """
560
601
  Returns the collection api path and api version.
@@ -766,7 +807,6 @@ class CollectionSyncFirstStage(Stage):
766
807
  d_content = DeclarativeContent(
767
808
  content=AnsibleCollectionDeprecated(namespace=namespace, name=name),
768
809
  )
769
- self.deprecation_after_sync.add(f"{namespace}.{name}")
770
810
  await self.put(d_content)
771
811
  tasks.append(
772
812
  loop.create_task(
@@ -801,7 +841,6 @@ class CollectionSyncFirstStage(Stage):
801
841
  d_content = DeclarativeContent(
802
842
  content=AnsibleCollectionDeprecated(namespace=namespace, name=name),
803
843
  )
804
- self.deprecation_after_sync.add(f"{namespace}.{name}")
805
844
  await self.put(d_content)
806
845
 
807
846
  all_versions_of_collection = self._unpaginated_collection_version_metadata[namespace][name]
@@ -924,9 +963,6 @@ class CollectionSyncFirstStage(Stage):
924
963
  namespace=collection["namespace"], name=collection["name"]
925
964
  ),
926
965
  )
927
- self.deprecation_after_sync.add(
928
- f"{collection['namespace']}.{collection['name']}"
929
- )
930
966
  await self.put(d_content)
931
967
 
932
968
  for collections_in_namespace in self._unpaginated_collection_version_metadata.values():
@@ -35,7 +35,6 @@ def test_deprecation(
35
35
  collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
36
36
  first_distribution.base_path, namespace="testing"
37
37
  )
38
-
39
38
  assert collections.data[0].deprecated
40
39
  collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
41
40
  first_distribution.base_path, namespace="pulp"
@@ -62,15 +61,12 @@ def test_deprecation(
62
61
  )
63
62
  assert collections.data[0].deprecated
64
63
 
65
- # Change the deprecated status for the testing collection on the original repo to False
66
- result = ansible_bindings.PulpAnsibleApiV3CollectionsApi.update(
67
- "k8s_demo_collection", "testing", first_distribution.base_path, {"deprecated": False}
68
- )
69
- monitor_task(result.task)
64
+ # Sync again to see if the deprecated state is kept.
65
+ ansible_sync_factory(second_repo, optimize=False)
70
66
  collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
71
- first_distribution.base_path, namespace="testing"
67
+ second_distribution.base_path, namespace="testing"
72
68
  )
73
- assert not collections.data[0].deprecated
69
+ assert collections.data[0].deprecated
74
70
 
75
71
  # Update the requirements to sync down both collections this time
76
72
  requirements = (
@@ -83,9 +79,34 @@ def test_deprecation(
83
79
  # Sync the second repo again
84
80
  second_repo = ansible_sync_factory(second_repo)
85
81
 
82
+ # Assert the state of deprecated True for testing, False for pulp
83
+ collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
84
+ second_distribution.base_path, namespace="testing"
85
+ )
86
+ assert collections.data[0].deprecated
87
+ collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
88
+ second_distribution.base_path, namespace="pulp"
89
+ )
90
+ assert not collections.data[0].deprecated
91
+
92
+ # Change the deprecated status for the testing collection on the original repo to False
93
+ monitor_task(
94
+ ansible_bindings.PulpAnsibleApiV3CollectionsApi.update(
95
+ "k8s_demo_collection", "testing", first_distribution.base_path, {"deprecated": False}
96
+ ).task
97
+ )
98
+ collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
99
+ first_distribution.base_path, namespace="testing"
100
+ )
101
+ assert not collections.data[0].deprecated
102
+
103
+ # Sync the second repo again
104
+ second_repo = ansible_sync_factory(second_repo)
105
+
86
106
  # Assert both collections show deprecated=False
87
107
  collections = ansible_bindings.PulpAnsibleApiV3CollectionsApi.list(
88
108
  second_distribution.base_path
89
109
  )
110
+ assert len(collections.data) == 2, collections
90
111
  for collection in collections.data:
91
112
  assert not collection.deprecated
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulp-ansible
3
- Version: 0.27.0
3
+ Version: 0.28.0
4
4
  Summary: Pulp plugin to manage Ansible content, e.g. roles
5
5
  Author-email: Pulp Ansible Plugin Project Developers <pulp-dev@redhat.com>
6
6
  Project-URL: Homepage, https://pulpproject.org
@@ -14,17 +14,15 @@ Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Framework :: Django
15
15
  Classifier: Programming Language :: Python
16
16
  Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.9
18
- Requires-Python: >=3.9
17
+ Requires-Python: >=3.11
19
18
  Description-Content-Type: text/x-rst
20
19
  License-File: LICENSE
21
- Requires-Dist: async_lru<2.1,>=1.0
22
- Requires-Dist: galaxy_importer<0.5,>=0.4.5
20
+ Requires-Dist: galaxy_importer<0.5,>=0.4.27
23
21
  Requires-Dist: GitPython<3.2,>=3.1.24
24
- Requires-Dist: jsonschema<4.24,>=4.9
25
- Requires-Dist: Pillow<11.2,>=10.3
26
- Requires-Dist: pulpcore<3.85,>=3.63.0
27
- Requires-Dist: PyYAML<7.0,>=5.4.1
22
+ Requires-Dist: jsonschema<4.26,>=4.9
23
+ Requires-Dist: Pillow<11.4,>=10.3
24
+ Requires-Dist: pulpcore<3.100,>=3.63.0
25
+ Requires-Dist: PyYAML<7.0,>=6.0.2
28
26
  Requires-Dist: semantic_version<2.11,>=2.9
29
27
  Dynamic: license-file
30
28
 
@@ -108,6 +108,7 @@ pulp_ansible/app/migrations/0061_collectionversion_new_tags.py
108
108
  pulp_ansible/app/migrations/0062_pivot_collectionversion_tags.py
109
109
  pulp_ansible/app/migrations/0063_domain_support.py
110
110
  pulp_ansible/app/migrations/0064_alter_collection_unique_together_and_more.py
111
+ pulp_ansible/app/migrations/0065_collectionversion_ansible_col_namespa_ea6f75_idx.py
111
112
  pulp_ansible/app/migrations/__init__.py
112
113
  pulp_ansible/app/schema/__init__.py
113
114
  pulp_ansible/app/schema/copy_config.json
@@ -0,0 +1,7 @@
1
+ galaxy_importer<0.5,>=0.4.27
2
+ GitPython<3.2,>=3.1.24
3
+ jsonschema<4.26,>=4.9
4
+ Pillow<11.4,>=10.3
5
+ pulpcore<3.100,>=3.63.0
6
+ PyYAML<7.0,>=6.0.2
7
+ semantic_version<2.11,>=2.9
@@ -7,7 +7,7 @@ build-backend = 'setuptools.build_meta'
7
7
 
8
8
  [project]
9
9
  name = "pulp-ansible"
10
- version = "0.27.0"
10
+ version = "0.28.0"
11
11
  description = "Pulp plugin to manage Ansible content, e.g. roles"
12
12
  readme = "README.rst"
13
13
  authors = [
@@ -20,17 +20,15 @@ classifiers = [
20
20
  "Framework :: Django",
21
21
  "Programming Language :: Python",
22
22
  "Programming Language :: Python :: 3",
23
- "Programming Language :: Python :: 3.9",
24
23
  ]
25
- requires-python = ">=3.9"
24
+ requires-python = ">=3.11"
26
25
  dependencies = [
27
- "async_lru>=1.0,<2.1",
28
- "galaxy_importer>=0.4.5,<0.5",
26
+ "galaxy_importer>=0.4.27,<0.5",
29
27
  "GitPython>=3.1.24,<3.2",
30
- "jsonschema>=4.9,<4.24",
31
- "Pillow>=10.3,<11.2",
32
- "pulpcore>=3.63.0,<3.85",
33
- "PyYAML>=5.4.1,<7.0",
28
+ "jsonschema>=4.9,<4.26",
29
+ "Pillow>=10.3,<11.4",
30
+ "pulpcore>=3.63.0,<3.100",
31
+ "PyYAML>=6.0.2,<7.0",
34
32
  "semantic_version>=2.9,<2.11",
35
33
  ]
36
34
 
@@ -101,7 +99,7 @@ ignore = [
101
99
  [tool.bumpversion]
102
100
  # This section is managed by the plugin template. Do not edit manually.
103
101
 
104
- current_version = "0.27.0"
102
+ current_version = "0.28.0"
105
103
  commit = false
106
104
  tag = false
107
105
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<alpha>0a)?(?P<patch>\\d+)(\\.(?P<release>[a-z]+))?"
@@ -1,8 +0,0 @@
1
- async_lru<2.1,>=1.0
2
- galaxy_importer<0.5,>=0.4.5
3
- GitPython<3.2,>=3.1.24
4
- jsonschema<4.24,>=4.9
5
- Pillow<11.2,>=10.3
6
- pulpcore<3.85,>=3.63.0
7
- PyYAML<7.0,>=5.4.1
8
- semantic_version<2.11,>=2.9
File without changes
File without changes
File without changes
File without changes
File without changes