[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Weekly Status Report #2 - Integrate AppRecommender with AppStream



In my second week, I have created an way for AppStream to handle an XML recommendation file.

A recommendation XML file would be something on the following format:

<?xml version="1.0"?>
    <recommendations>
        <recommendation>
            <id>vim.desktop</id>
            <because>
                <id>emacs.desktop</id>
            </because>
        </recommendation>
        <recommendation>
            <id>ipython.desktop</id>
            <because>
                <id>eric.desktop</id>
                <id>winpdb.desktop</id>
            </because>
        </recommendation>
    </recommendations>

Where the id tag would be the name of the package being recommended and the because tag would indicate which user packages generated the recommendation.

Currently, there is a MR open on the main AppStream repository with the code I have written:

https://github.com/ximion/appstream/pull/45

Although my approach is currently working, there is still a lot of improvement that can be made upon it. For example, removing duplicated code and testing the behavior of my code if it receives an invalid XML file.

Therefore, my MR is mainly to collect upstream feedback on my approach and what can I do to improve it.

I have also continued the packaging of AppRecommender, which is now running both unit and package tests during the build. However, there is still some lintian warnings regarding some files on the web dir of AppRecommender.

With that said, for my next week, I will:

* Update the name of some XML tags for a recommendation:
https://gitlab.com/AppRecommender/AppRecommender/issues/21

(This is partially complete, but I am still debating with the AppStream maintainer the purpose of the because tag)

* Complete the AppRecommender package
https://gitlab.com/AppRecommender/AppRecommender/issues/19

* Study for a possible graphical package manager that can use my recommendation feature
https://gitlab.com/AppRecommender/AppRecommender/issues/18

In order to fully use the capabilities of my feature, I pretend to use it on a graphical package manager. Currently, I think I will look for plasma-discover as the initial candidate for my feature . But I still need to understand how the application uses AppStream.

* Validate a recommendation object
https://gitlab.com/AppRecommender/AppRecommender/issues/20

If the recommended package found on the XML is not indexed by AppStream, the recommendation object should not be valid. I will implement this check on the feature that I am developing.


--
Lucas Moura

Reply to: