GSoC/2018/StatusReports/CaioJordãoCarvalho: Difference between revisions
(16 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
== Project Goals == | == Project Goals == | ||
* Finish LVM VG support in Calamares. | * Finish LVM VG support in Calamares. | ||
* Implement RAID support in kpmcore. | ** Status: '''Done'''. | ||
* Implement RAID support GUIs in KDE Partition Manager. | * Implement RAID support in kpmcore. | ||
* Implement RAID support GUIs in Calamares. | ** Status: '''Done'''. | ||
* Implement RAID support GUIs in KDE Partition Manager. | |||
** Status: '''Done'''. | |||
* Implement RAID support GUIs in Calamares. | |||
** Status: '''Pending'''. | |||
== Work Report == | == Work Report == | ||
Line 22: | Line 26: | ||
During Community Bonding period, I've been in communication with my mentors, planning some goals and learn more about the codebase of KDE Partition Manager and Calamares. I'm getting more familiar with partitioning module in Calamares and LVM routines in KDE Partition Manager. In addition, I'm studying how LVM VG creation dialog works in KDE Partition Manager and how I can port it to Calamares and started solving some bugs and implementing some features related to LVM in kpmcore and partitionmanager. Also I'll take advantage of this first GSoC period to study more about mdadm tool, that will help me in the process of manipulation of RAID devices. | During Community Bonding period, I've been in communication with my mentors, planning some goals and learn more about the codebase of KDE Partition Manager and Calamares. I'm getting more familiar with partitioning module in Calamares and LVM routines in KDE Partition Manager. In addition, I'm studying how LVM VG creation dialog works in KDE Partition Manager and how I can port it to Calamares and started solving some bugs and implementing some features related to LVM in kpmcore and partitionmanager. Also I'll take advantage of this first GSoC period to study more about mdadm tool, that will help me in the process of manipulation of RAID devices. | ||
More details can be seen in Community Bonding Part 1 and Part | More details can be seen in Community Bonding Part 1, Part 2 and Part 3 in my [https://community.kde.org/GSoC/2018/StatusReports/CaioJord%C3%A3oCarvalho#Blog_Posts blog]. | ||
=== Coding Period - | === Coding Period - May 14th to May 28th === | ||
During the first weeks of Coding Period, I was dedicated to create LVM VG creation process in Calamares. It involved creating a new VG GUI hierarchy and understanding the process of Jobs in Calamares. I'm planning to finish the first phase of the coding period with the implementation of some other operations of VGs in Calamares (i.e. resize and delete operations). | |||
More details can be seen in Coding Period (May 14th to May 28th) post in my [https://community.kde.org/GSoC/2018/StatusReports/CaioJord%C3%A3oCarvalho#Blog_Posts blog] and this [https://www.youtube.com/watch?v=eCNigHeB7sU video] showing how the process of VG creation is being done. | |||
=== Coding Period - May 28th to June 18th === | |||
I got some problems during the last weeks of Google Summer of Code which made me deal with some challenges. One of these challenges was caused by a HD physical problem. I haven’t made a backup of some work and had to rework again in some parts of my code. As I already knew how to proceed, it was faster than the first time. | |||
I had to understand how the device loading process is made in Calamares to load a preview of the new LVM VG during its creation in Partition Page. I need to list it as a new storage device in this page and deal with the revert process. I’ve implemented some basic fixes and tried to improve it. | |||
More details can be seen in Coding Period (May 28th to June 18th) post in my [https://community.kde.org/GSoC/2018/StatusReports/CaioJord%C3%A3oCarvalho#Blog_Posts blog]. | |||
=== Coding Period - June 18th to June 26th === | |||
I have finished LVM VG complete support to Calamares, including resize, deactivate and remove operations. I’ve changed Calamares’ Partition Page to include a group of buttons related to VG operations. Now there is a row reserved for it, organized in a horizontal layout. | |||
More details can be seen in Coding Period (June 18th to June 26th) post in my [https://community.kde.org/GSoC/2018/StatusReports/CaioJord%C3%A3oCarvalho#Blog_Posts blog]. | |||
=== Coding Period - June 26th to July 15th === | |||
During this period, I have finished the support of loading Software RAID (i.e. MD RAID) devices on kpmcore and KDE Partition Manager, including the process of partition manipulation on these devices. Now I am starting the implementation of the process of creation of Software RAID on kpmcore. | |||
More details explaining about RAID and how this project is focused on it can be seen in Coding Period (June 26th to July 15th) post in my [https://community.kde.org/GSoC/2018/StatusReports/CaioJord%C3%A3oCarvalho#Blog_Posts blog]. | |||
=== Coding Period - July 15th to August 6th === | |||
Finished creation of Software RAID on kpmcore. Improved the code to get more stability before creating KDE Partition Manager and Calamares GUIs for this process. Fixed some bugs related to udev events that where keeping the physical device that contains the linux_raid_member partitions busy. My work with LVM in Calamares was merged to master branch, as you can see [https://github.com/calamares/calamares/commit/3b82e655d720179fe62901a620eb0796f50ef1d5 here]. | |||
This post in Calamares' blog explains a little bit about my progress with LVM during the last months and my plans after finishing GSoC: [https://calamares.io/calamares-gsoc/ Calamares progress on Google Summer of Code 2018]. | |||
== Branches where I'm working == | == Branches where I'm working == | ||
Line 32: | Line 64: | ||
* [https://cgit.kde.org/kpmcore.git/log/?h=kauth kpmcore kauth branch] | * [https://cgit.kde.org/kpmcore.git/log/?h=kauth kpmcore kauth branch] | ||
* [https://cgit.kde.org/partitionmanager.git/log/?h=kauth partitionmanager kauth branch] | * [https://cgit.kde.org/partitionmanager.git/log/?h=kauth partitionmanager kauth branch] | ||
* [https://git. | * [https://cgit.kde.org/partitionmanager.git/log/?h=raid-support partitionmanager raid-support branch] | ||
* [https://cgit.kde.org/kpmcore.git/tree/?h=raid-support kpmcore raid-support branch] | |||
* [https://github.com/cjlcarvalho/calamares calamares branch] | * [https://github.com/cjlcarvalho/calamares calamares branch] | ||
Line 43: | Line 76: | ||
=== Blog Posts === | === Blog Posts === | ||
* [https://caiojcarvalho.wordpress.com/2018/05/04/google-summer-of-code-2018-introduction-community-bonding/ | * [https://caiojcarvalho.wordpress.com/2018/05/04/google-summer-of-code-2018-introduction-community-bonding/ GSoC 2018 – Community Bonding Part 1: Introduction] | ||
* [https://caiojcarvalho.wordpress.com/2018/05/11/google-summer-of-code-2018-community-bonding-part-2-studies-about-lvm/ GSoC 2018 – Community Bonding Part 2: Studies about LVM] | |||
* [https://caiojcarvalho.wordpress.com/2018/05/12/google-summer-of-code-2018-community-bonding-part-3-management-of-lvm-vgs-in-calamares/ GSoC 2018 – Community Bonding Part 3: Management of LVM VGs in Calamares] | |||
* [https://caiojcarvalho.wordpress.com/2018/05/26/google-summer-of-code-2018-coding-period-may-14th-to-may-28th-initial-implementation-of-lvm-vg-creation-in-calamares/ GSoC 2018 – Coding Period (May 14th to May 28th): Initial implementation of LVM VG creation in Calamares] | |||
* [https://caiojcarvalho.wordpress.com/2018/06/19/gsoc-2018-coding-period-may-28th-to-june-18th-first-evaluation-and-progress-with-lvm-vg/ GSoC 2018 – Coding Period (May 28th to June 18th): First Evaluation and Progress with LVM VG] | |||
* [https://caiojcarvalho.wordpress.com/2018/06/26/gsoc-2018-coding-period-june-18th-to-june-26th-finishing-lvm-vg-support-and-starting-raid-implementation/ GSoC 2018 – Coding Period (June 18th to June 26th): Finishing LVM VG support and starting RAID implementation] | |||
* [https://carvalho.site/2018/07/14/gsoc-2018-coding-period-june-26th-to-july-15th-raid-on-linux/ GSoC 2018 – Coding Period (June 26th to July 15th): RAID on Linux] | |||
* [https://calamares.io/calamares-gsoc/ Calamares progress on Google Summer of Code 2018] | |||
=== Videos === | |||
* [https:// | * [https://www.youtube.com/watch?v=eCNigHeB7sU GSoC 2018 - Initial implementation of LVM VG creation in Calamares] | ||
== Contact == | == Contact == | ||
Line 53: | Line 102: | ||
'''IRC:''' cjlcarvalho | '''IRC:''' cjlcarvalho | ||
'''Github:''' cjlcarvalho | '''Github:''' [https://github.com/cjlcarvalho cjlcarvalho] |
Latest revision as of 20:26, 15 August 2018
Finish LVM support and implement RAID support in KDE Partition Manager and Calamares
KDE Partition Manager is a utility program that helps the management of disk devices, partitions and file systems on your computer. It allows you to easily create, copy, move, delete, backup, restore partitions and resize without losing data. The program consists of a backend library, called kpmcore, and a user application that uses that library.
Calamares is a distribution-independent system installer, with an advanced partitioning feature for both manual and automated partitioning operations. It is designed to be customizable by distribution maintainers without need for cumbersome patching, thanks to third party branding and external modules support. It uses the kpmcore library to automate partitioning procedures.
One pending feature request for Calamares remains for LVM support. LVM support is currently finished in kpmcore and KDE Partition Manager, but there is some work to do in Calamares before proceeding to the other goals of this project. Furthermore, it is currently needed to implement RAID support in kpmcore, KDE Partition Manager and Calamares, which will offer a way to spread data across several disks, such that a single disk failure will not lose that data.
Mentors: Adriaan de Groot and Andrius Stikonas.
Project Goals
- Finish LVM VG support in Calamares.
- Status: Done.
- Implement RAID support in kpmcore.
- Status: Done.
- Implement RAID support GUIs in KDE Partition Manager.
- Status: Done.
- Implement RAID support GUIs in Calamares.
- Status: Pending.
Work Report
Community Bonding Period
During Community Bonding period, I've been in communication with my mentors, planning some goals and learn more about the codebase of KDE Partition Manager and Calamares. I'm getting more familiar with partitioning module in Calamares and LVM routines in KDE Partition Manager. In addition, I'm studying how LVM VG creation dialog works in KDE Partition Manager and how I can port it to Calamares and started solving some bugs and implementing some features related to LVM in kpmcore and partitionmanager. Also I'll take advantage of this first GSoC period to study more about mdadm tool, that will help me in the process of manipulation of RAID devices.
More details can be seen in Community Bonding Part 1, Part 2 and Part 3 in my blog.
Coding Period - May 14th to May 28th
During the first weeks of Coding Period, I was dedicated to create LVM VG creation process in Calamares. It involved creating a new VG GUI hierarchy and understanding the process of Jobs in Calamares. I'm planning to finish the first phase of the coding period with the implementation of some other operations of VGs in Calamares (i.e. resize and delete operations).
More details can be seen in Coding Period (May 14th to May 28th) post in my blog and this video showing how the process of VG creation is being done.
Coding Period - May 28th to June 18th
I got some problems during the last weeks of Google Summer of Code which made me deal with some challenges. One of these challenges was caused by a HD physical problem. I haven’t made a backup of some work and had to rework again in some parts of my code. As I already knew how to proceed, it was faster than the first time.
I had to understand how the device loading process is made in Calamares to load a preview of the new LVM VG during its creation in Partition Page. I need to list it as a new storage device in this page and deal with the revert process. I’ve implemented some basic fixes and tried to improve it.
More details can be seen in Coding Period (May 28th to June 18th) post in my blog.
Coding Period - June 18th to June 26th
I have finished LVM VG complete support to Calamares, including resize, deactivate and remove operations. I’ve changed Calamares’ Partition Page to include a group of buttons related to VG operations. Now there is a row reserved for it, organized in a horizontal layout.
More details can be seen in Coding Period (June 18th to June 26th) post in my blog.
Coding Period - June 26th to July 15th
During this period, I have finished the support of loading Software RAID (i.e. MD RAID) devices on kpmcore and KDE Partition Manager, including the process of partition manipulation on these devices. Now I am starting the implementation of the process of creation of Software RAID on kpmcore.
More details explaining about RAID and how this project is focused on it can be seen in Coding Period (June 26th to July 15th) post in my blog.
Coding Period - July 15th to August 6th
Finished creation of Software RAID on kpmcore. Improved the code to get more stability before creating KDE Partition Manager and Calamares GUIs for this process. Fixed some bugs related to udev events that where keeping the physical device that contains the linux_raid_member partitions busy. My work with LVM in Calamares was merged to master branch, as you can see here.
This post in Calamares' blog explains a little bit about my progress with LVM during the last months and my plans after finishing GSoC: Calamares progress on Google Summer of Code 2018.
Branches where I'm working
- kpmcore kauth branch
- partitionmanager kauth branch
- partitionmanager raid-support branch
- kpmcore raid-support branch
- calamares branch
Important Links
Proposal Link
Blog Posts
Videos
Contact
Email: [email protected]
IRC: cjlcarvalho
Github: cjlcarvalho