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

Tony Anderson tony_anderson at usa.net
Sun Apr 2 00:28:39 EDT 2017


Hi, Jatin

The most important thing to keep in mind is that ASLO manages a library 
of independent programs (Sugar activities). These are updated 
asynchronously from the Sugar releases. Sugar is in desperate need of 
build management - as best I can tell at the moment we have none. 
However, this problem does not directly apply to the activities.

The 'build' process for the activities is accomplished by 'python 
setup.py dist_xo' executed in the bundle root. The generated xo file is 
then 'deployed' to the appropriate directory in download.sugarlabs.org 
as the latest version.


Since development time in GSOC is limited, it is critical to define a 
doable project. In my experience proposals set unachievable expectations 
and result in partially complete and disappointing results.

Improve look/theme of ASLO - Naturally, this should be done in the 
context of the project.

Maintain ASLO - I am proposing that this project build a replacement for 
ASLO which can be used immediately offline by school servers. During the 
GSOC period, the community should be expected to judge whether the 
development forms a base for future replacement of ASLO.

Add recommendation engine - I think this is a distraction. How can a 
program know the interests and needs of a user to provide a useful 
recommendation? I also think the Review system is a distraction. The 
problem is that no reviews come from actual users of the activities but 
are similar to the sponsored reviews at Amazon. A better approach would 
be to strengthen the tags/collections/category system.

Improve Transactional emails - I think this is also a distraction. The 
user communication is clicks on links. The response is public.

So I would propose something like:

         - develop a new ASLO as activities3.sugarlabs.org based on 
Django (to this end I can supply my current minimal working version).

         - the new version assume the master source repository is github 
and that bundles are installed and updated via setup.py from github
             (the build and deployment methodologies). This means the 
new system does not need to implement the Developer Hub.

         - the core activities (Journal, Record, Log, Terminal, Write, 
Jukebox, Image Viewer, Browse, and Read) be excluded from ASLO and 
handled through the                 Sugar release cycle). These 
activities are installed in a Sugar release and the ability to erase 
them is disabled.

         - for simplicity, the initial version could be limited to two 
templates: an index page showing icons and names of activities and a 
page per activity with the download button.

         - There should be a simple and transparent 'CRUD' capability 
for the metadata - perhaps in the first commit based on Django's admin 
feature. I think the first commit db could consist of a single table: 
one row per activity.

         - Do whatever can be done to improve the attractiveness of the 
site.

         - Do not base development on emulation of any other project: 
Mozilla add-ons or Play Store or .... Certainly the project can and 
should be take inspiration                 from any source. However, it 
will be enough to attempt to provide the essential current functionality 
of ASLO.

What I visualize is the project be installed on github at the point of a 
first working commit. The project could then be installed as 
activities3.sugarlabs.org for community testing and advice. Development 
would be using git locally using localhost or a local server. Commits 
would be pushed to GitHub at appropriate points in the development and 
the resulting version would then be used to update the online version. 
The project would work with the current download.sugarlabs.org as the 
source of bundles. (therefore, keeping the addition of activities to 
GitHub as a separate project).

Keep in mind, I am speaking for myself. While, if your project were 
selected, I would probably be a mentor - this gives me no special voice 
in the selection. Normally we have several proposals for each available 
slot and many worthy proposals are not selected.

Tony

On 04/01/2017 09:29 PM, Jatin Dhankhar wrote:
> Hi Tony,
>
> I think the same, as per commit history project didn't get much 
> attention recently.
>
>     The website itself is implemented in PhP and is patterned after
>     the Mozilla addons site.
>
>
> Yes, the README mentions it's based upon 
> Remora(http://wiki.mozilla.org/Update:Remora ) which old and 
> deprecated now in favor of AMO (https://wiki.mozilla.org/AMO:Developers) .
>
>     At the moment I am trying to find out which of the activities
>     actually work in the current release of Sugar. The library
>     currently has about 600 activities. A Sugar activity is intended
>     to be self-contained (any dependencies not satisfied by Sugar are
>     to be incorporated in the bundle).
>
>
> I think it's a moonshot but I am thinking to include a testing suite 
> to determine whether a current version builds against a certain sugar 
> version by using a CI or something like  OpenSuse's QA 
> (http://open.qa/) for more comprehensive suite.
>
>     How this will be done is a mystery to me. Logically, each of the
>     versions of an activity should be commited in git so that a
>     developer (or maintainer) can the changes made over time.
>
> Yes, that seems right thing to do, last year Arch Linux shifted all 
> their AUR packages to a git backend, maybe they can help, I can try 
> finding persons who carried out the transition.
>
>     If you look at the ASLO site, it seems clear that the page needs
>     to specify more than which versions of Sugar are supported. It
>     will need to specify which models of the XO are supported. It will
>     also need to mention any restrictions on architecture or
>     peripherals needed for the users system (microphone, camera,
>     network connection - wired or wireless, and so on). 
>
>
> Yes more like a Manifest, similar to what Play Stores does for Android.
>
>      My plan is to use Django (which enables code to be in Python and
>     not PhP). The school server already provides sqllite, mariadb, and
>     postgresql so db support is readily available. Django is designed
>     to support fusion - creating web pages dynamically based on
>     information from a db and so should match the requirement.
>
> Yes, re-write seems a reasonable choice. One thing that I am curious 
> is that current repo suggests that it's is a mix of Python and PHP and 
> going full python would be a great move, in my opinion.
>
>
>     Just for further background. Many deployments I work with have no
>     access to the internet. To provide an alternative, I support a
>     school server which XO users can access by wifi in the classroom
>
> I think point makes a strong case for easily replicable instances of 
> ASLO with little to no configuration on the user side, which means we 
> need to make a simple and consistent build process so that users can 
> run their own versions of  ASLO easily. Docker is a option worth 
> looking into.
>
>     I hope you will consider this challenging and not discouraging.
>
> Yes, I find it equally challenging and interesting.
>
> I made a proposal ASLO that shares some of the concerns that you 
> discussed . Kindly take a look and let me know what do you think of 
> it. Here is the proposal link 
> https://docs.google.com/document/d/1wECi_gtxyar3MWbC8ly6bjdW8SSLYe5YNcXPiTUUlkg/edit?usp=sharing
>
>
> Thanks,
> Jatin Dhankhar
>
> On Sat, Apr 1, 2017 at 3:20 PM, Tony Anderson <tony_anderson at usa.net 
> <mailto:tony_anderson at usa.net>> wrote:
>
>     Hi, Jatin
>
>     The ASLO site is in desparate need of work. At the moment I am
>     trying to find out which of the activities actually work in the
>     current release of Sugar. The library currently has about 600
>     activities. A Sugar activity is intended to be self-contained (any
>     dependencies not satisfied by Sugar are to be incorporated in the
>     bundle). Naturally, an activity should work on any Sugar. However,
>     this situation is becoming very complicated. First, two of the XO
>     models (1 and 1.5) have Intel 32 bit architecture processors. The
>     others (1.75 and 4) have Arm processors. Some of the activities
>     incorporate binary modules which limit their use. The Sugar
>     community wishes to support Sugar on a range of platforms. For
>     mobile devices, Lionel Laske is developing Sugarizer. While
>     traditional activities were implemented in Python (with some
>     binary exceptions using Java or C), Sugarizer activities are
>     written in Javascript (HTML5 and CSS). Naturally a trend in modern
>     computers is to 64 bit architecture (AMD 64).
>
>     The website itself is implemented in PhP and is patterned after
>     the Mozilla addons site. It has a repository of activity bundles
>     (.xo files) which is visible at http://download.sugarlabs.org.
>     Each activity has an 'add-on' id (4000-4999 at the moment).
>     Versions of activities are numbered beginning with 1 and
>     incrementing by 1 with subsequent versions. So the directories in
>     ASLO contain bundles for multiple bundles with the highest
>     numbered version considered the latest. In addition to the bundle,
>     the site contains metadata which is displayed in the pages devoted
>     to an activity. I suspect this metadata is stored in a database
>     but I haven't investigated to find out the details.
>
>     In the meantime, Sugar Labs has decided to create a repository for
>     activities in github. The reasoning appears to be that this will
>     make it easier for the community to undertake ongoing development
>     and maintenance of these activities. Currently, the ASLO site has
>     a 'developer hub' which allows registered users to add or update
>     their own activities. This function will need defined and moved to
>     github.
>
>     How this will be done is a mystery to me. Logically, each of the
>     versions of an activity should be commited in git so that a
>     developer (or maintainer) can the changes made over time. Also,
>     some method is needed to manage over 600 additional repositories
>     in the Sugar Labs github.
>
>     If you look at the ASLO site, it seems clear that the page needs
>     to specify more than which versions of Sugar are supported. It
>     will need to specify which models of the XO are supported. It will
>     also need to mention any restrictions on architecture or
>     peripherals needed for the users system (microphone, camera,
>     network connection - wired or wireless, and so on).
>
>     Over time, Sugar has dropped many packages which were ordinarily
>     included. This has rendered many of the activities currently
>     unusable. For example, Sugar switched from a browser based on
>     hulahop to one based on WebKit. Some effort will be needed to
>     update activities using hulahop to use WebKit. Sugar Labs hopes
>     that activities will be ported to GTK3 (called sugar3) from the
>     original GTK (sugar). If this can be accomplished, the size and
>     complexity of Sugar can be significantly reduced.
>
>     I hope you will consider this challenging and not discouraging.
>
>     Just for further background. Many deployments I work with have no
>     access to the internet. To provide an alternative, I support a
>     school server which XO users can access by wifi in the classroom.
>     My hope is to provide a version of ASLO on the school server which
>     will give these users the ability to install any of the activities
>     they choose and for which their XO has storage capacity. That
>     capability exists now (and has for some years). However, the
>     selection is basically a list of activities by name and does not
>     provide the metadata descriptions found on the ASLO pages. My plan
>     is to use Django (which enables code to be in Python and not PhP).
>     The school server already provides sqllite, mariadb, and
>     postgresql so db support is readily available. Django is designed
>     to support fusion - creating web pages dynamically based on
>     information from a db and so should match the requirement.
>
>     Tony
>
>     On 04/01/2017 04:00 PM, Jatin Dhankhar wrote:
>>     Hi Tony,
>>
>>         There are two major elements to Sugar. The desktop interface
>>         - Sugar and the activities. ASLO is a library of these
>>         activities. Build only applies to Sugar.
>>
>>         For a non-XO version of Sugar, there are two easy choices:
>>         SOAS and Sugar on Ubuntu. For Ubuntu, install 14.04 or more
>>         recent version (I am using 16.04) and execute sudo apt-get
>>         install sucrose. For SOAS, download the image and dd it to a
>>         usb stick. It works as a livecd. 
>>
>>
>>     Thank you for all the information :)
>>
>>         Make Your Own Sugar Activities!
>>         By James Simmons
>>         <http://www.lulu.com/shop/search.ep?contributorId=739770>
>>
>>         Make sure to get the second edition.
>>
>>     Specially the book, it's very detailed and comprehensive.
>>
>>         Another alternative is to build the 'development
>>         environment'. This environment is intended for developers who
>>         are working directly on PRs for Sugar modules. 
>>
>>
>>     Yes, I am looking to build the 'development environment',
>>     specially the ASLO server but I am facing some issues. since
>>     sphinx is very old and cannot be compiled (using make) properly.
>>     Wanted to know if there is someone who maintains the ASLO and
>>      can answer this specific query, related to building ASLO locally
>>     and getting started on it
>>
>>     Thanks,
>>     Jatin Dhankhar
>>
>>     On Sat, Apr 1, 2017 at 6:31 AM, Tony Anderson
>>     <tony_anderson at usa.net <mailto:tony_anderson at usa.net>> wrote:
>>
>>         Hi Jatin,
>>
>>         There are two major elements to Sugar. The desktop interface
>>         - Sugar and the activities. ASLO is a library of these
>>         activities. Build only applies to Sugar.
>>
>>         For a non-XO version of Sugar, there are two easy choices:
>>         SOAS and Sugar on Ubuntu. For Ubuntu, install 14.04 or more
>>         recent version (I am using 16.04) and execute sudo apt-get
>>         install sucrose. For SOAS, download the image and dd it to a
>>         usb stick. It works as a livecd.
>>
>>         Another alternative is to build the 'development
>>         environment'. This environment is intended for developers who
>>         are working directly on PRs for Sugar modules.
>>
>>         In deploying Sugar, the only fully supported platform is the
>>         XO. The Ubuntu Sugar appears not to connect to networks and
>>         omits some of the essential activities. These are the
>>         essential eight: Browse, Record, Jukebox, Terminal, Log,
>>         Write, Read, and Image Viewer. Several of these such as
>>         Record provide access to hardware features of the platform
>>         such as the camera and microphone. Naturally, these are more
>>         difficult to support on general platforms.
>>
>>         There are two programming environments for Sugar activities:
>>         Python and Javascript. HelloWorld and HelloWeb are simple
>>         examples of activities in Python and Javascript,
>>         respectively. There is an excellent text available for
>>         download online:
>>
>>         Make Your Own Sugar Activities!
>>         By James Simmons
>>         <http://www.lulu.com/shop/search.ep?contributorId=739770>
>>
>>         Make sure to get the second edition.
>>
>>         Tony
>>
>>         On 04/01/2017 12:00 AM, aslo-request at lists.sugarlabs.org
>>         <mailto:aslo-request at lists.sugarlabs.org> wrote:
>>>         Send ASLO mailing list submissions to
>>>         	aslo at lists.sugarlabs.org <mailto:aslo at lists.sugarlabs.org>
>>>
>>>         To subscribe or unsubscribe via the World Wide Web, visit
>>>         	http://lists.sugarlabs.org/listinfo/aslo
>>>         <http://lists.sugarlabs.org/listinfo/aslo>
>>>         or, via email, send a message with subject or body 'help' to
>>>         	aslo-request at lists.sugarlabs.org
>>>         <mailto:aslo-request at lists.sugarlabs.org>
>>>
>>>         You can reach the person managing the list at
>>>         	aslo-owner at lists.sugarlabs.org
>>>         <mailto:aslo-owner at lists.sugarlabs.org>
>>>
>>>         When replying, please edit your Subject line so it is more specific
>>>         than "Re: Contents of ASLO digest..."
>>>
>>>
>>>         Today's Topics:
>>>
>>>             1. ASLO build and deployment process (Jatin Dhankhar)
>>>
>>>
>>>         ----------------------------------------------------------------------
>>>
>>>         Message: 1
>>>         Date: Fri, 31 Mar 2017 16:57:58 +0530
>>>         From: Jatin Dhankhar<dhankhar.jatin at gmail.com> <mailto:dhankhar.jatin at gmail.com>
>>>         To:aslo at lists.sugarlabs.org <mailto:aslo at lists.sugarlabs.org>
>>>         Subject: [ASLO] ASLO build and deployment process
>>>         Message-ID:
>>>         	<CAD+LdAF26TWi9uPP0pPZPTFWm3L5HF3=ubc4_TBY9O8v_e=T1Q at mail.gmail.com>
>>>         <mailto:CAD+LdAF26TWi9uPP0pPZPTFWm3L5HF3=ubc4_TBY9O8v_e=T1Q at mail.gmail.com>
>>>         Content-Type: text/plain; charset="utf-8"
>>>
>>>         Hi,
>>>
>>>         I have few questions about how ASLO is actually build and deployed in
>>>         production. Build process is carried out by using Fabfile, I tried using
>>>           it and was not successful in building the sphinx ( since version used is
>>>         0.9.9.rc2 and current series is 2.x).
>>>         Relevant pull request and issue
>>>         PR ->https://github.com/sugarlabs/aslo/pull/2
>>>         <https://github.com/sugarlabs/aslo/pull/2>
>>>         Issue ->https://github.com/sugarlabs/aslo/issues/1
>>>         <https://github.com/sugarlabs/aslo/issues/1>
>>>
>>>         I am using Arch Linux and have installed all the necessary dependencies for
>>>         development including mysql and postgres development libraries along with
>>>         common development libraries. If anyone can point on how to successfully
>>>         build the project that would help a lot.
>>>         Some thread points out upgrading to new version of Sphinx but I wanted to
>>>         mirror the current instance.
>>>         Also project mentions something about Remora
>>>         https://wiki.mozilla.org/Update:Remora
>>>         <https://wiki.mozilla.org/Update:Remora>  and wiki says it's no longer
>>>         maintained.
>>>         It quotes
>>>
>>>>         Remora is no longer maintained. See AMO:Developers
>>>>         <https://wiki.mozilla.org/AMO:Developers>
>>>>         <https://wiki.mozilla.org/AMO:Developers>.
>>>         Also wanted to know more about how ASLO is deployed in production. What
>>>         techniques are used ? What are the pain points that need to be addressed
>>>         and tips on how to get started with it. If anyone is familiar with ASLO or
>>>         a long time maintainer, can they point out on how to reproduce a successful
>>>         build of ASLO (a documentation on how to run would be awesome)
>>>
>>>         Thanks,
>>>         Jatin Dhankhar
>>>         -------------- next part --------------
>>>         An HTML attachment was scrubbed...
>>>         URL:<http://lists.sugarlabs.org/archive/aslo/attachments/20170331/12204ccc/attachment-0001.html>
>>>         <http://lists.sugarlabs.org/archive/aslo/attachments/20170331/12204ccc/attachment-0001.html>
>>>
>>>         ------------------------------
>>>
>>>         Subject: Digest Footer
>>>
>>>         _______________________________________________
>>>         ASLO mailing list
>>>         ASLO at lists.sugarlabs.org <mailto:ASLO at lists.sugarlabs.org>
>>>         http://lists.sugarlabs.org/listinfo/aslo
>>>         <http://lists.sugarlabs.org/listinfo/aslo>
>>>
>>>
>>>         ------------------------------
>>>
>>>         End of ASLO Digest, Vol 84, Issue 1
>>>         ***********************************
>>         _______________________________________________ ASLO mailing
>>         list ASLO at lists.sugarlabs.org
>>         <mailto:ASLO at lists.sugarlabs.org>
>>         http://lists.sugarlabs.org/listinfo/aslo
>>         <http://lists.sugarlabs.org/listinfo/aslo> 
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/aslo/attachments/20170402/243e60e0/attachment-0001.html>


More information about the ASLO mailing list