Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compact index #105

Merged
merged 1 commit into from
Jun 24, 2023
Merged

Compact index #105

merged 1 commit into from
Jun 24, 2023

Conversation

mdellweg
Copy link
Member

No description provided.

@mdellweg mdellweg force-pushed the compact_index branch 6 times, most recently from 26e5ec6 to c2a60e6 Compare June 16, 2023 15:52

def rename_gem_up(apps, schema_editor):
Content = apps.get_model("core", "Content")
Content.objects.filter(pulp_type="gem").update(pulp_type="shallow-gem")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the pulp type is actually gem.gem. It should be 'plugin-label.model-type'


return data

def retrieve(self, validated_data):
return GemContent.objects.filter(checksum=validated_data["checksum"]).first()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The uniqueness constraint is (name, version, checksum), I think we should filter by that as well.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think, I'm going to adjust the uniqueness constraint instead. The single artifact can really only have one name:version.

def create(self, validated_data):
"""Save the GemContent unit.

This must be used inside a task that locks on the Artifact and if given, the repository.
"""
repository = validated_data.pop("repository", None)
content = super().create(validated_data)
content = self.retrieve(validated_data)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this create method even needed? Seems like it is the exact same as the pulpcore version.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not yet on this super class.

for name in names_qs:
lines = []
for gem in gems_qs.filter(name=name):
deps = ",".join((f"{key}: {value}" for key, value in gem.dependencies.items()))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
deps = ",".join((f"{key}: {value}" for key, value in gem.dependencies.items()))
deps = ",".join((f"{key}:{value}" for key, value in gem.dependencies.items()))

There doesn't seem to be a space between the colon in the example files I've seen.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the space between the operator and the version confused me...

os.mkdir("info")
for name in names_qs:
lines = []
for gem in gems_qs.filter(name=name):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is a requirement, but these should probably be sorted by version.

Copy link
Member Author

@mdellweg mdellweg Jun 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Names are sorted (and this is required). Sorting versions would require adding a postgres function. I'd be willing to wait for complaints. At least in the "versions" file, you are supposed to be able to just append new versions.

versions = ",".join(gems_qs.filter(name=name).values_list("version", flat=True))
md5_sum = info_metadata._artifacts.first().md5
versions_lines.append(f"{name} {versions} {md5_sum}")
_publish_compact_index(versions_lines, "versions", publication, timestamp=True)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we also publish versions.list? It's the same file so we just re-use the artifact.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rubygems.org serves the same content, whenever you specify {names,versions}.*. It must no be list. Can we accommodate for that too?

for name, (versions, md5_sum) in results.items():
# Sanitize name
if not NAME_REGEX.match(name):
raise ValueError(f"Invalid gem name: {name}")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you ran this regex through all the gem names returned off of rubygems?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes.

In [1]: from pulp_gem.specs import NAME_REGEX

In [2]: import requests

In [3]: response = requests.get("https://rubygems.org/names")

In [4]: [name for name in response.text.split("\n") if not NAME_REGEX.match(name)]
Out[4]: ['']

raise ValueError(f"Invalid version string: {gem_info['version']}")
for key in ("required_ruby_version", "required_rubygems_version"):
if (requirement := data.values.get(key)) is not None:
gem_info[key] = _collapse_requirement(requirement)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why use _collapse_requirement here and not above when reading the info file?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is translating the version requirement for a single package into a string like ">= 2.0.1&< 3.0" from the weird ruby-marshal format to be used in the plain text that is the info file (well, here we store it on the model to be used at publish time...). When reading that info-file it is already "collapsed".

@@ -5,7 +5,7 @@
with open("requirements.txt") as requirements:
requirements = requirements.readlines()

with open("README.rst") as f:
with open("README.md") as f:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's still settings in setup that need to be updated, like author_email and url.

@mdellweg mdellweg force-pushed the compact_index branch 7 times, most recently from 8f02b47 to 6158464 Compare June 19, 2023 16:59
@mdellweg mdellweg marked this pull request as ready for review June 21, 2023 06:35
@mdellweg mdellweg force-pushed the compact_index branch 6 times, most recently from bcfdc0a to 4787003 Compare June 22, 2023 14:14
extra_kwargs = {"expected_digests": {"md5": md5_sum}}
else:
extra_kwargs = {}
log.warn("Checksum of info file for '{}' could not be validated.", name)
Copy link
Contributor

@gerrod3 gerrod3 Jun 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the CI logs, I think this needs to be .format(name) or an f-string.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@gerrod3 gerrod3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some final questions before approval.

if not dry_run:
gem = serializer.create(serializer.validated_data)
replace_content(sgem, gem)
sgem.delete()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this allowed inside a loop? (I'm pretty sure the delete() method doesn't delete the python object, but just want to check)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you mean changing the loop variable? Absolutely.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was talking about potentially deleting an element from a list that you are iterating over, this would raise an error.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But we don't do that. What python does not like is if you change the list you are iterating over.

Comment on lines +42 to +43
if artifact:
return artifact
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you need to perform an artifact.touch() here before you return it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any case where we do not intend to use it right away?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we create the artifact in deferred_validate. So we are already in the task that will save the content. Touching is meant for when you lookup an artifact in the view and want to make sure it is available to a task (with waiting time).

)
name = CharField(help_text=_("Name of the gem"), read_only=True)
version = CharField(help_text=_("Version of the gem"), read_only=True)
prerelease = BooleanField(help_text=_("Whether the gem is a prerelease"), read_only=True)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the checksum should also be here as a ready_only field.

gem_info[key] = _collapse_requirement(requirement)
if (dependencies := data.values.get("dependencies")) is not None:
gem_info["dependencies"] = {
dep.values["name"]: _collapse_requirement(dep.values["requirement"])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this correct? It seems wrong since _collapse_requirement seems to be expecting a dictionary with the key 'requirements'.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, i think it is. (Attaching a dump of the data object for documentation below.)

UsrMarshal:Gem::Specification({'name': 'pulpcore_client', 'version': UsrMarshal:Gem::Version({'version': '3.28.0'}), 'platform': 'ruby', 'authors': ['OpenAPI-Generator'], 'autorequire': None, 'bindir': 'bin', 'cert_chain': [], 'date': datetime.datetime(2023, 6, 14, 0, 0, tzinfo=datetime.timezone.utc), 'dependencies': [UsrMarshal:Gem::Dependency({'name': 'faraday', 'requirement': UsrMarshal:Gem::Requirement({'requirements': [['>=', UsrMarshal:Gem::Version({'version': '1.0.1'})], ['<', UsrMarshal:Gem::Version({'version': '2.0'})]]}), 'type': ':runtime', 'prerelease': False, 'version_requirements': UsrMarshal:Gem::Requirement({'requirements': [['>=', UsrMarshal:Gem::Version({'version': '1.0.1'})], ['<', UsrMarshal:Gem::Version({'version': '2.0'})]]})}), UsrMarshal:Gem::Dependency({'name': 'json', 'requirement': UsrMarshal:Gem::Requirement({'requirements': [['>=', UsrMarshal:Gem::Version({'version': '2.1.0'})], ['~>', UsrMarshal:Gem::Version({'version': '2.1'})]]}), 'type': ':runtime', 'prerelease': False, 'version_requirements': UsrMarshal:Gem::Requirement({'requirements': [['>=', UsrMarshal:Gem::Version({'version': '2.1.0'})], ['~>', UsrMarshal:Gem::Version({'version': '2.1'})]]})}), UsrMarshal:Gem::Dependency({'name': 'rspec', 'requirement': UsrMarshal:Gem::Requirement({'requirements': [['>=', UsrMarshal:Gem::Version({'version': '3.6.0'})], ['~>', UsrMarshal:Gem::Version({'version': '3.6'})]]}), 'type': ':development', 'prerelease': False, 'version_requirements': UsrMarshal:Gem::Requirement({'requirements': [['>=', UsrMarshal:Gem::Version({'version': '3.6.0'})], ['~>', UsrMarshal:Gem::Version({'version': '3.6'})]]})})], 'description': 'Fetch, Upload, Organize, and Distribute Software Packages', 'email': ['[email protected]'], 'executables': [], 'extensions': [], 'extra_rdoc_files': [], 'files': ['Gemfile', 'README.md', 'Rakefile', 'docs/AccessPoliciesApi.md', 'docs/AccessPolicy.md', 'docs/AccessPolicyResponse.md', 'docs/Artifact.md', 'docs/ArtifactDistributionResponse.md', 'docs/ArtifactResponse.md', 'docs/ArtifactsApi.md', 'docs/AsyncOperationResponse.md', 'docs/ContentApi.md', 'docs/ContentAppStatusResponse.md', 'docs/ContentGuardResponse.md', 'docs/ContentRedirectContentGuard.md', 'docs/ContentRedirectContentGuardResponse.md', 'docs/ContentSettingsResponse.md', 'docs/ContentSummaryResponse.md', 'docs/ContentguardsApi.md', 'docs/ContentguardsContentRedirectApi.md', 'docs/ContentguardsRbacApi.md', 'docs/DatabaseConnectionResponse.md', 'docs/DistributionResponse.md', 'docs/DistributionsApi.md', 'docs/DistributionsArtifactsApi.md', 'docs/Domain.md', 'docs/DomainResponse.md', 'docs/DomainsApi.md', 'docs/EvaluationResponse.md', 'docs/ExportersFilesystemApi.md', 'docs/ExportersFilesystemExportsApi.md', 'docs/ExportersPulpApi.md', 'docs/ExportersPulpExportsApi.md', 'docs/FilesystemExport.md', 'docs/FilesystemExportResponse.md', 'docs/FilesystemExporter.md', 'docs/FilesystemExporterResponse.md', 'docs/Group.md', 'docs/GroupProgressReportResponse.md', 'docs/GroupResponse.md', 'docs/GroupRole.md', 'docs/GroupRoleResponse.md', 'docs/GroupUser.md', 'docs/GroupUserResponse.md', 'docs/GroupsApi.md', 'docs/GroupsRolesApi.md', 'docs/GroupsUsersApi.md', 'docs/ImportResponse.md', 'docs/ImportersPulpApi.md', 'docs/ImportersPulpImportCheckApi.md', 'docs/ImportersPulpImportsApi.md', 'docs/MethodEnum.md', 'docs/MinimalTaskResponse.md', 'docs/MultipleArtifactContentResponse.md', 'docs/MyPermissionsResponse.md', 'docs/NestedRole.md', 'docs/NestedRoleResponse.md', 'docs/ObjectRolesResponse.md', 'docs/OrphansApi.md', 'docs/OrphansCleanup.md', 'docs/OrphansCleanupApi.md', 'docs/PaginatedAccessPolicyResponseList.md', 'docs/PaginatedArtifactDistributionResponseList.md', 'docs/PaginatedArtifactResponseList.md', 'docs/PaginatedContentGuardResponseList.md', 'docs/PaginatedContentRedirectContentGuardResponseList.md', 'docs/PaginatedDistributionResponseList.md', 'docs/PaginatedDomainResponseList.md', 'docs/PaginatedFilesystemExportResponseList.md', 'docs/PaginatedFilesystemExporterResponseList.md', 'docs/PaginatedGroupResponseList.md', 'docs/PaginatedGroupRoleResponseList.md', 'docs/PaginatedGroupUserResponseList.md', 'docs/PaginatedImportResponseList.md', 'docs/PaginatedMultipleArtifactContentResponseList.md', 'docs/PaginatedPublicationResponseList.md', 'docs/PaginatedPulpExportResponseList.md', 'docs/PaginatedPulpExporterResponseList.md', 'docs/PaginatedPulpImporterResponseList.md', 'docs/PaginatedRBACContentGuardResponseList.md', 'docs/PaginatedRemoteResponseList.md', 'docs/PaginatedRepositoryResponseList.md', 'docs/PaginatedRepositoryVersionResponseList.md', 'docs/PaginatedRoleResponseList.md', 'docs/PaginatedSigningServiceResponseList.md', 'docs/PaginatedTaskGroupResponseList.md', 'docs/PaginatedTaskResponseList.md', 'docs/PaginatedTaskScheduleResponseList.md', 'docs/PaginatedUploadResponseList.md', 'docs/PaginatedUpstreamPulpResponseList.md', 'docs/PaginatedUserResponseList.md', 'docs/PaginatedUserRoleResponseList.md', 'docs/PaginatedWorkerResponseList.md', 'docs/PatchedAccessPolicy.md', 'docs/PatchedContentRedirectContentGuard.md', 'docs/PatchedDomain.md', 'docs/PatchedFilesystemExporter.md', 'docs/PatchedGroup.md', 'docs/PatchedPulpExporter.md', 'docs/PatchedPulpImporter.md', 'docs/PatchedRBACContentGuard.md', 'docs/PatchedRole.md', 'docs/PatchedTaskCancel.md', 'docs/PatchedUpstreamPulp.md', 'docs/PatchedUser.md', 'docs/PolicyEnum.md', 'docs/ProgressReportResponse.md', 'docs/PublicationResponse.md', 'docs/PublicationsApi.md', 'docs/PulpExport.md', 'docs/PulpExportResponse.md', 'docs/PulpExporter.md', 'docs/PulpExporterResponse.md', 'docs/PulpImport.md', 'docs/PulpImportCheck.md', 'docs/PulpImportCheckResponse.md', 'docs/PulpImporter.md', 'docs/PulpImporterResponse.md', 'docs/Purge.md', 'docs/RBACContentGuard.md', 'docs/RBACContentGuardResponse.md', 'docs/ReclaimSpace.md', 'docs/RedisConnectionResponse.md', 'docs/RemoteResponse.md', 'docs/RemoteResponseHiddenFields.md', 'docs/RemotesApi.md', 'docs/Repair.md', 'docs/RepairApi.md', 'docs/RepositoriesApi.md', 'docs/RepositoriesReclaimSpaceApi.md', 'docs/RepositoryResponse.md', 'docs/RepositoryVersionResponse.md', 'docs/RepositoryVersionsApi.md', 'docs/Role.md', 'docs/RoleResponse.md', 'docs/RolesApi.md', 'docs/SigningServiceResponse.md', 'docs/SigningServicesApi.md', 'docs/StatesEnum.md', 'docs/StatusApi.md', 'docs/StatusResponse.md', 'docs/StorageClassEnum.md', 'docs/StorageResponse.md', 'docs/TaskGroupOperationResponse.md', 'docs/TaskGroupResponse.md', 'docs/TaskGroupsApi.md', 'docs/TaskResponse.md', 'docs/TaskScheduleResponse.md', 'docs/TaskSchedulesApi.md', 'docs/TasksApi.md', 'docs/Upload.md', 'docs/UploadChunk.md', 'docs/UploadChunkResponse.md', 'docs/UploadCommit.md', 'docs/UploadDetailResponse.md', 'docs/UploadResponse.md', 'docs/UploadsApi.md', 'docs/UpstreamPulp.md', 'docs/UpstreamPulpResponse.md', 'docs/UpstreamPulpsApi.md', 'docs/User.md', 'docs/UserGroup.md', 'docs/UserGroupResponse.md', 'docs/UserResponse.md', 'docs/UserRole.md', 'docs/UserRoleResponse.md', 'docs/UsersApi.md', 'docs/UsersRolesApi.md', 'docs/VersionResponse.md', 'docs/WorkerResponse.md', 'docs/WorkersApi.md', 'lib/pulpcore_client.rb', 'lib/pulpcore_client/api/access_policies_api.rb', 'lib/pulpcore_client/api/artifacts_api.rb', 'lib/pulpcore_client/api/content_api.rb', 'lib/pulpcore_client/api/contentguards_api.rb', 'lib/pulpcore_client/api/contentguards_content_redirect_api.rb', 'lib/pulpcore_client/api/contentguards_rbac_api.rb', 'lib/pulpcore_client/api/distributions_api.rb', 'lib/pulpcore_client/api/distributions_artifacts_api.rb', 'lib/pulpcore_client/api/domains_api.rb', 'lib/pulpcore_client/api/exporters_filesystem_api.rb', 'lib/pulpcore_client/api/exporters_filesystem_exports_api.rb', 'lib/pulpcore_client/api/exporters_pulp_api.rb', 'lib/pulpcore_client/api/exporters_pulp_exports_api.rb', 'lib/pulpcore_client/api/groups_api.rb', 'lib/pulpcore_client/api/groups_roles_api.rb', 'lib/pulpcore_client/api/groups_users_api.rb', 'lib/pulpcore_client/api/importers_pulp_api.rb', 'lib/pulpcore_client/api/importers_pulp_import_check_api.rb', 'lib/pulpcore_client/api/importers_pulp_imports_api.rb', 'lib/pulpcore_client/api/orphans_api.rb', 'lib/pulpcore_client/api/orphans_cleanup_api.rb', 'lib/pulpcore_client/api/publications_api.rb', 'lib/pulpcore_client/api/remotes_api.rb', 'lib/pulpcore_client/api/repair_api.rb', 'lib/pulpcore_client/api/repositories_api.rb', 'lib/pulpcore_client/api/repositories_reclaim_space_api.rb', 'lib/pulpcore_client/api/repository_versions_api.rb', 'lib/pulpcore_client/api/roles_api.rb', 'lib/pulpcore_client/api/signing_services_api.rb', 'lib/pulpcore_client/api/status_api.rb', 'lib/pulpcore_client/api/task_groups_api.rb', 'lib/pulpcore_client/api/task_schedules_api.rb', 'lib/pulpcore_client/api/tasks_api.rb', 'lib/pulpcore_client/api/uploads_api.rb', 'lib/pulpcore_client/api/upstream_pulps_api.rb', 'lib/pulpcore_client/api/users_api.rb', 'lib/pulpcore_client/api/users_roles_api.rb', 'lib/pulpcore_client/api/workers_api.rb', 'lib/pulpcore_client/api_client.rb', 'lib/pulpcore_client/api_error.rb', 'lib/pulpcore_client/configuration.rb', 'lib/pulpcore_client/models/access_policy.rb', 'lib/pulpcore_client/models/access_policy_response.rb', 'lib/pulpcore_client/models/artifact.rb', 'lib/pulpcore_client/models/artifact_distribution_response.rb', 'lib/pulpcore_client/models/artifact_response.rb', 'lib/pulpcore_client/models/async_operation_response.rb', 'lib/pulpcore_client/models/content_app_status_response.rb', 'lib/pulpcore_client/models/content_guard_response.rb', 'lib/pulpcore_client/models/content_redirect_content_guard.rb', 'lib/pulpcore_client/models/content_redirect_content_guard_response.rb', 'lib/pulpcore_client/models/content_settings_response.rb', 'lib/pulpcore_client/models/content_summary_response.rb', 'lib/pulpcore_client/models/database_connection_response.rb', 'lib/pulpcore_client/models/distribution_response.rb', 'lib/pulpcore_client/models/domain.rb', 'lib/pulpcore_client/models/domain_response.rb', 'lib/pulpcore_client/models/evaluation_response.rb', 'lib/pulpcore_client/models/filesystem_export.rb', 'lib/pulpcore_client/models/filesystem_export_response.rb', 'lib/pulpcore_client/models/filesystem_exporter.rb', 'lib/pulpcore_client/models/filesystem_exporter_response.rb', 'lib/pulpcore_client/models/group.rb', 'lib/pulpcore_client/models/group_progress_report_response.rb', 'lib/pulpcore_client/models/group_response.rb', 'lib/pulpcore_client/models/group_role.rb', 'lib/pulpcore_client/models/group_role_response.rb', 'lib/pulpcore_client/models/group_user.rb', 'lib/pulpcore_client/models/group_user_response.rb', 'lib/pulpcore_client/models/import_response.rb', 'lib/pulpcore_client/models/method_enum.rb', 'lib/pulpcore_client/models/minimal_task_response.rb', 'lib/pulpcore_client/models/multiple_artifact_content_response.rb', 'lib/pulpcore_client/models/my_permissions_response.rb', 'lib/pulpcore_client/models/nested_role.rb', 'lib/pulpcore_client/models/nested_role_response.rb', 'lib/pulpcore_client/models/object_roles_response.rb', 'lib/pulpcore_client/models/orphans_cleanup.rb', 'lib/pulpcore_client/models/paginated_access_policy_response_list.rb', 'lib/pulpcore_client/models/paginated_artifact_distribution_response_list.rb', 'lib/pulpcore_client/models/paginated_artifact_response_list.rb', 'lib/pulpcore_client/models/paginated_content_guard_response_list.rb', 'lib/pulpcore_client/models/paginated_content_redirect_content_guard_response_list.rb', 'lib/pulpcore_client/models/paginated_distribution_response_list.rb', 'lib/pulpcore_client/models/paginated_domain_response_list.rb', 'lib/pulpcore_client/models/paginated_filesystem_export_response_list.rb', 'lib/pulpcore_client/models/paginated_filesystem_exporter_response_list.rb', 'lib/pulpcore_client/models/paginated_group_response_list.rb', 'lib/pulpcore_client/models/paginated_group_role_response_list.rb', 'lib/pulpcore_client/models/paginated_group_user_response_list.rb', 'lib/pulpcore_client/models/paginated_import_response_list.rb', 'lib/pulpcore_client/models/paginated_multiple_artifact_content_response_list.rb', 'lib/pulpcore_client/models/paginated_publication_response_list.rb', 'lib/pulpcore_client/models/paginated_pulp_export_response_list.rb', 'lib/pulpcore_client/models/paginated_pulp_exporter_response_list.rb', 'lib/pulpcore_client/models/paginated_pulp_importer_response_list.rb', 'lib/pulpcore_client/models/paginated_rbac_content_guard_response_list.rb', 'lib/pulpcore_client/models/paginated_remote_response_list.rb', 'lib/pulpcore_client/models/paginated_repository_response_list.rb', 'lib/pulpcore_client/models/paginated_repository_version_response_list.rb', 'lib/pulpcore_client/models/paginated_role_response_list.rb', 'lib/pulpcore_client/models/paginated_signing_service_response_list.rb', 'lib/pulpcore_client/models/paginated_task_group_response_list.rb', 'lib/pulpcore_client/models/paginated_task_response_list.rb', 'lib/pulpcore_client/models/paginated_task_schedule_response_list.rb', 'lib/pulpcore_client/models/paginated_upload_response_list.rb', 'lib/pulpcore_client/models/paginated_upstream_pulp_response_list.rb', 'lib/pulpcore_client/models/paginated_user_response_list.rb', 'lib/pulpcore_client/models/paginated_user_role_response_list.rb', 'lib/pulpcore_client/models/paginated_worker_response_list.rb', 'lib/pulpcore_client/models/patched_access_policy.rb', 'lib/pulpcore_client/models/patched_content_redirect_content_guard.rb', 'lib/pulpcore_client/models/patched_domain.rb', 'lib/pulpcore_client/models/patched_filesystem_exporter.rb', 'lib/pulpcore_client/models/patched_group.rb', 'lib/pulpcore_client/models/patched_pulp_exporter.rb', 'lib/pulpcore_client/models/patched_pulp_importer.rb', 'lib/pulpcore_client/models/patched_rbac_content_guard.rb', 'lib/pulpcore_client/models/patched_role.rb', 'lib/pulpcore_client/models/patched_task_cancel.rb', 'lib/pulpcore_client/models/patched_upstream_pulp.rb', 'lib/pulpcore_client/models/patched_user.rb', 'lib/pulpcore_client/models/policy_enum.rb', 'lib/pulpcore_client/models/progress_report_response.rb', 'lib/pulpcore_client/models/publication_response.rb', 'lib/pulpcore_client/models/pulp_export.rb', 'lib/pulpcore_client/models/pulp_export_response.rb', 'lib/pulpcore_client/models/pulp_exporter.rb', 'lib/pulpcore_client/models/pulp_exporter_response.rb', 'lib/pulpcore_client/models/pulp_import.rb', 'lib/pulpcore_client/models/pulp_import_check.rb', 'lib/pulpcore_client/models/pulp_import_check_response.rb', 'lib/pulpcore_client/models/pulp_importer.rb', 'lib/pulpcore_client/models/pulp_importer_response.rb', 'lib/pulpcore_client/models/purge.rb', 'lib/pulpcore_client/models/rbac_content_guard.rb', 'lib/pulpcore_client/models/rbac_content_guard_response.rb', 'lib/pulpcore_client/models/reclaim_space.rb', 'lib/pulpcore_client/models/redis_connection_response.rb', 'lib/pulpcore_client/models/remote_response.rb', 'lib/pulpcore_client/models/remote_response_hidden_fields.rb', 'lib/pulpcore_client/models/repair.rb', 'lib/pulpcore_client/models/repository_response.rb', 'lib/pulpcore_client/models/repository_version_response.rb', 'lib/pulpcore_client/models/role.rb', 'lib/pulpcore_client/models/role_response.rb', 'lib/pulpcore_client/models/signing_service_response.rb', 'lib/pulpcore_client/models/states_enum.rb', 'lib/pulpcore_client/models/status_response.rb', 'lib/pulpcore_client/models/storage_class_enum.rb', 'lib/pulpcore_client/models/storage_response.rb', 'lib/pulpcore_client/models/task_group_operation_response.rb', 'lib/pulpcore_client/models/task_group_response.rb', 'lib/pulpcore_client/models/task_response.rb', 'lib/pulpcore_client/models/task_schedule_response.rb', 'lib/pulpcore_client/models/upload.rb', 'lib/pulpcore_client/models/upload_chunk.rb', 'lib/pulpcore_client/models/upload_chunk_response.rb', 'lib/pulpcore_client/models/upload_commit.rb', 'lib/pulpcore_client/models/upload_detail_response.rb', 'lib/pulpcore_client/models/upload_response.rb', 'lib/pulpcore_client/models/upstream_pulp.rb', 'lib/pulpcore_client/models/upstream_pulp_response.rb', 'lib/pulpcore_client/models/user.rb', 'lib/pulpcore_client/models/user_group.rb', 'lib/pulpcore_client/models/user_group_response.rb', 'lib/pulpcore_client/models/user_response.rb', 'lib/pulpcore_client/models/user_role.rb', 'lib/pulpcore_client/models/user_role_response.rb', 'lib/pulpcore_client/models/version_response.rb', 'lib/pulpcore_client/models/worker_response.rb', 'lib/pulpcore_client/version.rb', 'pulpcore_client.gemspec', 'spec/api/access_policies_api_spec.rb', 'spec/api/artifacts_api_spec.rb', 'spec/api/content_api_spec.rb', 'spec/api/contentguards_api_spec.rb', 'spec/api/contentguards_content_redirect_api_spec.rb', 'spec/api/contentguards_rbac_api_spec.rb', 'spec/api/distributions_api_spec.rb', 'spec/api/distributions_artifacts_api_spec.rb', 'spec/api/domains_api_spec.rb', 'spec/api/exporters_filesystem_api_spec.rb', 'spec/api/exporters_filesystem_exports_api_spec.rb', 'spec/api/exporters_pulp_api_spec.rb', 'spec/api/exporters_pulp_exports_api_spec.rb', 'spec/api/groups_api_spec.rb', 'spec/api/groups_roles_api_spec.rb', 'spec/api/groups_users_api_spec.rb', 'spec/api/importers_pulp_api_spec.rb', 'spec/api/importers_pulp_import_check_api_spec.rb', 'spec/api/importers_pulp_imports_api_spec.rb', 'spec/api/orphans_api_spec.rb', 'spec/api/orphans_cleanup_api_spec.rb', 'spec/api/publications_api_spec.rb', 'spec/api/remotes_api_spec.rb', 'spec/api/repair_api_spec.rb', 'spec/api/repositories_api_spec.rb', 'spec/api/repositories_reclaim_space_api_spec.rb', 'spec/api/repository_versions_api_spec.rb', 'spec/api/roles_api_spec.rb', 'spec/api/signing_services_api_spec.rb', 'spec/api/status_api_spec.rb', 'spec/api/task_groups_api_spec.rb', 'spec/api/task_schedules_api_spec.rb', 'spec/api/tasks_api_spec.rb', 'spec/api/uploads_api_spec.rb', 'spec/api/upstream_pulps_api_spec.rb', 'spec/api/users_api_spec.rb', 'spec/api/users_roles_api_spec.rb', 'spec/api/workers_api_spec.rb', 'spec/api_client_spec.rb', 'spec/configuration_spec.rb', 'spec/models/access_policy_response_spec.rb', 'spec/models/access_policy_spec.rb', 'spec/models/artifact_distribution_response_spec.rb', 'spec/models/artifact_response_spec.rb', 'spec/models/artifact_spec.rb', 'spec/models/async_operation_response_spec.rb', 'spec/models/content_app_status_response_spec.rb', 'spec/models/content_guard_response_spec.rb', 'spec/models/content_redirect_content_guard_response_spec.rb', 'spec/models/content_redirect_content_guard_spec.rb', 'spec/models/content_settings_response_spec.rb', 'spec/models/content_summary_response_spec.rb', 'spec/models/database_connection_response_spec.rb', 'spec/models/distribution_response_spec.rb', 'spec/models/domain_response_spec.rb', 'spec/models/domain_spec.rb', 'spec/models/evaluation_response_spec.rb', 'spec/models/filesystem_export_response_spec.rb', 'spec/models/filesystem_export_spec.rb', 'spec/models/filesystem_exporter_response_spec.rb', 'spec/models/filesystem_exporter_spec.rb', 'spec/models/group_progress_report_response_spec.rb', 'spec/models/group_response_spec.rb', 'spec/models/group_role_response_spec.rb', 'spec/models/group_role_spec.rb', 'spec/models/group_spec.rb', 'spec/models/group_user_response_spec.rb', 'spec/models/group_user_spec.rb', 'spec/models/import_response_spec.rb', 'spec/models/method_enum_spec.rb', 'spec/models/minimal_task_response_spec.rb', 'spec/models/multiple_artifact_content_response_spec.rb', 'spec/models/my_permissions_response_spec.rb', 'spec/models/nested_role_response_spec.rb', 'spec/models/nested_role_spec.rb', 'spec/models/object_roles_response_spec.rb', 'spec/models/orphans_cleanup_spec.rb', 'spec/models/paginated_access_policy_response_list_spec.rb', 'spec/models/paginated_artifact_distribution_response_list_spec.rb', 'spec/models/paginated_artifact_response_list_spec.rb', 'spec/models/paginated_content_guard_response_list_spec.rb', 'spec/models/paginated_content_redirect_content_guard_response_list_spec.rb', 'spec/models/paginated_distribution_response_list_spec.rb', 'spec/models/paginated_domain_response_list_spec.rb', 'spec/models/paginated_filesystem_export_response_list_spec.rb', 'spec/models/paginated_filesystem_exporter_response_list_spec.rb', 'spec/models/paginated_group_response_list_spec.rb', 'spec/models/paginated_group_role_response_list_spec.rb', 'spec/models/paginated_group_user_response_list_spec.rb', 'spec/models/paginated_import_response_list_spec.rb', 'spec/models/paginated_multiple_artifact_content_response_list_spec.rb', 'spec/models/paginated_publication_response_list_spec.rb', 'spec/models/paginated_pulp_export_response_list_spec.rb', 'spec/models/paginated_pulp_exporter_response_list_spec.rb', 'spec/models/paginated_pulp_importer_response_list_spec.rb', 'spec/models/paginated_rbac_content_guard_response_list_spec.rb', 'spec/models/paginated_remote_response_list_spec.rb', 'spec/models/paginated_repository_response_list_spec.rb', 'spec/models/paginated_repository_version_response_list_spec.rb', 'spec/models/paginated_role_response_list_spec.rb', 'spec/models/paginated_signing_service_response_list_spec.rb', 'spec/models/paginated_task_group_response_list_spec.rb', 'spec/models/paginated_task_response_list_spec.rb', 'spec/models/paginated_task_schedule_response_list_spec.rb', 'spec/models/paginated_upload_response_list_spec.rb', 'spec/models/paginated_upstream_pulp_response_list_spec.rb', 'spec/models/paginated_user_response_list_spec.rb', 'spec/models/paginated_user_role_response_list_spec.rb', 'spec/models/paginated_worker_response_list_spec.rb', 'spec/models/patched_access_policy_spec.rb', 'spec/models/patched_content_redirect_content_guard_spec.rb', 'spec/models/patched_domain_spec.rb', 'spec/models/patched_filesystem_exporter_spec.rb', 'spec/models/patched_group_spec.rb', 'spec/models/patched_pulp_exporter_spec.rb', 'spec/models/patched_pulp_importer_spec.rb', 'spec/models/patched_rbac_content_guard_spec.rb', 'spec/models/patched_role_spec.rb', 'spec/models/patched_task_cancel_spec.rb', 'spec/models/patched_upstream_pulp_spec.rb', 'spec/models/patched_user_spec.rb', 'spec/models/policy_enum_spec.rb', 'spec/models/progress_report_response_spec.rb', 'spec/models/publication_response_spec.rb', 'spec/models/pulp_export_response_spec.rb', 'spec/models/pulp_export_spec.rb', 'spec/models/pulp_exporter_response_spec.rb', 'spec/models/pulp_exporter_spec.rb', 'spec/models/pulp_import_check_response_spec.rb', 'spec/models/pulp_import_check_spec.rb', 'spec/models/pulp_import_spec.rb', 'spec/models/pulp_importer_response_spec.rb', 'spec/models/pulp_importer_spec.rb', 'spec/models/purge_spec.rb', 'spec/models/rbac_content_guard_response_spec.rb', 'spec/models/rbac_content_guard_spec.rb', 'spec/models/reclaim_space_spec.rb', 'spec/models/redis_connection_response_spec.rb', 'spec/models/remote_response_hidden_fields_spec.rb', 'spec/models/remote_response_spec.rb', 'spec/models/repair_spec.rb', 'spec/models/repository_response_spec.rb', 'spec/models/repository_version_response_spec.rb', 'spec/models/role_response_spec.rb', 'spec/models/role_spec.rb', 'spec/models/signing_service_response_spec.rb', 'spec/models/states_enum_spec.rb', 'spec/models/status_response_spec.rb', 'spec/models/storage_class_enum_spec.rb', 'spec/models/storage_response_spec.rb', 'spec/models/task_group_operation_response_spec.rb', 'spec/models/task_group_response_spec.rb', 'spec/models/task_response_spec.rb', 'spec/models/task_schedule_response_spec.rb', 'spec/models/upload_chunk_response_spec.rb', 'spec/models/upload_chunk_spec.rb', 'spec/models/upload_commit_spec.rb', 'spec/models/upload_detail_response_spec.rb', 'spec/models/upload_response_spec.rb', 'spec/models/upload_spec.rb', 'spec/models/upstream_pulp_response_spec.rb', 'spec/models/upstream_pulp_spec.rb', 'spec/models/user_group_response_spec.rb', 'spec/models/user_group_spec.rb', 'spec/models/user_response_spec.rb', 'spec/models/user_role_response_spec.rb', 'spec/models/user_role_spec.rb', 'spec/models/user_spec.rb', 'spec/models/version_response_spec.rb', 'spec/models/worker_response_spec.rb', 'spec/spec_helper.rb'], 'homepage': 'https://github.com/pulp/pulpcore', 'licenses': ['GPLv2+'], 'metadata': {}, 'post_install_message': None, 'rdoc_options': [], 'require_paths': ['lib'], 'required_ruby_version': UsrMarshal:Gem::Requirement({'requirements': [['>=', UsrMarshal:Gem::Version({'version': '1.9'})]]}), 'required_rubygems_version': UsrMarshal:Gem::Requirement({'requirements': [['>=', UsrMarshal:Gem::Version({'version': '0'})]]}), 'requirements': [], 'rubygems_version': '3.0.3.1', 'signing_key': None, 'specification_version': 4, 'summary': 'Pulp 3 API Ruby Gem', 'test_files': ['spec/api/tasks_api_spec.rb', 'spec/api/contentguards_content_redirect_api_spec.rb', 'spec/api/domains_api_spec.rb', 'spec/api/content_api_spec.rb', 'spec/api/exporters_pulp_exports_api_spec.rb', 'spec/api/upstream_pulps_api_spec.rb', 'spec/api/publications_api_spec.rb', 'spec/api/orphans_api_spec.rb', 'spec/api/uploads_api_spec.rb', 'spec/api/importers_pulp_api_spec.rb', 'spec/api/contentguards_rbac_api_spec.rb', 'spec/api/distributions_api_spec.rb', 'spec/api/orphans_cleanup_api_spec.rb', 'spec/api/roles_api_spec.rb', 'spec/api/task_schedules_api_spec.rb', 'spec/api/groups_users_api_spec.rb', 'spec/api/exporters_pulp_api_spec.rb', 'spec/api/groups_api_spec.rb', 'spec/api/repositories_reclaim_space_api_spec.rb', 'spec/api/groups_roles_api_spec.rb', 'spec/api/distributions_artifacts_api_spec.rb', 'spec/api/signing_services_api_spec.rb', 'spec/api/users_api_spec.rb', 'spec/api/task_groups_api_spec.rb', 'spec/api/status_api_spec.rb', 'spec/api/artifacts_api_spec.rb', 'spec/api/users_roles_api_spec.rb', 'spec/api/exporters_filesystem_exports_api_spec.rb', 'spec/api/contentguards_api_spec.rb', 'spec/api/repositories_api_spec.rb', 'spec/api/importers_pulp_imports_api_spec.rb', 'spec/api/importers_pulp_import_check_api_spec.rb', 'spec/api/repair_api_spec.rb', 'spec/api/exporters_filesystem_api_spec.rb', 'spec/api/access_policies_api_spec.rb', 'spec/api/workers_api_spec.rb', 'spec/api/remotes_api_spec.rb', 'spec/api/repository_versions_api_spec.rb', 'spec/api_client_spec.rb', 'spec/configuration_spec.rb', 'spec/models/paginated_worker_response_list_spec.rb', 'spec/models/remote_response_spec.rb', 'spec/models/paginated_multiple_artifact_content_response_list_spec.rb', 'spec/models/nested_role_spec.rb', 'spec/models/paginated_access_policy_response_list_spec.rb', 'spec/models/content_app_status_response_spec.rb', 'spec/models/paginated_pulp_exporter_response_list_spec.rb', 'spec/models/paginated_upstream_pulp_response_list_spec.rb', 'spec/models/artifact_response_spec.rb', 'spec/models/repair_spec.rb', 'spec/models/upload_commit_spec.rb', 'spec/models/publication_response_spec.rb', 'spec/models/group_role_spec.rb', 'spec/models/filesystem_export_response_spec.rb', 'spec/models/repository_version_response_spec.rb', 'spec/models/paginated_pulp_importer_response_list_spec.rb', 'spec/models/paginated_task_group_response_list_spec.rb', 'spec/models/patched_task_cancel_spec.rb', 'spec/models/paginated_repository_response_list_spec.rb', 'spec/models/paginated_publication_response_list_spec.rb', 'spec/models/worker_response_spec.rb', 'spec/models/patched_filesystem_exporter_spec.rb', 'spec/models/filesystem_export_spec.rb', 'spec/models/group_spec.rb', 'spec/models/filesystem_exporter_response_spec.rb', 'spec/models/upload_response_spec.rb', 'spec/models/domain_spec.rb', 'spec/models/redis_connection_response_spec.rb', 'spec/models/paginated_domain_response_list_spec.rb', 'spec/models/patched_content_redirect_content_guard_spec.rb', 'spec/models/patched_role_spec.rb', 'spec/models/status_response_spec.rb', 'spec/models/artifact_spec.rb', 'spec/models/patched_access_policy_spec.rb', 'spec/models/my_permissions_response_spec.rb', 'spec/models/user_spec.rb', 'spec/models/paginated_task_schedule_response_list_spec.rb', 'spec/models/group_response_spec.rb', 'spec/models/rbac_content_guard_response_spec.rb', 'spec/models/patched_user_spec.rb', 'spec/models/pulp_import_spec.rb', 'spec/models/task_response_spec.rb', 'spec/models/upload_detail_response_spec.rb', 'spec/models/filesystem_exporter_spec.rb', 'spec/models/group_user_response_spec.rb', 'spec/models/pulp_import_check_response_spec.rb', 'spec/models/paginated_rbac_content_guard_response_list_spec.rb', 'spec/models/group_user_spec.rb', 'spec/models/upstream_pulp_spec.rb', 'spec/models/pulp_importer_spec.rb', 'spec/models/group_progress_report_response_spec.rb', 'spec/models/role_response_spec.rb', 'spec/models/pulp_exporter_spec.rb', 'spec/models/paginated_repository_version_response_list_spec.rb', 'spec/models/paginated_filesystem_export_response_list_spec.rb', 'spec/models/method_enum_spec.rb', 'spec/models/distribution_response_spec.rb', 'spec/models/purge_spec.rb', 'spec/models/paginated_signing_service_response_list_spec.rb', 'spec/models/paginated_upload_response_list_spec.rb', 'spec/models/access_policy_spec.rb', 'spec/models/artifact_distribution_response_spec.rb', 'spec/models/group_role_response_spec.rb', 'spec/models/pulp_exporter_response_spec.rb', 'spec/models/policy_enum_spec.rb', 'spec/models/task_group_operation_response_spec.rb', 'spec/models/user_role_response_spec.rb', 'spec/models/patched_group_spec.rb', 'spec/models/remote_response_hidden_fields_spec.rb', 'spec/models/patched_domain_spec.rb', 'spec/models/minimal_task_response_spec.rb', 'spec/models/paginated_user_response_list_spec.rb', 'spec/models/upload_spec.rb', 'spec/models/content_settings_response_spec.rb', 'spec/models/patched_upstream_pulp_spec.rb', 'spec/models/access_policy_response_spec.rb', 'spec/models/reclaim_space_spec.rb', 'spec/models/storage_response_spec.rb', 'spec/models/evaluation_response_spec.rb', 'spec/models/paginated_content_guard_response_list_spec.rb', 'spec/models/paginated_content_redirect_content_guard_response_list_spec.rb', 'spec/models/paginated_group_response_list_spec.rb', 'spec/models/multiple_artifact_content_response_spec.rb', 'spec/models/paginated_artifact_response_list_spec.rb', 'spec/models/content_guard_response_spec.rb', 'spec/models/content_redirect_content_guard_response_spec.rb', 'spec/models/states_enum_spec.rb', 'spec/models/orphans_cleanup_spec.rb', 'spec/models/domain_response_spec.rb', 'spec/models/paginated_group_role_response_list_spec.rb', 'spec/models/signing_service_response_spec.rb', 'spec/models/content_summary_response_spec.rb', 'spec/models/object_roles_response_spec.rb', 'spec/models/patched_rbac_content_guard_spec.rb', 'spec/models/paginated_group_user_response_list_spec.rb', 'spec/models/upload_chunk_response_spec.rb', 'spec/models/paginated_role_response_list_spec.rb', 'spec/models/import_response_spec.rb', 'spec/models/paginated_distribution_response_list_spec.rb', 'spec/models/rbac_content_guard_spec.rb', 'spec/models/paginated_artifact_distribution_response_list_spec.rb', 'spec/models/user_response_spec.rb', 'spec/models/pulp_importer_response_spec.rb', 'spec/models/pulp_export_response_spec.rb', 'spec/models/storage_class_enum_spec.rb', 'spec/models/user_group_response_spec.rb', 'spec/models/patched_pulp_exporter_spec.rb', 'spec/models/database_connection_response_spec.rb', 'spec/models/version_response_spec.rb', 'spec/models/role_spec.rb', 'spec/models/content_redirect_content_guard_spec.rb', 'spec/models/repository_response_spec.rb', 'spec/models/pulp_export_spec.rb', 'spec/models/paginated_remote_response_list_spec.rb', 'spec/models/upload_chunk_spec.rb', 'spec/models/progress_report_response_spec.rb', 'spec/models/paginated_filesystem_exporter_response_list_spec.rb', 'spec/models/task_group_response_spec.rb', 'spec/models/patched_pulp_importer_spec.rb', 'spec/models/paginated_pulp_export_response_list_spec.rb', 'spec/models/nested_role_response_spec.rb', 'spec/models/pulp_import_check_spec.rb', 'spec/models/async_operation_response_spec.rb', 'spec/models/paginated_user_role_response_list_spec.rb', 'spec/models/user_group_spec.rb', 'spec/models/paginated_task_response_list_spec.rb', 'spec/models/upstream_pulp_response_spec.rb', 'spec/models/task_schedule_response_spec.rb', 'spec/models/user_role_spec.rb', 'spec/models/paginated_import_response_list_spec.rb', 'spec/spec_helper.rb']})

gem_info["dependencies"] = {
dep.values["name"]: _collapse_requirement(dep.values["requirement"])
for dep in dependencies
}
# Workaroud
del data.values["date"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious, do you know why we must delete the 'date' value? Also, can this error if 'date' isn't in the returned values?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the yaml serializer did not perceive it well. But no, i don't remember.

size=1024,
file=SimpleUploadedFile("test_filename_a", b"test content_a"),
**_checksums("a"),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nifty!

assert not ruby_ver_includes(">= 1&< 3", "3.0.0")
assert ruby_ver_includes(">= 1&< 3", "1.5.a0")
assert ruby_ver_includes(">= 1&< 3", "3.0.0a5")
assert not ruby_ver_includes(">= 1&< 3", "3.0.1a5")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason why this is not "3.0.0a5"?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

?? 3.0.0a5 is included in that range, as the test one line above shows.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also RubyVersion: any non digit character marks a prerelease.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦 Yep, prereleases are indeed less than a release.

@mdellweg mdellweg force-pushed the compact_index branch 2 times, most recently from 9db5d49 to 293f79b Compare June 23, 2023 08:54
@mdellweg
Copy link
Member Author

@gerrod3 looks like finding the pulpcore bug was a lucky coincidence. We can release this without its fix.

@mdellweg mdellweg enabled auto-merge (rebase) June 23, 2023 10:21
* Rename GemContent to ShallowGemContent
    This is to move the pre GA release model out of the way for the new one
    with a proper checksum. Old content should continue to serve as is.
    Added a datarepair command to migrate pre GA gems.
* Add filtering to remotes for sync
    Filters for includes and excludes with version constraints as well as
    filtering for preleleases were added.

fixes pulp#96
@mdellweg mdellweg merged commit 42b6894 into pulp:main Jun 24, 2023
@mdellweg mdellweg deleted the compact_index branch June 25, 2023 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants