Monday, March 02, 2009

Student's guide on using mercurial - Working outline

We are writing a student guide that will help first year students to deal with the concepts of Version Control Systems. We have chosen mercurial as the tool that we will use for our practical examples since we know how easy and powerful it is.

This user guide will help students from CS programs since at some point they have to deal with versioning control systems in some of their courses and later on when they reach the development world after graduation.

We believe that there is a knowledge gap in our school and learning the concepts and the tools as students will empower us to contribute in a better manner in school and in the real world.

Here is the working outline which we have divided into the theoretical concepts involved and the practical examples. We also see the need to help students not to depend on their schools' infrastructure by giving them tricks on different ways to set their own setups.

By the way, which discussion group would you suggest me to use if I want to ask how you guys use mercurial and how you manage your patches, merges and others?

Let's the learning begin!

WORKING OUTLINE

SECTION 1 – THEORY PART
  1. Introduction
    Introduce readers to purpose of paper
  2. What version control systems are
    Explain that they are used mainly for source code
    1. File locking and versions merging
      Explain the differences between them. We are going to explain the second one
    2. What a distributed VCS is
      Explanation
    3. Advantages over non-distributed
      Explain the advantages
  3. VCS concepts
    1. Versioning
    2. Diffs
    3. Patches - Reviews
    4. Branching
    5. Merging
  4. Use of VCS in school
    Find what are good reasons to for students to use it
    1. Assignments
      Many students have done collaboratively assignment without VCS
    2. Real world experience
      Explain why using VCS early as a student is helpful to the reality of developers

SECTION 2 – PRACTICAL PART
  1. Work on bugs - Lifecycle of a healthy patch
    Explain few scenarios from developers’ workflow
  2. Mozilla and Seneca’s workflow
    From our experience explain: bugzilla, review process, IRC, pastebin, commit privileges
  3. How to setup your own repositories
    Students should not rely on school to setup infrastructure for you
    1. Free services – github, assembla, Google code
      Explain few of the services available out in there for students to use
    2. Your own Mercurial repositories
      Show how to setup a mercurial repositories with different setups:
      1. on the spot
      2. using school servers
      3. using your home server
  4. Advance work/patch management – Mercurial queues
    This last section will be an external contributed section

L10n-Release engineering bugs' big picture

At some point during last fall, I was suggested to add dependencies on all the bugs that had to do with L10n's release infrastructure to be able to see the big picture and what was left to fix.

Today, I decided to look at the big picture and we have gone a long way since last year. Currently, we are bringing a lot of the release engineering's infrastructure up in sync with Axel's setup which will improve the repack on change process and add the compare-locales into our systems.

These are part of the steps that have been taken in the last months that will help us reach the day that L10n nightly builds will actually have nightly updates. Yay!
It is great having been able to work closely with Axel and Coop, and a great opportunity for me to help make things better and learn a lot from them!

Without further delay, here is the "big picture":
VIEWER'S DISCRETION IS ADVISED






NOTE: There are few other bugs that are isolated and that did not make it to this image. Yes, there is more to fix and much to improve but we will get there ;)

Thursday, February 26, 2009

Chattanooga here I come!

Study week is around the corner and I will be flying to Chattanooga, TN to attend a one day symposium called "FOSS Sypmposium 2009" in which the sessions will be about integrating FOSS into the Undergraduate Computing Curriculum.

This opportunity arose thanks to Chris Tyler and Dave Humphrey who suggested me to take part of it since I am writing a white paper in open-source and education.
The good thing is that it is happening during my study week and Mozilla Foundation was able to fund this trip (Frank, thanks again!) to meet all these educators that are trying to break the molds and integrate open-source into the CS curriculum with some of them with amazing success stories as well!

I am really excited because there are many interesting people attending and I want to hear first hand what they have to say and what they have done already.

It is going to be great. Stay tuned for more posts!