OPEN-SOURCE



OPEN-SOURCE

0 0


OPEN-SOURCE

Presentation: Guideline für Open Source Projekte (Webworker NRW 2015)

On Github voku / OPEN-SOURCE

Guideline für Open Source Projekte

"Freie Software bietet Freiheit!"

Lars Moelleken |

  • Webentwickler !
  • Sysadmin !
  • Ninja !

Inhalt

1. Was ist Open Source Software?

2. Wo veröffentliche ich Open Source Software?

3. Welche Open Source Software Standards gibt es?

4. Wie veröffentliche ich Open Source Software?

5. Beispiel-Repository

Freiheit 0: Das Programm zu jedem Zweck auszuführen.

Freiheit 1: Das Programm zu untersuchen und zu verändern.

Freiheit 2: Das Programm zu verbreiten.

Freiheit 3: Das Programm zu verbessern und diese Verbesserungen zu verbreiten, um damit einen Nutzen für die Gemeinschaft zu erzeugen.

Geschichte

1893: AT&T wird gegründet

1911: IBM wird gegründet

1969: AT&T beginnt mit der Entwicklung eines quelloffenes Betriebssystem – Unix

1972: Dennis Ritchie veröffentlciht die Programmiersprache – C

1975: Microsoft wird von Bill Gates und Paul Allen gegründet

1976: Apple wird von Steve Jobs, Steve Wozniak und Ron Wayne gegründet

1977: Universität von Kalifornien in Berkeley entwickelt einen Fork von Unix – BSD

1980: Unix wird proprietär

1981: 86-DOS wird von Microsoft gekauft und an IBM verkauft ~ MS-DOS

1984: Richard Stallman beginnt mit der Entwicklung eines freien Betriebssystems – GNU

1985: Richard Stallman gründet eine gemeinnützliche Organisation – Free Software Foundation

1985: NeXT wird von Steve Jobs gegründet

1987: IBM und Microsoft veröffentlichen ein proprietäres Betriebssystem – OS/2

1987: Andrew S. Tanenbaum Minix veröffentlichen ein freies Betriebssystem – Minix

1988: MIT-Lizenz wird veröffentlicht

1988: NeXT, Inc. veröffentlicht ein proprietäres Betriebssystem, ein Fork von BSD – NeXTStep

1989: Richard Stallman schreibt eine Lizenz für Freie Software: GNU General Public License

1991: Linus Torvalds entwickelt einen freien Kernel – Linux

1993: Ian Murdock beginnt mit der Entwicklung eines freien Betriebssystems – Debian (GNU/Linux)

1993: Open-Source-Community veröffentlicht ein freies unixoides Betriebssystem – FreeBSD 1.0

1993: Microsoft veröffentlicht ein proprietäres Betriebssystem – Microsoft Windows 3.1

1995: Rasmus Lerdorf entwickelt eine Skriptsprache für Webanwendungen – PHP

1995: Sun Microsystems entwickelt eine objektorientierte Programmiersprache – Java

1995: Netscape entwickelt eine Skriptsprache für Client-Webanwendungen – JavaScript

1996: erste Version des Betriebssystems Debian wird veröffentlicht – Debian 1.1 (GNU/Linux)

1998: Goolge wird von Larry Page und Sergey Brin gegründet – Google

1998: Organisation, zur Förderung von Open-Source-Software wird gegründet – OSI

2000: Apple veröffentlicht ein freies unixoides Betriebssystem, einen Fork von NeXTStep (FreeBSD) – Darwin

2001: Microsoft veröffentlicht ein proprietäres Betriebssystem – Microsoft Windows XP

2001: ein freies Onlinelexikon geht online – Wikipedia

2001: gemeinnützliche Organisation für freie Software (Europa) wird gegründet – FSFE

2001: gemeinnützliche Organisation für freie Lizenzen wird gegründente – Creative Commons

2002: freie Software wird im deutschen Urhebergesetz rechtskräftig – Linux-Klausel

2003: ein freie Software zur Verwaltung von Websiten wird veröffentlicht – WordPress

2005: Linux Torvalds beginnt mit der Entwicklung einer freien Versionsverwaltung – git

2008: Google Chrome (freeware) / Chromium (free) wird veröffentlicht – Chrom[e|ium]

2008: Google veröffentlicht ein freies Betriebssystem – Android

2009: Joyent Inc. entwickelt freie serverseitige Plattform für Netzwerkanwendungen – NodeJS

2012: Microsoft veröffentlicht ein proprietäres Betriebssystem – Microsoft Windows 8

2013: Mozilla veröffentlicht ein freies Betriebssystem – Firefox OS

2014: Open-Source-Community veröffentlicht ein freies unixoides Betriebssystem – FreeBSD 10.0

2015: Linus Torvalds veröffentlicht eine neue Version seines freien Kernels – Linux 4.0

Freie Software ⊆ Open Source Software

To understand the concept, you should think of “free” as in “free speech”, not as in “free beer”.

Lizenzen

Starkes Copyleft Schwaches Copyleft kein Copyleft GPL LGPL, MPL BSD, Apache, MIT

GPL: keine Einbindung in proprietären Code möglich

LGPL: Linken von Code mit proprietärer Software möglich

BSD: darf auch in proprietäre Software verwendet werden

Geschäftsmodelle (Beispiele)

  • Quellcode der Programmiersprache veröffentlichen und entsprechende Tools (z.B.: IDE) verkaufen

  • Open Source Software weiterentwickeln und diese später als proprietärer Software verkaufen

  • Hardware mit Open Source Software verkaufen

  • proprietärer Software verkaufen, wobei Teile der Software Open Source sind

  • technischen Support verkaufen

  • Features (Werbung) gegen Zahlung in Open Source Software integrieren

  • eine Open Source und eine "Enterprise" Version anbieten

Geschäftsmodell ?

Wo veröffentliche ich Open Source Software?

Welche Open Source Software Standards gibt es?

- Open Source Lizenz für Software angeben - z.B.: LICENSE.txt

- Quellcode Organisatzion - z.B. "src/", "tests/", "lib/"

- Dokumentation für Entwickler und Anwender

- Plattform für Fragen und Kommunikation

- Versionsnummern korrekt verwenden

- Abhängigkeitsmanagement für verwendete Bibliotheken nutzen

- Testabdeckung und automatische Tests bei jeder Änderung

- Issue-Tracking-System zur Verwaltung von Bugs verwenden

- Contributor-Model bei größeren Projekten

Wie veröffentliche ich Open Source Software?

Beispiel: npm

Installation von node.js, z.B.:

sudo apt-get install nodejs

Konfiguriere npm

npm set init.author.name "Lars Moelleken"
npm set init.author.email "lars@moelleken.org"
npm set init.author.url "http://moelleken.org"

npm User erstellen (~/.npmrc)

npm adduser

Beispiel: npm

interaktiv eine "package.json"-Datei erstellen

npm init

Abhänigkeiten & Tests hinzufügen

npm install mocha --save-dev
npm install chai --save-dev

veröffentliche dein Paket

npm publish

Beispiel: bower

Installation von node.js, z.B.:

sudo apt-get install nodejs

Installation von bower

npm install -g bower

interaktiv eine "bower.json"-Datei erstellen

bower init

veröffentliche dein Paket

bower register <my-package-name> <git-endpoint>

Beispiel: composer

Installation von composer, z.B.:

curl -sS https://getcomposer.org/installer | php

interaktiv eine "composer.json"-Datei erstellen

composer init

veröffentliche dein Paket

https://packagist.org/packages/submit

Kritik an npm, bower, composer

  • git-tags können gelöscht werden

  • keine Signierung von Paketen (GnuPG)

  • Namen von Paketen (Namespace?)

  • Autoloader (Standard)?

Beispiel-Repository

Free/Libre Open Source - [FOSS|FLOSS]

Fragen?

Bilder-Quellen

0