how to start your open source project
DESCRIPTION
The 3rd juniors session in CAT 5 - 5 - 2010TRANSCRIPT
![Page 1: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/1.jpg)
Welcome to the 3rd Junior Session
Prepared by
Eslam Mohammed Diaa El-Din
Twitter : @esl4mdiaa
![Page 2: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/2.jpg)
![Page 3: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/3.jpg)
Agenda !Agenda ! Agile .. ?
Scrum .. !!
Open Source Projects !!
Revision Control◦ GIT◦ Mercurial
Installing Mercurial on your system
Mercurial Commands
Example of Agile Development .. “Web2py”
MVC
![Page 4: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/4.jpg)
Agile !!Agile !!
- are methods break tasks into small increments
with minimal planning ..
and do not directly involve long-term planning !!
- Software Development Life Cycle (SDLC) ..
More a bout agilehttp://en.wikipedia.org/wiki/Agile_software_development
![Page 5: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/5.jpg)
Software Development Software Development Life CycleLife Cycle
Analysis ..
Design ..
Implementation .. “code”
Testing
![Page 6: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/6.jpg)
Agile methodsAgile methods
Agile Unified Process (AUP)
DSDM
Extreme Programming (XP)
Feature Driven Development (FDD)
Scrum
…..
![Page 7: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/7.jpg)
Scrum !!Scrum !!
Other slides !!◦ It’s Name : Redistributable Intro To Scrum
More about scrum
http://en.wikipedia.org/wiki/Scrum_(development)
![Page 8: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/8.jpg)
Open Source ProjectsOpen Source Projects
Before we talk about Open Source Projects , we need to know
What is the meaning of the word ”Open Source” ?
![Page 9: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/9.jpg)
About Revision About Revision Control ..Control .. is the process of managing multiple versions
of a piece of information.
In its simplest form, this is something that many people do by hand :-◦ every time you modify a file, save it under a new
name that contains a number, each one higher than the number of the preceding version .
Examples : GIT . Mercurial .
![Page 10: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/10.jpg)
GIT !!GIT !!
I will leave it forMohamed Gamal’s Session
@ CAT Scope 11http://catreloaded.net/scope/2010/05/mohammed-
gamal/
![Page 11: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/11.jpg)
Mercurial ..Mercurial ..
is a cross-platform , distributed revision control tool for software developers.
It is mainly implemented using the Python programming Language .. written in C
Mercurial was initially written to run on Linux , Mac and windows .
![Page 12: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/12.jpg)
Why Choose Why Choose Mercurial ?Mercurial ? It is easy to learn and use.
It is lightweight.
It scales excellently.
It is easy to customize.
![Page 13: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/13.jpg)
Installing Mercurial on Installing Mercurial on your systemyour system
Linux :◦ Debian :
apt-get install mercurial
◦ Fedora Core : yum install mercurial
◦ OpenSUSE : yum install mercurial
….
![Page 14: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/14.jpg)
Installing Mercurial on Installing Mercurial on your system ..your system ..Solaris :
◦ Sun FreeWare , at http://www.sunfreeware.com
Windows :◦ Mercurial for Windows at
http://mercurial.berkwood.com
◦ This package has no external dependencies; it “just works”.
![Page 15: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/15.jpg)
Getting started !Getting started !
To begin, we'll use the hg version command to find out whether Mercurial is actually installed properly.
◦ $ hg version
Mercurial Distributed SCM (version -)
Copyright (C) 2005-2008 Matt Mackall <[email protected]> and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
![Page 16: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/16.jpg)
Mercurial Commands !!Mercurial Commands !!
Most known commands :
◦ $ hg commit … On your Local Machine
◦ $ hg pull … Take the latest code on server
◦ $ hg merge … when there are an error with others
◦ $ hg push … So others can see your “working code” !
![Page 17: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/17.jpg)
Mercurial ..Mercurial ..
![Page 18: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/18.jpg)
Example of Agile Example of Agile DevelopmentDevelopment
Web2py
is an open source web application framework . Its primary goal is to support agile development.
Web2py is written in the Python language and is programmable in Python.
Using MVC technology
More about Web2pyhttp://en.wikipedia.org/wiki/Web2py
![Page 19: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/19.jpg)
MVC !!MVC !!M = Model
V = View
C = Controller
More about MVChttp://en.wikipedia.org/wiki/Model-view-controller
![Page 20: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/20.jpg)
ReferencesReferences
http://en.wikipedia.org/
hgbook-en
web2py_manual
![Page 21: How to start your open source project](https://reader035.vdocuments.net/reader035/viewer/2022062514/558a1cbdd8b42ae4178b4596/html5/thumbnails/21.jpg)