2025-10-10 11:15:40 +02:00
2025-10-10 11:15:40 +02:00

This document describes the process for updating perl modules in https://src.opensuse.org/perl

Process for automatic updates

  • Updates are triggered by this workflow: https://github.com/openSUSE/autoupdate-perl/actions/workflows/run.yaml
    • cpanmirror
      • forks the repo
      • fetches the new tarball
      • regenerates the spec
      • pushes to a branch autoupdate
      • creates a PR (or pushed to existing PR)
  • The autogits-devel bot creates a "forwarded PR" and provides OBS build results and approves or rejects the forwarded PR depending on that
  • Project and package maintainers are requested to review the original PR (not the forwarded PR)
    • Reviewers need to look at the PR diff plus at the build results which are linked in the forwarded PR
  • PRs should be marked as WIP if something needs to be fixed (spec, new dependencies)
  • If cpanmirror creates a PR, tinita or some other responsible person approves it if it looks ok
  • A project or package maintainer merges the PR
  • The forwarded PR will be handled by the autogits bot

Updating Factory

This is currently not done automatically. After merging a PR, you have to create a submit request manually:

osc sr devel:languages:perl perl-Foo-Bar openSUSE:Factory

Updating perl modules manually

Fork and PR

If you want to fix a failing build, you should

  • Fork the package
  • Create a PR

Then the autogits-devel bot will provide build results.

See https://en.opensuse.org/openSUSE:Git_Packaging_Workflow#Git-obs_workflow for detailed instructions.

Play around in OBS first

If you are not sure yet and want to try out things first, you cannot osc branch the package anymore. But you can use copypac. First, create a project for your copies, e.g. home:user:perl. The meta should look like this:

<project name="home:user:perl">
  <title>Place for working on devel:languages:perl modules by circumventing gitea</title>
  <description></description>
  <person userid="user" role="maintainer"/>
  <repository name="pure_factory" rebuild="local">
    <path project="openSUSE:Factory" repository="standard"/>
    <arch>i586</arch>
    <arch>x86_64</arch>
  </repository>
  <repository name="openSUSE_Tumbleweed">
    <path project="devel:languages:perl" repository="openSUSE_Tumbleweed"/>
    <arch>i586</arch>
    <arch>x86_64</arch>
    <arch>aarch64</arch>
  </repository>
  <repository name="SLE_15_SP7">
    <path project="SUSE:SLE-15-SP7:GA" repository="standard"/>
    <arch>x86_64</arch>
  </repository>
  <repository name="SLE_15_SP6">
    <path project="SUSE:SLE-15-SP6:GA" repository="standard"/>
    <arch>x86_64</arch>
  </repository>
  <repository name="SLE_15_SP5">
    <path project="SUSE:SLE-15-SP5:GA" repository="standard"/>
    <arch>x86_64</arch>
  </repository>
  <repository name="16.0">
    <path project="openSUSE:Leap:16.0" repository="standard"/>
    <arch>aarch64</arch>
    <arch>x86_64</arch>
  </repository>
  <repository name="15.6">
    <path project="openSUSE:Leap:15.6:Update" repository="standard"/>
    <arch>x86_64</arch>
  </repository>
</project>

Then copypac the module:

obs copypac devel:languages:perl perl-X-Y home:user:perl                                                 

and add your changes. When the build is passing and you are ready to submit your patch, use the new workflow with forking in gitea.

Adding new packages

Create a new repository and select the pool/new_package as a template. Select "Git content" under "Template Items". This will add the necessary .gitattributes and .gitignore.

Description
No description provided
Readme 44 KiB