WISP in a Box Development: Difference between revisions

From WirelessAfrica
No edit summary
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
----
{|align="right"
| style="height:100%;width:20em;border:1px solid #D9D9D9;background-color:#F2F2F2;" valign="top" |
*[[WISP_in_a_Box_Development|'''WISP in a Box Development Home''']]
|}
 


== Developer Guide ==
== Developer Guide ==
Line 11: Line 15:
* '''Downstream''' - ''Downstream'' are projects who use our code. For example, if someone were to create a linux distribution which focused on adding VOIP services to a WISP and which used [http://code.google.com/p/wispinabox WispBox] as a dependency then that project would be considered to be ''downstream'' from our project.
* '''Downstream''' - ''Downstream'' are projects who use our code. For example, if someone were to create a linux distribution which focused on adding VOIP services to a WISP and which used [http://code.google.com/p/wispinabox WispBox] as a dependency then that project would be considered to be ''downstream'' from our project.


[[Image:libre_software_cycle.png|right|frame|The Libré Software Development Cycle]]
* '''Users''' - We live and breathe for these special individuals as, without them, none of us would have paying jobs. Their contributions to the project usually take the form of running the software, reporting bugs on the mailing list and requesting features.


* '''Users''' - We live and breathe for these special individuals as, without them, none of us would have paying jobs. Their interaction with the project is usually in the form of downloading and using our software, reporting bugs on the mailing list or bug tracker and asking for more features.
* '''Contributors''' - ''Contributors'' are usually also users but they have both the ability and desire to contribute code patches, documentation and their expertise to project development discussions. Often, future developers on a project are drawn from the pool of contributors. Contributors are a necessary condition to the long-term sustainability of any Libré project. For this reason all new developers are first required to spend some time as a contributor to the project before they are "handed the keys to the house" and gain full access to the project infrastructure.


* '''Contributors''' - ''Contributors'' are usually also users but they have both the ability and the desire to contribute code patches, documentation and generally contribute their expertise to project development discussions. Often, future developers on a project are drawn from the pool of contributers. Contributors are a necessary condition to the long-term sustainability of Libré projects. For this reason all new developers are first required to spend some time as a contributor to the project before they are "handed the keys to the house" and gain full access to the project infrastructure.
* '''Developers''' - ''Developers'' perform the bulk of the development work and have full access to the project source repositories, servers and other infrastructure.


* '''Developers''' - ''Developers'' perform the bulk of the development work and have full access to the project source repositories, servers and other infrastructure.
[[Image:libre_software_cycle.png|left|frame|The Libré Software Development Cycle]]


<br clear=all>


=== Upstream Projects ===
=== Upstream Projects ===
Line 26: Line 31:
* [http://code.google.com/p/afrimesh '''Afrimesh'''] - the WispBox component integration toolkit and the core management dashboard.
* [http://code.google.com/p/afrimesh '''Afrimesh'''] - the WispBox component integration toolkit and the core management dashboard.
* [http://uck.sourceforge.net/ '''Ubuntu Customization Kit'''] - A set of scripts used by our build system to generate the WispBox livecd images.
* [http://uck.sourceforge.net/ '''Ubuntu Customization Kit'''] - A set of scripts used by our build system to generate the WispBox livecd images.


=== Setup Checklist ===
=== Setup Checklist ===
Line 35: Line 41:
* x86
* x86
* FreeBSD or Ubuntu
* FreeBSD or Ubuntu
* 1x ??? USB WiFi network card
* 1x Edimax 7711UM USB WiFi network card
|- valign="top"  
|- valign="top"  
| WISP Server ||
| WISP Server ||
Line 94: Line 100:
=== Resources ===
=== Resources ===


* [[Media:Community_barriers_to_entry_checklist.pdf|'''Community Building : Barriers to Entry''']] - [http://www.neary-consulting.com/ Neary Consulting]
* [[Media:Community_barriers_to_entry_checklist.pdf|'''Community Building : Barriers to Entry''']] - Neary Consulting [http://www.neary-consulting.com]
 


== Development ==


----
=== [[VO Requirements & Functionality Questions]] ===

Latest revision as of 09:13, 15 October 2009


Developer Guide

WISP in a Box development is organized as an Open-Source or Libré software project.

In order to understand what this means and be able to work together in this way we need to agree on the definitions of the following five words:

  • Upstream - We use the term Upstream to refer to projects which our project makes use of. For example net-snmp and afrimesh are both upstream projects of the WispBox.
  • Downstream - Downstream are projects who use our code. For example, if someone were to create a linux distribution which focused on adding VOIP services to a WISP and which used WispBox as a dependency then that project would be considered to be downstream from our project.
  • Users - We live and breathe for these special individuals as, without them, none of us would have paying jobs. Their contributions to the project usually take the form of running the software, reporting bugs on the mailing list and requesting features.
  • Contributors - Contributors are usually also users but they have both the ability and desire to contribute code patches, documentation and their expertise to project development discussions. Often, future developers on a project are drawn from the pool of contributors. Contributors are a necessary condition to the long-term sustainability of any Libré project. For this reason all new developers are first required to spend some time as a contributor to the project before they are "handed the keys to the house" and gain full access to the project infrastructure.
  • Developers - Developers perform the bulk of the development work and have full access to the project source repositories, servers and other infrastructure.
The Libré Software Development Cycle


Upstream Projects

WISP in a Box has many upstream dependencies. The following list are the ones you will see referred to most commonly:

  • Afrimesh - the WispBox component integration toolkit and the core management dashboard.
  • Ubuntu Customization Kit - A set of scripts used by our build system to generate the WispBox livecd images.


Setup Checklist

Task Description
Development Workstation
  • x86
  • FreeBSD or Ubuntu
  • 1x Edimax 7711UM USB WiFi network card
WISP Server
  • AMD ION
  • 1GB RAM
  • 80GB Hard Drive
  • D-Link USB Ethernet
Development Mesh Node
  • D-Link DIR-300
Deployment Mesh Node
  • HPN
Subscribe to mailing lists TODO
Join IRC Install an IRC client and configure it for irc.freenode.net, #afrimesh (ask George if you need help)
Configure WispBox Development Environment

Read: http://code.google.com/p/wispinabox/wiki/DevelopmentEnvironment

Configure Afrimesh Development Environment

Read: http://code.google.com/p/afrimesh/wiki/DevelopmentEnvironment


Core Project Infrastructure

Resource URL Description
Mailing List - User Support TO COME Users, Contributors and Developers should subscribe to and follow this list.
Mailing List - Development TO COME Contributors and Developers should subscribe to and follow this list.
Issue tracker http://code.google.com/p/wispinabox/issues/list Bug reports and feature requests submitted to the Issue tracker are more likely to receive attention!
IRC http://webchat.freenode.net/?channels=afrimesh For IRC client configuration, use: irc.freenode.net, #afrimesh
Wiki - Main http://wirelessafrica.meraka.org.za/wiki/index.php?title=WISP_in_a_Box_Development
Wiki - WispBox http://code.google.com/p/wispinabox/w Content hosted here still needs to be migrated to the main wiki
Wiki - Afrimesh http://code.google.com/p/afrimesh/w Afrimesh services multiple projects and as such maintains a separate wiki
Version Control - WispBox http://code.google.com/p/wispinabox/source/checkout
Version Control - Afrimesh http://code.google.com/p/afrimesh/source/checkout
Package Repository https://launchpad.net/~wispinabox
Build Server TO COME


Resources


Development

VO Requirements & Functionality Questions