Difference between revisions of "Funtoo Linux Vision"

From Funtoo Linux
Jump to: navigation, search
(Project Vision)
Line 3: Line 3:
 
= Project Vision =
 
= Project Vision =
  
=== Treat Users Right ===
+
Daniel Robbins originally wrote the [[Gentoo Linux Philosophy]], and in it he defined the concept of an ideal tool as being something that "just works", does not get in the user's way, and responds to the will of the user rather than forcing the user to work a particular way.
  
Treat users as customers, with respect and consideration, and act as if you have a vested interest in the success of Funtoo Linux. Do not lecture or insult people. A positive impression of the project helps all members of community, while a negative impression similarly hurts all members. Staff who are verbally abusive to users or potential users in official Funtoo channels '''will''' be removed from the project and are '''not''' entitled to a second chance.
+
Funtoo Linux is a project of people who agree with the philosophy of the ideal tool, and who are ''passionate'' in our desire to improving technology to be as close to this ideal as possible. The focus of our efforts is the Gentoo Linux distribution. It is our belief that Gentoo Linux is a very good Linux distribution but has deviated from the original vision as outlined by Daniel.  
  
=== It's a Tool ===
+
The development focus of Funtoo Linux is currently directed at the core system, meaning anything on a stage3, portage, core languages, kernels, server applications, and up through X11 and simple window managers. Desktop environments are purposely excluded from our area of focus as there is plenty to fix in the "lower" parts of the system. The goal is to get the above-mentioned parts to a level of quality and maturity that is significantly higher than that in Gentoo Linux right now.
  
Funtoo Linux is not a goal in itself -- it is a tool. We all want to do things with Funtoo Linux. The goal for Funtoo Linux and its core team is to make a better tool for doing other things. Working on Funtoo Linux should be fun and involving, but is not an end in itself. There will always be Funtoo Linux development work to be done, but we want to try to minimize this work as much as possible by creating maintainable, reliable, robust, secure, well-architected systems that stand the test of time -- technology we can trust when we use Funtoo Linux '''as a tool''' for various other projects we are working on.
+
== Focus, Focus, Focus ==
  
=== Look Beyond the Tool, To Others ===
+
This project vision still leaves a lot of ambiguity about where to focus. Use these guidelines to determine what to focus on first:
  
At some point, it is good for us to pause from refining the tool so we can use it to do useful things. Developers have a tendency to become so immersed in their personal development efforts that they can often forget that people want to use the Linux distribution to do other things. ''There is a purpose behind the distribution that is greater than the distribution itself.'' We do not want to forget that with Funtoo Linux. As a developer, it is fine to have your own personal development interests as long as these interests are balanced with the needs of others who are using the tool.
+
=== Does It Build? Does it Build Reliably? ===
  
=== Develop an Understanding of the Needs of Others, Starting With You ===
+
The first test - does the software build from source properly? This isn't just about emerging ebuilds on your system -- do stage builds work with no issues using Metro? If not, this needs to be fixed first. Funtoo Linux continually builds updated operating system releases, and these must build reliably at all times. The focus here is for 100% correct and efficient builds using Metro, and then emerging initial applications on a Funtoo Linux system.
  
We also don't want to forget that many people will want to use '''Funtoo Linux''' for their professional work. We consider this a legitimate and noble use of Funtoo Linux and one that places critical demands on the distribution when it comes to quality. People who trust Funtoo Linux for their professional work require a high level of quality, consistency and support. We want Funtoo Linux and the Funtoo community to be up to this challenge. We want Funtoo Linux to be suitable for our own professional work and by extension for the professional work of others. Ultimately, if a Linux distribution can't be used for professional work, then it is not very useful in general. We are creating something more than just a hobbyist distribution.
+
=== Does It Run? Does it Run Well? ===
  
== Professional ==
+
OK, it builds. Does it run properly? Does it work? This is pretty vague, so let's put some specifics here. When installing Funtoo Linux from a stage3, does everything work? What complications or failures were encountered on initial install? These should be fixed, or work-arounds should be put in place, and long-term fixes should be worked on to improve the user experience. Remember that the focus of Funtoo Linux is on the core system - this is the stuff you touch when you first install Funtoo Linux. You should regularly re-install Funtoo Linux to check for any issues and prioritize user install issues and the initial user experience.
  
* Use of modern technologies such as git (for Portage tree) and wiki (for documentation)
+
=== Can I Use It? Easily? For Real Work? ===
* Priority on production use for server applications and hosting
+
* Emphasis on quality, working, useful documentation
+
  
== Directed ==
+
OK, it builds, and it runs. But can I actually perform tasks with the tool? How easy or hard is it to perform these tasks? The technology must be designed to support the user in performing these tasks, rather than forcing the user to jump through hoops to get something set up correctly. Things should be automated as much as possible without taking control away from the user. Reasonable, secure defaults that are suitable for production workloads must be used for all applications. Things should emerge without blockers or missing features that must be enabled manually by the user. And a pet peeve - if emerge stops to tell the user that they must define a USE variable to continue, this is something that should be fixed one way or another. Then, when everything is said and done, it should work. If manual steps are required, they should be documented clearly and correctly. Is documentation available? This is a key part of this step.
  
* Funtoo Linux is a focused distribution based on Gentoo Linux for the [[wikipedia:x86|x86]] and [[wikipedia:x86-64|x86-64]] architectures.
+
=== Is It Well-Designed? Optimized? Maintainable? ===
* Specific technical goals for the project are clearly defined.
+
* Funtoo takes the benevolent dictator approach to its management. While there are several [[people]] involved in its development, its direction ultimately comes from Daniel Robbins. This helps ensure that Funtoo projects fit with the Funtoo vision and prevents development resources from being stretched thin.
+
  
== Fun ==
+
It builds and runs, and I can use it to perform real work. But is the system well-designed? Does it work reliably? Are all available patches and fixes in place to ensure a reliable computing experience? Is Funtoo Linux providing the best technology possible to users? And is this technology easy to maintain? Remember, all things being equal, less code is better than more code because it is easier to maintain. Are there verbose comments in code where necessary?
  
* Fun is such an important part of Funtoo that it is in the name.
+
=== Are We Getting Better? ===
* Funtoo aims not to be heavy on process. There's no project proposal process.
+
* An idea is just run by Daniel Robbins, and if the idea is okay with him, it's okay for the project.
+
* The [[Core Team]] is determined by Daniel Robbins and team members influence the technical vision.
+
* The project is structured to minimize/eliminate politics and repetitive manual effort. The [[Core Team]] is intentionally small.
+
  
= Technical Vision =
+
OK, we're doing all of the above steps. Here is the next test - are we getting better? Is the quality, security, usability and maintainability of the distribution improving over time, or is it going up, and then going down, and we're not really making any forward progress? The ultimate goal at the end of the day is to make forward progress in the quality of the distribution. This requires better automation, better tools, better processes, and investment in research and development and new ways of doing things. It also requires the right attitude. If we are doing a lot of work and the overall quality of the distribution is not improving, then our efforts are not making a long-term difference, even though they may be addressing immediate bugs and issues. We must ensure that our efforts are worthwhile, and they are making a positive long-term difference in the quality of the distribution.
  
== Focus on ==
+
== Examples ==
  
* glibc
+
Coming soon...
* compiler toolchain
+
* core scripting languages (Perl, Python, Ruby)
+
* Portage tools/features
+
* Portage repository/git
+
* [[boot|boot process/tools]]
+
* install experience
+
* security
+
* reliability
+
* general quality
+
* server applications
+
* [[Funtoo_Wiki:Community_portal|user communication/involvement]]
+
 
+
Specifically, the following aspects of Gentoo Linux are not being focused on at this time:
+
 
+
* desktop environments
+
* desktop applications
+
* non-x86 or non-x86-64 architectures
+
* embedded systems
+
 
+
=== Notes ===
+
 
+
[[Gentoo Linux Philosophy]]
+
 
+
* Server-focused
+
 
+
* Driven by production needs of Funtoo core team
+
 
+
* Funtoo core team serves the needs of Funtoo users, as long as it doesn't distract from the technical focus of Funtoo
+
 
+
* Announcement of taking a more forked direction and brainstorms relating to Mac OS X: https://groups.google.com/group/funtoo-dev/browse_thread/thread/57d3718cab21901b
+

Revision as of 21:20, 30 January 2011

The Funtoo Linux Vision is developed and evolved primarily by Daniel Robbins.

Contents

Project Vision

Daniel Robbins originally wrote the Gentoo Linux Philosophy, and in it he defined the concept of an ideal tool as being something that "just works", does not get in the user's way, and responds to the will of the user rather than forcing the user to work a particular way.

Funtoo Linux is a project of people who agree with the philosophy of the ideal tool, and who are passionate in our desire to improving technology to be as close to this ideal as possible. The focus of our efforts is the Gentoo Linux distribution. It is our belief that Gentoo Linux is a very good Linux distribution but has deviated from the original vision as outlined by Daniel.

The development focus of Funtoo Linux is currently directed at the core system, meaning anything on a stage3, portage, core languages, kernels, server applications, and up through X11 and simple window managers. Desktop environments are purposely excluded from our area of focus as there is plenty to fix in the "lower" parts of the system. The goal is to get the above-mentioned parts to a level of quality and maturity that is significantly higher than that in Gentoo Linux right now.

Focus, Focus, Focus

This project vision still leaves a lot of ambiguity about where to focus. Use these guidelines to determine what to focus on first:

Does It Build? Does it Build Reliably?

The first test - does the software build from source properly? This isn't just about emerging ebuilds on your system -- do stage builds work with no issues using Metro? If not, this needs to be fixed first. Funtoo Linux continually builds updated operating system releases, and these must build reliably at all times. The focus here is for 100% correct and efficient builds using Metro, and then emerging initial applications on a Funtoo Linux system.

Does It Run? Does it Run Well?

OK, it builds. Does it run properly? Does it work? This is pretty vague, so let's put some specifics here. When installing Funtoo Linux from a stage3, does everything work? What complications or failures were encountered on initial install? These should be fixed, or work-arounds should be put in place, and long-term fixes should be worked on to improve the user experience. Remember that the focus of Funtoo Linux is on the core system - this is the stuff you touch when you first install Funtoo Linux. You should regularly re-install Funtoo Linux to check for any issues and prioritize user install issues and the initial user experience.

Can I Use It? Easily? For Real Work?

OK, it builds, and it runs. But can I actually perform tasks with the tool? How easy or hard is it to perform these tasks? The technology must be designed to support the user in performing these tasks, rather than forcing the user to jump through hoops to get something set up correctly. Things should be automated as much as possible without taking control away from the user. Reasonable, secure defaults that are suitable for production workloads must be used for all applications. Things should emerge without blockers or missing features that must be enabled manually by the user. And a pet peeve - if emerge stops to tell the user that they must define a USE variable to continue, this is something that should be fixed one way or another. Then, when everything is said and done, it should work. If manual steps are required, they should be documented clearly and correctly. Is documentation available? This is a key part of this step.

Is It Well-Designed? Optimized? Maintainable?

It builds and runs, and I can use it to perform real work. But is the system well-designed? Does it work reliably? Are all available patches and fixes in place to ensure a reliable computing experience? Is Funtoo Linux providing the best technology possible to users? And is this technology easy to maintain? Remember, all things being equal, less code is better than more code because it is easier to maintain. Are there verbose comments in code where necessary?

Are We Getting Better?

OK, we're doing all of the above steps. Here is the next test - are we getting better? Is the quality, security, usability and maintainability of the distribution improving over time, or is it going up, and then going down, and we're not really making any forward progress? The ultimate goal at the end of the day is to make forward progress in the quality of the distribution. This requires better automation, better tools, better processes, and investment in research and development and new ways of doing things. It also requires the right attitude. If we are doing a lot of work and the overall quality of the distribution is not improving, then our efforts are not making a long-term difference, even though they may be addressing immediate bugs and issues. We must ensure that our efforts are worthwhile, and they are making a positive long-term difference in the quality of the distribution.

Examples

Coming soon...

Personal tools
Namespaces

Variants
Actions
Categories
Toolbox
Stuff