Project

Profile

Help

Issue #4144

Updated by milan over 5 years ago

Having run the migration @0047_add_modulemd_dependencies_field.py@ in my pulp deployment that syncs Fedora 29 content I saw that the dependencies of modules can be duplicated: duplicated where original buildtime dependencies were provided, with different streams: 
                                     
 @db.units_modulemd.find({"dependencies": {$ne: []}})[6]@                                                                                                             
 <pre><code class="JSON" > 

 {                                                                                                                                                                                                                   
         "_id" : "042a0ffd-0475-40ef-bba6-cf9380ab931c",                                                                                                                                                             
         "pulp_user_metadata" : {                                                                                                                                                                                    
                                                                                                                                                                                                                   
         }, 
         "_last_updated" : 1539260489, 
         "_storage_path" : "/var/lib/pulp/content/units/modulemd/b0/f1a8a4a6229d2531c4004f0d70499933a040f4d6428827d6c41aeaa81ed66b",                                                                                
         "downloaded" : true, 
         "name" : "reviewboard", 
         "stream" : "2.5", 
         "version" : NumberLong("20180828143308"), 
         "context" : "083bce86", 
         "arch" : "x86_64", 
         "summary" : "A web-based code review tool", 
         "description" : "Review Board is a powerful web-based code review tool that offers developers an easy way to handle code reviews. It scales well from small projects to large companies and offers a varie$y of tools to take much of the stress and time out of the code review process.", 
         "profiles" : { 
                 "default" : [ 
                         "ReviewBoard" 
                 ], 
                 "server" : [ 
                         "ReviewBoard" 
                 ] 
         }, 
         "artifacts" : [ 
                 "ReviewBoard-0:2.5.17-17.module_1631+4353a891.noarch", 
                 "python-django-haystack-docs-0:2.4.1-12.module_1631+4353a891.noarch", 
                 "python2-django-evolution-1:0.7.7-12.module_1631+4353a891.noarch", 
                 "python2-django-haystack-0:2.4.1-12.module_1631+4353a891.noarch", 
                 "python2-django-multiselectfield-0:0.1.3-10.module_1631+4353a891.noarch", 
                 "python2-django-pipeline-0:1.3.27-11.module_1631+4353a891.noarch", 
                 "python2-djblets-0:0.9.9-13.module_1631+4353a891.noarch", 
                 "python2-markdown-0:2.4.1-12.module_2085+40241970.noarch", 
                 "python3-markdown-0:2.4.1-12.module_2085+40241970.noarch" 
         ], 
         "checksum" : "92c01be4ef52dab5aa75e0d31562b1bbb45e088b013900c8fe90f0c744cf8431", 
         "_ns" : "units_modulemd", 
         "_content_type_id" : "modulemd", 
         "dependencies" : [ 
                 { 
                         "platform" : [ 
                                 "f29" 
                         ], 
                         "django" : [ 
                                 "1.6" 
                         ] 
                 }, 
                 { 
                         "platform" : [ 
                                 "f29" 
                         ], 
                         "django" : [ 
                         "django" : [ 
                                 "1.6" 
                         ] 
                 } 
         ] 
 } 
 </code></pre> 

 For comparison, the original modular metadata: 

 <pre><code class="YAML"> 
 document: modulemd 
 version: 2 
 data: 
   name: reviewboard 
   stream: 2.5 
   version: 20180828143308 
   context: 083bce86 
   arch: x86_64 
   summary: A web-based code review tool 
   description: >- 
     Review Board is a powerful web-based code review tool that offers developers an 
     easy way to handle code reviews. It scales well from small projects to large companies 
     and offers a variety of tools to take much of the stress and time out of the code 
     review process. 
   license: 
     module: 
     - MIT 
     content: 
     - BSD 
     - LGPLv3 
     - MIT 
     - MIT and (MIT or GPLv2) 
   xmd: 
     mbs: 
       mse: TRUE 
       scmurl: https://src.fedoraproject.org/modules/reviewboard.git?#0fc31243aa85666e4e584aebda7a74e430cd0698 
       commit: 0fc31243aa85666e4e584aebda7a74e430cd0698 
       buildrequires: 
         platform: 
           ref: f29 
           stream: f29 
           context: 00000000 
           version: 5 
           filtered_rpms: [] 
         django: 
           ref: da53d66d3db1aa5f6afd75887b00fa26849bcc0a 
           stream: 1.6 
           context: 6c81f848 
           version: 20180828135711 
           filtered_rpms: [] 
       rpms: 
         python-django-multiselectfield: 
           ref: 149bf58875fb7b55efe29e1735baf96d44eb99a9 
         python-markdown: 
           ref: 96c1b2f925c2ad3b7aae04ab7ebf25ae1d714ebf 
         python-django-evolution: 
           ref: 512424e1fc4b99f6f74c01a4130a4d9402b56b4e 
         python-django-pipeline: 
           ref: f019137be96cf86f49a81001fef47a0c7ab6aa35 
         ReviewBoard: 
           ref: 5d28213f6a797e5ce28ad05ab23f80fe67353da8 
         python-djblets: 
           ref: d5634779089456ff3d0ac7b78eec81e13ff4c733 
   dependencies: 
   - buildrequires: 
       django: [1.6] 
       platform: [f29] 
     requires: 
       django: [1.6] 
       platform: [f29] 
 # ------->%--------------------- 
 </code></pre>

Back