On Fri, 2013-12-20 at 10:00 +0100, Michal Hrusecky wrote:
Antoine Saroufim - 1:43 20.12.13 wrote:
Good day,
Currently, we have a fair amount of software in the default repositories that the user can utilize. If a user wants to install software that isn't present in the default repositories, he/she can look for it on OBS. The user can then proceed to add the targeted repository to his/her system via 1-click install, zypper, or YaST2. The current system works, but isn't quite perfect due to the following reasons:
- Users can't install packages not available in the enabled repositories.
If a user wants to install an application or library that isn't in the default repositories, the user has to resort to searching for the package on software.opensuse.org through a browser and then installing it or to installing OSC, searching for the package, adding a repository, and then installing the package.
There used to be a YaST module to search and add stuff from OBS, but I guess it was dropped at some point in time.
- Users may have to add many repositories to get all their needs.
Repositories on OBS may host a single desktop environment, a small collection of apps, a single app, or even a patch. Over time, the user might end up with a large number of repositories in order to keep all his/her apps updated. Refreshing repositories might take longer every time due to this and it might cause confusion. The user will have to regularly check the enabled repositories and think of whether they are needed or not. Refreshing a large number of repositories might also take a while. Repositories can get deleted or altered often and the user will have to modify them at each deletion/alteration. It's impossible for a user to pick up the work of another user on certain repositories. Thus the new maintainer will have to make a different repository.
Not really. In general if you have it in somewhere - not in home, anybody can continue, send patches via OBS and there is project maintainer to act in case package maintainer disappeared.
- Users might get confused when apps are offered by multiple repositories.
Not all repositories are tagged and it might be difficult to tell which repository has the most updated yet stable package. Zypper will warn the user if the added repository and package will rewrite anything that is already existing as it does whenever a vendor change is required. However, users might not heed the warning and they might not be able to tell if something actually works or not before installing it.
What we currently have is not a broken structure. On the contrary, our current system works. However, even if it is not broken, and doesn't require fixing, it can be improved. I'll further demonstrate the limitations of the system by providing user cases.
- Daniel wants to install package XYZ. However, package XYZ is not in the default repositories. Daniel goes to software.opensuse.org and searches for package XYZ but finds it listed under several repositories. Some have higher version than others. Daniel wants the highest stable version from a trusted repository. Which one of the repositories should Daniel choose?
Not home and then it should be repository the package belongs to. Packages have one repository they belong to, but might be linked to another one as dependency.
- Michael is a heavy gamer. He wants to play video games on his desktop. He adds games:tools to install Steam. He then proceeds to add Emulators to install ZSNES, and finally adds games to install SuperTux2. However, he notices that another game he wants is further updated on a home repository and has to add that too. Michael ends up with having too many repositories in order to get a few applications.
He shouldn't add home repository, he should ask that guy to push his stuff to the main repository. Maybe we should hide home repositories even deeper in software search to make people push their changes?
- Christine is a fan of music. She has thoroughly tested most music applications but is dissatisfied with them. She adds KDE:Extra in order to update Clementine to a higher version, then downloads the .rpm of Rhythmbox from Factory so she can install it without adding the repo, and then adds GNOME:Apps to use an updated mplayer. Lastly, she adds Geeko123's repo because he created his own music player and uploaded it to his home project. One day, she wants to install Wayland dev packages. Unknown to her, Geeko123 has added his own unstable Wayland packages. Zypper pulls the Wayland packages from Geeko123's repo and Christine ends up with a broken Wayland because she had assumed that Geeko123's repo was solely for his music player and did not read the warnings.
Yes, we should go further with discouraging the use of home projects somehow. I wonder whether this karmification idea can help us. Make it more visible who contributes to the common pool of packages and doesn't just play with things in his home.
As such, I propose the following improvements:
1 - Create larger repositories and merge similar ones together.
...
Partially done with Tumbleweed for stuff in the distribution. But I agree that having one big repo for the rest that will not be frozen and more relaxed than release is a good idea. Maybe revive Contrib with different purpose? If we get a stable enough factory, we may even put it there. I think we would get more contributors for this kind of repo than for a release as maintaining software for years scares people (at least me).
2 - Create Community repository that is managed and run by the community.
All of them are ;-)
- Add Reputation system. Installing packages from the Community repo can be a unsafe. However, if the uploader has been praised before, then the user might feel more trusting. That way, the user will have a better idea what is all right to install and what isn't. This will also give motivation to people.
Yep, see karmification idea[1].
1 - Make zypper utilize smarter metadata.
Zypper can be updated to read all the metadata from all the repositories and could suggest adding a repository if the desired package isn't in the currently enabled repository. People should be able to use zypper to find packages instead of having to resort to a browser to search through OBS. This way, users can use gnome-software to access all the software on OBS (in the future when a zypper plugin is written for gnome-software).
I would say that it would be better if somebody stepped up and wrote again YaST module for software.opensuse.org. YaST is nowadays in Ruby, so it shouldn't be that hard for somebody interested and skilled in Ruby :-)
2 - Visibly tag repositories to show their stability.
In order to help users choose the most stable repository, visible tags should be provided to indicate the stability before the user adds the repository.
Hard to judge the stability of repo, but what can be done with karmification is show number of users which should be also helpful.
3 - Make repositories collaborative. By allowing collaborative work we may end up seeing less repositories in general. If person X creates repo for package Y, person X is asked if repo is to be open for collaboration to everyone. If person X decides to quit, another maintainer can pick up the work on the same repository.
Done already ;-)
4 - Allow user to hide all "home" repositories.
I firmly believe that we should make everything simpler. It isn't a matter of what can or can't be done, it's more about how easy it is to get things done. By clearing confusion and allowing collaborative work, we can help the users save precious time, give them an easier system, and help them make better decisions. With front-end GUIs for package managers, like Apper and gnome-software, on the rise, the traditional method of installing software is changing. The shortest distance between two points is a straight line. Thus, we should reduce the steps and complications of installing and managing software in order to appeal to more users and to further satisfy the ones we have. Improvement is what keeps projects interesting. I for one do not want a system that works. I want a system that works better than it did before. I hope you all consider my suggestions before judging them and think of the average users, not just of the advanced ones. Thank you for your time and I hope we can keep this thread civil.
More like hide homes by default and add them once people ask for them. Like it is by default in OBS. Something similar can be done in software search.
[1] http://lists.opensuse.org/opensuse-project/2013-12/msg00147.html
-- Michal HRUSECKY SUSE LINUX, s.r.o. openSUSE Team Lihovarska 1060/12 PGP 0xFED656F6 19000 Praha 9 mhrusecky[at]suse.cz Czech Republic http://michal.hrusecky.net http://www.suse.cz
A Karma system and an OBS plugin for YaST would definitely help. However, we should also consider doing something for gnome-software and apper. If we can make zypper collect metadata from all repositories and intelligently analyze them, we can also benefit those who use the previously mentioned applications as well. I realize that the community can use as many home repositories as it wants to but I believe that this is core of the problem in itself. We should point community packagers to a certain repo so the users can use that repo instead of having to add several home projects. A Contrib repo would definitely have lower grade packages. However, I believe that it can clear a lot of confusion and would reduce the number of repositories a user might ultimately add. Like I said, currently, the system works, but we can make it simpler and more stupid. The benefits of a Contrib repo can outweigh the demerits. -- To unsubscribe, e-mail: opensuse-project+unsubscribe@opensuse.org To contact the owner, email: opensuse-project+owner@opensuse.org