76 lines
1.8 KiB
Markdown
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
|
|
|