- If you want to start development of ownCloud first download required files, then compile using console or Eclipse, finally create pull request:
+If you want to start help developing ownCloud please follow the [contribution guidelines][0] and observe these instructions:
- 1. Fork and download android/develop repository:
+### 1. Fork and download android/develop repository:
+
+NOTE: You must have git in your environment path variable to perform the next operations.
- - Navigate to https://github.com/owncloud/android, click fork.
- - Clone your new repo: "git clone git@github.com:YOURGITHUBNAME/android.git"
- - Checkout remote develop branch: "git checkout -b develop remotes/origin/develop"
+* Navigate to https://github.com/owncloud/android, click fork.
+* Clone your new repo: "git clone git@github.com:YOURGITHUBNAME/android.git"
+* Move to the project folder with "cd android"
+* Checkout remote develop branch: "git checkout -b develop remotes/origin/develop"
+* Pull changes from your develop branch: "git pull origin develop"
+* Make official ownCloud repo known as upstream: "git remote add upstream git@github.com:owncloud/android.git"
+* Make sure to get the latest changes from official android/develop branch: "git pull upstream develop"
+* Complete the setup of project properties and resolve pending dependencies running "setup_env.bat" or "./setup_env.sh" .
- 2. Building with console:
+At this point you can continue using different tools to build the project. Section 2, 3 and 4 describe some of the existing alternatives.
- - Use setup_env.sh or setup_env.bat
- - NOTE: You must have mvn, git, ant/bin, android/tools, and 'platforms-tools' in your enviroment path
- - Now you can create APK using "mvn package"
+### 2. Building with Ant:
- 3. Building with eclipse:
+NOTE: You must have the Android SDK 'tools/', and 'platforms-tools/' folders in your environment path variable.
- - TODO: FIX
- - Run "ant clean debug"
- - Open Eclipse and import *actionbarsherlock/library* project to your workspace
- - NOTE: You must have 'tools' and 'platforms-tools' in your path in order to run setup_env.sh
- - After those actions you should be good to go. HAVE FUN!
-
- 4. Create pull request:
+* Run "ant clean" .
+* Run "ant debug" to generate a debuggable version of the ownCloud app.
+
+### 3. Building with console/maven:
+
+NOTE: You must have mvn (version >= 3.1.1) in your environment path. Current Android 'platforms-tools' need to be installed.
+
+Download/install Android plugin for Maven, install owncloud-android-library, then build ownCloud with mvn:
+
+* cd ..
+* git clone https://github.com/mosabua/maven-android-sdk-deployer.git
+* cd maven-android-sdk-deployer
+* mvn -pl com.simpligility.android.sdk-deployer:android-19 -am install
+* cd ../android/owncloud-android-library
+* mvn install
+* cd ..
+
+Now you can create ownCloud APK using "mvn package"
+
+### 4. Building with Eclipse:
+
+NOTE: You must have the Android SDK 'tools/', and 'platforms-tools/' folders in your environment path variable.
+
+* Complete the setup of project properties and resolve pending dependencies running "setup_env.bat" or "./setup_env.sh" .
+* Open Eclipse and create new "Android Project from Existing Code". Choose android/actionbarsherlock/library as root.
+* Clean project and compile.
+* If any error appear, check the project properties; in the 'Android' section, API Level should be greater or equal than 14.
+* Make sure android/actionbarsherlock/library/bin/library.jar was created.
+* Create a new "Android Project from Existing Code". Choose android/owncloud-android-library as root.
+* Clean project and compile.
+* If any error appear, check the project properties; in the 'Android' section, API Level should be 19 or greater.
+* Make sure android/owncloud-android-library/bin/classes.jar was created.
+* Import ownCloud Android project.
+* Clean project and compile.
+* If any error appears, check the project properties of owncloud-android project; in the 'Android' section:
+ - API Level should be 19 or greater.
+ - Two library projects should appear referred in the bottom square: actionbarsherlock/library and owncloud-android-library. Add them if needed.
+* After those actions you should be good to go. HAVE FUN!
+
+NOTE: Even though API level is set to 19, APK also runs on older devices because in AndroidManifest.xml minSdkVersion is set to 8.
+
+### 5. Create pull request:
- - Commit your changes locally: "git commit -a"
- - Push your changes to your Github repo: "git push"
- - Browse to https://github.com/YOURGITHUBNAME/android/pulls
- - Click "Edit" and set "base:develop"
- - Again, click "Edit" and set "compare:develop"
- - Enter description and send pull request.
+NOTE: You must sign the [Contributor Agreement][1] before your changes can be accepted!
+
+* Commit your changes locally: "git commit -a"
+* Push your changes to your Github repo: "git push"
+* Browse to https://github.com/YOURGITHUBNAME/android/pulls and issue pull request
+* Click "Edit" and set "base:develop"
+* Again, click "Edit" and set "compare:develop"
+* Enter description and send pull request.
+
+### 6. Create another pull request:
+To make sure your new pull request does not contain commits which are already contained in previous PRs, create a new branch which is a clone of upstream/develop.
+* git fetch upstream
+* git checkout -b my_new_develop_branch upstream/develop
+* If you want to rename that branch later: "git checkout -b my_new_develop_branch_with_new_name"
+* Push branch to server: "git push -u origin name_of_local_develop_branch"
+* Use Github to issue PR
+[0]: https://github.com/owncloud/android/blob/master/CONTRIBUTING.md
+[1]: http://owncloud.org/about/contributor-agreement/