Hi,
my hackweek project was to evaluate using the boost graph library
(BGL) in libstorage. For me the project was interesting and
successful. I have documented it at
https://github.com/aschnell/libstorage-bgl-eval/wiki. The code is
also available there.
So now I would like to redesign the storage part of YaST. Here
are the main steps required:
- Extend libstorage-bgl-eval to fully support disks, partitions
and simply filesystems (probing, committing, testmodes,
testsuite).
- Try to make a compatibility layer.
- Make the new API robust against API and ABI changes.
- Export new API to Ruby (help would be good) for use by all YaST
modules.
- Get a simply installation working (two partitions, ext4 and
swap).
- Extend libstorage-bgl-eval to current libstorage
functionality. Maybe drop a few features, e.g. loop-back
devices (once used for encryption).
- Make the new API suit the needs of all YaST modules (input from
other developers required). If required add utility functions.
- Make all code in YaST use new API (task for several
developers).
- Make expert partitioner use new features, e.g. use disks
without partition table for filesystems.
- Rewrite storage proposal (specification required!).
- Finally drop target-map (as decided during workshop).
- Drop compatibility layer.
In the end yast2-storage would ideally only contain dialogs and
no logic for other YaST modules (since all of that moved to
libstorage). But if some utility functions are easier to
implement in Ruby they can stay there.
I assume that altogether the redesigning will take more than half
a year. Anyway I think it is required to keep the code
maintainable and be prepared for new feature requests. Some
existing features request might already be implemented along the
way (e.g. https://fate.suse.com/316251).
ciao
Arvin
--
Arvin Schnell,