SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
Software Quality Management
         Practices
            of
    Open Source Projects


                         By

                Hendrik ( a108099 )
        Phongsathorn Eakamongul ( a108025 )

      Software Quality Improvement ( AT70.9016 )
             Asian Institute of Technology
                     2009, 17 June
Outlines

- Software change and release management process & platform
  - Issue tracking
  - Release Schedule
- Tools
  - Respository
  - Testing


- Software change and release management process & platform
  - Issue tracking
  - Release Schedule
- Tools
  - Respository
  - Testing


- Compare Process of 2 projects
Software change and release
management process & platform
Issue Tracking
• Ubuntu uses Launchpad (http://launchpad.net) for
  answer, bug tracking and translations.
• Launchpad is collaboration and hosting platform for
  software projects. As an integrated tool, it supports
  community building and daily management software
  process.
• Steps to report a bug :
  • Create an account in launchpad.net
  • Report the bug
Issue Tracking
• Another way using Apport, a help programs that
  can found at Help Menu -> Report a problem.
• It is specific to report a bug on running and
  corresponding application.
Release Schedule
• Based on time based cycle called Time Based
  Releases process, rather than feature driven.
• Regular release : every six months both for
  desktop and server edition.
  • supported for 18 months with security patches, fixes
    for critical bugs that could cause data loss, and extra
    translations.
Release Schedule
• Enterprise release : every 12-24 months.
  • 3 years support on the Desktop and five years for
    Server.
Release Process
• Beginning a new release
  • Preparing the infrastructure, tools, and other pieces of
    the development process needed.
  • announce the release officially and open for package
    uploads.
• Planning
  • Specifying the features will be included in the release.
  • some come from strategic priorities of the release, an
    individual idea of the developer, and the list of existing
    specifications or IdeaPool.
Release Process
• Merging with upstream
  • Bringing upstream components either directly into
    Ubuntu or via Debian.
  • Because of Ubuntu based on Debian, the developer
    team chooses this approach. The reasons are: 1. Its
    most effective way to keep up to date with upstream
    code, and 2. The bug-fixes for Debian often same
    for Ubuntu.
Release Process
• Feature development.
  • Focusing on development projects which have been
    planned.
• Stabilization (freeze).
  • During this phase, uploads are sometimes held and
    need manual approval.
  • This is done to make sure the stable release can be
    delivered on the final release date.
Release Process
• Milestones.
    • Creating and testing CD images regularly to mark
      milestones in the development.
    • Four milestones :
1. The first alpha milestone. After two months, when the initial flood of new
   upstream version, merges with debian, and first set of new features are
   landed.
2. Three alpha milestones done every three weeks until freeze phase, to get
   early testing of the new features.
3. Two more alpha milestones in interval of two weeks for stabilizing the new
   features and fixing the worst bugs.
4. Beta milestone, three or four weeks before final release.
Release Process
• Finalization. Testing every image to ensure the
  installation methods works as advertised.
• Stable releases.
Release Roadmap
Repository
• Main respository DVCS (Bazaar).
• Mirror
  • List of archive mirror :
    https://launchpad.net/ubuntu/+archivemirrors
  • List of CD mirrors: https://launchpad.net/ubuntu/
    +cdmirrors
  • Iso images for testing : http://cdimage.ubuntu.com/
Testing
• Ubuntu Testing Team
  • objective is to improve Ubuntu through structured
    testing of packages and ISO.
• ISO Testing
  • it is done a few days before releasing any Ubuntu
    CD (including alphas, betas, and release candidate)
  • Provide to give instruction and directions for using
    test tracker.
  • Testing Day : a special day for the community to
    come together to test a specific set of ISO images.
Testing
• Category of test cases for ISO testing
  •   Applications- desktop-level application tests
  •   System-system-level tests
  •   Hardware-hardware support tests
  •   Install-installation test case
• Plans for ISO testing
  • Pre release test program
  • Smoke testing, to test all desktop variants
  • Laptop testing, to test alpha/beta releases on laptops
Testing
• Automated testing can be done with a desktop
  testing framework like dogtail or LDTP.
Django is a high-level Python Web framework
that encourages rapid development and clean, pragmatic design.
Documentation
A content on this slide is summarized from

http://docs.djangoproject.com/en/dev/internals
http://code.djangoproject.com/
Software change and release
management process & platform
Issue tracking

Reports : useful query for ticket

 * Tickets needing some work
   * Accepted tickets that need patches
   * Accepted tickets that need documentation
   * Accepted tickets that need unit tests
   * Accepted tickets that have patches but need to be improved
 * Tickets by triage stage
    * Unreviewed tickets
    * Tickets needing design decisions
    * Tickets accepted for inclusion
    * Tickets ready for checkin
 * Claimed tickets
 * Tickets by status
   * open tickets
       * Grouped by triage stage
       * Grouped by component
   * all tickets (including closed)
       * Grouped by component
       * Grouped by resolution
Django ticket



                                                 ticket doesn’t contain enough detail.




Invalid :
* user error
* describes something other than Django
* isn’t a bug report or feature request
(i.e. some new users submit support queries as tickets).




              Triage's decision on Obvious bugs (i.e. crashes, incorrect query results,
              non-compliance with a standard)
Someday/Maybe state

* An enhancement request that might be considered to add to the framework
   if an excellent patch is submitted.

* not a high priority.
What ticket has or needs in order to
     be “ready for checkin” ?


Flags :

• “Has patch”
  patch is “good”.

• “Patch needs improvement”
  patch no longer applies cleanly,
  or the code doesn’t live up to standards.
• “Needs documentation”
• “Needs tests”
Version number

                      Release Process                                 A.B or A.B.C.




A : major version number -- happen infrequently (think “years”, not “months”)
* major changes
* not necessarily backwards-compatible

B : minor version number -- roughly every six months.
* new + improve existing features
* backwards compatible changes
* may deprecate certain features from previous releases.

* After each previous release ( + suitable cooling-off period of a week or two),
   timeline for the next release is announced.

C : micro version number -- at least once half-way between minor releases, or
   more often as needed.
* bug and security fixes
* 100% backwards-compatible with the previous micro-release.
Deprecated (in minor release)
If a feature in version A.B is deprecated,

version A.B+1 : use of the feature will raise PendingDeprecationWarning. This
   warning is silent by default.
version A.B+2 : raise a DeprecationWarning.
version A.B+3 : remove the feature entirely.
RC Release & pre-1.0
RC Release

Version Number : A.B alpha/beta/rc N

pre-1.0

* no guarantee of backwards-compatibility until the 1.0 release.
Release Schedule
Phase one: feature proposal
 * What features to include in the next version. + preliminary work on those
  features

Phase two: development
 * alpha release.

Phase three: bugfixes
 * beta release about halfway through,
 * rc complete with string freeze two weeks before the end of the schedule.


 * No new features will be accepted during this time.
Phase one: feature proposal
•   feature list at the end of part one,

    * “Must-have”: critical features that will delay the release if not finished

    * “Maybe” : will be pushed to the next release if not finished

i.e. if these features are done before the 1.1 feature-freeze date (March 20), they'll be
    included in Django 1.1.

   * “Not going to happen”: features explicitly deferred to a later release.
i.e.
- Rejected features
- Not in consideration
- Small/just bugs
- Rejected procedurally -- proposed features that, s of the close date for proposals, lacked
   concrete proposals, proof-of-concept implementations, or details needed to start
   implementing.
Voting style


invented by Apache and used on Python itself,

  +1: "I love the idea and I'm strongly committed to it."
  +0: "Sounds OK to me."
  -0: "I'm not thrilled, but I won't stand in the way."
  -1: "I strongly disagree and would be very unhappy to see the idea turn
  into reality."
Phase two: development
•   At the end of phase two,

    * unfinished “maybe” features : postponed until the next release.

    * “must-have” features : extend phase two, and thus postpone the final
    release. ( Though it shouldn’t happen )
Roadmap : version 1.1 roadmap
January 15,     "Major" feature freeze for 1.1; work phase ends, and any major
2009            incomplete features will be postponed.

February 23,    Django 1.1 alpha.
2009

March 23,       Django 1.1 beta. Feature freeze; only bug fixes will be allowed
2009            after this point.


April 2, 2009   Django 1.1 rc 1. and string freeze


April 13,       Django 1.1 final
2009


Sprints work on 1.1 starting in late December.
We'll have four or five sprints between now and March.

Some design work in Sprints.
Supported Version
  •   All bug fixes applied to the trunk also be applied to the last minor release, to be
          released as the next micro release.

      i.e. - now we are at version 1.1
  •
         - Bugfixes to the main trunk will also applied to previous Micro-release branch i.e.
         branches/releases/1.0.X.

          * The developer who commits a fix to trunk will be responsible for also applying
             the fix to the current bug-fix branch.
          * maintainer who will work with committers to keep them honest on backporting
             bug fixes.

  •   Security fixes will be applied to the current trunk and the previous two minor
         releases.


“release maintainer”

* appointed for each minor
* making sure that bug fixes are applied to both trunk and the maintained micro-release branch.
* work with the release manager to decide when to release the micro releases
Example 1 : Supported Version


Consider a moment in time halfway between the release of Django 1.3 and 1.4. At this
  point in time:

  * Features will be added to development trunk, to be released as Django 1.4.


  * Bug fixes will be applied to a 1.3.X branch, and released as 1.3.1, 1.3.2, etc.

  * Security releases will be applied to trunk, a 1.3.X branch and a 1.2.X branch. Security
   fixes will trigger the release of 1.3.1, 1.2.1, etc.
Example 2 : Supported Version


Imagine, if you will, a point about halfway between 1.1 and 1.2.

  * On trunk, development towards 1.2 proceeds with small additions, bugs fixes, etc.
   being checked in daily.

  * On feature branches, development of major features is done. These branches will be
   merged into trunk before the end of phase two.


  * On the branch “branches/releases/1.1.X”, bug fixes found in the 1.1 release are
   checked in as needed.

  * On the branch “branches/releases/1.0.X”, security fixes are made if needed.
Tools
Respository

• Main Respository : SVN
• Mirror : DVCS
DVCS Mirror

bazaar
Launchpad mirrors Django's trunk: https://launchpad.net/django

git
some of which are used to develop patches that will come to SVN.

* Jannis Leidel's git mirror, updated every 30 minutes :
   http://github.com/django/django/tree/master
* Jacob Kaplan-Moss's experimental git mirror :
   git://djangoproject.com/django (broken as for 2009-03-11)
* Matthias Kestenholz's git repositories for Django and for a selection of Django applications:
   ** Gitweb with complete list of repositories: http://spinlock.ch/pub/git/ (broken as for 2009-03-11, http protocol works fine as of 2009-
      03-18, git protocol is stil broken)
   ** The django changes are sporadically published on repo.or.cz: http://repo.or.cz/w/django.git/ (as for 2009-03-11, last update is 5
      months old)
 * Other people :
     ** brosner: git://github.com/brosner/django.git
     ** Marc Fargas (telenieko): git://www.marcfargas.com/django.git/
     ** Alex Gaynor: http://github.com/alex/django/tree/master

Mercurial (hg)
  * Django trunk and Django 1.0.x mirrors on Bitbucket:
  * SVN2HG Gateway of Django and Active branches, updated hourly: http://hgsvn.trbs.net/django/
  * GeoDjango Mercurial: includes gis-newforms (a merge of the gis and newforms-admin branches), example code, and other
     geospatial goodies.
  * A experimental Django 1.0 branch using patches from django.bugfixes: http://joelia.gthc.org/django.devel. This is totally at your
     own risk and may not work at all. Updated quite not often, but is somewhat stable. See also: http://joelia.gthc.org/django.bugfixes



           See updated version at : http://code.djangoproject.com/wiki/DjangoBranches
Commit access
Full committers

  - long history of contributions to Django's codebase / being polite and
  helpful on the mailing lists.
  - desire to dedicate serious time to Django's development.

  granted by unanimous approval of all existing full committers, and
  the decision will err on the side of rejection.

Partial committers

  - "domain experts" : contributes a large subframework to Django and
  wants to continue to maintain it.
  - giving a formal vote in questions that involve their subsystems.

  unanimous approval of all full committers (+ any other partial
  committers in the same area).
Request commit access




To request commit access, please contact an existing committer
  privately. Public requests for commit access are potential flame-war
  starters, and will be ignored.
Testing : python unittest
• Policy to make sure all tests pass at all times

• tests directory of the Django tarball

The tests cover:
  * Models and database API (tests/modeltests/).
  * core Django code (tests/regressiontests)
  * Contrib apps (django/contrib/<contribapp>/tests)
Compare Process of 2 projects
Software change and
release management
process & platform
Issue tracking        http://launchpad.net         trac

Release Schedule      - Time Based Releases        - Time Based Releases
                      process                      process

                      - regular release :          - minor release every six
                        * every six months         months
                        * 18 months support both     * bug fixes support for last
                      for for desktop and server   minor releases
                      edition                        * security support for
                                                   previous two release

                      - enterprise release (LTS) : - major release in years
                        * every 12 to 24 months
                        * 3 years support on the
                      Desktop and 5 years for
                      Server
Release   - planning : specifying features              - feature proposal
Process   - merging with upstream ( debian )
          - feature development                         - development alpha release.
          - testing                                     - bugfixes
             * first alpha milestone. After 2 months,
          when the initial flood of new upstream
          version, merges with debian, and first set
          of new features are landed.
             * Three alpha milestones done every           * beta release about halfway
          three weeks until freeze phase, to get        through,
          early testing of the new features.
             * Two more alpha milestones in               * rc complete with string freeze
          interval of 2 weeks for stabilizing the new   two weeks before the end of the
          features and fixing the worst bugs.           schedule.
             * Beta milestone, 3 or 4 weeks before
          final release.
          - Finalization. Testing every image to
          ensure the installation methods works
          as advertised.
          - Stable releases.
Tools
Respository   bazaar                      SVN
Testing       - Ubuntu Testing Team for   - sprint from hard-core
              test packages and ISO       hacking to improving
                                          documentation to fixing
              - desktop testing           small bugs.
              framework like dogtail or   - python unittest
              LDTP

Más contenido relacionado

La actualidad más candente

TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...chiportal
 
System Integration & Build Management
System Integration & Build ManagementSystem Integration & Build Management
System Integration & Build ManagementComputing Cage
 
Release Engineering
Release EngineeringRelease Engineering
Release EngineeringGDG Odessa
 
So you-want-to-go-faster
So you-want-to-go-fasterSo you-want-to-go-faster
So you-want-to-go-fasterOoblioob
 
How to Upgrade to the Newest Shiniest Django Version
How to Upgrade to the Newest Shiniest Django VersionHow to Upgrade to the Newest Shiniest Django Version
How to Upgrade to the Newest Shiniest Django VersionSusan Tan
 
An almost complete continuous delivery pipeline including configuration manag...
An almost complete continuous delivery pipeline including configuration manag...An almost complete continuous delivery pipeline including configuration manag...
An almost complete continuous delivery pipeline including configuration manag...ulfmansson
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using JenkinsRogue Wave Software
 
[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using ShipkitMarcinStachniuk
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and GitAlec Clews
 

La actualidad más candente (10)

Release Verification Team Proposal
Release Verification Team  ProposalRelease Verification Team  Proposal
Release Verification Team Proposal
 
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
 
System Integration & Build Management
System Integration & Build ManagementSystem Integration & Build Management
System Integration & Build Management
 
Release Engineering
Release EngineeringRelease Engineering
Release Engineering
 
So you-want-to-go-faster
So you-want-to-go-fasterSo you-want-to-go-faster
So you-want-to-go-faster
 
How to Upgrade to the Newest Shiniest Django Version
How to Upgrade to the Newest Shiniest Django VersionHow to Upgrade to the Newest Shiniest Django Version
How to Upgrade to the Newest Shiniest Django Version
 
An almost complete continuous delivery pipeline including configuration manag...
An almost complete continuous delivery pipeline including configuration manag...An almost complete continuous delivery pipeline including configuration manag...
An almost complete continuous delivery pipeline including configuration manag...
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and Git
 

Similar a Software Quality Management of Opensource Project ( ubuntu and django )

Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
Release iOS apps at scale
Release iOS apps at scaleRelease iOS apps at scale
Release iOS apps at scaleCsaba Szabó
 
Drupal Europe 2018: Hackers automate but the drupal community still downloads...
Drupal Europe 2018: Hackers automate but the drupal community still downloads...Drupal Europe 2018: Hackers automate but the drupal community still downloads...
Drupal Europe 2018: Hackers automate but the drupal community still downloads...hernanibf
 
What is the merge window?
What is the merge window?What is the merge window?
What is the merge window?Macpaul Lin
 
Apereo OAE development and release process
Apereo OAE development and release processApereo OAE development and release process
Apereo OAE development and release processBert Pareyn
 
OPNFV Developer Tools and Release Process
OPNFV Developer Tools and Release ProcessOPNFV Developer Tools and Release Process
OPNFV Developer Tools and Release ProcessOPNFV
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadBhawani N Prasad
 
Sakai Technical Future Musings
Sakai Technical Future MusingsSakai Technical Future Musings
Sakai Technical Future MusingsCharles Severance
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps JumpstartOri Donner
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Sergio Navarro Pino
 
Ncerc rlmca202 adm m3 ssm
Ncerc rlmca202  adm m3 ssmNcerc rlmca202  adm m3 ssm
Ncerc rlmca202 adm m3 ssmssmarar
 
Working process and git branch strategy
Working process and git branch strategyWorking process and git branch strategy
Working process and git branch strategyKan-Han (John) Lu
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringSolano Labs
 
Upfront adoption & migration of applications to latest jdk
Upfront adoption & migration of applications to latest jdkUpfront adoption & migration of applications to latest jdk
Upfront adoption & migration of applications to latest jdkNarendran Solai Sridharan
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build testLen Bass
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineElasTest Project
 
Introduction to Civil Infrastructure Platform
Introduction to Civil Infrastructure PlatformIntroduction to Civil Infrastructure Platform
Introduction to Civil Infrastructure PlatformSZ Lin
 
Release This! Tools for a Smooth Release Cycle
Release This! Tools for a Smooth Release CycleRelease This! Tools for a Smooth Release Cycle
Release This! Tools for a Smooth Release CycleGuerrilla
 

Similar a Software Quality Management of Opensource Project ( ubuntu and django ) (20)

Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Release iOS apps at scale
Release iOS apps at scaleRelease iOS apps at scale
Release iOS apps at scale
 
Drupal Europe 2018: Hackers automate but the drupal community still downloads...
Drupal Europe 2018: Hackers automate but the drupal community still downloads...Drupal Europe 2018: Hackers automate but the drupal community still downloads...
Drupal Europe 2018: Hackers automate but the drupal community still downloads...
 
What is the merge window?
What is the merge window?What is the merge window?
What is the merge window?
 
Apereo OAE development and release process
Apereo OAE development and release processApereo OAE development and release process
Apereo OAE development and release process
 
OPNFV Developer Tools and Release Process
OPNFV Developer Tools and Release ProcessOPNFV Developer Tools and Release Process
OPNFV Developer Tools and Release Process
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasad
 
Sakai Technical Future Musings
Sakai Technical Future MusingsSakai Technical Future Musings
Sakai Technical Future Musings
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
CD
CDCD
CD
 
DelOps vs. DevOps
DelOps vs. DevOpsDelOps vs. DevOps
DelOps vs. DevOps
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)
 
Ncerc rlmca202 adm m3 ssm
Ncerc rlmca202  adm m3 ssmNcerc rlmca202  adm m3 ssm
Ncerc rlmca202 adm m3 ssm
 
Working process and git branch strategy
Working process and git branch strategyWorking process and git branch strategy
Working process and git branch strategy
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
Upfront adoption & migration of applications to latest jdk
Upfront adoption & migration of applications to latest jdkUpfront adoption & migration of applications to latest jdk
Upfront adoption & migration of applications to latest jdk
 
Architecting for the cloud storage build test
Architecting for the cloud storage build testArchitecting for the cloud storage build test
Architecting for the cloud storage build test
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Introduction to Civil Infrastructure Platform
Introduction to Civil Infrastructure PlatformIntroduction to Civil Infrastructure Platform
Introduction to Civil Infrastructure Platform
 
Release This! Tools for a Smooth Release Cycle
Release This! Tools for a Smooth Release CycleRelease This! Tools for a Smooth Release Cycle
Release This! Tools for a Smooth Release Cycle
 

Último

Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdfMr Bounab Samir
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research DiscourseAnita GoswamiGiri
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxDhatriParmar
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxMichelleTuguinay1
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptxDhatriParmar
 

Último (20)

Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of EngineeringFaculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
Scientific Writing :Research Discourse
Scientific  Writing :Research  DiscourseScientific  Writing :Research  Discourse
Scientific Writing :Research Discourse
 
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptxMan or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
Man or Manufactured_ Redefining Humanity Through Biopunk Narratives.pptx
 
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptxDIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
DIFFERENT BASKETRY IN THE PHILIPPINES PPT.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
 

Software Quality Management of Opensource Project ( ubuntu and django )

  • 1. Software Quality Management Practices of Open Source Projects By Hendrik ( a108099 ) Phongsathorn Eakamongul ( a108025 ) Software Quality Improvement ( AT70.9016 ) Asian Institute of Technology 2009, 17 June
  • 2. Outlines - Software change and release management process & platform - Issue tracking - Release Schedule - Tools - Respository - Testing - Software change and release management process & platform - Issue tracking - Release Schedule - Tools - Respository - Testing - Compare Process of 2 projects
  • 3.
  • 4. Software change and release management process & platform
  • 5. Issue Tracking • Ubuntu uses Launchpad (http://launchpad.net) for answer, bug tracking and translations. • Launchpad is collaboration and hosting platform for software projects. As an integrated tool, it supports community building and daily management software process. • Steps to report a bug : • Create an account in launchpad.net • Report the bug
  • 6.
  • 7. Issue Tracking • Another way using Apport, a help programs that can found at Help Menu -> Report a problem. • It is specific to report a bug on running and corresponding application.
  • 8. Release Schedule • Based on time based cycle called Time Based Releases process, rather than feature driven. • Regular release : every six months both for desktop and server edition. • supported for 18 months with security patches, fixes for critical bugs that could cause data loss, and extra translations.
  • 9. Release Schedule • Enterprise release : every 12-24 months. • 3 years support on the Desktop and five years for Server.
  • 10. Release Process • Beginning a new release • Preparing the infrastructure, tools, and other pieces of the development process needed. • announce the release officially and open for package uploads. • Planning • Specifying the features will be included in the release. • some come from strategic priorities of the release, an individual idea of the developer, and the list of existing specifications or IdeaPool.
  • 11. Release Process • Merging with upstream • Bringing upstream components either directly into Ubuntu or via Debian. • Because of Ubuntu based on Debian, the developer team chooses this approach. The reasons are: 1. Its most effective way to keep up to date with upstream code, and 2. The bug-fixes for Debian often same for Ubuntu.
  • 12. Release Process • Feature development. • Focusing on development projects which have been planned. • Stabilization (freeze). • During this phase, uploads are sometimes held and need manual approval. • This is done to make sure the stable release can be delivered on the final release date.
  • 13. Release Process • Milestones. • Creating and testing CD images regularly to mark milestones in the development. • Four milestones : 1. The first alpha milestone. After two months, when the initial flood of new upstream version, merges with debian, and first set of new features are landed. 2. Three alpha milestones done every three weeks until freeze phase, to get early testing of the new features. 3. Two more alpha milestones in interval of two weeks for stabilizing the new features and fixing the worst bugs. 4. Beta milestone, three or four weeks before final release.
  • 14. Release Process • Finalization. Testing every image to ensure the installation methods works as advertised. • Stable releases.
  • 16. Repository • Main respository DVCS (Bazaar). • Mirror • List of archive mirror : https://launchpad.net/ubuntu/+archivemirrors • List of CD mirrors: https://launchpad.net/ubuntu/ +cdmirrors • Iso images for testing : http://cdimage.ubuntu.com/
  • 17. Testing • Ubuntu Testing Team • objective is to improve Ubuntu through structured testing of packages and ISO. • ISO Testing • it is done a few days before releasing any Ubuntu CD (including alphas, betas, and release candidate) • Provide to give instruction and directions for using test tracker. • Testing Day : a special day for the community to come together to test a specific set of ISO images.
  • 18. Testing • Category of test cases for ISO testing • Applications- desktop-level application tests • System-system-level tests • Hardware-hardware support tests • Install-installation test case • Plans for ISO testing • Pre release test program • Smoke testing, to test all desktop variants • Laptop testing, to test alpha/beta releases on laptops
  • 19. Testing • Automated testing can be done with a desktop testing framework like dogtail or LDTP.
  • 20. Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
  • 21. Documentation A content on this slide is summarized from http://docs.djangoproject.com/en/dev/internals http://code.djangoproject.com/
  • 22. Software change and release management process & platform
  • 23. Issue tracking Reports : useful query for ticket * Tickets needing some work * Accepted tickets that need patches * Accepted tickets that need documentation * Accepted tickets that need unit tests * Accepted tickets that have patches but need to be improved * Tickets by triage stage * Unreviewed tickets * Tickets needing design decisions * Tickets accepted for inclusion * Tickets ready for checkin * Claimed tickets * Tickets by status * open tickets * Grouped by triage stage * Grouped by component * all tickets (including closed) * Grouped by component * Grouped by resolution
  • 24. Django ticket ticket doesn’t contain enough detail. Invalid : * user error * describes something other than Django * isn’t a bug report or feature request (i.e. some new users submit support queries as tickets). Triage's decision on Obvious bugs (i.e. crashes, incorrect query results, non-compliance with a standard)
  • 25. Someday/Maybe state * An enhancement request that might be considered to add to the framework if an excellent patch is submitted. * not a high priority.
  • 26. What ticket has or needs in order to be “ready for checkin” ? Flags : • “Has patch” patch is “good”. • “Patch needs improvement” patch no longer applies cleanly, or the code doesn’t live up to standards. • “Needs documentation” • “Needs tests”
  • 27. Version number Release Process A.B or A.B.C. A : major version number -- happen infrequently (think “years”, not “months”) * major changes * not necessarily backwards-compatible B : minor version number -- roughly every six months. * new + improve existing features * backwards compatible changes * may deprecate certain features from previous releases. * After each previous release ( + suitable cooling-off period of a week or two), timeline for the next release is announced. C : micro version number -- at least once half-way between minor releases, or more often as needed. * bug and security fixes * 100% backwards-compatible with the previous micro-release.
  • 28. Deprecated (in minor release) If a feature in version A.B is deprecated, version A.B+1 : use of the feature will raise PendingDeprecationWarning. This warning is silent by default. version A.B+2 : raise a DeprecationWarning. version A.B+3 : remove the feature entirely.
  • 29. RC Release & pre-1.0 RC Release Version Number : A.B alpha/beta/rc N pre-1.0 * no guarantee of backwards-compatibility until the 1.0 release.
  • 30. Release Schedule Phase one: feature proposal * What features to include in the next version. + preliminary work on those features Phase two: development * alpha release. Phase three: bugfixes * beta release about halfway through, * rc complete with string freeze two weeks before the end of the schedule. * No new features will be accepted during this time.
  • 31. Phase one: feature proposal • feature list at the end of part one, * “Must-have”: critical features that will delay the release if not finished * “Maybe” : will be pushed to the next release if not finished i.e. if these features are done before the 1.1 feature-freeze date (March 20), they'll be included in Django 1.1. * “Not going to happen”: features explicitly deferred to a later release. i.e. - Rejected features - Not in consideration - Small/just bugs - Rejected procedurally -- proposed features that, s of the close date for proposals, lacked concrete proposals, proof-of-concept implementations, or details needed to start implementing.
  • 32. Voting style invented by Apache and used on Python itself, +1: "I love the idea and I'm strongly committed to it." +0: "Sounds OK to me." -0: "I'm not thrilled, but I won't stand in the way." -1: "I strongly disagree and would be very unhappy to see the idea turn into reality."
  • 33. Phase two: development • At the end of phase two, * unfinished “maybe” features : postponed until the next release. * “must-have” features : extend phase two, and thus postpone the final release. ( Though it shouldn’t happen )
  • 34. Roadmap : version 1.1 roadmap January 15, "Major" feature freeze for 1.1; work phase ends, and any major 2009 incomplete features will be postponed. February 23, Django 1.1 alpha. 2009 March 23, Django 1.1 beta. Feature freeze; only bug fixes will be allowed 2009 after this point. April 2, 2009 Django 1.1 rc 1. and string freeze April 13, Django 1.1 final 2009 Sprints work on 1.1 starting in late December. We'll have four or five sprints between now and March. Some design work in Sprints.
  • 35. Supported Version • All bug fixes applied to the trunk also be applied to the last minor release, to be released as the next micro release. i.e. - now we are at version 1.1 • - Bugfixes to the main trunk will also applied to previous Micro-release branch i.e. branches/releases/1.0.X. * The developer who commits a fix to trunk will be responsible for also applying the fix to the current bug-fix branch. * maintainer who will work with committers to keep them honest on backporting bug fixes. • Security fixes will be applied to the current trunk and the previous two minor releases. “release maintainer” * appointed for each minor * making sure that bug fixes are applied to both trunk and the maintained micro-release branch. * work with the release manager to decide when to release the micro releases
  • 36. Example 1 : Supported Version Consider a moment in time halfway between the release of Django 1.3 and 1.4. At this point in time: * Features will be added to development trunk, to be released as Django 1.4. * Bug fixes will be applied to a 1.3.X branch, and released as 1.3.1, 1.3.2, etc. * Security releases will be applied to trunk, a 1.3.X branch and a 1.2.X branch. Security fixes will trigger the release of 1.3.1, 1.2.1, etc.
  • 37. Example 2 : Supported Version Imagine, if you will, a point about halfway between 1.1 and 1.2. * On trunk, development towards 1.2 proceeds with small additions, bugs fixes, etc. being checked in daily. * On feature branches, development of major features is done. These branches will be merged into trunk before the end of phase two. * On the branch “branches/releases/1.1.X”, bug fixes found in the 1.1 release are checked in as needed. * On the branch “branches/releases/1.0.X”, security fixes are made if needed.
  • 38. Tools
  • 39. Respository • Main Respository : SVN • Mirror : DVCS
  • 40. DVCS Mirror bazaar Launchpad mirrors Django's trunk: https://launchpad.net/django git some of which are used to develop patches that will come to SVN. * Jannis Leidel's git mirror, updated every 30 minutes : http://github.com/django/django/tree/master * Jacob Kaplan-Moss's experimental git mirror : git://djangoproject.com/django (broken as for 2009-03-11) * Matthias Kestenholz's git repositories for Django and for a selection of Django applications: ** Gitweb with complete list of repositories: http://spinlock.ch/pub/git/ (broken as for 2009-03-11, http protocol works fine as of 2009- 03-18, git protocol is stil broken) ** The django changes are sporadically published on repo.or.cz: http://repo.or.cz/w/django.git/ (as for 2009-03-11, last update is 5 months old) * Other people : ** brosner: git://github.com/brosner/django.git ** Marc Fargas (telenieko): git://www.marcfargas.com/django.git/ ** Alex Gaynor: http://github.com/alex/django/tree/master Mercurial (hg) * Django trunk and Django 1.0.x mirrors on Bitbucket: * SVN2HG Gateway of Django and Active branches, updated hourly: http://hgsvn.trbs.net/django/ * GeoDjango Mercurial: includes gis-newforms (a merge of the gis and newforms-admin branches), example code, and other geospatial goodies. * A experimental Django 1.0 branch using patches from django.bugfixes: http://joelia.gthc.org/django.devel. This is totally at your own risk and may not work at all. Updated quite not often, but is somewhat stable. See also: http://joelia.gthc.org/django.bugfixes See updated version at : http://code.djangoproject.com/wiki/DjangoBranches
  • 41. Commit access Full committers - long history of contributions to Django's codebase / being polite and helpful on the mailing lists. - desire to dedicate serious time to Django's development. granted by unanimous approval of all existing full committers, and the decision will err on the side of rejection. Partial committers - "domain experts" : contributes a large subframework to Django and wants to continue to maintain it. - giving a formal vote in questions that involve their subsystems. unanimous approval of all full committers (+ any other partial committers in the same area).
  • 42. Request commit access To request commit access, please contact an existing committer privately. Public requests for commit access are potential flame-war starters, and will be ignored.
  • 43. Testing : python unittest • Policy to make sure all tests pass at all times • tests directory of the Django tarball The tests cover: * Models and database API (tests/modeltests/). * core Django code (tests/regressiontests) * Contrib apps (django/contrib/<contribapp>/tests)
  • 44. Compare Process of 2 projects
  • 45. Software change and release management process & platform Issue tracking http://launchpad.net trac Release Schedule - Time Based Releases - Time Based Releases process process - regular release : - minor release every six * every six months months * 18 months support both * bug fixes support for last for for desktop and server minor releases edition * security support for previous two release - enterprise release (LTS) : - major release in years * every 12 to 24 months * 3 years support on the Desktop and 5 years for Server
  • 46. Release - planning : specifying features - feature proposal Process - merging with upstream ( debian ) - feature development - development alpha release. - testing - bugfixes * first alpha milestone. After 2 months, when the initial flood of new upstream version, merges with debian, and first set of new features are landed. * Three alpha milestones done every * beta release about halfway three weeks until freeze phase, to get through, early testing of the new features. * Two more alpha milestones in * rc complete with string freeze interval of 2 weeks for stabilizing the new two weeks before the end of the features and fixing the worst bugs. schedule. * Beta milestone, 3 or 4 weeks before final release. - Finalization. Testing every image to ensure the installation methods works as advertised. - Stable releases.
  • 47. Tools Respository bazaar SVN Testing - Ubuntu Testing Team for - sprint from hard-core test packages and ISO hacking to improving documentation to fixing - desktop testing small bugs. framework like dogtail or - python unittest LDTP