From Fedora Project Wiki
m (Nphilipp moved page Modularity Working Group/prototype/pungi to Modularity Team/prototype/pungi: We renamed the Modularity Working Group to "Modularity Team".)
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
  
== Overview ==
+
== Pungi Overview ==
  
 
Pungi is set of tools which is used by Release Engineering to create composes of Fedora and RHEL.
 
Pungi is set of tools which is used by Release Engineering to create composes of Fedora and RHEL.
Line 24: Line 24:
  
  
 +
* '''pungi-modularity (configuration files and executables for rest tools)''' [https://pagure.io/pungi-modularity https://pagure.io/pungi-modularity]
 
* '''pungi-gather''' [https://pagure.io/fork/lkocman/pungi/branch/modularity-pungi-gather-only https://pagure.io/fork/lkocman/pungi/branch/modularity-pungi-gather-only]
 
* '''pungi-gather''' [https://pagure.io/fork/lkocman/pungi/branch/modularity-pungi-gather-only https://pagure.io/fork/lkocman/pungi/branch/modularity-pungi-gather-only]
 
* '''pungi''' (pungi-createrepo, pungi-createiso [https://pagure.io/fork/lkocman/pungi/branch/modularity https://pagure.io/fork/lkocman/pungi/branch/modularity]
 
* '''pungi''' (pungi-createrepo, pungi-createiso [https://pagure.io/fork/lkocman/pungi/branch/modularity https://pagure.io/fork/lkocman/pungi/branch/modularity]
 
* '''productmd''' - the metadata glue for composes [https://github.com/lkocman/productmd/tree/modularity https://github.com/lkocman/productmd/tree/modularity]
 
* '''productmd''' - the metadata glue for composes [https://github.com/lkocman/productmd/tree/modularity https://github.com/lkocman/productmd/tree/modularity]
 
 
  
 
== Documentation ==
 
== Documentation ==
Line 34: Line 33:
 
*  '''Building distribution the RedHat way''' (presentation + tarball with examples) - http://people.redhat.com/~lkocman/
 
*  '''Building distribution the RedHat way''' (presentation + tarball with examples) - http://people.redhat.com/~lkocman/
 
** this specific demo is using upstream pungi not the one for modularity)
 
** this specific demo is using upstream pungi not the one for modularity)
* '''pungi configuration''' - https://pagure.io/fork/lkocman/pungi/blob/master/f/doc/configuration.rst
+
* '''pungi configuration''' - https://pagure.io/fork/lkocman/pungi/blob/modularity/f/doc/configuration.rst
 +
* '''pungi-gather configuration (The depsolver)''' - https://pagure.io/fork/lkocman/pungi/blob/modularity-pungi-gather-only/f/doc/pungi-gather-configuration.rst
 +
 
 +
== How to get started ==
 +
<code>
 +
git clone https://pagure.io/pungi-modularity<br>
 +
cd pungi-modularity<br>
 +
<br><br>
 +
cd $YOUR_DIR_WHERE_YOU_RE_WILLING_TO_CHECKOUT_MY_PROTOTYPES<br>
 +
pungi-modularity/checkout-modularity-into-pwd.sh # this will checkout all pungi parts into @PWD<br>
 +
# You'll need to download some repository with fedora-x86-64 + related src packages and place it into modularity/fedora-24-x86_64-repo # default for attached configs<br>
 +
./run-pungi-gather.sh<br>
 +
./run-pungi-createrepo.sh /path/to/static-manifest-dir-output-by-pungi-gather<br>
 +
</code>

Latest revision as of 11:06, 23 January 2019

Pungi Overview

Pungi is set of tools which is used by Release Engineering to create composes of Fedora and RHEL. Compose is currently one big process which does everything from depsolving to creation of rpm repos, isos, docker images.

The goal here is to split whole tool into several scripts doing just one thing right. Output of such tool would be wrapped into metadata (preferably json with python-library see productmd) so other tool can take it as input.


These individual tools would be

  • pungi-gather - takes some core packages as input (comps, json) , source repo for rpms (koji/local repo), some depsolving rules) and produces something that I'd like to call static manifest which would be list of NEVRAs linked into variant (type=(module|variant|addon ...)
  • pungi-createrepo - takes output as pungi-gather as input + configuration for pungi-createrepo (saying which checksum, which createrepo (createrepo|createrepo_c) ..., variant configuration (custom paths ...) ) and produces repositories in a tree wrapped by productmd metadata
  • pungi-createiso - takes output from pungi-createrepo as input + configuration for pungi-createiso (extra files (README), product information (ISO Labels) ) and produces iso files
  • pungi-image-build

...


Sources for prototype

Documentation

How to get started

git clone https://pagure.io/pungi-modularity
cd pungi-modularity


cd $YOUR_DIR_WHERE_YOU_RE_WILLING_TO_CHECKOUT_MY_PROTOTYPES
pungi-modularity/checkout-modularity-into-pwd.sh # this will checkout all pungi parts into @PWD

  1. You'll need to download some repository with fedora-x86-64 + related src packages and place it into modularity/fedora-24-x86_64-repo # default for attached configs

./run-pungi-gather.sh
./run-pungi-createrepo.sh /path/to/static-manifest-dir-output-by-pungi-gather