I believe the plan is that GitHub is the source repository for the
activities and git is used to
maintain version control. Activities are published to ASLO with the
bundles built by setup.py.
As in most uses of git, a new bundle requires the version number to be
incremented with the corresponding git tag.
In this way, earler versions could be recreated as needed to reproduce
reported problems.
How to handle activities across the different supported environments
needs discussion. For the XO, the primary issue was storage
space. The current technique is to provide binaries for the supported
platforms with a software test in the activity to determine where it
is being run. This is elegant but expands the size of the bundle. In one
case, I saw that the 32 bit binaries took 15MB and the 64 bit binaries took
30MB. On the other hand, it is likely that newer platforms will not be
storage limited.
There are two forms of activities: Python and Web. In general these will
run on all systems. The problem is the use of binary modules (often
compiled C code).
The more serious problem is the changing content of Sugar itself. Many
activities currently fail because Sugar no longer includes modules such
as hulahop or abiword. The developers would like all activities to be
ported from GTK2 to GTK3 to reduce the duplicate code included in Sugar.
However, there are currently over 300 activities in ASLO that would need
to be converted.
Tony
On 04/20/2017 03:23 AM, D. Joe wrote:
So, is the idea here to add new git tags, for example:
https://github.com/sugarlabs/write-activity/releases
to keep the tags in line with the value of activity_version as changed, for
instance, in
this commit:
https://github.com/sugarlabs/write-activity/commit/b95f2901941c0cff871124e042c76e4340517ebb
for the file activity.info
https://github.com/sugarlabs/write-activity/blob/master/activity/activity.info
??
Just trying to get a handle here on how this is to be tracked and
maintained, how.
Do we increment activity versions with each commit? I see some activities
hosted on github have something of a branch structure, but its not clear to
me if or how one would use this to differentiate between things that match
the ASLO versions versus those that have diverged from what's on ASLO.
I have no great background in release engineering, but it would make sense
to me to have, eg, 'master' contain only sets of commits that correspond
with things that have been put on ASLO, and a "development" branch (or
whatever name) which gets tagged with the next, upcoming version number and
continues to diverge from ASLO until such time as it gets merged back into
"master", ASLO gets updated, and the version number in "development"
incremented.
Or maybe there should branches, one for each platform? This is the point at
which a "sugarizer" branch might be able to accomodate activities targeted
at that platform, but still share, eg, design elements with the desktop
activity, perhaps? Would, then, an "ASLO" branch track only what runs on
XOs? Or should each model get its own branch so we know what runs on what?
Would each GNU/Linux distro get its own branch, eg "fedora-27"?
On the one hand, I'm very leery of the latter approach because there's
already such a proliferation of ... stuff in the broader Sugar community.
On the other hand, this is just an attempt to figure out how to make some
sense of what is already out there using some of the tools at hand meant
specifically for managing development complexity.
_______________________________________________
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel