Files
Factory/README.md
2026-02-02 15:11:41 +01:00

76 lines
1.8 KiB
Markdown

# 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
```shell
git submodule add -b factory ../../pool/$PACKAGE pkg/$DIRECTORY/$PACKAGE
git commit
```
### Remove a package source
```shell
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
```shell
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