24
Sylvain Beucler RMLL 2010 Bordeaux Savane 100% free software forge

Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Sylvain BeuclerRMLL 2010 Bordeaux

Savane100% free software forge

Page 2: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Overview

VCS: CVS, SVN, Git, Mercurial, Bzr

Trackers

Mailing lists

Webpages

Jobs

Page 3: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Overview - Goals

AGPL code

100% Free Software dependencies

Promote collaborative development best practices

Page 4: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Overview - History

2001: (Free) SourceForge install: Savannah

2001: SourceForge goes proprietary

2004: Code is renamed « Savane »

200-: PHP clean-ups

200-: Support for more VCS

2010: Savane rewrite

SourceForge

GForge

Savannah

FusionForge

SavaneRelationship with FusionForge ?

Page 5: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Free Forges

TrackersSystem

Trac

InDefero

Redmine

FusionForge

Tuxfamily

Gitorious

FreeHg

ShareSource

LibreSource

Savane

Gitweb/repo.or.cz

?

Launchpad

...

Page 6: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Architecture

Savane

CVS

Web front-endSystem back-end

@

Page 7: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

New code

● In progress● Design phase

● Looking at alternatives and frameworks

Page 8: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Savane front-end

Code rewrite

Currently: ugly PHP code inherited from SFThe current clean-up effort isn't enough

There are now nicer programming languages: PythonSaner code / No GPL-incompatible headaches

There are now nicer web frameworks: DjangoNot too complex (newcomers-friendly)

Excellent documentation / Less code!

Some limitations

Page 9: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Savane back-end

Behind the scenes:web → system replication rewrite

Before: complex cron

Now: NSS-based direct replication

Less code (delegation)

Smaller crons (15 lines)

Page 10: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Going decentralized

GNU Savannah

Page 11: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Decentralization – why ?

● Our data are locked in remote servers● Difficult to export● Difficult to install the software locally

(even if it's free)● Difficult to migrate between hosting facilities● Privacy issues● Efficiency

Page 12: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Decentralization – docs

● Freedom in the Cloud1h talk by Eben Moglen

● Web 2.0 is Sharecropping5mn demonstration by Jesse Vincent

Page 13: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Decentralization – how ?

● VCS became DVCS already● Git, Mercurial, Bzr, SVK...

● Bug trackers ? Let's check for alternatives :● SD● Fossil

Page 14: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

SD

● Distributed bug tracker● Get a full copy of your bugs and work locally &

offline● HTTP-based protocol● Based on generic distributed database Prophet

(CouchDB-style)● Cf. previous talk !

Page 15: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

$ export SD_REPO=sd-bugs$ mkdir $SD_REPO$ sd config user.email-address myaddy@$ time sd clone --from http://fsck.com/~jesse/sd-bugs/#############################. 99.6% 0:00Done.

If you're new to SD, [...]

real 4m22.845suser 0m29.622ssys 0m2.944s$ sd ticket search -- status!=closed | wc -l72$ sd ticket search -- status=closed | wc -l182$ du -sh sd-bugs1,3M sd-bugs

SD$ export SD_REPO=sd-bugs2$ mkdir $SD_REPO$ sd config user.email-address myaddy@$ time sd clone --from file://`pwd`/sd-bugs/#############################. 99.9% 0:00Done.

If you're new to SD, [...]

real 1m21.865suser 0m34.474ssys 0m2.720s

Page 16: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

SD

$ sd server --port 9876

Page 17: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Fossil

● Monolitic DVCS/Tracker/Wiki● Stand-alone static C executable● Fast !● HTTP-based protocol● SHA1-based IDs● Tickets conflits resolution :

very basic : time-based replay

Page 18: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Fossil$ apt-get install fossil$ time fossil clone http://www.fossil-scm.org/ myclone.fossilreal 1m10.590s# (465 tickets + code & wiki)$ time fossil clone file://`pwd`/myclone.fossil myclone2.fossilreal 0m17.824s$ fossil ui myclone.fossil

Page 19: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Deployment

GNU Savannah

Page 20: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Deployment

● Not done often : neglected by developers● Packages for GNU/Linux distros

● Work for Savane itself● Does not work for dependencies (configuration

conflicts)● Hybrid approach ?

– Savane package– Script to install and configure dependencies (preseed...)

Page 21: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Deployment

● autostrap● Automatically generate

preconfigured VM / « appliance » to test your app

● Work without root privileges

● Just run it with QEMUor import in VirtualBox

Page 22: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Contribute!

We're looking for:● Web designers● Coders

Page 23: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Thank you

Fire the questions!

Page 24: Savane - 2010.rmll.info2010.rmll.info/IMG/pdf/2-savannah.pdf · Overview - History 2001: (Free) SourceForge install: Savannah 2001: SourceForge goes proprietary 2004: Code is renamed

Challenges

> 8 years-old not-so-clean data

There Can Only Be One (version)Not code, but a service

Making everybody happy (no fork escape)

No release candidates – instant releases

Long-term maintenanceProtection (spam...) / Data migration

Security: restricted-shell access

Scalability