Sorry for the delay on week 10, last week I was I little bit busy, since I am moving to another city. However, I think I will be less busy this week.
With that said, on week 10 I updated the code of AppRecommender to allow it to support installing it's files on /var/lib. I had some problems with that, but it is now solved. It is easy to set where AppRecommender will now install its files and the code an now handle if the user asks AppRecommender to install files where superuser permission is required.
I have also rewrote how AppRecommender was executed. This was originally inside the bin/ directory, but I have moved everything for the source directory. This also led to the fix of some project modules that should not be installed on the user's system.
Furthermore, I have also started to change some aspects on the package, but it not a lot of changes.
On the past week, I have contacted the AppStream maintainers about my patch and talked about it. There was just something missing in the patch, but now it is concluded. A part of the patch is now on the project master branch, but the rest of the patch will not be accepted as fast, because some verifications are still needed. I will contact the AppStream maintainers if I can help them on that process as well.
Also, I have finally updated the AppRecommender package. Now it install it's files on /var/lib/apprecommender and there is also a cronjob for updating the package database weekly. Although my mentor had already pointed some things to fix, the basic structure is done.
I have also updated AppRecommender command line interface to allow an easier way to add new commands to the application.
This upcoming week I will:
* Add an apt hook on the AppRecommender package to allow after the user runs an apt update command to update the AppRecommender database as well.
* Create intersection between AppRecommender strategies. Since AppRecommender has a lot of different recommendation strategies, a good ideia would be to run some of these strategies in parallel and select only the intersect packages between them. This would be the default recommendation strategy for AppRecommender.
* Better filter which packages are going to the user profile, like the sudo package. I will investigate which packages are going to the user profile, because of reports from my mentor about some packages should not be considered, such as sudo.