openSUSE:ALP/BuildDesign

Jump to: navigation, search

Introduction

openSUSE:ALP is built very differently from previous openSUSE/SUSE distributions.

This guide exists to be a living document explaining the current openSUSE:ALP Build Structure and the function of various OBS projects that make up the ALP platform

OBS Projects

openSUSE:ALP:Workbench:<workbench_version> This project effectively does the same job as Factory Rings 0 and 1, being a frozen copy of packages needed to bootstrap everything else. These packages are frozen from openSUSE:Factory

openSUSE:ALP:Source The main project for OBS prjconfig

openSUSE:ALP:Source:Standard ALP supports the concept of multiple codebase velocities. "Standard" is the default that SUSE is currently building, but there may be faster or slower velocities going forward. openSUSE may also have it's own in addition. I can totally imagine Tumbleweed evolving to become something like SUSE:ALP:Source:Fast someday. This project includes sources but is not built.

openSUSE:ALP:Source:Standard:Core:<core_version> Core system packages (linked from SUSE:ALP:Source:Standard) and generic containers to be used across multiple ALP products are built here

openSUSE:ALP:Products:<product_name>:<product_version>[:<product_minor_version>] This is where the product definitions and patterns live. Each product builds against a SUSE:ALP:Source:<velocity>:Core:<core_version> project Additional packages specific to a product are allowed Ideally packages should be submitted to and linked from :Core: by default (to allow package sharing between products) but exceptions can be made. For openSUSE-only products, such exceptions might be the norm. Containers, VM images, etc specific to a Product are all defined and built here.

openSUSE:ALP:Products:<product_name>:<product_version>[:<product_minor_version>]:Update If a product will be maintained using a SLE/Leap-like maintenance process, then this would be the Update project for such a process.

Theoretical Examples

  • openSUSE:ALP:Source:Standard:1.0 - the first release of the 'Standard' ALP codebase (Regular Release)
  • openSUSE:ALP:Source:Rolling - an ALP equivalent to openSUSE:Factory (Rolling Release)
  • openSUSE:ALP:Products:Server:1.0 - an openSUSE 1:1 copy of the SUSE ALP Server 1.0 product (developed in SUSE:ALP:Products:Server:1.0