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)
- cpanmirror
- 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.