Build Service/User Profiles
From openSUSE
Usecases for the Build Service Web UI.
Contents |
1. Desktop User (Joe)
Joe loves using his computer, and he especially enjoys knowing about the latest available software. Once in a while he also wants to try out the new software, too (if it looks interesting enough). Although he's a pro when it comes to double-clicking his icons, sending email, and browsing the Web, he is not familiar with the innerworkings of his operating system. Joe is very interested easily downloading software, but he does not want to create an account at openSUSE.org.
Joe would like to use the build service website to:
- Browse for software which will run on his computer
- Download a package for installation
- Easily subscribe to software repositories ("channels"?) -- this includes not only installing, but also recieving the latest packages through his system's update mechanism (yum, apt, etc.)
- Give feedback about the software; comments or rating (this may require a user account)
- See information about the project (description, home page, bugzilla, ... )
- Search for an application -- and the search should (by default) look in titles, keywords, descriptions, and possibly other places
2. Power User (Brad)
Brad is a long-time Linux user. He understands how his system works and uses the command line on a daily basis. Brad does not consider himself to be a software developer, but he does know how to adapt things to his needs. Brad understands how to compile software and to retrieve software using svn/cvs. Brad makes patches using diff or to tweak spec files once-in-a-while. He creates simple packages by using templates (or copying another package's spec file) sometimes, as well.
Brad inherits all of the needs of the desktop user and adds the following to his wishlist:
- Simple, easy package creation
- Create a modified version of a package with minimal technical details
- Suggest package changes
- Receive notifications for specific project updates (RSS, email, etc.)
- Track changes of the projects (via the Web UI)
- Possibly create his own distribution (most likely, but not necessarily based on an existing distro)
- Trigger an update of a package
3. Packager (Jeff)
Jeff has a deep understanding of packaging and creates his packages from scratch. He has limited programming knowledge, but takes foreign source code and creates packages for other users, making his custom packages available (along with with yum and apt information) through his website, "jeffscooldownloads.com".
Jeff is a special form of a power user who packages software for other users. As such, he has all the requirements of a power user, plus he he would like to:
- Create all different kinds of packages
- Write new packaging template for other packagers / developers
- Receive informations about suggested changes of his projects (from other users)
- Easily merge or to reject suggested changes
- Edit package information
- Request a higher quota for more storage space
- Wants to know when a package will get build (roughly)
4. Developer (Eva)
Eva is an expert in writing her own open source software. Although she would really like to provide packages for her software's users, she has not the experience nor time. Eva is very interested in promoting her software and make it easy to install, to update, and use. She is also interested in source changes of any linked projects (provided by other build service users).
As a developer, Eva needs to be able to do all that the packager can do, plus:
- Have the ability to show the build log to other developers (who do not have an account)
- She needs a static URL to link to from her project's home page
- Display project information (version, etc.) on her project's home page
- Upload or save builded packages on an external server
- Control when a builded package set becomes public available.
5. Mirror Manager (Eberhard)
Eberhard wants to register his mirror. He is in charge of a number of projects that are mirrored in various places. His main concern is that the users can easily find the download URL.
Eberhard needs to:
- Register his mirror (either push or pull mode)

