kdelibs/solid/TODO
2014-11-13 01:04:59 +02:00

79 lines
2.6 KiB
Text

Temporary Roadmap before inclusion in trunk
Mn : Milestone n
- : done
+ : to do
# : in progress
! : cancelled or postponed
Inception Phase
---------------
M1 Architecture design and quick prototyping
- Prepare architecture view for handling hardware discovery, power management and
networking (done)
- Prepare a high level model for hardware handling (done)
- Implement partly (no capability support) this high level model using HAL as
backend (done)
- Make a tiny 'lshal' clone using the implementation (done)
M2 Cleaning up and preparing construction
- Fully document implemented classes and methods
- Split out the HAL specific code in its own backend
- Implement the stub backend for unit testing
- First unit tests
- Syncing with D-BUS, HAL and KDE latest version
- Add unit tests in the HAL backend
Construction Phase
------------------
From here, a feature is considered implemented when:
1) The classes and methods are fully documented
2) Unit tests for the feature are implemented
M3 Completing hardware handling
! Implement bus specific data gathering in the backends:
Postpone? might not be useful...
- Implement job support for slow operations (mount/umount for example)
- Reuse the Job logic from KIO, provides progress, etc.
- Means that we'll have to track the refactoring that will happen there
KIO::Job should become more generic in the future (KJob is in now in
kdecore)
- Implement support for the first capabilities
- Storage and Cdrom
- Volume and Disc
- Camera
- PortableMediaPlayer
M4 Network Management
- Select a first backend target : NetworkManager is the current candidate
- Prepare a high-level model
- Implement support for the following capabilities in the hardware layer
- NetworkHw (handle both Ethernet and Wireless)
# Implement the network management model and the first backend
M5 Power Management
- Prepare a high-level model
! Implement suspend/resume notification and inhibit
- Implement support for the following capabilities in the hardware layer
- AcAdaptor
- Battery
- Button
- Implement the power management model and the first backend
M6 Migration to trunk
- Clean up code and comments
+ Prepare documentation about how to work with this new framework
- Add even more unit tests if appropriate
- Merge to trunk
M7 Make use of it
+ Port the mediamanager and the medianotifier to this framework
+ Make a Plasma Engine to encapsulate this framework
+ Reimplement the media applet using the new engine
Stop a bit... And rethink the way the user will be able to interact with the hardware.
If we reach M7 we'll have a strong base to create a great new interaction model with
the hardware.