mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-25 05:44:06 -06:00
97 lines
3.3 KiB
Markdown
97 lines
3.3 KiB
Markdown
---
|
|
title: "22-open-source-software"
|
|
aliases:
|
|
tags:
|
|
- cosc202
|
|
- lecture
|
|
sr-due: 2022-09-15
|
|
sr-interval: 52
|
|
sr-ease: 250
|
|
---
|
|
|
|

|
|
|
|
# Describe Origination
|
|
- how do 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
|
|
- 
|
|
- JSRs java specification request
|
|
- |