The openSUSE Factory project
This project is managing the entire Factory, aka Tumbleweed distribution.
It defines the used package sources and additional configuration settings to build the binaries.
Package Sources
All package sources are organized below the pkgs directory. These are grouped again in subdirectories to avoid too large directory listings.
The _manifest file needs to get adapted in case a new subdirectory
gets created or an existing one gets renamed.
Each package source is defined via a git submodule. The submodules defines
- the origin url of the source (in .gitmodules)
- the branch to follow (in .gitmodules)
- the current used commit hash
Any submodule reference should be relative to allow a full replication on other git servers.
Add a new package source
git submodule add -b factory ../../pool/$PACKAGE pkg/$DIRECTORY/$PACKAGE
git commit
Remove a package source
git rm pkg/$DIRECTORY/$PACKAGE
git commit -a
This modifies also the .gitmodules file
Update a package source
This is usually done via our bot infrastucture. But in case a manual action is needed run
git submodule update --init pkg/$DIRECTORY/$PACKAGE
cd pkg/$DIRECTORY/$PACKAGE
git pull # or checkout a specific commit/branch
cd -
git add pkg/$DIRECTORY/$PACKAGE
git commit
Additional files
_manifest
Is the master git configuration file. Currently it is only used to define the package source structure of the project.
_config
The build configuration (aka prjconf).
workflow.config
Rules for the workflow-pr bot. The bot creates for any pull request against any used pool/$PACKAGE git repository factory branch also a pull request for this git project here.
staging.config
Defines test builds for any pull request to this project