--- title: "22-open-source-software" aliases: tags: - cosc202 - lecture sr-due: 2022-06-19 sr-interval: 3 sr-ease: 250 --- ![](https://i.imgur.com/3EQenkP.png) # Describe Origination - how to floss projects get created - forking an existing open source project - mangement of existig project "run out of steam" - users decide to take development of themselves - some decides to apply an open source licence - e.g., individual or member of team with appropriate responsibility - Motivation for release as floss - giving back to community - seeking addition team members, code or otherwise - grow ecosystem around the software system - essentially a form of publicity # Detail Roles - Team shape - depends of specifics and scale of project - small projects often driven by an individual - a few developers collaborate closely - often code founders - large potentially open team combine contributions - different jobs and skill sets beyond coding - documentation - creating and updating - code review - pre-merge and post-merge quality control - testing - developing tests (or test suites), and reporting back user bugs - community - keeping team motivated and focused # Contrast Governance vs management - mangement - day to day decisions - governance - controlling overall roadmap - setting priorities to reach intended milestones - often a spectrum between - commercial organisation that retain ownership - open community-led approach - community-led governance needs agreed stucture - e.g., executive, committees, voting process for key decisions # Sketch OSS foundations # # sharing development and governance - required governance processes similar in big projects - can benefit from manageing multiple projects together - e.g. apache software foundation (ASF) - american non-profit - manages more than 350 projects - can share governance, management, and commounity - conferences (apacheCon) bringing community together - many others e.g., free software foundation (GNU) ## Incubation into open source foundations - foundations reputation: projects must he high quality - but also want to be boradly accepting - ASF has Apache incubator - new projects gain inital ASF linkage - see if projects demonstrate continued development activity - see if projects are popular iwth end users - Large organisations can donate code to incubator - need to be sure that code can be maintained - e.g., google wave # Understand sustainability challenges - need mechanisms to keep project resouced - e.g., financial support for key developers - sustainability - software is seldom "finished" - new features require development - bugs need fiing, but hobbyists don't give 24/7 service - older code within project may need maintenance - Development path can become contentious - e.g., too slow, or percieved to be in wrong direction - ...which can lead to project forks and split community ## Examples - PEP python enchancement proposal - usually focis on language feature additions or changes - but sometimes relate to the governance of Python - PEP approval process involves input from: - python community - python steering council - Guido van rossum was 'benevolent dictator for life' - st ood d - JCP java community process - open collaboration to ratify java standards - ![](https://i.imgur.com/ls7GAck.png) - JSRs java specification request -