#9 use modulemd v2 + split into separate page
Merged 5 years ago by asamalik. Opened 5 years ago by asamalik.
Unknown source master  into  master

file modified
+3 -1
@@ -40,9 +40,11 @@

      Topics:

        - Name: Making Modules

          File: Making_Modules

+       - Name: Defining Modules in Modulemd

+         File: Defining_Modules_in_Modulemd

        - Name: Naming and organizing modules

          File: Naming_and_organizing_modules

-       - Name: Storing and defining sources

+       - Name: Storing sources

          File: Storing_and_defining_sources

        - Name: Building and installing

          File: Building_and_installing

@@ -0,0 +1,94 @@

+ == Defining modules in modulemd

+ 

+ Modules are defined using a https://pagure.io/modulemd[modulemd file]. It defines the following information:

+ 

+ * summary and description

+ * list of components (srpm name + branch)

+ * "build" information

+ ** build groups

+ ** filter

+ ** macros

+ ** dependencies

+ * "use" information

+ ** installation profiles

+ ** licenses

+ ** refs to community, docs, bug tracker

+ ** API

+ 

+ === Example

+ 

+ ++++

+ <iframe width="560" height="315" src="https://www.youtube.com/embed/kQM_jC8S7bM?rel=0&amp;showinfo=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

+ ++++

+ 

+ modulemd.yaml

+ [source,yaml]

+ ----

+ document: modulemd

+ version: 2

+ data:

+     summary: An example module                          <1>

+     description: >-

+         A module for the demonstration                  <2>

+         of the metadata format.

+     license:

+         module:

+             - MIT                                       <3>

+     dependencies:                                       <4>

+         - buildrequires:

+                 platform: [f28, f29]

+             requires:

+                 platform: [f28, f29]

+     references:                                         <5>

+         community: http://www.example.com/

+         documentation: http://www.example.com/

+         tracker: http://www.example.com/

+     profiles:                                           <6>

+         default:

+             rpms:

+                 - foo

+                 - foo-extras

+         minimal:

+             description: Minimal profile.

+             rpms:

+                 - foo

+     api:                                                <7>

+         rpms:

+             - foo

+     components:                                         <8>

+         rpms:

+             foo:                                        <9>

+                 rationale: Our main package.            <10>

+                 ref: 2.4                                <11>

+             bar:

+                 rationale: Some another package.

+                 ref: latest

+ ----

+  

+ <1> A short summary describing the module.

+ 

+ <2> A longer summary describing the module.

+ 

+ <3> Licence of this modulemd file.

+ 

+ <4> Other modules and their streams that are used as runtime and build dependencies.

+ "platform" is a reserved word for the Fedora releases.

+ The stream names follow the usual short names for the releases i.e. "f26", "f27", "epel7", etc.

+ See the video above for more detailed info.

+ 

+ <5> Various references to the upstream.

+ 

+ <6> Installation profiles that will help users to install the module.

+ Keep in mind that not all the packages from the module need to be installed.

+ 

+ <7> The module's public RPM-level API.

+ A list of binary RPM names that are considered to be the main and stable feature of the module

+ 

+ <8> List of packages that are part of this module.

+ 

+ <9> Name of a package.

+ 

+ <10> A rationale why the package has been included.

+ This is only for humans.

+ 

+ <11> A dist-git branch of the package. 

\ No newline at end of file

@@ -1,4 +1,4 @@

- = Storing and defining module sources

+ = Storing module sources

  

  Module sources consist of two main parts:

  
@@ -29,98 +29,3 @@

  

  * Repository name -> package name

  * Branch name doesn't map to anything, but is used as a reference in the module definition.

- 

- == Defining modules using modulemd

- 

- Modules are defined using a https://pagure.io/modulemd[modulemd file]. It defines the following information:

- 

- * summary and description

- * list of components (srpm name + branch)

- * "build" information

- ** build groups

- ** filter

- ** macros

- ** dependencies

- * "use" information

- ** installation profiles

- ** licenses

- ** refs to community, docs, bug tracker

- ** API

- 

- === Example

- 

- WARNING: The following example is modulemd version 1 that doesn't support stream expansion. We are introducing a new version very soon.

- 

- modulemd.yaml

- [source,yaml]

- ----

- document: modulemd

- version: 1

- data:

-     summary: An example module                          <1>

-     description: >-

-         A module for the demonstration                  <2>

-         of the metadata format.

-     license:

-         module:

-             - MIT                                       <3>

-     dependencies:                                       <4>

-         buildrequires:

-             platform: f27

-         requires:

-             platform: f27

-     references:                                         <5>

-         community: http://www.example.com/

-         documentation: http://www.example.com/

-         tracker: http://www.example.com/

-     profiles:                                           <6>

-         default:

-             rpms:

-                 - foo

-                 - foo-extras

-         minimal:

-             description: Minimal profile.

-             rpms:

-                 - foo

-     api:                                                <7>

-         rpms:

-             - foo

-     components:                                         <8>

-         rpms:

-             foo:                                        <9>

-                 rationale: Our main package.            <10>

-                 ref: 2.4                                <11>

-             bar:

-                 rationale: Some another package.

-                 ref: latest

- ----

-  

- <1> A short summary describing the module.

- 

- <2> A longer summary describing the module.

- 

- <3> Licence of this modulemd file.

- 

- <4> Other modules and their streams that are used as runtime and build dependencies.

- "platform" is a reserved word for the Fedora releases.

- The stream names follow the usual short names for the releases i.e. "f26", "f27", "epel7", etc.

- In this version of modulemd (v1) there is no support for stream expansion.

- That means that only one release can be selected.

- However, in the upcoming version of modulemd (v2) there will be an option to list multiple ones.

- 

- <5> Various references to the upstream.

- 

- <6> Installation profiles that will help users to install the module.

- Keep in mind that not all the packages from the module need to be installed.

- 

- <7> The module's public RPM-level API.

- A list of binary RPM names that are considered to be the main and stable feature of the module

- 

- <8> List of packages that are part of this module.

- 

- <9> Name of a package.

- 

- <10> A rationale why the package has been included.

- This is only for humans.

- 

- <11> A dist-git branch of the package. 

\ No newline at end of file

no initial comment

Pull-Request has been merged by asamalik

5 years ago