Fedora Plasma PRD
Mission statement
The WG aims to create a reliable, user-friendly and powerful operating system for laptops and PC hardware, leveraging the KDE Plasma Workspaces technologies. The system should be attractive to a range of power users and content creators - people who build our community, as well as a platform for development of modern KDE and Qt applications - even in mobile space. There will be add-ons delivered based on our platform; the first such add-on will contain quality educational and scientific software. The product will be built upon the foundations of the Fedora Base product and closely cooperating with the Workstation WG on the technical aspects and (inter)compatibility.
The Fedora Plasma WG will have a special focus on providing a platform for everyone working on and with the KDE Plasma Workspaces and to be a possible basis for other interested Fedora spins. This document is not meant to be an exhaustive list of what potential users can or will use the Fedora Plasma for, but rather outline the WG's development priorities and overall goals.
Fedora Plasma teams believes in cooperation and sharing and is going to help covering additional work impact on other teams (QA, marketing etc.).
Why Fedora Plasma
Plasma is one of the four fundamental states of matter [1], complementary to the other three Fedora products and a physics term. Fedora Plasma Product is aimed at scientists, students and teachers. We believe that Fedora could serve as the number one scientific and educational distribution - knowledge is our future. Last but not least - Plasma Desktop is the name of the technology powering this product, developed by the amazing KDE Project community.
This is meant to be a living document which evolves along with the project and which can be changed as time goes on by the working group.
Target Audience
Case 1: Power user
- Great configurability and extensibility
- Sane defaults, not forced choices
Desktop Apps: Up to date desktop with email client, browser, productivity suite, messaging, and a complete set of desktop apps and utilities to make this system the user's only computer.
Case 2: Developer
- Personal development system for an independent software developer doing contract work or developing apps for a new opportunity.
- Software developer working on an individual project or coordinated small team. DevOps.
- Software developer working on a large, coordinated project in a large organization.
Programming Environment: powerful IDE(s) (KDevelop, Qt Creator), compilers, scripting languages (QML, JS, Python, Ruby, …) and tools, open source databases, debug tools, performance monitoring, profiling tools (KCachegrind). Easy to configure Virtual Machines for testing software. Support for enterprise login. Generally a single development environment with the latest development tools.
Case 3: Scientist
- Numerical tools (Cantor, …)
- Typesetting (Kile, LyX)
- Data Analysis, statistics & visualizations (RKWard, LabPlot2)
- Electronic lab
- Robotics
Case 4: Student/Pupil/Teacher
Engineering/CS student who needs a personal system for software classwork and personal projects. Tries out new versions of open source applications when released. Uses computer to play games. Might use multiple Activities to separate class work from personal use (gaming etc.) Focus on quality educational software (kdeedu, gcompris-qt, etc.).
Case 5: Content Creator
- Visual artists (graphics, illustration, drawing, rendering, ...) - Krita, Blender, etc.
- CGI artists (kdenlive)
- Musicians and music producers (rosegarden, lilypond, ...)
- Writers (Calligra Words & Author, lyx, kile)
Other users
While the power user desktop is the main target of this system and what we try to design this for, we do of course also welcome other users to the Fedora Plasma product. In fact many of the changes and improvements we expect to implement for the above use cases will be equally beneficial to other user segments, for instance our plans around multi-screen handling and improved terminal functionality should also be highly beneficial to a system administrator. Or a student who just want a system with a productivity suite to write their papers will of course get benefit from the fact that we do ship a good productivity suite. We will welcome feedback and request from all our users and try to accommodate it as long as it doesn't negatively impact our developer target group and we have people available who have the time and ability to work on the requests.
Overall plans and policies for the product
Technical goals and design principles:
- Quality releases
We want to focus on engineering practices that ensures that the core product offered is of the highest quality possible. This includes keeping the core test matrix as small as possible a high degree of testing automation and collaborating with upstream to increase general test coverage of core modules.
- Fedora ecosystem integration
While the Plasma desktop will have a different target than the Workstation, Server and Cloud images, it is still important that the multiple product variations share technology and infrastructure. The systems will all be RPM based and while for instance the open source databases will be packaged primarily with the Server in mind we want to be able to pull them into the developer desktop too.
- Work towards standardizing and unifying the Linux desktop space
We want to use and develop technologies that can be widely shared with the rest of the community and we want to allow developers to use the tools they prefer for their application development yet make them all feel like a natural fit into our integrated desktop experience. This would include items like themeing and making sure we offer a consistent accessibility story across different development toolkits. The product will reach out and collaborate with the Fedora Design team and other relevant groups on such items.
- Develop application guidelines and designs
The working group will adhere to upstream guides and style recommendations for applications that target the Plasma Desktop. These guidelines will be mandatory for the core apps that are specifically developed for the desktop, but 3rd party software developers will be encouraged to follow them too.
- Delivery Mechanism
The Fedora Plasma Product plans to leverage the existing image/repo delivery mechanisms already present in Fedora. This would possibly include a live USB image and/or ISO image of the Product. Fedora Plasma will join the effort with other similar products to minimize release overhead for release engineering.
Core Platform Components
The WG will define a set of packages that are considered required be installed in order for the system to qualify as a Fedora Plasma.
These installed packages will together form the basis of the API and service promises the system makes to 3rd party developers.
The WG will also define two set of requirements, one for anything that is to be considered for inclusion in the core platform components list and one for optional packages. This will include a requirement to support specific system services and libraries, for example the working group might make it a requirement that any software that wants to be part of Fedora Plasma can run against Wayland or directly output sound to Pulse Audio.
The working group will also specify policies in terms of branding, themeing and desktop graphics, although these items will of course need to be in line with the overall Fedora branding guidelines and styles.
Work Model
We will at any given time try to have one major engineering effort underway for the Fedora Plasma. The definition of a major engineering effort is something that requires changes in a wide set of packages and tools. At the same time we will be working on smaller projects to improve various aspects of the distribution and also setting things up to be ready for the next major effort. We will try to announce and plan these things well in advance, by putting up a public timeline. Of course resources and changing market conditions might make changes to the plans necessary on an ongoing basis.
Other tasks for working group
The working group will also be responsible for on-going feedback and suggestions on release schedules, based on collaboration with upstream components, the other Working Groups and FESCo, and Fedora Infrastructure.
Packaging for Fedora Plasma
The working group hopes and expects that there will continue to be a wide range of software, packaged and maintained by the wider Fedora community, software that will available for install through the desktop software installer. A lot of this software might not have any direct relevance to the main goals of the product or working group, but that is not a problem or something that the working group wants to discourage.