I would like to discuss this pulp_rpm issue (first brought it up in open floor, then the pulp-rpm matrix room, and am now moving it here for long term discussion and the silent readers).
In a nutshell, we have a SLES repo, that references a custom metadata file from its
<data type="license-sle-module-NVIDIA-compute">. The string
"license-sle-module-NVIDIA-compute" is too long for the 20 chars limit on the DB field here. The corresponding Pulp 2 field had no such 20 char limit.
The result is that the repo in question can’t be synced to Pulp 3 or be 2to3 migrated from Pulp 2.
The obvious solution is to relax the 20 char limit, but I also need a fix as far back as pulp_rpm 3.9 (for Katello 2to3 migrations). I will collect some of the ideas that were discussed as possible solutions:
The really ugly hack: I simply learn to live within the 20 char limit by truncating the offending strings. Even more ugly, this could be made robust against collisions by hashing and then truncating the strings instead.
@x9c4 asked the following: “Can the length of that field be adjusted in a post_migrate signal until the version that has the migration?” However the consensus was that there are not yet any examples of trying something like that, and that it might not be possible using that mechanism.