The Joomla! Forum ™





Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 8 posts ] 
Author Message
PostPosted: Tue May 23, 2006 3:49 pm 
User avatar
Joomla! Hero
Joomla! Hero

Joined: Mon Aug 15, 2005 4:36 pm
Posts: 2756
Location: Marikina, Metro Manila, Philippines
deathwingpnx wrote:
To our Hero Stingrey, Sir I saw your name above the joomla.php file, are you the one who created the joomla.php library? But
doesnt matter cause I salute you anyways.  8)

Lol not quite. Let me explain.



Project Joomla! involves programmers throughout the globe (11 different counties - 4 regions) who make up the Core Development Team:
http://www.joomla.org/content/blogcategory/43/85/
It is essential that the Development Code base be managed in some way to allow these disparate group of programmers to work on the code.

Even with programmers located in the same office, there is the problem that people might attempt to work on the same files at the same time for different purposes, how does one manage this, especially where such a group is located in different countries?
How do other members of the team keep up with changes in the code that might occur?
What happens if a somethign changed needs to be reverted?

For this we use a Version Control system. Basically this is a central system that manages the code to:
- avoid version conflicts in development that can arise when multiple programmers work on teh same set of files on a project
- automatically journal changes to files on a project

In our case we use an Open Source Version Control system called Subversion:
http://subversion.tigris.org/

Subversion handles the above objectives via the central Joomla! Forge server.



When one of the Core Development team makes a change in the code base on their local machine, they then commit it to the central server via subversion. 
The server then checks the central server a compares the file on the server and the one from the developers machine.  Subversion then modifies the central server file with the changes made.  If the file was changed by another member of the team, Subversion will intelligently merge the changes - if it cannot it will warn the developer making the commit that it cannot update the central file due to a conflict which the member will need to fix manually.



Every file in the Joomla! project contains some information at the top of each file like from joomla.php
Code:
* @version $Id: joomla.php 3603 2006-05-23 05:22:33Z stingrey $


Every time the file is changed this information is updated with the date and time of the change and the person making the change, it also includes the number of the commit - in this case 3603. 
This means that since Project Joomla! started, the change to joomla.php by stingrey on 2006-05-23 05:22:33Z was the 3603th code commit to the project. 
Every commit to the codebase increases this number.  A commit can involve a change to 1 file or a change to every file.

So at the top of every file in Project Joomla! you can tell when and who made the last change to that particular file. 

_________________
Rey Gigataras
http://www.wizmediateam.com <-- great team of talented Web Designers and Programmers!
http://about.me/reygigataras <-- About Me :)
Partner, Business Development & Project Manager, Event Manager, Sports Coach :D


Last edited by stingrey on Tue May 23, 2006 4:30 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Tue May 23, 2006 4:09 pm 
User avatar
Joomla! Hero
Joomla! Hero

Joined: Mon Aug 15, 2005 4:36 pm
Posts: 2756
Location: Marikina, Metro Manila, Philippines
So for example, at least once every day I update my local versions of the 1.0.x and 1.5.x code base.
Subversion compares my local version of the project with the central servers.  Any new changes on the central server are then syncronized with my local version so that both are in sync.

I then work on the code base and make the changes I wish and commit them back to the central server.



Everytime a commit is made to the central server team members are asked to give a description of what code changes were made with this commit.  This allows other members of the team to view the log and get an idea of the code changes made without examing the files changed in detail.

_________________
Rey Gigataras
http://www.wizmediateam.com <-- great team of talented Web Designers and Programmers!
http://about.me/reygigataras <-- About Me :)
Partner, Business Development & Project Manager, Event Manager, Sports Coach :D


Top
 Profile  
 
PostPosted: Tue May 23, 2006 4:10 pm 
User avatar
Joomla! Hero
Joomla! Hero

Joined: Mon Aug 15, 2005 4:36 pm
Posts: 2756
Location: Marikina, Metro Manila, Philippines
Below is what an update from using Subversion looks like using ToirtoiseSVN as I develop on a Windows platform:
http://tortoisesvn.tigris.org/

Note since I last updated my local version of the 1.5.x codebase, 2 files were added, 3 were deleted and 39 were changed



Image

_________________
Rey Gigataras
http://www.wizmediateam.com <-- great team of talented Web Designers and Programmers!
http://about.me/reygigataras <-- About Me :)
Partner, Business Development & Project Manager, Event Manager, Sports Coach :D


Last edited by stingrey on Tue May 23, 2006 4:48 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Tue May 23, 2006 4:10 pm 
User avatar
Joomla! Hero
Joomla! Hero

Joined: Mon Aug 15, 2005 4:36 pm
Posts: 2756
Location: Marikina, Metro Manila, Philippines
And here is the log file with the descriptions about the commits using ToirtoiseSVN

Here you see a commit by Akede [Alex Kempkins] you see the commit description and the files modified in the commit also you see the commit number 3591


Image

_________________
Rey Gigataras
http://www.wizmediateam.com <-- great team of talented Web Designers and Programmers!
http://about.me/reygigataras <-- About Me :)
Partner, Business Development & Project Manager, Event Manager, Sports Coach :D


Last edited by stingrey on Tue May 23, 2006 4:49 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Tue May 23, 2006 4:11 pm 
User avatar
Joomla! Hero
Joomla! Hero

Joined: Mon Aug 15, 2005 4:36 pm
Posts: 2756
Location: Marikina, Metro Manila, Philippines
Here you see a diff (with ToirtoiseMerge, which is part of TortoiseSVN) of one of the changes made by Alex comparing between the past and new version of contact.php

This allows us to see exactly what changes Alex made to file



Image

_________________
Rey Gigataras
http://www.wizmediateam.com <-- great team of talented Web Designers and Programmers!
http://about.me/reygigataras <-- About Me :)
Partner, Business Development & Project Manager, Event Manager, Sports Coach :D


Last edited by stingrey on Tue May 23, 2006 4:49 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Tue May 23, 2006 4:24 pm 
User avatar
Joomla! Hero
Joomla! Hero

Joined: Mon Aug 15, 2005 4:36 pm
Posts: 2756
Location: Marikina, Metro Manila, Philippines
Now another intersting part about Project Joomla! is that any person can pull the latest code that the developers are working on and see for themselves what is happening.

They can have the same ability to update their local copy of the code base, they can read the log and they can see the diff changes made in each file.

For more information read here:
http://dev.joomla.org/content/view/17/60/#subversion

The only difference, is that you CANNOT commit your own changes to the codebase, only Joomla! Core Developers can do this  ;)



If that is too much for you, can also view the nightly build of the code base:
http://dev.joomla.org/content/view/17/60/#nightly



You can even view and examine the changes made to the code base online via the web if you dont want to view it locally:
1.0.x
http://forge.joomla.org/integration/vie ... m=exsy1002

1.5.x
http://forge.joomla.org/integration/vie ... m=exsy1002



Why in the world would you do this?
Well you can actively help the Team by testing the changes made and give feedback on the changes:
http://forum.joomla.org/index.php/board,179.0.html
http://forum.joomla.org/index.php/board,126.0.html



Now it should be noted that NOT ALL open source projects allow its users to track so intimately the changes made to the codebase.
Another reason why we think Project Joomla! is one of the best  ;)

_________________
Rey Gigataras
http://www.wizmediateam.com <-- great team of talented Web Designers and Programmers!
http://about.me/reygigataras <-- About Me :)
Partner, Business Development & Project Manager, Event Manager, Sports Coach :D


Top
 Profile  
 
PostPosted: Tue May 23, 2006 4:28 pm 
User avatar
Joomla! Hero
Joomla! Hero

Joined: Mon Aug 15, 2005 4:36 pm
Posts: 2756
Location: Marikina, Metro Manila, Philippines
Lastly it should be noted that almost every large major software project has some sort of version control system managing the project - whether Commercial to Open Source.
And like Project Joomla! they will also have Standard Operating Procedures regarding how this occurs.

The difference of course is that with Open Source projects, MOST, will allow the community to also monitor the day to day changes made to the code via the Version Contriol system.

If not, then you should ask them why they dont, because this is part of what Open Source is about, having the code open for people to see - including when in the development phase

_________________
Rey Gigataras
http://www.wizmediateam.com <-- great team of talented Web Designers and Programmers!
http://about.me/reygigataras <-- About Me :)
Partner, Business Development & Project Manager, Event Manager, Sports Coach :D


Top
 Profile  
 
PostPosted: Tue May 23, 2006 4:31 pm 
User avatar
Joomla! Hero
Joomla! Hero

Joined: Mon Aug 15, 2005 4:36 pm
Posts: 2756
Location: Marikina, Metro Manila, Philippines
Anyway, hopefully it was of some interest and gave people a little insight into some of the daily inner workings of how the Joomla! code is managed



To keep the succinctness of this thread it is being locked.

You can however, discuss this thread here:
http://forum.joomla.org/index.php/topic,63940.0.html

_________________
Rey Gigataras
http://www.wizmediateam.com <-- great team of talented Web Designers and Programmers!
http://about.me/reygigataras <-- About Me :)
Partner, Business Development & Project Manager, Event Manager, Sports Coach :D


Last edited by stingrey on Tue May 23, 2006 4:51 pm, edited 1 time in total.

Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 8 posts ] 



Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group