This is the twelfth post in the series of my weekly GSOC Sugar Labs, where I summarize my week of working with Sugar Labs under GSOC.
This week Samuel and I focused on improving the build image and release build process. We added support for old activities (activities that can be built by old-toolkit), activities without po files and license extraction. On the Frontend side, screenshot support was added.
Most of the work done this week was inspired by the discussion made on the following thread https://github.com/sugarlabs/sugar-toolkit-gtk3/issues/369.
James suggested to warn the developer of missing attributes instead of enforcing them. Discussion in this thread helped us uncover some issues. After sugar-toolkit was updated with instructions on installing, it became easier to install them which lead to change to Dockerfile and support for old activities as well, here is the pull request https://github.com/jatindhankhar/aslo-v3/pull/6 .
Now aslo-v3 supports both activities, old (uses old toolkit) and new (uses new gtk3 toolkit) :hooray:. This was the easiest fix since loading appropriate toolkit is done by the python interpreter, since import of the toolkit is defined in the setup.py.
Only downside is we need to drop --no-fail from the build instruction which is supported only by new toolkit.
Next most of the activities specially web based activities were getting rejected because they didn’t have any po files which are needed for i18n but not all developers target all audience, so it became necessary to support this as well. This required us to reduce the MANDATORY_ATTRIBUTES list, adding fallback/default values in the database models and relying on the assumed en values are being a dictionary.
License extraction was also added to the aslo, since it was the most sensitive one but ideally developer should define the proper license.
I write a script to analyze all the public repos of https://github.com/sugar-activities and were few of them didn’t have any license. Here is the link to the GIST
Aslo first looks for license inside the activity.info file, if not found looks for LICENSE and COPYING file and extracts the information from the headers.
In the Frontend side, screenshots were added , enabled in the jinja templates.