Agama packages are available in the YaST:Head:Agama project in OBS. This document summarizes the process we follow to build those packages.
The process to build each package is slightly different depending on the technology we are using.
While the Ruby-based one (rubygem-agama
) is built as any other YaST package, the web UI
(cockpit-agama
) and the CLI (agama-cli
) rely on OBS source
services.
We have decided to follow a single number schema: 1, 2, 3, etc. However, if we need to release a hot-fix, we might use a dotted version (e.g., 2.1). Moreover, all the components share the same version number. Releasing a new version implies that all of them get the new number, no matter if they contain changes or not.
In order to release a new version, we need to:
-
Update the version number in the
service/VERSION
file with the new number. These file is read when building therubygem-agama
package. -
(cd service; bundle install)
# Updates Gemfile.lock which is part of the repository -
Add entries in the changes files.
osc vc service/package
osc vc rust/package
osc vc web/package
-
Open a pull request to get these changes into the repository.
-
Once the pull request is merged, tag the repository with the proper version number. The processes to build
cockpit-agama
andagama-cli
use this information to infer the version. You can set the tag with something like:git tag --sign v$(cat service/VERSION) --message "Version $(cat service/VERSION)" git push --tags
You can check the current package in YaST:Head:Agama/rubygem-agama.
Use rake
to update the package in OBS as you would do with any other YaST package:
cd service
rake osc:commit
If you just want to build the package locally, run:
rake osc:build
The current package is YaST:Head:Agama/cockpit-agama. It relies on OBS Source Services to fetch the sources (including the dependencies), set the version and build the package. You can figure out most details by checking the _service file.
To update the package in the build service, you just need to type:
osc service manualrun
osc commit -m "Update sources"
If you want to build the package locally, just checkout (or branch) the package and run osc build
.
The version number is inferred from the repository tags (see Releasing a new
version): it uses the latest tag and the offset of the latest commit
respect such a tag. (e.g., 0.1~2
).
You can read more about the overall approach of this package in the following article: Git work flows in the upcoming 2.7 release.
The current package is YaST:Head:Agama. To update the package in the build service, run the following commands:
osc service manualrun
osc addremove *
osc commit -m "Update sources"
If you want to build the package locally, just checkout (or branch) the package and run osc build
.
The version number is inferred from the repository tags (see Releasing a new
version): it uses the latest tag and the offset of the latest commit
respect such a tag. (e.g., 0.1~2
).
The ISO is built and developed in YaST:Head:Agama/agama-live. See IMAGE.md for more details.