# Factory Contains the definition of the packages built on OBS for the SUSE Edge Solution (WIP) This repository is linked to an OBS project: 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): ```xml https://src.opensuse.org/suse-edge/Factory#main ``` ## 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)