User Tools

Site Tools


content:servalmesh:development

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
content:servalmesh:development [06/05/2013 23:28]
Andrew Bettison fix relative and absolute links
content:servalmesh:development [14/02/2016 19:14] (current)
Andrew Bettison Add [Alpha and Beta releases] section
Line 1: Line 1:
-====== Instructions for developing Serval Mesh ======+====== Serval Mesh development ======
  
 ==== Overview ==== ==== Overview ====
Line 9: Line 9:
 To contribute code or documentation to [[.:|Serval Mesh]], please observe the Serval Project's [[:content:dev:|Software Development]] practices and refer to this page for procedures and resources that pertain specifically to Serval Mesh.  To contribute code or documentation to [[.:|Serval Mesh]], please observe the Serval Project's [[:content:dev:|Software Development]] practices and refer to this page for procedures and resources that pertain specifically to Serval Mesh. 
  
-==== Copyright and Licensing ====+==== Copyright ====
  
-Copyright in all Batphone source code (including technical documentation) is owned by [[content:spi]].  Contributors must assign their copyright to [[content:spi]] by furnishing a signed [[content:dev:|Developer Agreement]].  The Batphone source code is licensed to the public under the terms of the [[http://www.gnu.org/licenses/gpl.html|GNU General Public License, version 3]].+Copyright in all Batphone source code (including technical documentation) is either owned by [[content:spi]] or is owned by its author and licensed to the public under [[:content:dev:#copyright|non restrictive terms]].  Contributors can assign copyright to [[content:spi]] by furnishing a signed [[content:dev:|Developer Agreement]].
  
-See [[:content:servaldna:development#copyright_and_licensing|Serval DNA Copyright and Licensing]] for information about Serval DNA.+See [[:content:servaldna:development#copyright|Serval DNA Copyright]] for information about Serval DNA.
  
-==== Source code ====+==== Licensing ====
  
-The Batphone source code and accompanying technical documentation is held in the [[https://github.com/servalproject/batphone|Batphone GitHub repository]], which references the [[https://github.com/servalproject/serval-dna|Serval DNA]] repository as a [[http://git-scm.com/book/en/Git-Tools-Submodules|Git submodule]].+The Batphone source code is licensed to the public under the terms of the [[http://www.gnu.org/licenses/gpl.html|GNU General Public License, version 3]].
  
-  * The **Batphone [[https://github.com/servalproject/batphone/tree/master|master]]** branch is always the latest official release.  Each release is tagged with the release number, for example [[https://github.com/servalproject/batphone/tree/0.08|0.08]], [[https://github.com/servalproject/batphone/tree/0.90|0.90]].+See [[:content:servaldna:development#licensing|Serval DNA Licensing]] for information about Serval DNA.
  
-  * The **Batphone [[https://github.com/servalproject/batphone/tree/development|development]]** branch holds the latest unreleased code.  All commits on this branch should build cleanly (no warnings), and install and run okay. +==== Source code ====
  
-  * Large-scale code changes that break the build, installation or execution of Serval Mesh are performed in [[http://nvie.com/posts/a-successful-git-branching-model/|“feature” branches]], which are merged into the **development** branch and deleted once complete.+The Batphone source code and accompanying [[:content:dev:techdoc|technical documentation]] are controlled using [[:content:dev:git]] and held in the [[Batphone Git repository]], which contains two main branches: 
 +  - The head of the [[Git master branch]] is always the [[.:release:|latest public release]].  Each release is tagged with its [[version numbering|version number]], for example [[https://github.com/servalproject/batphone/tree/0.08|0.08]], [[https://github.com/servalproject/batphone/tree/0.90|0.90]]. 
 +  - The [[Git development branch]] holds code that is intended for the next release.  All commits on this branch should build cleanly (no warnings), and install and run okay. 
 + 
 +Large-scale code changes that break the build, installation or execution of Serval Mesh are performed in [[http://nvie.com/posts/a-successful-git-branching-model/|“feature” branches]], which are [[Git development branch|merged into the development branch]] and deleted once complete.
  
 ==== Technical documentation ==== ==== Technical documentation ====
Line 35: Line 39:
  
 The [[.:api:|API Documentation]] introduces the various [[http://en.wikipedia.org/wiki/Application_programming_interface|API]]s exposed by the Serval Mesh app. The [[.:api:|API Documentation]] introduces the various [[http://en.wikipedia.org/wiki/Application_programming_interface|API]]s exposed by the Serval Mesh app.
 +
 +The [[sampler|Serval Mesh Sampler]] application contains examples of how to use the [[.:api:|Serval Mesh APIs]].
 +
 +==== Alpha and Beta releases ====
 +
 +The Serval Mesh app is available for //open Beta testing// on Google Play, so anybody with a Google account can install and test the latest Beta version.  Furthermore, members of the [[https://groups.google.com/forum/#!forum/serval-project-developers|serval-project-developers]] Google group can test the Alpha version.
 +
 +  - Sign in to Google (requires a Google account)
 +  - To install the most recent **Alpha** or **Beta** version, join the [[https://groups.google.com/forum/#!forum/serval-project-developers|serval-project-developers]] Google group; to install only the latest **Beta** version, do not join that group
 +  - Go to the [[https://play.google.com/apps/testing/org.servalproject]] opt-in page and sign up as a Tester
 +  - Install the [[https://play.google.com/store/apps/details?id=org.servalproject|Serval Mesh app from Google Play]] -- the Alpha or Beta version will be installed
  
 ==== Testing and Quality Assurance ==== ==== Testing and Quality Assurance ====
  
-The [[.:testing:release_candidate|Serval Mesh Release Candidate]] is tested manually using the **[[.:testing:|Batphone test plan]]** prior to every release.+The **[[.:testing:|Batphone test plan]]** is used to manually test the [[.:testing:release_candidate|Serval Mesh Release Candidate]] prior to every release.
  
 There is a single automated test case for [[:content:tech:MeshMS|MeshMS]] in the [[https://github.com/servalproject/batphone/tree/development/tests|Batphone tests]] directory.  It uses the [[:content:tech:Bash test framework]] and requires two Android devices connected via USB with the Serval Mesh app installed and running. There is a single automated test case for [[:content:tech:MeshMS|MeshMS]] in the [[https://github.com/servalproject/batphone/tree/development/tests|Batphone tests]] directory.  It uses the [[:content:tech:Bash test framework]] and requires two Android devices connected via USB with the Serval Mesh app installed and running.
Line 45: Line 60:
  
 The Serval Project intends to increase the use of automated testing and release QA processes in future, and encourages the use of [[http://en.wikipedia.org/wiki/Unit_testing|unit testing]] and [[http://en.wikipedia.org/wiki/Test-driven_development|Test Driven Development]] by its contributors. The Serval Project intends to increase the use of automated testing and release QA processes in future, and encourages the use of [[http://en.wikipedia.org/wiki/Unit_testing|unit testing]] and [[http://en.wikipedia.org/wiki/Test-driven_development|Test Driven Development]] by its contributors.
 +
 +==== Releasing ====
 +
 +Follow the **[[.:release:|Serval Mesh release procedure]]** to make a new release of the Serval Mesh app.
 +
 +  * Learn about about Serval Mesh [[version numbering|version numbering]].
 +  * See the [[:content:servalmesh:releases:|full list of Serval Mesh releases]].
  
 ==== Bug tracking ==== ==== Bug tracking ====
Line 56: Line 78:
 It can be difficult to decide between a Serval DNA issue and a Batphone issue, especially without strong technical knowledge of the source code.  If in doubt, [[:content:contact|contact a Serval Project team member]] first, or report it as a [[https://github.com/servalproject/batphone/issues|Batphone issue]] by following the [[:content:dev:reporting_bugs|instructions for reporting Serval bugs]]. It can be difficult to decide between a Serval DNA issue and a Batphone issue, especially without strong technical knowledge of the source code.  If in doubt, [[:content:contact|contact a Serval Project team member]] first, or report it as a [[https://github.com/servalproject/batphone/issues|Batphone issue]] by following the [[:content:dev:reporting_bugs|instructions for reporting Serval bugs]].
  
-==== Past versions ====+==== External dependencies ====
  
 Versions of Batphone prior to 0.90 depended on the third-party apps [[http://code.google.com/p/websmsdroid/|SMSDroid and WebSMS]], which had to be downloaded and installed separately from Serval Mesh.  The pre-0.90 Batphone source code included parts of the SMSDroid source code to act as a client of that app.  These dependencies were removed in [[.:releases:version_0_90|version 0.90 “Shiny”]]. Versions of Batphone prior to 0.90 depended on the third-party apps [[http://code.google.com/p/websmsdroid/|SMSDroid and WebSMS]], which had to be downloaded and installed separately from Serval Mesh.  The pre-0.90 Batphone source code included parts of the SMSDroid source code to act as a client of that app.  These dependencies were removed in [[.:releases:version_0_90|version 0.90 “Shiny”]].
 +
content/servalmesh/development.1367908127.txt.gz · Last modified: 06/05/2013 23:28 by Andrew Bettison