From 14d56ca17e09f70444c6460422ae6d9ce3f1adf6 Mon Sep 17 00:00:00 2001 From: Adam Samalik Date: Apr 18 2018 10:09:24 +0000 Subject: use modulemd v2 + split into separate page --- diff --git a/_topic_map.yml b/_topic_map.yml index b9f8354..d0d083b 100644 --- a/_topic_map.yml +++ b/_topic_map.yml @@ -40,9 +40,11 @@ Topics: 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 diff --git a/en-US/making-modules/Defining_Modules_in_Modulemd.adoc b/en-US/making-modules/Defining_Modules_in_Modulemd.adoc new file mode 100644 index 0000000..867c589 --- /dev/null +++ b/en-US/making-modules/Defining_Modules_in_Modulemd.adoc @@ -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 + +++++ + +++++ + +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 diff --git a/en-US/making-modules/Storing_and_defining_sources.adoc b/en-US/making-modules/Storing_and_defining_sources.adoc index fb7433b..b08906a 100644 --- a/en-US/making-modules/Storing_and_defining_sources.adoc +++ b/en-US/making-modules/Storing_and_defining_sources.adoc @@ -1,4 +1,4 @@ -= Storing and defining module sources += Storing module sources Module sources consist of two main parts: @@ -29,98 +29,3 @@ RPM Packages are stored in the `/rpms` namespace, and are also organized into st * 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