aizo

Contributing to dSS development
Zurich, 13.01.2010, Johannes Winkelmann
Outline
•   Tools
•   Licensing
•   Development process
•   Getting started




01/14/10                  2
Development infrastructure

                            Redmine
                           (Planning,
                              Wiki,
                         Issue tracking)




                                             Hudson
            Gitorious
                           Git DVCS        Continuous
           git hosting
                                           Integration




01/14/10                                                 3
Redmine
Redmine project management web application
• Issue tracking
• Release Planning
• Wiki
Open Source
https://developer.digitalstrom.org/redmine




01/14/10                                     4
Redmine - Demo
•   Overview
•   Project planning
•   Issues
•   Wiki
•   Git browser




01/14/10               5
git Version Control System
•   Distributed Version Control System (DVCS)
•   Powerful branching and merging
•   Fast!
•   Powerful tools
•   Open Source
•   Via https://gitorious.digitalstrom.org (coming next week)




01/14/10                                                        6
Centralized VCS


            Central
           repository

                                   Commit




                        Checkout

                                            Local checkout




01/14/10                                                     7
Distributed VCS – Scenario #1


            Master
           repository



                        Push

               Clone



                                 Local
                                            Local commit
                               repository




01/14/10                                                   8
Distributed VCS – Scenario #2

                         2. Pull
            Master                          User
           repository                     repository




                                     1. Push
               Clone



                          Local
                                               Local commit
                        repository




01/14/10                                                      9
Distributed Version Control
Properties of a DVCS:
• User checks out the whole code history to a local repository
• Changes can be shared easily between repositories
• No need to create user accounts on a central server, which
    allows potential contributors to immediately start
    development without action from the project




01/14/10                                                         10
git tool demo
• git gui commit tool
• gitk history browser




01/14/10                 11
gitorious git project hosting
• gitorious git hosting web application
• Easy way to follow ”official” development tree
• Allows developers to
     − fork the code to implement new features
     − request merging of these new features
     − Review code and add inline comments on merge requests




01/14/10                                                       12
gitorious (continued)
• Hosted by digitalSTROM.org, allowing contributors to start
    developing right away
• Provides a well defined workflow for contributors and core
    development team
• Open Source
• https://gitorious.digitalstrom.org (coming next week)




01/14/10                                                       13
gitorious demo
• Overview
• Project timeline
• Merge request




01/14/10             14
Hudson – Continuous Integration Engine
•   Hudson Continuous Integration engine
•   Verifies builds after every git commit
•   Ensures compilation and unit test success
•   Will soon also include cross compiler builds
•   Open Source




01/14/10                                           15
Hudson demo
•   Build overview
•   Project
•   Job details
•   Build time and trends




01/14/10                    16
dSS Licensing
Dual licensed:
• Open Source release under the GNU General Public
    License 3 (GPL)
• Closed Source dS.org license for dS.org alliance members

Contributor License Agreement
• Defines licensing of features and bugfixes submitted via
   gitorious




01/14/10                                                     17
GPL Release
Implications of releasing the software under the GPL:
• We make the source code available for everyone to read
• The code may be reused as long as the derivate work is
    released under the same terms




01/14/10                                                   18
Why Open Source
Reasons for the Open Source release
• Transparency / Privacy considerations
• Avoid vendor lock in
• Improved security thanks to more eyes looking at the code
• Enabling contributors to implement ideas we could not think
    of ourselves




01/14/10                                                        19
Why the dual licensing
• Open source is not established everywhere yet
• Allows integration with proprietary software systems




01/14/10                                                 20
Development Process
Contributor
• Register on https://gitorious.digitalstrom.org
• Clone dss project in gitorious
• Implement changes as wanted
• Push changes back to gitorious
• Request merge in gitorious

Core developer
• Review merge request
• Provide feedback, merge into mainline or reject



01/14/10                                            21
Getting started
https://developer.digitalstrom.org/redmine
• Source code access
• Redmine (Wiki, Issue tracking)
• Mailling lists

https://gitorious.digitalstrom.org (coming soon)
• Git hosting

Mailing lists:
• dss-announce@forum.digitalstrom.org
• dss-developer@forum.digitalstrom.org


01/14/10                                           22
aizo
Thanks for your
interest... we're looking
forward to your
contributions!

Contributing to dSS development

  • 1.
    aizo Contributing to dSSdevelopment Zurich, 13.01.2010, Johannes Winkelmann
  • 2.
    Outline • Tools • Licensing • Development process • Getting started 01/14/10 2
  • 3.
    Development infrastructure Redmine (Planning, Wiki, Issue tracking) Hudson Gitorious Git DVCS Continuous git hosting Integration 01/14/10 3
  • 4.
    Redmine Redmine project managementweb application • Issue tracking • Release Planning • Wiki Open Source https://developer.digitalstrom.org/redmine 01/14/10 4
  • 5.
    Redmine - Demo • Overview • Project planning • Issues • Wiki • Git browser 01/14/10 5
  • 6.
    git Version ControlSystem • Distributed Version Control System (DVCS) • Powerful branching and merging • Fast! • Powerful tools • Open Source • Via https://gitorious.digitalstrom.org (coming next week) 01/14/10 6
  • 7.
    Centralized VCS Central repository Commit Checkout Local checkout 01/14/10 7
  • 8.
    Distributed VCS –Scenario #1 Master repository Push Clone Local Local commit repository 01/14/10 8
  • 9.
    Distributed VCS –Scenario #2 2. Pull Master User repository repository 1. Push Clone Local Local commit repository 01/14/10 9
  • 10.
    Distributed Version Control Propertiesof a DVCS: • User checks out the whole code history to a local repository • Changes can be shared easily between repositories • No need to create user accounts on a central server, which allows potential contributors to immediately start development without action from the project 01/14/10 10
  • 11.
    git tool demo •git gui commit tool • gitk history browser 01/14/10 11
  • 12.
    gitorious git projecthosting • gitorious git hosting web application • Easy way to follow ”official” development tree • Allows developers to − fork the code to implement new features − request merging of these new features − Review code and add inline comments on merge requests 01/14/10 12
  • 13.
    gitorious (continued) • Hostedby digitalSTROM.org, allowing contributors to start developing right away • Provides a well defined workflow for contributors and core development team • Open Source • https://gitorious.digitalstrom.org (coming next week) 01/14/10 13
  • 14.
    gitorious demo • Overview •Project timeline • Merge request 01/14/10 14
  • 15.
    Hudson – ContinuousIntegration Engine • Hudson Continuous Integration engine • Verifies builds after every git commit • Ensures compilation and unit test success • Will soon also include cross compiler builds • Open Source 01/14/10 15
  • 16.
    Hudson demo • Build overview • Project • Job details • Build time and trends 01/14/10 16
  • 17.
    dSS Licensing Dual licensed: •Open Source release under the GNU General Public License 3 (GPL) • Closed Source dS.org license for dS.org alliance members Contributor License Agreement • Defines licensing of features and bugfixes submitted via gitorious 01/14/10 17
  • 18.
    GPL Release Implications ofreleasing the software under the GPL: • We make the source code available for everyone to read • The code may be reused as long as the derivate work is released under the same terms 01/14/10 18
  • 19.
    Why Open Source Reasonsfor the Open Source release • Transparency / Privacy considerations • Avoid vendor lock in • Improved security thanks to more eyes looking at the code • Enabling contributors to implement ideas we could not think of ourselves 01/14/10 19
  • 20.
    Why the duallicensing • Open source is not established everywhere yet • Allows integration with proprietary software systems 01/14/10 20
  • 21.
    Development Process Contributor • Registeron https://gitorious.digitalstrom.org • Clone dss project in gitorious • Implement changes as wanted • Push changes back to gitorious • Request merge in gitorious Core developer • Review merge request • Provide feedback, merge into mainline or reject 01/14/10 21
  • 22.
    Getting started https://developer.digitalstrom.org/redmine • Sourcecode access • Redmine (Wiki, Issue tracking) • Mailling lists https://gitorious.digitalstrom.org (coming soon) • Git hosting Mailing lists: • dss-announce@forum.digitalstrom.org • dss-developer@forum.digitalstrom.org 01/14/10 22
  • 23.
    aizo Thanks for your interest...we're looking forward to your contributions!