openSUSE:OBS to Git
OBS to Git migration effort
We are trying to move new development from OBS based projects, to Git based projects. This is work-in-progress. The goal is to migrate openSUSE:Factory to use Git for source management. The first steps will involve migrating 265 devel projects from having sources in OBS to Git. Devel projects will be migrated one at a time.
When devel projects are migrated, the source contributions to the devel project will change. You will have to submit changes via either Gitea PR or git push, if you have repo access.
openSUSE:Factory contribution method will not change. It will continue to rely on osc sr devel_project/package openSUSE:Factory
for now.
What will get migrated
We are moving source management to Git. We are not moving the build out of OBS — projects will continue to be built in OBS.
- Maintainership information will be retained in the Git-based devel projects. Initially, we will give maintainers package and project rights.
- Each devel project listed below will be assigned an organization name that matches relatively closely what we have in OBS.
- Package data and history will be imported using https://src.opensuse.org/importers/git-importer.
OBS devel projects will continue to be used to build these sources.
Where does the project go and how can I update packages?
The project will be the _ObsPrj repository in the devel organization. It will be created and automatically updated when you push/merge changes to the main branch of the package. Every repository will be automatically added to _ObsPrj. _ObsPrj will be kept up-to-date with the current state of packages in the organization.
OBS will then point to _ObsPrj via the <scmsync>
mechanism and build the latest state in the OBS devel project. Binaries will remain in OBS. Sources will be in Git.
How to create new package?
- Create a new repository in your home.
- Add a spec file and build sources as normal. Make sure to track large sources in Git LFS.
- Transfer the ownership of the repository to the devel project organization of your choice. _ObsPrj will automatically be updated.
When will my project be migrated?
To be determined. The less complicated a project, the faster it is expected to be migrated.
The ideal goal here is to finish the devel project migration in March 2025, but the possibility of going into April is very likely.
How will this happen for my devel project?
A day or two before migration, you will receive an email that your project will be migrated. After receiving this email, please do not open any new submit requests to the devel project and merge any requests that are pending as soon as possible. The same applies to new osc commit
actions. There is a possibility that you will merge something that has already been imported and then switching to Git will "revert" your merge.
After migration, the changes can no longer be accepted in OBS and the accept action must be performed in/with Git.
FAQ
Q: How can I invoke osc branch
from a devel project to my own project and build many packages there?
A: You can do this manually via git fork and referencing the packages in OBS via scmsync. The automatic procedure for this is being worked on, cf. https://github.com/openSUSE/openSUSE-git/issues/79.
Q: What should I do now to prepare? A: Go to src.opensuse.org, login with your OBS/Bugzilla credentials, go to Settings -> SSH/GPG keys and add your SSH key so you'll be able to have push access your repositories.
Gitea SSH keys were posted to the factory ML and will be added to the front page of src.opensuse.org too. Also, here,
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFKNThLRPznU5Io1KrAYHmYpaoLQEMGM9nwpKyYQCkPx
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDJ8V51MVIFUkQqQOdHwC3SP9NPqp1ZWYoEbcjvZ7HhSFi2XF8ALo/h1Mk+q8kT2O75/goeTsKFbcU8zrYFeOh0=
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCkVeXePin0haffC085V2L0jvILfwbB2Mt1fpVe21QAOcWNM+/jOC5RwtWweV/LigHImB39/KvkuPa9yLoDf+eLhdZQckSSauRfDjxtlKeFLPrfJKSA0XeVJT3kJcOvDT/3ANFhYeBbAUBTAeQt5bi2hHC1twMPbaaEdJ2jiMaIBztFf6aE9K58uoS+7Y2tTv87Mv/7lqoBW6BFMoDmjQFWgjik6ZMCvIM/7bj7AgqHk/rjmr5zKS4ag5wtHtYLm1L3LBmHdj7d0VFsOpPQexIOEnnjzKqlwmAxT6eYJ/t3qgBlT8KRfshBFgEuUZ5GJOC7TOne4PfB0bboPMZzIRo3WE9dPGRR8kAIme8XqhFbmjdJ+WsTjg0Lj+415tIbyRQoNkLtawrJxozvevs6wFEFcA/YG6o03Z577tiLT3WxOguCcD5vrALH48SyZb8jDUtcVgTWMW0to/n63S8JGUNyF7Bkw9HQWUx+GO1cv2GNzKpk22KS5dlNUVGE9E/7Ydc=
Q: Will osc maintainership
and related commands cease working?
A: Correct.
Q: How to submit from devel project to Factory?
A: The same as before. osc sr devel_project/package openSUSE:Factory
. This process does not change until Factory is also migrated to Git.
Q. What process will keep the _PrjGit and the repositories in sync? A: This will initially be done via a bot, workflow-pr. The sources can be found at https://src.opensuse.org/adamm/autogits.
Q: Can I run these bots myself?
A: Yes.
Q: Is there more documentation?
A: Pending… There is a summary already written by Jan on how to work with the openSUSE git backend, cf. openSUSE:OBS_with_Git.
Devel Project Status table
Projects that are going to be migrated to Gitea next will be listed at the top. Migrated projects will be moved to the bottom.
Devel Project | # Pkgs | # in Factory | Gitea Orgs | Done Date |
---|---|---|---|---|
devel:languages:javascript | 20 | 8 | https://src.opensuse.org/javascript | Next |
devel:languages:nodejs | 192 | 14 | https://src.opensuse.org/nodejs | Next |
Apache | ||||
Apache:Modules | ||||
Apache:Shibboleth | ||||
Application:Astrophotography | ||||
Application:Dochazka | ||||
Application:ERP:GNUHealth:Factory | ||||
Application:Geo | ||||
Archiving | ||||
Archiving:Backup | ||||
Base:System | ||||
Cloud:OpenStack:Factory | ||||
Cloud:Seafile | ||||
Cloud:Tools | ||||
CrossToolchain:avr | ||||
Documentation | ||||
Documentation:Tools | ||||
Education | ||||
Emulators | ||||
Emulators:Wine | ||||
GNOME:Apps | ||||
GNOME:Factory | ||||
Java:Factory | ||||
Java:packages | ||||
KDE:Applications | ||||
KDE:Extra | ||||
KDE:Frameworks | ||||
KDE:Frameworks5 | ||||
KDE:KDE3 | ||||
KDE:Qt5 | ||||
KDE:Qt6 | ||||
KDE:Qt:5.15 | ||||
KDE:Qt:PyQt | ||||
Kernel:firmware | https://src.opensuse.org/kernel-firmware | |||
Kernel:kdump | ||||
Kernel:slowroll | ||||
Kernel:stable | ||||
Kernel:tools | ||||
LibreOffice:Factory | ||||
Linux-PAM | ||||
M17N | ||||
M17N:Maliit | ||||
M17N:fonts | ||||
M17N:l10n.opensuse.org | ||||
Mono | ||||
Mono:Factory | ||||
Office | ||||
Printing | ||||
Publishing | ||||
Publishing:TeXLive | ||||
SUSE:SUSEStudio | ||||
Virtualization | ||||
Virtualization:Appliances:Builder | ||||
Virtualization:Appliances:Images:openSUSE-Tumbleweed | ||||
Virtualization:VMware | ||||
Virtualization:WSL | ||||
Virtualization:containers | ||||
Virtualization:containers:images | ||||
Virtualization:containers:images:openSUSE-Tumbleweed | ||||
X11:Bumblebee | ||||
X11:COSMIC:Apps | ||||
X11:COSMIC:Factory | ||||
X11:Cinnamon:Factory | ||||
X11:Compiz | ||||
X11:Deepin | ||||
X11:Drivers:Video:Redesign | ||||
X11:Enlightenment:Factory | ||||
X11:FOX | ||||
X11:GNUstep | ||||
X11:LXQt | ||||
X11:LXQt:Other | ||||
X11:MATE:Factory | ||||
X11:Pantheon | ||||
X11:Pantheon:Apps | ||||
X11:RemoteDesktop | ||||
X11:Solus | ||||
X11:Unity | ||||
X11:Utilities | ||||
X11:Wayland | ||||
X11:XOrg | ||||
X11:common:Factory | ||||
X11:lxde | ||||
X11:terminals | ||||
X11:windowmanagers | ||||
X11:wxWidgets | ||||
X11:xfce | ||||
YaST:Head | ||||
benchmark | ||||
devel:BCI:Tumbleweed | ||||
devel:CaaSP | ||||
devel:CaaSP:Head:ControllerNode | ||||
devel:LLDC | ||||
devel:automotive | ||||
devel:gcc | ||||
devel:kanku | ||||
devel:kubic | ||||
devel:kubic:containers | ||||
devel:kubic:ignition | ||||
devel:languages:D | ||||
devel:languages:R:released | ||||
devel:languages:clojure | ||||
devel:languages:erlang | ||||
devel:languages:erlang:Factory | ||||
devel:languages:go | ||||
devel:languages:hare | ||||
devel:languages:haskell | ||||
devel:languages:haxe | ||||
devel:languages:lua | ||||
devel:languages:misc | ||||
devel:languages:ocaml | ||||
devel:languages:pascal | ||||
devel:languages:perl | ||||
devel:languages:php | ||||
devel:languages:python | ||||
devel:languages:python:Factory | ||||
devel:languages:python:aliyun | ||||
devel:languages:python:avocado | ||||
devel:languages:python:aws | ||||
devel:languages:python:azure | ||||
devel:languages:python:certbot | ||||
devel:languages:python:django | ||||
devel:languages:python:flask | ||||
devel:languages:python:google | ||||
devel:languages:python:jupyter | ||||
devel:languages:python:mailman | ||||
devel:languages:python:numeric | ||||
devel:languages:python:pytest | ||||
devel:languages:raku | ||||
devel:languages:ruby | ||||
devel:languages:ruby:extensions | ||||
devel:languages:rust | ||||
devel:languages:tcl | ||||
devel:libraries:c_c++ | 539 | … | https://src.opensuse.org/clibs | |
devel:libraries:libyui | ||||
devel:microos | ||||
devel:microos:aeon | ||||
devel:microos:aeon:images | ||||
devel:microos:containers | ||||
devel:microos:images | ||||
devel:microos:kalpa | ||||
devel:openQA:tested | ||||
devel:openSUSE:Factory | ||||
devel:openSUSE:Factory:Apps | ||||
devel:openSUSE:Factory:rpmlint | ||||
devel:sap:ansible | ||||
devel:sap:cluster-agents | ||||
devel:sap:monitoring:stable | ||||
devel:tools | ||||
devel:tools:building | ||||
devel:tools:compiler | ||||
devel:tools:lttng | ||||
devel:tools:scm | ||||
devel:tools:scm:svn | ||||
devel:tools:statica | ||||
editors | ||||
editors:tree-sitter | ||||
electronics | ||||
filesharing | ||||
filesystems | ||||
filesystems:ceph | ||||
filesystems:snapper | ||||
games | ||||
games:tools | ||||
graphics | ||||
graphics:darktable | ||||
hamradio | ||||
hardware | ||||
hardware:FPGA | ||||
hardware:boot | ||||
hardware:nvdimm | ||||
hardware:sdr | ||||
isv:SUSE:SupportTools:Factory | ||||
mobile:synchronization:FACTORY | ||||
mozilla:Factory | ||||
mozilla:addons | ||||
multimedia:apps | ||||
multimedia:color_management | ||||
multimedia:libs | ||||
multimedia:libs:cisco-openh264 | ||||
multimedia:proaudio | ||||
multimedia:voice-assistant | ||||
multimedia:xine | ||||
network | ||||
network:NIS | ||||
network:chromium | ||||
network:cluster | ||||
network:cluster:ohpc | ||||
network:cryptocurrencies | ||||
network:dhcp | ||||
network:fcoe | ||||
network:ha-clustering:Factory | ||||
network:ha-clustering:sap-deployments:devel | ||||
network:idm | ||||
network:im:whatsapp | ||||
network:ldap | ||||
network:messaging:amqp | ||||
network:messaging:kafka | ||||
network:messaging:matrix | ||||
network:messaging:mqtt | ||||
network:messaging:xmpp | ||||
network:pidgin | ||||
network:samba:CONTAINERS | ||||
network:samba:STABLE | ||||
network:synchronization:files | ||||
network:telephony | ||||
network:time | ||||
network:utilities | ||||
network:vpn | ||||
network:vpn:wireguard | ||||
network:wicked:factory | ||||
openSUSE:Tools | ||||
openSUSE:infrastructure:MirrorCache | ||||
science | ||||
science:HPC | ||||
science:machinelearning | ||||
security | ||||
security:SELinux | ||||
security:Stunnel | ||||
security:apparmor | ||||
security:chipcard | ||||
security:csirt-tooling | ||||
security:dehydrated | ||||
security:forensics | ||||
security:idm | ||||
security:keepassxc | ||||
security:netfilter | ||||
security:privacy | ||||
security:sensor | ||||
security:tls | ||||
server:database | ||||
server:database:postgresql | ||||
server:dns | ||||
server:http | ||||
server:irc | ||||
server:mail | ||||
server:messaging | ||||
server:monitoring | ||||
server:monitoring:zabbix | ||||
server:php:applications | ||||
server:php:extensions | ||||
server:proxy | ||||
server:search | ||||
shells | ||||
system:install:head | ||||
system:packagemanager | ||||
system:packagemanager:dnf | ||||
systemsmanagement | ||||
systemsmanagement:Agama:Devel | ||||
systemsmanagement:SCC | ||||
systemsmanagement:SCC:RMT | ||||
systemsmanagement:ansible | ||||
systemsmanagement:opentofu | ||||
systemsmanagement:saltstack | ||||
systemsmanagement:terraform | ||||
systemsmanagement:wbem | ||||
systemsmanagement:yomi | ||||
utilities | ||||
vdr | ||||
windows:mingw | 82 | probably 0 | https://src.opensuse.org/mingw | |
windows:mingw:win32 | 582 | 13 | https://src.opensuse.org/mingw | |
windows:mingw:win64 | 583 | 13 | https://src.opensuse.org/mingw | |
zypp:Head | ||||
zypp:plugins | ||||
systemsmanagement:cockpit | https://src.opensuse.org/cockpit | 01.01 |