Monday, October 07, 2013

Travis and Android

If you're looking to build your Android app on Travis CI, using SDK r22.3 and API 19 (Android 4.4), put this in configuration file .travis.yml :

language: java
before_install: 
  # install necessary x32-libs for Android SDK 
  - sudo apt-get update -qq
  - sudo apt-get install -qq libstdc++6:i386 lib32z1
# download the latest android sdk and unzip 
  - wget http://dl.google.com/android/android-sdk_r22.3-linux.tgz
  - tar -zxf android-sdk_r22.3-linux.tgz
  - export ANDROID_HOME=`pwd`/android-sdk-linux
  - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
# only update the sdk for the tools and platform-tools and required api level # (run "android list sdk --extended" to get the full list) - echo "y" | android update sdk --filter tools,platform-tools,build-tools-19.0.0,android-19 --no-ui --force

Up to date version is here.

What it does (and why):
  • The Travis virtual machines are running 64 bit kernels, but the Android SDK needs 32 bit, so packages libstdc++6:i386 and lib32z1 are needed.
  • The Android SDK is not installed on the Travis instance, so you need to download and install it yourself.
  • Update the tools and platform-tools and API (here API 19) related packages.
  • There is no command line option to accept the license, so piping a "y" to the installer is necessary. Please note : if you have to accept multiple licences, this will not work.
Update (08Dec2013) : Only install required x32 packages, use names of SDK packages

Thanks to Levi Wilson and Ralf Kistner for inspiration to get it working.

phpMyAdmin and Google Summer of Code 2013

phpMyAdmin logo
GSoC 2013 was great for phpMyAdmin. We selected 6 students out of 25 project proposals. The number of proposals was slightly smaller than previous years.

Students Bin Zu and Supun Nakandala refactored many scripts this summer. All the scripts in the Server view and those regarding the SQL executor, along with scripts dealing with the table Structure were cleaned up. Code was moved into functions, variable names were improved, and one of the students wrote unit tests for his newly-created functions.

Through Google Summer of Code, Kasun Chathuranga did much work on implementing new feature requests and improving the interface of phpMyAdmin. Kasun's efforts implemented a number of features requested by users and improved the interface in a number of ways.

Mohamed Ashraf has successfully contributed an error reporting tool to the phpMyAdmin code base. The tool will aid end users in reporting JavaScript-related issues and help phpMyAdmin developers deliver fixes for such issues quicker.

Ayush Chaudhary and Adam Kang were selected for the Automated Testing project. Since it was not planned to take two students, code sections to do unit testing had to be split among them.
While writing unit tests for string manipulation functions in phpMyAdmin, one of the students identified that the functions were not implemented in a way that would facilitate unit testing and went on to refactor them to add new classes before writing unit tests for them.
Besides unit tests Selenium tests for interface testing were added. Existing tests were migrated to Selenium2 and helper classes were added that are needed to write Selenium tests.
Overall the test coverage of phpMyAdmin has increased.


All six students successfully finished their projects and their code is merged with the phpMyAdmin codebase which will be part of the upcoming 4.1 release, which you can expect in the next few weeks.
Some of the students are still around fixing bugs, we look forward to more contributions from them in the future.

Thanks to Google Summer of Code, we had again some great contributions and improvements to the phpMyAdmin project. Now that GSoC 2014 is announced already, we can start preparing for the next edition and another awesome summer of coding and mentoring.