Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
content:servalmesh:development [14/05/2013 23:18] 127.0.0.1 external edit |
content:servalmesh:development [14/02/2016 19:14] Andrew Bettison Add [Alpha and Beta releases] section |
====== Instructions for developing Serval Mesh ====== | ====== Serval Mesh development ====== |
| |
==== Overview ==== | ==== Overview ==== |
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 ==== |
| |
The [[sampler|Serval Mesh Sampler]] application contains examples of how to use the [[.:api:|Serval Mesh APIs]]. | 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 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 ==== |
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”]]. |
| |