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 via email to