Integration with GitHub

76 views
Skip to first unread message

Ana Ribeiro

unread,
Nov 25, 2015, 5:27:31 PM11/25/15
to app-inventor-o...@googlegroups.com
Hi there, 

I was thinking about a project, that is integrating AppInventor with GitHub repositories; as there is in eclipse, I think that should be a menu there like "team" with sub-options like "commit, pull, push, etc". It would facilitate the work of the teams using AppInventor (As a mentor and ambassador of Technovation, I really would like to have something like that, because the girls to share code some times have to do a common Google Account for the team), and would foster the open source culture on the users (because they would know this amazing website since their first project). 

What do you think about that? How hard it would be to implement? 

Regards,
Ana

Jos Flores

unread,
Nov 25, 2015, 5:51:37 PM11/25/15
to app-inventor-open-source-dev

Hi Ana,

It's a great idea. It doesn't have to be github, but any kind of source code version control would be a great win.

I'd be a bit concerned about tasks such as commit or pull, because they need an understanding of those concepts, which are rather difficult to grasp at first. If that complexity could be abstracted out somehow, it could work better.

There might be also certain issues if people have direct access to the code in text form, if they make manual changes and try to upload it again, and it doesn't work because of errors and so forth.

In any case, it's a great idea. I would start thinking about simplifying it to be as simple as possible, and maybe experimenting with a real project by uploading the scm and blk files to github, then making a few changes and pushing again... See how the diffs behave.

--------------------------------------------
mobile. brevity.typos.cheers

--
You received this message because you are subscribed to the Google Groups "App Inventor Open Source Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to app-inventor-open-so...@googlegroups.com.
To post to this group, send email to app-inventor-o...@googlegroups.com.
Visit this group at http://groups.google.com/group/app-inventor-open-source-dev.
For more options, visit https://groups.google.com/d/optout.

Mark Friedman

unread,
Nov 25, 2015, 6:20:03 PM11/25/15
to App Inventor Open Source Development
I also think that it would be a great project!  You would basically want to automatically extract the files in the exported .aia files (which are in Zip format) and push them to git and then regenerate .aia files when you pull them back.

As José alludes to I would be worried about the ability for git to properly diff and merge changes to the .scm and .blk files which represent the textual form of the visual program.  One thing that I might suggest is to reformat the .scm files, since they currently have the entire JSON on a single line, which I imagine git would have difficulty merging.

-Mark

Ana Ribeiro

unread,
Nov 28, 2015, 4:21:01 AM11/28/15
to App Inventor Open Source Development
Hi Josmar,

I suggested GitHub because I think that this site and Git are far, far way the most used today and the one used by AppInventor. I that we could use other control version systems (such as Mercurial) and other websites (such as bitbucket or the own repository of an organization) but I think we should start with GitHub.

About "pull, merge, commit, etc." I think that it could be abstracted in two concepts "Synchronize code" (pull) and "Send to repository" (commit + push), and if there was a merge conflict, it could have two options "keep the original code" or "Sincronize in any way" (after taking a look in the new project), and a button like advanced options, some more advanced merge options.

Regards,
Ana

Jos Flores

unread,
Nov 28, 2015, 5:56:47 AM11/28/15
to app-inventor-open-source-dev

Hi Ana,

Sounds like a good way to start thinking about it. If you start documenting you're design in a brief design proposal, it'll help by getting you to think a bit deeper about some of the design decisions and possibilities, and their implications. I would at the same time start experimenting with small prototypes. As Mark mentioned, the current app source files might not be in the better format/layout for source control, but the way they are stored could be changed if it makes sense to do so.

--------------------------------------------
mobile. brevity.typos.cheers

--
Message has been deleted

Imrich Valach

unread,
Jul 25, 2017, 10:48:29 AM7/25/17
to App Inventor Open Source Development
Any developments on this idea? Have you made some further steps? I would love to see this materialize and I am definitely available to help.

I am currently prototyping open source software via MIT AI2 and being able to allow people to contribute would be essential for further development. This will allow also people from non-tech backgrounds or children collaborate on projects. 

Anybody here who can comment whether MIT App Inventor team is exploring these possibilities?
To unsubscribe from this group and stop receiving emails from it, send an email to app-inventor-open-source-dev+unsub...@googlegroups.com.

Evan Patton

unread,
Jul 25, 2017, 11:59:27 AM7/25/17
to App Inventor Open Source Development
Internally we have discussed some sort of git-like interface for projects. However, the big challenge (and possibly Ph.D. thesis level challenge) is how to manage the diffs between steps in the designer/blocks and how to present conflicts in such a way that it is (1) easy for a student to understand what is in conflict and (2) clearly identify how to resolve the conflict. As far as I'm aware, there isn't much work in this space but I haven't done any formal review of the literature. Git treats lines as the minimum unit whereas the blocks span many lines and the designer is serialized as a single line, so the internals would also be tricky and require some refactoring of App Inventor as well.

Evan

Ana Ribeiro

unread,
Jul 25, 2017, 6:26:43 PM7/25/17
to app-inventor-o...@googlegroups.com
Hello,

I have done some exploration on this theme, and I wrote a proposal for last year's GSoC, which is right here: https://docs.google.com/document/d/1-X6AQNNs4Psab4IA55qclykSGRes4zfDe6ASbuYzwFI/edit (maybe it will bring some insights to you). I was accepted to GSoC, but unfortunately they made me do a new proposal about an interface problem.

Back then, we even didn't talk about diff, the biggest problem was to make a perfect integration, like a google docs thing, but it wasn't my intention back then. I agree that git concepts (such as pull, push, merge) aren't that easy for understanding, but they are really necessary when programmers wish to work as team, and I think that they should be introduced since the first steps of development. I made a proposal for a first version of this (like, always force a commit, and not deal with conflicts, for instance, because when it happens in dropbox sharing, it happens like this) and year by year increment some step to do a kind of diff and discover which is the best way to introduce those concepts to students.

Regards,
Ana

Evan
To unsubscribe from this group and stop receiving emails from it, send an email to app-inventor-open-source-dev+unsubs...@googlegroups.com.

To post to this group, send email to app-inventor-o...@googlegroups.com.
Visit this group at http://groups.google.com/group/app-inventor-open-source-dev.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "App Inventor Open Source Development" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/app-inventor-open-source-dev/PYO0NP-J1BU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to app-inventor-open-source-dev+unsub...@googlegroups.com.
To post to this group, send email to app-inventor-open-source-dev@googlegroups.com.
Visit this group at https://groups.google.com/group/app-inventor-open-source-dev.

For more options, visit https://groups.google.com/d/optout.



--
Reply all
Reply to author
Forward
0 new messages