Skip to content

OBS Minor Release HOWTO

Saray Cabrera Padrón edited this page Dec 3, 2020 · 37 revisions

How do we do minor releases?

This is a documentation about updating OBS from X.X.X to X.X.Y (so let's say from 2.8.0 to 2.8.1).

For the rest of this document:

  • $VERSION: refers to 2.8
  • $NEW_MINOR_VERSION: refers to 2.8.1

Collect patches for new release

  1. Commit the changes to the git version branch.
  2. Add a ReleaseNotes-$NEW_MINOR_VERSION file in the root of the git repository.
  3. Mention any important change / bug fix made since the last release in the release notes file.

Change version in the appliance for Staging

  1. Inside the package OBS:Server:$VERSION:Staging/OBS-Appliance, edit the file OBS-Appliance.kiwi (you can do it via WebUI). There, set all the version tags to $NEW_MINOR_VERSION:

    <version>$NEW_MINOR_VERSION</version>
    ...
    <version>$NEW_MINOR_VERSION</version>
    
    

Update obs-server package in Staging

  1. Check out the obs-server package OBS:Server:$VERSION:Staging and move into its directory:

    osc co OBS:Server:$VERSION:Staging obs-server
    cd OBS:Server:$VERSION:Staging/obs-server
  2. Change the version inside the _service file to $NEW_MINOR_VERSION (e.g. 2.10.4). Leave the revision value as the branch name (e.g. 2.10):

    <service name="obs_scm">
      <param name="version">$NEW_MINOR_VERSION</param>
      <param name="revision">2.10</param>
      ...
    </service>
  3. osc vc obs-server.changes and paste the ReleaseNotes-$NEW_MINOR_VERSION file.

  4. osc ci.

  5. Watch the package obs-server to succeed for all distributions.

Change version in the appliance for the stable project

  1. Inside the package OBS:Server:$VERSION/OBS-Appliance, edit the file OBS-Appliance.kiwi (you can do it via WebUI). There, set all the version tags to $NEW_MINOR_VERSION:

    <version>$NEW_MINOR_VERSION</version>
    ...
    <version>$NEW_MINOR_VERSION</version>
    
    

Test the new release with openQA

OBS:Server:$VERSION:Staging appliances are automatically tested by openQA. Make sure the tests succeed!

Test the new release manually (optional as it is already done in the openQA tests)

  1. osc co OBS-Appliance-vmdk
    • (If you use VirtualBox, use vdi format from OBS 2.7 on!)
  2. osc getbinaries images
  3. Start the .vmdk / .vdi file in Virtual box:
    • NOTE: if you use VirtualBox remember to configure your network as Bridged Adapter.
    • Test that apache & buildservice starts automatically.
    • Test your changes work and have not introduced any regression:
      • Create an Interconnect to openSUSE.org.
      • Create the Admin:home project.
      • Branch from Interconnect openSUSE.org:openSUSE:Tools/build package.
      • Add build targets to the project and watch package build.

Release the packages

  1. Release the staging project with osc release OBS:Server:$VERSION:Staging:

    • Wait until the staging project gets released.
  2. Write a mail like this to our public mailing list.

  3. Tag the released code:

    git fetch upstream
    git checkout upstream/$VERSION
    git tag -a $NEW_MINOR_VERSION
    git push upstream $NEW_MINOR_VERSION

Troubleshooting

In the past we had some problems when we used the same name for a git branch and for a git tag. To avoid conflicts, ensure you never create tags with the format X.Y (for example 2.10), they are reserved for branches. The tags should always look like X.Y.Z. Summarizing:

  • branch 2.10: OK.
  • tag 2.10: WRONG!
  • tag 2.10.0: OK.
Clone this wiki locally