openSUSE talk:Packaging for Leap

Jump to: navigation, search

Leap 16.0

Leap 16.0 combines SUSE Linux Enterprise (SLE 16, also known as SLFO) packages with Community-contributed packages. Packaging for Leap follows a Git-based workflow, which differs slightly depending on whether the package originates from SLE or the community.

Git packaging workflow

For general documentation and examples, see: openSUSE:Git Packaging Workflow. Note: Some examples reference Tumbleweed, which has not yet fully switched to Git.

💡 OBS users

If you prefer the traditional OBS workflow instead of working purely with Git, take a look at:

  • git-obs — a bridge between OBS and Git.
  • `osc fork` — lets you fork and test packages while preserving the familiar OBS project structure.

Package sources

It's quite simple. Go to https://src.opensuse.org/pool.

Community Packages

  • Use the `leap-x.y` branch (e.g., `leap-16.0`).
  • There is no separate branch for Package Hub.

SLE/SLFO packages

  • Use `slfo-main` or `slfo-x.y` branches.
  • `slfo-x.y` is created after the Release Candidate (e.g., `slfo-1.2` corresponds to SLES 16.0).

These packages are owned by suse.com. Due to certification requirements, changes to these packages need to be handled internally at SUSE. Public requests for changes: https://code.opensuse.org/leap/features/issues.

Packages with both slfo-x.y and leap-x.y

Some packages have both slfo-x.y and leap-x.y branches. This means that we forked the SLES package in Leap. In such cases, use the leap-x.y branch.

Workflow for community packages

  1. Fork the package from the pool repository.
  2. Work on your changes in the `leap-x.y` branch (e.g., `leap-16.0`).
  3. Create a pull request against the same branch.
  • The PR automatically links to build results.

Optional: Track your work in the public feature tracker for Leap, especially if:

  • The update may affect SLFO packages (e.g., GIMP 3.0).
  • The update is large (e.g., Plasma 6.1, Xfce 4.20).

Workflow for SLES/SLFO packages

  1. Create an issue in our public feature tracker for Leap. Use a descriptive title (e.g., GIMP 3.0) and list the required package updates.
  2. Issues are reviewed every Monday as part of our Public Feature Review meeting.
  3. User:Lkocman creates and links the corresponding jira.suse.com requests and/or SR requests with references like jsc#PED-123 or code-o-o/leap/features#123.

Adding a new package to Leap from Factory

We plan to have a dedicated issue-based workflow in https://src.opensuse.org. However, that is not yet implemented.

Current process:

  • Submit an issue to the Autobuild team to explicitly branch the package.
  • Alternatively, contact the Release Team (`maxlin`, `lkocman`) to request the branch on your behalf.
  • You can also use the Leap feature tracker, which we expect to be eventually migrated to src.opensuse.org as well.

Updating a Leap package from Factory

To update a Leap package with changes from openSUSE Factory:

  • Fork the package from the pool.
  • Check out the `leap-16.0` branch.
  • Merge it with the factory branch.
  • Push your changes.

Example:

# Fork gitea@src.opensuse.org:pool/libstrophe.git
git clone gitea@src.opensuse.org:$USER/libstrophe.git
cd libstrophe
git checkout -b leap-16.0
git merge factory # Merge with Factory
git push

Example pull request to product-composer.png

Updating a Leap package from your home project

Users who want to test their changes before creating a pull request can use osc fork, which covers both the git and OBS project parts.

osc fork openSUSE:Tools product-composer

Dropping a package from Leap

Remove the package submodule:

git rm # TBD

Notes for Leap 15.6

For previous releases, please refer to the instructions in Portal:Maintenance.