[ASLO] ASLO build and deployment process (Jatin Dhankhar)

Walter Bender walter.bender at gmail.com
Wed Apr 12 13:40:22 EDT 2017


Let's try to get Sam C., who currently maintains ASLO into the loop. I
think he'll have lots of good advice for us.

regards.

-walter

On Wed, Apr 12, 2017 at 1:14 PM, Jatin Dhankhar <dhankhar.jatin at gmail.com>
wrote:

> Hi,
>
> I think we need to agree on the use of IRC. If you want to communicate
>> with members of the community, you must go where they are (#sugar). If you
>> want a one-to-one meeting on IRC with me, I would suggest #sugar-newbies.
>> It is normally dormant but works well and saves a log for later review. It
>> worked well for meetings with Utkarsh Tiwari during last year's GSOC.
>
> Sure, whatever works :). What is your IRC nickname ?
>
> There are two things that you will need to have local to the django
>> project. First is the directory download.sugarlabs.org which has the
>> Sugar activity bundles
>
> Do I need to mirror the whole setup/directory ?
>
> When talking about scraping you probably meant
> http://activities.sugarlabs.org instead of http://download.sugarlabs.org/,
> right ?
> Also for scraping, Scrapy <https://scrapy.org/> seems to more popular
> than beautifulsoup ?
>
> Also a big thanks for including Walter in the discussion :D
>
> - Jatin Dhankhar
>
>
> On Wed, Apr 12, 2017 at 6:30 AM, Tony Anderson <tony_anderson at usa.net>
> wrote:
>
>> Hi, Jatin
>>
>> I think we need to agree on the use of IRC. If you want to communicate
>> with members of the community, you must go where they are (#sugar). If you
>> want a one-to-one meeting on IRC with me, I would suggest #sugar-newbies.
>> It is normally dormant but works well and saves a log for later review. It
>> worked well for meetings with Utkarsh Tiwari during last year's GSOC.
>>
>> There are two things that you will need to have local to the django
>> project. First is the directory download.sugarlabs.org which has the
>> Sugar activity bundles. The second is the 'metadata' in the mysql db. For
>> scraping, I would recommend BeautifulSoup (bs4). The trick will be to
>> decide what data we want to capture and add to the json.
>>
>> The json fields in activities.json are ones I chose for the minimal
>> system. You may want to include other information such as the number of
>> downloads, which collections (should be entered as tags in a tag-field) and
>> so on. One item I have referred to as flags (I marked some as X but don't
>> remember what that meant, oh well). The intent is to record the platforms
>> where the activity works. We also should provide links to the homepage,
>> repository page, and update page (whatever that is). I think if you have a
>> working scrape tool, the data it collects can be expanded as needed
>> (assuming the tool runs in a reasonable time).
>>
>> Naturally, it would be easier if you have access to the db directly.
>>
>> Tony
>>
>>
>> On 04/12/2017 01:40 AM, Jatin Dhankhar wrote:
>>
>> One thing you could look at. On activities.sugarlabs,org, can you
>>> determine from Remora where the metadata is stored? I assume a db.
>>> Currently I am thinking to use BeautifulSoup to scrape the site to get that
>>> data, but it would be much easier to access the data directly.
>>
>> As per wiki https://wiki.mozilla.org/Update:Remora_Server_Requirements#
>> SVN.2C_DB_and_app_config data is stored in mysql database. I don't have
>> access to the production server where ASLO is currently running, following
>> file https://github.com/sugarlabs/aslo/blob/master/aslo/db-update.sh#L9 confirms
>> that data is stored in a mysql db. However it would be interesting and fun
>> to scrape the data from live site. I would do that.
>>
>> Thanks will poke around the code, looks to me it's a django app and I
>> have to mount it on my django project, thanks :)
>>
>> If you are talking about IRC as a place to meet Sugar community members,
>>> use the freenode #sugar. This is probably most active from 8-17 EST
>>> (UTC-5). I am currently in the Philippines which is UTC+ 7.
>>
>>
>>  Yes, tried that.  https://gitter.im fits in naturally with Github
>> (really sorry for suggesting a new mode of communication everyday) 😅
>>
>> - Jatin Dhankhar
>>
>>
>> On Tue, Apr 11, 2017 at 6:14 AM, Tony Anderson <tony_anderson at usa.net>
>> wrote:
>>
>>> If you are talking about IRC as a place to meet Sugar community members,
>>> use the freenode #sugar. This is probably most active from 8-17 EST
>>> (UTC-5). I am currently in the Philippines which is UTC+ 7.
>>>
>>> Localization of Python activities is done by Pootle, when implemented by
>>> the developer. The developer does something like the following:
>>>
>>>         from gettext import gettext as _
>>>
>>>         self.copy.set_tooltip(_('Copy'))
>>>
>>> In this way, all text displayed is taken from a po file based on the
>>> locale (e.g. en.po or hi.po). This is a simplification as the actual file
>>> is compressed: en.mo, hi.mo. These files are in the activity bundle. The
>>> detail is that when a new version is released, there is a master file:
>>> Paint.pot from which the local language files are built. This needs to be
>>> submitted to translate.sugarlabs.org which maintains a copy. However,
>>> then the localized version needs to be added back to the bundle. However,
>>> the localizations can take months for 100 languages so how synchronize the
>>> po directory with the activity release is difficult.
>>>
>>> The sugar3 vs sugar issue is decided. The community wants to move to
>>> sugar3 (gtk3). The problem is that less that 20% of the activities have
>>> been converted.
>>> The ones that have been converted are low hanging fruit. The unconverted
>>> ones may require intensive work (gimp which developed gtk originally has
>>> not made the conversion).
>>>
>>> One thing you could look at. On activities.sugarlabs,org, can you
>>> determine from Remora where the metadata is stored? I assume a db.
>>> Currently I am thinking to use BeautifulSoup to scrape the site to get that
>>> data, but it would be much easier to access the data directly.
>>>
>>> Yesterday afternoon, the ISP restored service. Last time it died after
>>> two days, but I am keeping my fingers crossed. I am attaching the django
>>> stuff.
>>>
>>> Tony
>>>
>>>
>>> On 04/11/2017 01:36 AM, Jatin Dhankhar wrote:
>>>
>>> Hi Tony,
>>>
>>>
>>>> Normally, we use  <http://chat.sugarlabs.org>http://chat.sugarlabs.org or
>>>> on freenode: sugar-meeting or sugar-newbies. These are logged sites so that
>>>> there is a record. The second is more appropriate since sugar-meeting is
>>>> used for SLOB meetings and the like. The real problem with IRC is time
>>>> zones. Email has the advantage that either party can send or receive at any
>>>> time. Last year with a GSOC mentee we used sugar-newbies by arranging a
>>>> specific meeting time in advance.
>>>
>>> Yes, that is correct, main issue in communication barrier is due to
>>> timezone issues. Since most of the people are familiar and are available on
>>> IRC, it's seems to be the primary channel of communication along with
>>> mailing lists and email. But since you said we can use anything else,
>>> giving Slack a try won't hurt (if issue is about not using closed source
>>> software then IRC is fine, or we can try Mattermost
>>> <https://about.mattermost.com/>).
>>>
>>>  Another part of the process is how to update 'translate.sugarlabs.org'
>>>> with the corresponding POT file to enable localization. We can get help
>>>> from Chris Leonard on this.
>>>
>>>
>>> I am not aware on how localization works. Do we need to download
>>> relevant files and bundle them with the acitvity before making it available
>>> on ASLO ?
>>>
>>> I have my Django version available - but the internet problems here are
>>>> still unresolved. The technician is supposed to make another visit today to
>>>> see what is wrong with our connection. Let me know if and when you think
>>>> this will be useful to you.
>>>
>>> Let me know when your connection is stable and I would start.
>>>  What  are the things you need me to do in the meantime ?
>>>
>>> One open issue is sugar3 vs sugar. Currently two versions of Sugar are
>>>> released. The sugar version supports gtk while sugar3 supports gtk3.
>>>> Unfortunately, gtk3 was developed to be totally incompatible with gtk. For
>>>> example, incorporation of one gtk3 feature requires that all direct and
>>>> indirect references to gtk be removed or the activity will throw an
>>>> exception. Several of the gtk3 conversions failed to meet this test and so
>>>> fail. The issue is whether curated activities be limited to ones converted
>>>> to gtk3. The positive is that Sugar could revert to releasing and
>>>> maintaining only a single version. The downside is that 100 or more
>>>> activities will no longer be available. Specifically, in our implementation
>>>> of ASLO, we need to show which versions of an activity work on which
>>>> versions of Sugar (e.g. i86, arm, amd64, sugar or sugar3, and so on). We
>>>> also need to show which ones support localization. There are many English
>>>> activities and many Spanish activities that make no provision for
>>>> localization. Luckily there are many that have no language component.
>>>> However, for many of these, some kind of help is needed to convey the way
>>>> the activity works.
>>>
>>>
>>> Some people believe GTK3 is slightly better
>>> <https://www.reddit.com/r/linux/comments/3e3q8n/is_there_a_technical_reason_why_gtk3_is_better/> and
>>> I think GTK3 will stay but that should be asked in community and voted upon
>>> and taking in considerations cost of development and porting, only a
>>> discussion will help in this one.
>>>
>>> You are wading into a deep and vast body of water!
>>>
>>> As long as I have something to hold onto, I will not drown 😅
>>>
>>> Thanks,
>>> Jatin Dhankhar
>>>
>>> On Mon, Apr 10, 2017 at 9:11 AM, Tony Anderson < <tony_anderson at usa.net>
>>> tony_anderson at usa.net> wrote:
>>>
>>>> Hi, Jatin
>>>>
>>>> Normally, we use http://chat.sugarlabs.org or on freenode:
>>>> sugar-meeting or sugar-newbies. These are logged sites so that there is a
>>>> record. The second is more appropriate since sugar-meeting is used for SLOB
>>>> meetings and the like. The real problem with IRC is time zones. Email has
>>>> the advantage that either party can send or receive at any time. Last year
>>>> with a GSOC mentee we used sugar-newbies by arranging a specific meeting
>>>> time in advance.
>>>>
>>>> I haven't heard from Walter, but my preference would be to use the
>>>> Sugarlabs server since the content is largely already there and it would be
>>>> easier to make it the official site if that were decided. So in the short
>>>> run, I think you should do whatever is best for your own development
>>>> process.
>>>>
>>>> I am not sure how CI fits into this. If the activity development is
>>>> done on GitHub, then the deployment model is to run setup.py to create an
>>>> xo bundle and then copy that bundle to the appropriate location in the
>>>> download.sugarlabs.org tree. Assuming the update results from a PR,
>>>> the deployer would need to update the activity information on ASLO
>>>> appropriately. However, that process depends on where that data (metadata)
>>>> is stored. Another part of the process is how to update '
>>>> translate.sugarlabs.org' with the corresponding POT file to enable
>>>> localization. We can get help from Chris Leonard on this.
>>>>
>>>> I have my Django version available - but the internet problems here are
>>>> still unresolved. The technician is supposed to make another visit today to
>>>> see what is wrong with our connection. Let me know if and when you think
>>>> this will be useful to you.
>>>>
>>>> I have now tested most of the activities (~400). I was optimistic in
>>>> the number that work out of the box. However, a part of this is running
>>>> them in the Ubuntu version of Sugar (amd64). There are many activities
>>>> which launch object code (mostly c) which is dependent on the architecture.
>>>> I am now trying to repeat the tests on an XO-1.75. One issue on Ubuntu is
>>>> that many activities assume a 1200x900 screen and so on a 1024X768 screen
>>>> overflow. This makes some of the games unusable since part of the controls
>>>> are off the screen. Because of the internet problems, the untested
>>>> activities tend to be new ones since I was using my local repository which
>>>> is a snapshot taken several months ago. The other group are the GCompris
>>>> activities (about 70).
>>>>
>>>> My intent is to build a 'curated' repository of activities known to
>>>> work and be usable on the XO and on Ubuntu (or such other platform that
>>>> Sugar may choose to support). Most of the currently not work activities
>>>> have software dependencies no longer included in the current Sugar release.
>>>> So the curated library will grow as activities are repaired over time.
>>>>
>>>> One open issue is sugar3 vs sugar. Currently two versions of Sugar are
>>>> released. The sugar version supports gtk while sugar3 supports gtk3.
>>>> Unfortunately, gtk3 was developed to be totally incompatible with gtk. For
>>>> example, incorporation of one gtk3 feature requires that all direct and
>>>> indirect references to gtk be removed or the activity will throw an
>>>> exception. Several of the gtk3 conversions failed to meet this test and so
>>>> fail. The issue is whether curated activities be limited to ones converted
>>>> to gtk3. The positive is that Sugar could revert to releasing and
>>>> maintaining only a single version. The downside is that 100 or more
>>>> activities will no longer be available. Specifically, in our implementation
>>>> of ASLO, we need to show which versions of an activity work on which
>>>> versions of Sugar (e.g. i86, arm, amd64, sugar or sugar3, and so on). We
>>>> also need to show which ones support localization. There are many English
>>>> activities and many Spanish activities that make no provision for
>>>> localization. Luckily there are many that have no language component.
>>>> However, for many of these, some kind of help is needed to convey the way
>>>> the activity works.
>>>>
>>>> You are wading into a deep and vast body of water!
>>>>
>>>> Tony
>>>>
>>>>
>>>> On 04/10/2017 12:00 AM, Jatin Dhankhar wrote:
>>>>
>>>> Hi,
>>>> Sorry for the delay. I went through the polls tutorials and I think I
>>>> am getting hang of Django. I have one query that is out of context, what is
>>>> your IRC setup ? IRC doesn't allow message to be delivered or stored once
>>>> either party is offline, people login through a external server for IRC's
>>>> to maintain their availability in a channel. May I suggest something like
>>>> Slack or Flock for communication. IRC is good for quick and fast connection
>>>> but Slack and alternatives allow easy communication. (Just a suggestion,
>>>> though)
>>>>
>>>> Should I  deploy the same polls app on DigitalOcean along with CI
>>>> pipeline and branching model in the meantime with code hosted on Github ?
>>>>
>>>> Thanks,
>>>> Jatin Dhankhar
>>>>
>>>> On Sat, Apr 8, 2017 at 6:28 AM, Tony Anderson < <tony_anderson at usa.net>
>>>> tony_anderson at usa.net> wrote:
>>>>
>>>>> Hi, Jatin
>>>>>
>>>>> I abbreviated this thread because I am getting complaints from the
>>>>> list that the emails are too long.
>>>>>
>>>>> Yesterday, I was able to complete a set of 25 activities to use as a
>>>>> test base. The Django app now has two views. First is a display of all of
>>>>> the
>>>>> activities with the icon and name. A link for each opens the full
>>>>> activity page. The data for the views is in a file which is a list of
>>>>> jsons, one json per line.
>>>>> The  views.py reads this file and builds the view from the jsons.
>>>>>
>>>>> So the app consists of:
>>>>>     urls.py
>>>>>     views.py
>>>>>     templates/
>>>>>         base.html
>>>>>         list.html
>>>>>         activity.html
>>>>>
>>>>> with the data:
>>>>>         fixtures/activities.json
>>>>>         icons/
>>>>>         xo/
>>>>>
>>>>> The icons directory has the activity icons (*.svg)
>>>>> The xo directory has the activity bundles (*.xo)
>>>>>
>>>>> Meanwhile, I am having more troubles with the ISP (a new one). When
>>>>> that gets resolved, I should be able to send the above to you.
>>>>>
>>>>> I have also mentioned our dialog to Walter Bender suggesting that you
>>>>> could set up your working model as activities3.sugarlabs.org. This
>>>>> would give you a permanent place to do the development and make your
>>>>> project visible to the community so that we can obtain feedback. I aslo
>>>>> suggested that the project repository could be placed on GitHub so that
>>>>> again the community can comment and potentially contribute.
>>>>>
>>>>> Tony
>>>>> On 04/07/2017 12:23 AM, Jatin Dhankhar wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I am setting up Django now and going through some tutorials. I will
>>>>> setup the code with a very basic and barebones version of what we want to
>>>>> achieve and put it in a private repo. We can even host it online, since I
>>>>> have some DigitalOcean credit left. Will keep you posted.
>>>>>
>>>>> Thanks.
>>>>> Jatin Dhankhar
>>>>>
>>>>> On Thu, Apr 6, 2017 at 7:11 AM, Tony Anderson <
>>>>> <tony_anderson at usa.net>tony_anderson at usa.net> wrote:
>>>>>
>>>>>> Hi, Jatin
>>>>>>
>>>>>> In setting up Django, I think you will do it on your computer not on
>>>>>> a separate server. Django handles that through its own server and has
>>>>>> sgqlite as a database built-in. A good first start would be to set up the
>>>>>> tutorial app ( <https://www.djangoproject.com>
>>>>>> https://www.djangoproject.com/). Essentially you will need to
>>>>>> install django and then set up the tutorial app 'poll'. Working through
>>>>>> this tutorial will help a lot later on. The key point is that after initial
>>>>>> setup, there are three important elements: url.py which defines the urls to
>>>>>> access the application, views.py which is the python code that responds to
>>>>>> a request by accessing the db and delivering the relevant information to a
>>>>>> template. The template is an html file with variables of the form {{
>>>>>> activity.name }} transferring information from the view to the
>>>>>> template.
>>>>>>
>>>>>> What I have is an application: aslo. Once you have Django installed
>>>>>> and have run the tutorial app through Django's server, you'll be ready.
>>>>>> Essentially, you will only need to add aslo as a second app in the
>>>>>> settings. One possible confusion is that DJango lives in a project -
>>>>>> essentially a directory containing its manage.py admin interface. In the
>>>>>> directory is another directory of the same name with the settings.py and
>>>>>> url.py. The poll app is a directory in the top-level alongside the inner
>>>>>> directory with the project name.
>>>>>>
>>>>>> For example, my project is schoolsite. So my setup looks like:
>>>>>>
>>>>>> /library/schoolsite/schoolsite
>>>>>> /library/schoolsite/aslo
>>>>>>
>>>>>> Meanwhile my code links directly to an activity page with no index.
>>>>>> I'll add an index so the essential structure will be there. I'll also
>>>>>> include the 'fixtures' to set up a 25 activity capability. Fixtures are csv
>>>>>> files from which the database (metadata) can be loaded.
>>>>>>
>>>>>> Tony
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
> _______________________________________________
> ASLO mailing list
> ASLO at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/aslo
>
>


-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
<http://www.sugarlabs.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/aslo/attachments/20170412/ebe3d3cb/attachment-0001.html>


More information about the ASLO mailing list