Solid/Sprint2010: Difference between revisions

From KDE Community Wiki
(sebas)
No edit summary
 
Line 98: Line 98:
* Support for hidden wireless networks in NM plasmoid (sebas)
* Support for hidden wireless networks in NM plasmoid (sebas)
* update instead of stacking notifications in powerdevil (sebas)
* update instead of stacking notifications in powerdevil (sebas)
== Minutes ==
=== Friday Discussions ===
Started 3 years ago
experience shows flaws
Also closely based on what Hal provided at the time
Mac shows power management can be well integrated with the system.
Use cases things not suspending when doing things, not screensaving when watching a video, making a skype call.
Made xdg spec, result nobody else implemented it.
Currently: lot of disconnected pieces, lots of bug reports
Eg resume suspend with nvidia: first you see your desktop, then the screenlocker appears
Options: move suspend etc into the session manager
KDM, KSMServer, Powerdevil, HAL
PD talks to HAL, the upper parts don't know what is going on..  Everything relies on Powerdevil for info.
new design is that ksm gets backends for hal, upower, 'nextkit', and apps request power actions via KWorkspace api.
KSM has to be lightweight and stable.  KSM should only provide a facade around functionality implemented in powerdevil.  Powerdevil will track pre-suspend and post-suspend states to perform app things like updating the plasma clock early after resume.
NM:
Problems in reading system connections - no impl for doing this. Writing is easy, reading is not.
NetworkManager is adding complex polkit logic for managing connections.
Code which evaluates and shows system connections already exists, but no code exists for editing them.
Different distributions provide different means for storing connection settings, which will be watched over by NetworkManager. This leads to severe breakage, hence the need for managing system connections.
Add NM dependency to the KCM and polkit code to fix this.
NM/Bluetooth:
Nobody knows how this works NM side.
Inhibition:
What features to provide:
What components to inhibit
* Automatic suspend
* Brightness change
* Screensaver
How to present this to the user
How to present this to the developer
Non functional reqts:
* Inhibit right
* Make it easy for devs
* do not get in the user's way
Levels of inhibition - app developers will misbehave and request high priority for all events.  Using strings instead enforces responsibility on developers to make justified requests.
solid as a team:
* Doing better!
* Find maintainers for all backends, particularly udev (otherwise we keep hal)
* Document state of elements and what we support, on userbase.
* Improve bus number, instead of one-person teams, small teams on each component.
** Solid umbrella identity for effort supporting hardware on KDE
*** libsolid hardware awareness lib
*** UDisks
*** UPower
*** UDev
*** Bluetooth
*** Power devil
*** NM - supporting Connman?
*** XRandR
*** LIRC
* Bug triage
** Need someone to triage incoming bugs
** New bugs.kde.org categories needed
solid
  general
  powermanagement
  bluetooth
          -kcm
          -daemon
          -lib
  libsolid
          -frontend
          -upower
          -disks
=== Saturday Wrapups ===
Saturday wrapup notes
Sebas
* Nothing finished
* Started Hidden wireless network logic
* Debugging crasher in KDED
* Working on config widget which lays out profile configuration for PowerDevil dynamically while looking nice.
Albert
* Arrived, broke his computer, compiled kdelibs
* Helped Alex with refactoring of Solid::Device list to make it asynchronous
* Working on SVG backend for Okular.
Dario
* Finished new Powerdevil core
* Ported Powerdevil to new backend
* Everything (changing brightness) etc are dynamic actions provided by plugins
* Common actions bundled into PD core lib
* Fast lightweight modular
Alex
* started researching Bluetooth connections (DUN and PAN) in Networkmanager.  Got both kind of working
* wrote some BlueDevil plugins for establishing connections
* waiting for feedback from Will on how Gnome keeps BlueZ network service up
* looking at libsolid and refactoring for async device listing api
* Learning from Albert how to use new Qt shared pointer classes.
Agustin
* took notes, sent some text to promo list for promo guys to process
* worked on task list to make Solid a stronger group.
* writing text for Dot story on the meeting
Lamarque
* Started to finish his mobile connection wizard, now working, saving connections.  CDMA part can't be tested.
* Polishing and debugging corner cases.
Rafa
* Evaluated tasks as new Solid participant
* Debugging KCategorizedView
* Chose to work on UDev support, looking at how Solid internals work, now listing devices but missing information like product/vendor.
Will
* Researched how Gnome nm-applet bluetooth support is integrated, shared info with Alex
* Reviewed Lamarque's 3G mobile-broadband-provider-info wizard
* Refactoring hidden network support since he no longer understands own code
* Refamiliarised about what is missing from
Kevin
* Fixed licensing in libsolid
* Reorganized bugzilla categories 500 bugs.  Assigned default assignees to bug categories.  BlueDevil and Network management bugs not yet assigned in
* Identified a class in fstab backend, factored out to libsolid - allows backends to inject fake devices to act as a device root.
* Looking at udev/upower backends for problems, missing functions.  upower basically ok.  upower backend sometimes gives devices with no useful data.
* Udisk backend work because it had the most bugs, refactored to create tree structure
** Fixed notifications on plug/unplug, timing issue for notification and cache
* Not much code shared between U* except fake root device.
Concerns:
* More things moving into network management in progress but not out to Done
* Kevin would like more people hacking on udisks tasks as they are small.
=== Sunday Wrapups ===
Sebas
* Plasma side of hidden networks plumbing
* Pluggable configuration of powerdevil works
* Fixing up powerdevil to work with new config
Dario
* Finished new PowerDevil core
* Finished new policy agent
* Moved backend part of Solid::Control power apis into PowerDevil
* Moved 90% of actions into plugins
* PowerDevil now no longer uses any UI stuff, pure kdecore app
* Pushed to trunk
* Less invasive than before, but currently requires manual profile definition, defaults are not yet provided
* Today will work on KRunner stuff.  Needs to mail Lubos about KSM integration
* Blogged about it, see planet
* Plans to code UPower backend for PowerDevil (small task, Alex to help)
Alex
* Implementing libsolid synchronous API, suspended this work while reqts are refined, will continue after sprint
* Fixed some bugs in Bluedevil to be able to use bluetooth keyboards and Mighty Mouse.
* Adding possibility to pair devices that don't require a PIN.
* Plans
** Will move bugs from old bluedevil product to new one.
** Will look at KFilePlaces
Albert
* Helping others with code
* Plans
** Will pick up low hanging fruit tasks
Javier
* Packaging api documentations
Lamarque
* Finished 3G wizard
* Debugging crash in 3G roaming
* Tested wizard using Agustin's stick
* TODO: test with CDMA device and network
* Picked up NM restart crash bug from Sebas
Rafa
* Udev backend: Found root cause why some devices missing product/vendor
* Cleaned CMake code to make everything conditional
* Plan to have udev backend stable
Will
* Fixing Hidden network refactoring bugs
* Researched BT networkmanager integration
Kevin
* Spent the night fixing remaining UDisk/UPower issues 'finished' no obvious regressions.  Close to being able to drop HAL dep. UDev backend only missing component
* Plans to manage others today and help.
* Wall of postits task management system helped visibility of what's going on and regular review made sure that people actually did what they talked about it.  Would be improved by homogenous granularity of tasks. Eg 'can be done in 1 hour'.  Downside is that this system is so effective at getting people coding that they might not find time to blog, although the system does create good inputs for dedicated promo people to write around.

Latest revision as of 14:36, 9 October 2010

Dates

1/October/2010: Arrival and hacking starting from 09:00 local time
2/October/2010: Hacking
3/October/2010: Hacking and departure

Location

The event will take place in Madrid, In the offices of ufocoders (Calle Ana Mariscal 5 , 28223 Pozuelo de Alarcón). The office is not down town, but in a offices/recreative places (with a cinema, restaurants etc).


Picture Of the building
Note: The building is not constructed in the maps
Note2: I tried to edit openstreetmaps to add more information but to do it I have to have Flash, and I don't, sorry :/

Hotel Location

i-hotel: http://www.eurostarsihotel.com/ Virgilio, 4, Pozuelo de alarcón, 28223

Contact Information

Alejandro Fiestas Olivares +34651620051 and Rafael Fernández López +34650321043

How to get there

The Office where the sprint will take place is connected very well with the airport (Barajas) and with the main Train Station:

  • Atocha Station (Train)


MetroMadrid website

Accomodation

afiestas: Nothing yet, but it should be around 49,99.

Attendees List

The column "Sponsoring needed?" is to know if you need sponsoring or if you pay the travel/stay by yourself.

We do not know (yet) how the food will be (restaurant, catering etc...) but anyway the office is near a lot of fast food places (McDonals, Foster hollywood, Burger King, Other local stuff), so in any case it should be cheap.

Name email Project/Interest Arrival Departure Airport Flight Food preferences Room preferences Estimated travel costs Sponsoring needed? Work Special
Alejandro Fistas (afiestas) alex at ufocoders B0t com NetworkManager//Bluetooth 1.0 4.0 none by car none none 0 € no Author of BlueDevil and starting to dig in NetworkManager anything)
Kevin Ottens (ervin) ervin at kde dot com Solid gatekeeper 1st in the morning 3rd in the evening MAD IB8775 no seafood (except sushis, go figure) none ~350 € (it raised fast) yes Community building, libsolid maintainance, delegating. :-) none
Rafael Fernández López (ereslibre) ereslibre at kde dot com Bluetooth N/A N/A N/A N/A none none N/A no Community building, author of libbluedevil, author of bluedevil none
Dario Freddi (drf) drf at kde dot org Power management & friends 1st, 9.40 AM 3rd, 8 PM MAD AZ7914 - AZ7099 none none 121.03€ yes Kill Solid::Control, discussions, rework PowerDevil, and $something nobody wants to do none
Paulo Romulo (promulo) paulo.romulo at kdemail dot net Solid UPnP backend 1st, around 7 AM 4th, around 12 PM MAD (not booked yet) anything none 1394 € :-( yes API refinements, debug app, neighborhood plasmoid, whatever ervin delegates... :-p none
Sebastian Kügler (sebas) sebas at kde dot org Solid Plasma Widgets 1st, around 1600 4th, around 6 AM MAD IB3245 & IB3246 none none 200€ yes Network & Power Management none
Albert Astals Cid (tsdgeos) aacid at kde dot org 2nd, around 10 AM 3rd, around 8 PM MAD EI592 - EI595 none none - no none
Lamarque Souza (lamarque) lamarque at gmail dot com Modem Manager, Plasma Widgets, bug fixing 1st, around 12:15 3rd, around 23:00 MAD TAM 8064 (booked) none none 1310 € :-( yes Author of ModemManager backend none
Will Stephenson wstephenson at kde dot org Network Management, distro integration advice 1st, around 1405 3rd, 1525 MAD LH4424 none double+cot 250 € yes Network Management none

Catering

  • Beer
  • Coke
  • Fruit juice (orange, grape, something else?)
  • Sandwiches
  • Good coffee (nespresso ?)
  • Tea

Agenda

Topics for discussion

  • Solid/Kde-hardware-group as a team/group, metalworkers unite!
  • Design discussion: NetworkManager Solid::Control free
  • Design discussion: PowerManagement Solid::Control free
  • Edit NetworkManager system connections
  • Integration between bluedevil and Plasma NM to use cell phone as bluetooth modem
  • Rework PowerDevil: how and why (discussion)
  • Inhibition on the Desktop: why and how (discussion)
  • Plan to fix xrandr support once and for all
  • ...

Code Goals

  • Have the new libsolid backends releasable: udisks, upnp, upower
  • Produce a first version of the udev backend for libsolid (still needs to find a maintainer)
  • Produce a first version of the bluez backend for libsolid
  • Refactor PowerDevil (powermanager disappears from libsolidcontrol)
  • Refactor the network management stack (network classes disappear from libsolidcontrol)
  • Support for hidden wireless networks in NM plasmoid (sebas)
  • update instead of stacking notifications in powerdevil (sebas)


Minutes

Friday Discussions

Started 3 years ago experience shows flaws Also closely based on what Hal provided at the time Mac shows power management can be well integrated with the system. Use cases things not suspending when doing things, not screensaving when watching a video, making a skype call.

Made xdg spec, result nobody else implemented it.

Currently: lot of disconnected pieces, lots of bug reports

Eg resume suspend with nvidia: first you see your desktop, then the screenlocker appears

Options: move suspend etc into the session manager

KDM, KSMServer, Powerdevil, HAL

PD talks to HAL, the upper parts don't know what is going on.. Everything relies on Powerdevil for info.

new design is that ksm gets backends for hal, upower, 'nextkit', and apps request power actions via KWorkspace api.

KSM has to be lightweight and stable. KSM should only provide a facade around functionality implemented in powerdevil. Powerdevil will track pre-suspend and post-suspend states to perform app things like updating the plasma clock early after resume.

NM:

Problems in reading system connections - no impl for doing this. Writing is easy, reading is not.

NetworkManager is adding complex polkit logic for managing connections.

Code which evaluates and shows system connections already exists, but no code exists for editing them.

Different distributions provide different means for storing connection settings, which will be watched over by NetworkManager. This leads to severe breakage, hence the need for managing system connections.

Add NM dependency to the KCM and polkit code to fix this.

NM/Bluetooth:

Nobody knows how this works NM side.

Inhibition:

What features to provide:

What components to inhibit

  • Automatic suspend
  • Brightness change
  • Screensaver

How to present this to the user

How to present this to the developer

Non functional reqts:

  • Inhibit right
  • Make it easy for devs
  • do not get in the user's way

Levels of inhibition - app developers will misbehave and request high priority for all events. Using strings instead enforces responsibility on developers to make justified requests.


solid as a team:

  • Doing better!
  • Find maintainers for all backends, particularly udev (otherwise we keep hal)
  • Document state of elements and what we support, on userbase.
  • Improve bus number, instead of one-person teams, small teams on each component.
    • Solid umbrella identity for effort supporting hardware on KDE
      • libsolid hardware awareness lib
      • UDisks
      • UPower
      • UDev
      • Bluetooth
      • Power devil
      • NM - supporting Connman?
      • XRandR
      • LIRC
  • Bug triage
    • Need someone to triage incoming bugs
    • New bugs.kde.org categories needed

solid

 general
 powermanagement
 bluetooth
          -kcm
          -daemon
          -lib
 libsolid
         -frontend
         -upower
         -disks

Saturday Wrapups

Saturday wrapup notes Sebas

  • Nothing finished
  • Started Hidden wireless network logic
  • Debugging crasher in KDED
  • Working on config widget which lays out profile configuration for PowerDevil dynamically while looking nice.

Albert

  • Arrived, broke his computer, compiled kdelibs
  • Helped Alex with refactoring of Solid::Device list to make it asynchronous
  • Working on SVG backend for Okular.

Dario

  • Finished new Powerdevil core
  • Ported Powerdevil to new backend
  • Everything (changing brightness) etc are dynamic actions provided by plugins
  • Common actions bundled into PD core lib
  • Fast lightweight modular

Alex

  • started researching Bluetooth connections (DUN and PAN) in Networkmanager. Got both kind of working
  • wrote some BlueDevil plugins for establishing connections
  • waiting for feedback from Will on how Gnome keeps BlueZ network service up
  • looking at libsolid and refactoring for async device listing api
  • Learning from Albert how to use new Qt shared pointer classes.

Agustin

  • took notes, sent some text to promo list for promo guys to process
  • worked on task list to make Solid a stronger group.
  • writing text for Dot story on the meeting

Lamarque

  • Started to finish his mobile connection wizard, now working, saving connections. CDMA part can't be tested.
  • Polishing and debugging corner cases.

Rafa

  • Evaluated tasks as new Solid participant
  • Debugging KCategorizedView
  • Chose to work on UDev support, looking at how Solid internals work, now listing devices but missing information like product/vendor.

Will

  • Researched how Gnome nm-applet bluetooth support is integrated, shared info with Alex
  • Reviewed Lamarque's 3G mobile-broadband-provider-info wizard
  • Refactoring hidden network support since he no longer understands own code
  • Refamiliarised about what is missing from

Kevin

  • Fixed licensing in libsolid
  • Reorganized bugzilla categories 500 bugs. Assigned default assignees to bug categories. BlueDevil and Network management bugs not yet assigned in
  • Identified a class in fstab backend, factored out to libsolid - allows backends to inject fake devices to act as a device root.
  • Looking at udev/upower backends for problems, missing functions. upower basically ok. upower backend sometimes gives devices with no useful data.
  • Udisk backend work because it had the most bugs, refactored to create tree structure
    • Fixed notifications on plug/unplug, timing issue for notification and cache
  • Not much code shared between U* except fake root device.

Concerns:

  • More things moving into network management in progress but not out to Done
  • Kevin would like more people hacking on udisks tasks as they are small.


Sunday Wrapups

Sebas

  • Plasma side of hidden networks plumbing
  • Pluggable configuration of powerdevil works
  • Fixing up powerdevil to work with new config

Dario

  • Finished new PowerDevil core
  • Finished new policy agent
  • Moved backend part of Solid::Control power apis into PowerDevil
  • Moved 90% of actions into plugins
  • PowerDevil now no longer uses any UI stuff, pure kdecore app
  • Pushed to trunk
  • Less invasive than before, but currently requires manual profile definition, defaults are not yet provided
  • Today will work on KRunner stuff. Needs to mail Lubos about KSM integration
  • Blogged about it, see planet
  • Plans to code UPower backend for PowerDevil (small task, Alex to help)

Alex

  • Implementing libsolid synchronous API, suspended this work while reqts are refined, will continue after sprint
  • Fixed some bugs in Bluedevil to be able to use bluetooth keyboards and Mighty Mouse.
  • Adding possibility to pair devices that don't require a PIN.
  • Plans
    • Will move bugs from old bluedevil product to new one.
    • Will look at KFilePlaces

Albert

  • Helping others with code
  • Plans
    • Will pick up low hanging fruit tasks

Javier

  • Packaging api documentations

Lamarque

  • Finished 3G wizard
  • Debugging crash in 3G roaming
  • Tested wizard using Agustin's stick
  • TODO: test with CDMA device and network
  • Picked up NM restart crash bug from Sebas

Rafa

  • Udev backend: Found root cause why some devices missing product/vendor
  • Cleaned CMake code to make everything conditional
  • Plan to have udev backend stable

Will

  • Fixing Hidden network refactoring bugs
  • Researched BT networkmanager integration

Kevin

  • Spent the night fixing remaining UDisk/UPower issues 'finished' no obvious regressions. Close to being able to drop HAL dep. UDev backend only missing component
  • Plans to manage others today and help.
  • Wall of postits task management system helped visibility of what's going on and regular review made sure that people actually did what they talked about it. Would be improved by homogenous granularity of tasks. Eg 'can be done in 1 hour'. Downside is that this system is so effective at getting people coding that they might not find time to blog, although the system does create good inputs for dedicated promo people to write around.