How to start your open source project


Published on

The 3rd juniors session in CAT
5 - 5 - 2010

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

How to start your open source project

  1. 1. <ul><li>Welcome to the 3 rd Junior Session </li></ul><ul><li>Prepared by </li></ul><ul><li>Eslam Mohammed Diaa El-Din </li></ul><ul><li>Twitter : @esl4mdiaa </li></ul><ul><li>[email_address] </li></ul>
  2. 3. Agenda ! <ul><li>Agile .. ? </li></ul><ul><li>Scrum .. !! </li></ul><ul><li>Open Source Projects !! </li></ul><ul><li>Revision Control </li></ul><ul><ul><li>GIT </li></ul></ul><ul><ul><li>Mercurial </li></ul></ul><ul><li>Installing Mercurial on your system </li></ul><ul><li>Mercurial Commands </li></ul><ul><li>Example of Agile Development .. “Web2py” </li></ul><ul><li>MVC </li></ul>
  3. 4. Agile !! <ul><ul><li>- are methods break tasks into small increments </li></ul></ul><ul><ul><li>with minimal planning .. </li></ul></ul><ul><ul><li>and do not directly involve long-term planning !! </li></ul></ul><ul><ul><li>- Software Development Life Cycle (SDLC) .. </li></ul></ul><ul><li>More a bout agile </li></ul><ul><li> </li></ul>
  4. 5. Software Development Life Cycle <ul><li>Analysis .. </li></ul><ul><li>Design .. </li></ul><ul><li>Implementation .. “code” </li></ul><ul><li>Testing </li></ul>
  5. 6. Agile methods <ul><li>Agile Unified Process (AUP) </li></ul><ul><li>DSDM </li></ul><ul><li>Extreme Programming (XP) </li></ul><ul><li>Feature Driven Development (FDD) </li></ul><ul><li>Scrum </li></ul><ul><li>… .. </li></ul>
  6. 7. Scrum !! <ul><li>Other slides !! </li></ul><ul><ul><li>It’s Name : Redistributable Intro To Scrum </li></ul></ul><ul><li>More about scrum </li></ul><ul><li> </li></ul>
  7. 8. Open Source Projects <ul><li>Before we talk about Open Source Projects , we need to know </li></ul><ul><li>What is the meaning of the word ” Open Source ” ? </li></ul>
  8. 9. About Revision Control .. <ul><li>is the process of managing multiple versions of a piece of information. </li></ul><ul><li>In its simplest form, this is something that many people do by hand :- </li></ul><ul><ul><li>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 . </li></ul></ul><ul><li>Examples : </li></ul><ul><ul><ul><li>GIT . </li></ul></ul></ul><ul><ul><ul><li>Mercurial . </li></ul></ul></ul>
  9. 10. GIT !! <ul><li>I will leave it for </li></ul><ul><li>Mohamed Gamal’s Session </li></ul><ul><li>@ CAT Scope 11 </li></ul><ul><li> </li></ul>
  10. 11. Mercurial .. <ul><li>is a cross-platform , distributed revision control tool for software developers. </li></ul><ul><li>It is mainly implemented using the Python programming Language .. written in C </li></ul><ul><li>Mercurial was initially written to run on Linux , Mac and windows . </li></ul>
  11. 12. Why Choose Mercurial ? <ul><li>It is easy to learn and use. </li></ul><ul><li>It is lightweight. </li></ul><ul><li>It scales excellently. </li></ul><ul><li>It is easy to customize. </li></ul>
  12. 13. Installing Mercurial on your system <ul><li>Linux : </li></ul><ul><ul><li>Debian : </li></ul></ul><ul><ul><ul><li>apt-get install mercurial </li></ul></ul></ul><ul><ul><li>Fedora Core : </li></ul></ul><ul><ul><ul><li>yum install mercurial </li></ul></ul></ul><ul><ul><li>OpenSUSE : </li></ul></ul><ul><ul><ul><li>yum install mercurial </li></ul></ul></ul><ul><ul><ul><li>… . </li></ul></ul></ul>
  13. 14. Installing Mercurial on your system .. <ul><li>Solaris : </li></ul><ul><ul><li>Sun FreeWare , at </li></ul></ul><ul><li>Windows : </li></ul><ul><ul><li>Mercurial for Windows at </li></ul></ul><ul><ul><li>This package has no external dependencies; it “just works”. </li></ul></ul>
  14. 15. Getting started ! <ul><li>To begin, we'll use the hg version command to find out whether Mercurial is actually installed properly. </li></ul><ul><ul><li>$ hg version </li></ul></ul><ul><ul><ul><li>Mercurial Distributed SCM (version -) </li></ul></ul></ul><ul><ul><li>Copyright (C) 2005-2008 Matt Mackall <> and others </li></ul></ul><ul><ul><li>This is free software; see the source for copying conditions. There is NO </li></ul></ul><ul><ul><li>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. </li></ul></ul>
  15. 16. Mercurial Commands !! <ul><li>Most known commands : </li></ul><ul><ul><li>$ hg commit … On your Local Machine </li></ul></ul><ul><ul><li>$ hg pull … Take the latest code on server </li></ul></ul><ul><ul><li>$ hg merge … when there are an error with others  </li></ul></ul><ul><ul><li>$ hg push … So others can see your “working code” ! </li></ul></ul>
  16. 17. Mercurial ..
  17. 18. Example of Agile Development <ul><li>Web2py </li></ul><ul><li>is an open source web application framework . Its primary goal is to support agile development. </li></ul><ul><li>Web2py is written in the Python language and is programmable in Python. </li></ul><ul><li>Using MVC technology </li></ul><ul><li>More about Web2py </li></ul><ul><li> </li></ul>
  18. 19. MVC !! <ul><li>M = Model </li></ul><ul><li>V = View </li></ul><ul><li>C = Controller </li></ul><ul><li>More about MVC </li></ul><ul><li> </li></ul>
  19. 20. References <ul><li> </li></ul><ul><li>hgbook-en </li></ul><ul><li>web2py_manual </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.