Developers: Migration to Git and GitHub.com

This is a development-specific announce.

As part of the effort to help volunteer participate to this project, I just finished the migration of all our development resources to Git and GitHub.com

aos_github

You can now reach it using this the default development address: http://dev.artofsequence.org
Or you can get directly to the GitHub account for Art Of Sequence projects: http://github.com/artofsequence

The following is some details about what changed.

Repository Split

Until recently, all different AOS projects were gathered in one unique repository for convenience. This wasn’t a problem so far but some of the projects are really related only by the use of a common format (AOSL). For example, if you want to use AOS Web Player (which is written in Javascript only) in your own website, you have to get both AOSWP and AOS Designer and other tons of unrelated C++ code to get it.

I split the different projects in their own repositories to make them usable separately by developers (web developers can focus on AOSWP, tool devs can focus on AOSD). However, for people interested to work on all the projects at the same time, and to allow setting up continuous integration int the future, I have set a “super” repository which gather all repositories  I’m not sure yet if it will be completely useful- I fear that committing changes which imply different repositories can feel like heavy work- but I believe that we still need the separation of projects, so we’ll see how it goes.

One thing to note is that for C++ based projects, I’ve setup CMake to look for directories of dependencies as path options. It’s not the best way to check dependencies with CMake. Another better way would be to write “find_package” scripts for the different C++ based AOS projects. However I miss time and knowledge to setup such a thing and it’s not yet a big issue, so I’ll just let it like that for now. As always, participation to help fix this are welcome. For non-CMake based projects, like the JavaScript ones, I’m not sure yet how to proceed. Maybe still use CMake?

From Mercurial to Git

Contrary to a lot of people I am not a fan of Git. I prefer Mercurial for both historical (worked far better on Windows) and interface reasons (I like TortoiseHg Workbench and shell commands are far more intuitive to me than with Git). I use Mercurial in my other personal projects.

However, a lot of developers are using Git these days and a lot of them also expose their open source projects on GitHub. It is not very important for AOS to be using either Git or Mercurial, but it is important to expose the projects better to people willing to participate and provide pull requests using their usual tools.

I am also taking the opportunity to learn Git more deeply as I only used it for participating in other open source projects so far.

On the technical side, the split of repository made hard to convert the old repositories to the new ones. As no one other than me is currently really working on this project, I decided to just forget about conversion and put the last version of the code into clean new repositories. This mean that there is no history kept from the old repositories (which clones are available on bitbucket.org). I don’t think it will have an impact for future developers.

To GitHub.com

I first setup the development resources on Google Code but was not entirely satisfied by it, in particular because of the lack of pull-request management. I then moved the repositories to BitBucket.com but then was not happy with other features like issues management. I then decided to move wiki and issues to Atlassian products, Jira and Confluence, and got open source license for them. I spent some time migrating data there, but was not happy with the over-complicated configuration that is sometime hard to find. I then considered hosting a Redmine instead, but was not happy with having to manage the hosting myself (that being said, I don’t mind for private projects).

Then I decided to try GitHub.com both to hold repositories (switching to Git to help people using it participate) and documentation (using wikis with markdown syntax). I am not 100% happy with all GitHub features, but it’s still far simpler than Jira/Confluence to manage and it’s far enough for the current state of the project.

Don’t get me wrong, I like both RedMine and Jira for managing projects, but at the moment they feel overkill and GitHub seem not. Which is why I decided to go for it for now. I think that maybe if the project grows a lot in the future, switching to Jira might be a good idea, but not now.

Documents and Issues

As stated in http://dev.artofsequence.org , each project repository have a wiki associated for specific documentation. The super-repository also have a wiki but it’s for general documentation, like the coding convention for example.

Most documents have not been modified other than formatting (they are now using Markdown) but I took the time to make up to date some of the design documents. For example. See the history to see the changes.

I have also imported and added issues related to each projects. If you want to participate, one way is to look at the issues currently identified and try to help with them. I think there is only some missing information on AOS Designer as it needs more UI-design related documentation.

What’s Next?

A lot of work is still going on in the coming days:

  • this website texts will be updated with more clear and explicit explanations about what is Art Of Sequence – I’m working on the texts right now;
  • I am also redacting the explanation of how AOSL 1.0 work, and the specification document too;
  • some work related to AOSL have been initiated: experimentation on some future AOSL 1.1 features (see this discussion for more details) and specifications for a AOSL-based format which would be an archive file (Zip or whatever) which would contain both AOSL and resources (images, audio, etc.) in the same file – as requested by some interested people;
  • I’m preparing some drawings to explain how AOS Designer 0.1 should look like on the UI side;
  • hopefully I’ll be able to get back to AOS Designer code to fix nasty bugs and properly finish v0.1 in the coming weeks (but don’t expect any release date for now);
  • I’m considering opening a forum soon, for feedback and discussions;