Factory/README.md
Nicolas Belouin eae86c9ade Document branch version
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
2024-11-07 16:37:52 +01:00

2.2 KiB

Factory

Contains the definition of the packages built on OBS for the SUSE Edge Solution (WIP)

This repository is linked to an OBS project: https://build.opensuse.org/project/show/isv:SUSE:Edge:Factory Every directory in this repository represents a package in that OBS project, those should be synced automatically from this repository.

Adding a package

To add a package, first create a directory with your package as you intend it in OBS.

Then run the .obs/add_package.py script to create the package in the OBS project and add the required elements to the synchronization workflow. This script is using the osc command behind the scenes, so ensure you have it installed and correctly configured, as well as you have the correct permissions to create a new package in the project.

You will then get asked to push your changes.

Testing a fork or a development branch

You can create a project in your home space in OBS, use the same prjconf as the one of "isv:SUSE:Edge:Factory", and copy the repositories part of the metadata (adjust self references). Then add a scmsync stanza to your metadata like this (adjust repository path and branch):

<scmsync>https://src.opensuse.org/suse-edge/Factory#main</scmsync>

Cutting a release version branch

  1. Do the appropriate git branch command
  2. Change the project path in .obs/common.py file (e.g. from isv:SUSE:Edge:Factory to isv:SUSE:Edge:3.2)
  3. Change the branch reference in .obs/common.py file (e.g. from main to 3.2)
  4. Edit the .obs/workflows.yml file to change the references to the correct projects
  5. Commit those changes to the new branch and push the new branch
  6. Create the base and to-test projects (e.g. isv:SUSE:Edge:3.2 and isv:SUSE:Edge:3.2:ToTest), use the isv:SUSE:Edge:Factory projects as example for metadata part
  7. Use the prjconf of Factory in all those projects
  8. Run the .obs/sync_packages.py script to create all the packages in the base project
  9. Go take a few cups of coffee/tea/mate/... while waiting for OBS to build everything
  10. Once built do an osc release of the project for it to be copied over in the ToTest section
  11. Hand over to QA to test whatever is in ToTest. (You can continue to work on the base branch if needed meanwhile)