- Fix generation of module component YAML - Output NSVC information using decimal version Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
		
			
				
	
	
		
			117 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From b873aca640964389935d88a90a657abba89421e3 Mon Sep 17 00:00:00 2001
 | |
| From: Stephen Gallagher <sgallagh@redhat.com>
 | |
| Date: Thu, 6 Sep 2018 11:17:41 -0400
 | |
| Subject: [PATCH 1/2] Properly write out the ref for module components
 | |
| 
 | |
| Fixes: https://github.com/fedora-modularity/libmodulemd/issues/85
 | |
| 
 | |
| Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
 | |
| ---
 | |
|  modulemd/v1/modulemd-yaml-emitter-modulemd.c  |  2 +-
 | |
|  modulemd/v1/tests/test-modulemd-python.py     | 50 +++++++++++++++++++
 | |
|  modulemd/v1/tests/test-modulemd-translation.c |  2 +-
 | |
|  3 files changed, 52 insertions(+), 2 deletions(-)
 | |
| 
 | |
| diff --git a/modulemd/v1/modulemd-yaml-emitter-modulemd.c b/modulemd/v1/modulemd-yaml-emitter-modulemd.c
 | |
| index 87093813e28f5dd42ab014265874ce2148372c8a..7b0fbfafe1cdb4651f2f9b7147f9c082eb76ee2a 100644
 | |
| --- a/modulemd/v1/modulemd-yaml-emitter-modulemd.c
 | |
| +++ b/modulemd/v1/modulemd-yaml-emitter-modulemd.c
 | |
| @@ -1353,11 +1353,11 @@ _emit_modulemd_module_components (yaml_emitter_t *emitter,
 | |
|        MMD_YAML_EMIT_STR_STR_DICT (
 | |
|          &event, name, value, YAML_PLAIN_SCALAR_STYLE);
 | |
|      }
 | |
|  
 | |
|    /* Ref */
 | |
| -  value = modulemd_component_module_dup_repository (module_component);
 | |
| +  value = modulemd_component_module_dup_ref (module_component);
 | |
|    if (value)
 | |
|      {
 | |
|        name = g_strdup ("ref");
 | |
|        MMD_YAML_EMIT_STR_STR_DICT (
 | |
|          &event, name, value, YAML_PLAIN_SCALAR_STYLE);
 | |
| diff --git a/modulemd/v1/tests/test-modulemd-python.py b/modulemd/v1/tests/test-modulemd-python.py
 | |
| index 07823213de9c7f16e16719efe0eccf155117cfa5..596665a6df2e367d0817c08b0bfc651cecd14e6a 100755
 | |
| --- a/modulemd/v1/tests/test-modulemd-python.py
 | |
| +++ b/modulemd/v1/tests/test-modulemd-python.py
 | |
| @@ -214,10 +214,60 @@ class TestIssues(unittest.TestCase):
 | |
|              yaml_output = mmd_translation.dumps()
 | |
|          except GLib.GError as err:
 | |
|              # A proper exception is expected here
 | |
|              pass
 | |
|  
 | |
| +    def test_issue85(self):
 | |
| +        """
 | |
| +        Component module refs are lost when dumping to YAML
 | |
| +        """
 | |
| +        mmd = Modulemd.Module().new_from_string("""
 | |
| +document: modulemd
 | |
| +version: 1
 | |
| +data:
 | |
| +    summary: A test module in all its beautiful beauty.
 | |
| +    description: This module demonstrates how to write simple modulemd files And can be used for testing the build and release pipeline.
 | |
| +    license:
 | |
| +        module: [ MIT ]
 | |
| +    dependencies:
 | |
| +        buildrequires:
 | |
| +            platform: el8
 | |
| +        requires:
 | |
| +            platform: el8
 | |
| +    references:
 | |
| +        community: https://fedoraproject.org/wiki/Modularity
 | |
| +        documentation: https://fedoraproject.org/wiki/Fedora_Packaging_Guidelines_for_Modules
 | |
| +        tracker: https://taiga.fedorainfracloud.org/project/modularity
 | |
| +    profiles:
 | |
| +        default:
 | |
| +            rpms:
 | |
| +                - acl
 | |
| +    api:
 | |
| +        rpms:
 | |
| +            - acl
 | |
| +    components:
 | |
| +        rpms:
 | |
| +            acl:
 | |
| +                rationale: needed
 | |
| +                ref: rhel-8.0
 | |
| +        modules:
 | |
| +            testmodule:
 | |
| +                ref: private-x
 | |
| +                rationale: Testing module inclusion.
 | |
| +                buildorder: 10
 | |
| +""")
 | |
| +        assert mmd.get_module_components(
 | |
| +        )['testmodule'].peek_ref() == 'private-x'
 | |
| +
 | |
| +        mmd2 = Modulemd.Module.copy(mmd)
 | |
| +        assert mmd2.get_module_components(
 | |
| +        )['testmodule'].peek_ref() == 'private-x'
 | |
| +
 | |
| +        mmd3 = Modulemd.Module.new_from_string(mmd.dumps())
 | |
| +        assert mmd3.get_module_components(
 | |
| +        )['testmodule'].peek_ref() == 'private-x'
 | |
| +
 | |
|  
 | |
|  class TestIntent(unittest.TestCase):
 | |
|  
 | |
|      def test_basic(self):
 | |
|          intent = Modulemd.Intent.new("intent_name")
 | |
| diff --git a/modulemd/v1/tests/test-modulemd-translation.c b/modulemd/v1/tests/test-modulemd-translation.c
 | |
| index a85ba5131db562aa9be3255fae3db13e9ee66508..dfa07f48d5ada811a5c82f14e7bcf52c7b258b94 100644
 | |
| --- a/modulemd/v1/tests/test-modulemd-translation.c
 | |
| +++ b/modulemd/v1/tests/test-modulemd-translation.c
 | |
| @@ -350,11 +350,11 @@ modulemd_translation_test_index (TranslationFixture *fixture,
 | |
|      "demonstrates arches and multilib.\n        arches: [i686, x86_64]\n      "
 | |
|      "  multilib: [x86_64]\n      xyz:\n        rationale: xyz is a bundled "
 | |
|      "dependency of xxx.\n        buildorder: 10\n    modules:\n      "
 | |
|      "includedmodule:\n        rationale: Included in the stack, just "
 | |
|      "because.\n        repository: https://pagure.io/includedmodule.git\n     "
 | |
| -    "   ref: https://pagure.io/includedmodule.git\n        buildorder: 100\n  "
 | |
| +    "   ref: somecoolbranchname\n        buildorder: 100\n  "
 | |
|      "artifacts:\n    rpms:\n    - bar-0:1.23-1.module_deadbeef.x86_64\n    - "
 | |
|      "bar-devel-0:1.23-1.module_deadbeef.x86_64\n    - "
 | |
|      "bar-extras-0:1.23-1.module_deadbeef.x86_64\n    - "
 | |
|      "baz-0:42-42.module_deadbeef.x86_64\n    - "
 | |
|      "xxx-0:1-1.module_deadbeef.i686\n    - xxx-0:1-1.module_deadbeef.x86_64\n "
 | |
| -- 
 | |
| 2.19.0.rc0
 | |
| 
 |