Difference between revisions of "Features/Feature Template"

From Sugar Labs
Jump to navigation Jump to search
Line 1: Line 1:
 
<noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}{{TOCright}}</noinclude>
 
<noinclude>{{ GoogleTrans-en | es =show | bg =show | zh-CN =show | zh-TW =show | hr =show | cs =show | da =show | nl =show | fi =show | fr =show | de =show | el =show | hi =show | it =show | ja =show | ko =show | no =show | pl =show | pt =show | ro =show | ru =show | sv =show }}{{TOCright}}</noinclude>
= <Feature Name> =
 
(Template based on http://fedoraproject.org/wiki/Features/DeviceKit.)
 
== Summary ==
 
  
'''<Feature Name>''' is a simple system service that a) can enumerate devices; b) emits signals when devices are added removed; c) provides a way to merge device information / quirks onto devices. It is designed to partially replace hal and overcome some of the design limitiations of hal. DeviceKit functionality is provided in the form of dbus services on the system bus.
+
'''Comments and Explanations:'''
 +
 
 +
The comments providing guidance to fill out each section are italic. '''Copy the source to a ''new page'' before making changes!  DO NOT EDIT THIS TEMPLATE FOR YOUR FEATURE.'''
  
Apart from DeviceKit itself, there is '''DeviceKit-disks''', which is a system service to keep track of block devices. The functionality offered by DeviceKit-disks is a superset of what hal provides for block devices.
+
<!-- All fields on this form are required to be accepted.
 +
We also request that you maintain the same order of sections so that all of the feature pages are uniform. -->
  
There is also '''DeviceKit-power''', which takes over the power-management-related parts of hal and the more complex functionality of gnome-power-manager. As a consequence, gnome-power-manager itself becomes much simpler.
+
<!-- The actual name of your feature page should look something like: Features/YourFeatureName.  This keeps all features in the same namespace -->
  
The new '''udev-extra''' module will provide udev rules that are needed to make the DeviceKit architecture work.
+
= Feature Name =
Functionality that was provided via .fdi files in hal will eventually be moved to udev rules, and setting acls on devices will also be done here at some point.
+
''The name of your feature''
  
DeviceKit-disks comes with a graphical frontend called '''palimpsest''' (the package name is '''gnome-disk-utility'''). Furthermore, there's a nautilus extension to format disks ('''nautilus-gdu'''), accessible from context menu.
+
== Summary ==
 +
''A sentence or two summarizing what this feature is and what it will do. This information is used for the overall feature summary page for each release.''
  
== Champions ==
+
== Owner ==
Owner/Coordinator, other developers, designers, contributors
+
''This should link to your home wiki page so we know who you are''
 +
* Name: [[User:AcountName| Your Name]]
  
* Champion: [[Name | Name]]
+
''Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or technical issues need to be resolved''
* Developers: [[Name | Name]], [[Name | Name]]
+
* email: <your email address so we can contact you, invite you to meetings, etc.>
  
 
== Current status ==
 
== Current status ==
* Targeted release: [[Development_Team/Release/Roadmap/0.86|  Sugar 0.86]]
+
* Targeted release: (SUGAR_VERSION)
* Last updated: 2009-06-20
+
* Last updated: (DATE)
* Percentage of completion: 0%
+
* Percentage of completion: XX%
 
 
DeviceKit, DeviceKit-disks, DeviceKit-power and gnome-disk-utility (i.e. palimpsest) packages have been built in rawhide.
 
 
 
gnome-power-manager 2.25 in rawhide uses DeviceKit-power instead of hal.
 
 
 
The port of gvfs to DeviceKit-disks is in rawhide.
 
 
 
udev-extras is hosted on [http://git.kernel.org/?p=linux/hotplug/udev-extras.git;a=summary kernel.org]
 
and has been packaged for rawhide.
 
 
 
The nautilus extension for disk formatting is being worked on [http://fedorapeople.org/gitweb?p=tbzatek/public_git/nautilus-gdu.git;a=summary here]. It is called nautilus-gdu. It is available in rawhide.
 
 
 
Still todo:
 
* remove the properties page from gnome-mount
 
* add a status icon for smart warnings, critical raid events and delayed write warnings
 
* bug fixes
 
  
 
== Detailed Description ==
 
== Detailed Description ==
 
+
''Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better.''
David has written an extensive explanation of the DeviceKit architecture, and the motivation for rewriting hal. Read all about it [http://lists.freedesktop.org/archives/hal/2008-May/011560.html here]
 
 
 
There is a dedicated [http://lists.freedesktop.org/mailman/listinfo/devkit-devel devkit-devel] mailing list now.
 
  
 
== Benefit to [[What is Sugar?|Sugar]] ==
 
== Benefit to [[What is Sugar?|Sugar]] ==
 
+
''What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Sugar become a better platform or project because of this feature?-->
Sugar gains a comprehensive graphical disk management tool which provides functionality that so far was
 
almost exclusively available in the partitioning screen of anaconda. The tools integrate nicely into the desktop (by e.g. providing a "Format disk..." menuitem in the nautilus context menu where appropriate).
 
  
 
== Scope ==
 
== Scope ==
 +
''What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?''
  
DeviceKit depends on bug fixes and enhancements in the following components: kernel, udev, mdadm, and lvm. These will have to appear in rawhide first.  
+
== How To Test ==
 +
''This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.''
  
Also, in order to peacefully coexist with DeviceKit-disks, at a very minimum
+
''Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.''
hal needs to talk to DeviceKit-disks about locking and mounting/unmounting.
 
Medium term, hal functionality such as disk and power-management support will
 
be turned off when all important users have been ported over to the equivalent DeviceKit api.
 
 
The core components that we plan to port for F11 are: gvfs, gnome-mount, nautilus and gnome-power-manager.
 
  
For completeness, [http://fedoraproject.org/wiki/Features/DeviceKit/HalDependencies] is a list of ''all'' packages in Fedora that depend on hal, libhal.so.1 or libhal-storage.so.1. Except where noted, we don't expect to port these to DeviceKit for F11.
+
''A good "how to test" should answer these four questions:''
  
== How To Test ==
+
* ''What special hardware / data / etc. is needed (if any)?
# yum install gnome-disk-utility. This will pull in DeviceKit-disks and DeviceKit via dependencies.
+
* ''How do I prepare my system to test this feature? What packages need to be installed, config files edited, etc.?
# Use palimpsest (the graphical frontend) to create, modify and delete partitions and file systems on various media, such as usb sticks, cds, removable hard disks, etc.
+
* ''What specific actions do I perform to check that the feature is working like it's supposed to?
# Use palimpsest to encrypt partitions and to change passwords for existing encrypted partitions.
+
* ''What are the expected results of those actions?''
# Use nautilus-gdu to format removable media with various file system types.
 
# Verify that palimpsest correctly reports smart data from disks which support it.
 
# Test the raid support
 
# Test that desktop applications like nautilus and the gedit's file chooser see volumes and mounts
 
# Check that gnome-power-manager provides the same functionality it had in previous releases
 
# Similar for other desktop environments and applications, if they are ported to DeviceKit
 
  
 
== User Experience ==
 
== User Experience ==
 
+
''If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice.''
There is a new menu item that brings up palimpsest: Applications → System Tools → Palimpsest Disk Utility
 
 
 
The nautilus context menu offers to format discs/usb sticks and other devices.
 
palimpsest is a graphical interface for all disc-related tasks, from partitioning and file system creation to encryption, raid and lvm.
 
 
 
Here are some screenshots of palimpsest and nautilus-gdu in action:
 
* The main window
 
[[Image:Palimpsest1.png]]
 
* SMART details
 
[[Image:Palimpsest2.png]]
 
* PolicyKit integration
 
[[Image:Palimpsest3.png]]
 
* The nautilus-gdu dialog
 
[[Image:nautilus-gdu.png]]
 
  
 
== Dependencies ==
 
== Dependencies ==
 
+
''What other packages (RPMs) depend on this package? Are there changes outside the developers' control on which completion of this feature depends? In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the python?''
* DeviceKit review: https://bugzilla.redhat.com/show_bug.cgi?id=456032 (Done)
 
* DeviceKit-disks review: https://bugzilla.redhat.com/show_bug.cgi?id=456033 (Done)
 
* gnome-disk-utility review: https://bugzilla.redhat.com/show_bug.cgi?id=456034 (Done)
 
* DeviceKit-power review: https://bugzilla.redhat.com/show_bug.cgi?id=460912 (Done)
 
* udev-extras review: https://bugzilla.redhat.com/show_bug.cgi?id=480754 (Done)
 
* nautilus-gdu review: https://bugzilla.redhat.com/show_bug.cgi?id=483277 (Done)
 
* udev >= 0.139
 
* mdadm >= 2.6.5
 
* device-mapper
 
* parted
 
* smartmontools
 
* util-linux-ng
 
* sqlite3
 
* PolicyKit >= 0.9
 
* dbus-glib >= 0.75
 
* dbus >= 1.1.20
 
* a nautilus extension for formatting must be written (Done)
 
* gvfs needs to be ported to DeviceKit-disks (Done)
 
* gnome-mount and nautilus must be ported to DeviceKit-disks
 
* hal needs to be patched to remove block device handling
 
  
 
== Contingency Plan ==
 
== Contingency Plan ==
 
+
''If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not. If you feature is not completed in time we want to assure others that other parts of Sugar will not be in jeopardy.''
DeviceKit-disks and DeviceKit-power can coexist with the disk and power management parts of hal. If the porting of applications is not complete by F11, we don't strip the functionality out of hal in F11.
 
  
 
== Documentation ==
 
== Documentation ==
 
+
''Is there upstream documentation on this feature, or notes you have written yourself? Link to that material here so other interested developers can get involved.''
Sugar API: http://api.sugarlabs.org/
 
 
 
Repository: http://git.sugarlabs.org/projects/webified/
 
 
 
 
 
API docs are here: http://hal.freedesktop.org/docs/DeviceKit/
 
   
 
http://hal.freedesktop.org/docs/DeviceKit-disks/
 
 
 
http://hal.freedesktop.org/docs/DeviceKit-power/
 
 
 
End user documentation will take some time to write, and can't really be started before the tools are publicly available.
 
  
 
== Release Notes ==
 
== Release Notes ==
 +
''The Sugar Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the release team and shipped with the release.''
  
Sugar 0.86 features NAME, which is a simpler, modular replacement...
 
 
== Comments and Discussion ==
 
== Comments and Discussion ==
 
+
* See See [[Talk:Development Team/Feature Template]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
See [[Talk:Development Team/Feature Template]]
 
  
 
----
 
----

Revision as of 03:33, 23 June 2009

Comments and Explanations:

The comments providing guidance to fill out each section are italic. Copy the source to a new page before making changes! DO NOT EDIT THIS TEMPLATE FOR YOUR FEATURE.


Feature Name

The name of your feature

Summary

A sentence or two summarizing what this feature is and what it will do. This information is used for the overall feature summary page for each release.

Owner

This should link to your home wiki page so we know who you are

Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or technical issues need to be resolved

  • email: <your email address so we can contact you, invite you to meetings, etc.>

Current status

  • Targeted release: (SUGAR_VERSION)
  • Last updated: (DATE)
  • Percentage of completion: XX%

Detailed Description

Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better.

Benefit to Sugar

What is the benefit to the platform? If this is a major capability update, what has changed? If this is a new feature, what capabilities does it bring? Why will Sugar become a better platform or project because of this feature?-->

Scope

What work do the developers have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?

How To Test

This does not need to be a full-fledged document. Describe the dimensions of tests that this feature is expected to pass when it is done. If it needs to be tested with different hardware or software configurations, indicate them. The more specific you can be, the better the community testing can be.

Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.

A good "how to test" should answer these four questions:

  • What special hardware / data / etc. is needed (if any)?
  • How do I prepare my system to test this feature? What packages need to be installed, config files edited, etc.?
  • What specific actions do I perform to check that the feature is working like it's supposed to?
  • What are the expected results of those actions?

User Experience

If this feature is noticeable by its target audience, how will their experiences change as a result? Describe what they will see or notice.

Dependencies

What other packages (RPMs) depend on this package? Are there changes outside the developers' control on which completion of this feature depends? In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate? Other upstream projects like the python?

Contingency Plan

If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "None necessary, revert to previous release behaviour." Or it might not. If you feature is not completed in time we want to assure others that other parts of Sugar will not be in jeopardy.

Documentation

Is there upstream documentation on this feature, or notes you have written yourself? Link to that material here so other interested developers can get involved.

Release Notes

The Sugar Release Notes inform end-users about what is new in the release. Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them here. You can also link to upstream documentation if it satisfies this need. This information forms the basis of the release notes edited by the release team and shipped with the release.

Comments and Discussion