Getting involved in SoK

Aleix Pol aleixpol at kde.org
Wed Nov 18 04:03:39 GMT 2020


On Sun, Nov 15, 2020 at 10:42 AM Mariam Fahmy <mariamfahmy66 at gmail.com> wrote:
>
> Hello,
> Thanks alot for helping me.
> I have basically understand what you have provided me, what next step shall I do to start in this project?
> Thanks in advance.
>
> On Mon, 9 Nov 2020, 3:40 pm Aleix Pol, <aleixpol at kde.org> wrote:
>>
>> On Fri, Nov 6, 2020 at 7:37 PM Mariam Fahmy <mariamfahmy66 at gmail.com> wrote:
>> >
>> > Hello,
>> > Thanks alot for your advice.
>> > I have installed the project locally and I start discovering how backends work with codebase.
>> > I have understood but I am missing things.
>> > After doing some research and gathering information, here's what I can't clearly understand: (Sorry if questions are little bit silly)
>>
>> Hi Mariam,
>> No need to worry, feel free to ask away.
>>
>> > 1- what does it mean by resource?
>> > When I searched about it, I found that resources may be data required by user or requests from clients, is it right ?
>>
>> You can see here the class that defines a resource, should help you
>> see what it represents:
>> https://invent.kde.org/plasma/discover/-/blob/master/libdiscover/resources/AbstractResource.h
>>
>> In general, it's an asset: be it an application, a wallpaper or
>> anything that can be listed and installed.
>>
>> > 2- to create a new resources backend we need to implement two classes,
>> > The first class is the basic class which saves all created resources and install & remove application or cancel transactions.
>> > The second class, I didn't understand it's functionality, I found that it is related to plugins but didn't understand it.
>>
>> The second important one is the resource I just mentioned above.
>> Please explain a bit more what you don't understand.
>>
>> > 3-Filters in the base class: its target to filter the new requested resources?
>>
>> filters we just use when searching, to see what's being searched.
>> In the case of this project it shouldn't be very important, since we
>> will just be listing a system image.
>>
>> > 4- for each new resource backend, it should include all the methods of base class, right?
>> > As these methods acts as properties for each new resource.
>>
>> You need to implement all the abstract (i.e. virtual = 0) methods. The
>> rest of virtuals you can override if you want to give it a different
>> functionality.
>>
>> > 5- I have searched about plugins, but I didn't fully understand it,  plugins enable programmers to update host program while keeping the user within the program's environment, but I can't understand what is the role of plugins here if we receive new requests and make new resources?
>> > It is meant that while creating a new resource, we need plugin in order to keep the user with the program's environment without altering it or affecting it while creating new resources?
>>
>> It's just a way to build the applications so the whole project doesn't
>> depend on a specific technology. You can see the ones we implement
>> right now here:
>> https://invent.kde.org/plasma/discover/-/tree/master/libdiscover/backends
>>
>> This project should be adding a new OSTreeRPMBackend folder in here
>> that will only take care of this one implementation.
>>
>> I hope this helps,
>> Aleix

Adding the mentors list to know what the exact process for students is.

Mariam, in the meantime, if you want to start working on it or want to
have some kind of call to get started, tell me and I'll see to it.

Aleix



More information about the kde-devel mailing list