How to contribute to YaST

1. Meet others involved

YaST is a worldwide project with people from many nations and cultures contributing to a common purpose – Making YaST Linux's predominant all-purpose computing tool. The fastest way to get in contact is to simply show up in the #yast IRC channel at irc.libera.chat. Most YaST developers will be there willing to help and answer any question.

You can also reach most developers and follow the development in the yast-devel@opensuse.org mailing list; subscribe to it, take a look at the archives or request a mail offering help with the mailinglist.

2. Get the code

YaST is a complex system consisting in several components and modules. You can find them all in the YaST organization at GitHub. Most components are written in Ruby with a high level of abstraction and with some core components handling the graphical stack written in C. There are still some small legacy parts written in Perl or YCP (YaST Control Programming language), but they are being ported to Ruby.

There are more than 100 YaST repositories at GitHub. If locating the right one is a problem, let RPM tell you the source package:

$ rpm -qf --qf '%{SOURCERPM} (%{NVRA})\n' /usr/share/YaST2/scrconf/etc_idmapd_conf.scr
yast2-nfs-server-3.0.0-6.2.src.rpm (yast2-nfs-common-3.0.0-6.2.noarch)

From that, yast2-nfs-server is found in the repository yast-nfs-server (note the digit is not present).

The only exceptions are the yast2.rpm package, with code is located in the yast-yast2 repository and the autoyast2.rpm package, which code can be found in the yast-autoinstallation repository.

3. Take the first steps

In order to start improving YaST, you need to setup a development environment. Up-to-date instructions can be found in the development documentation.

After preparing the development environment and cloning the desired yast module in git, all the rake tasks provided by yast-rake will be available from your working copy of the repository.

The first step to fixing or improving any application is to understand how it works and what it is doing at every moment. The openSUSE wiki has a comprehensive guide about debugging YaST.