DidRocks' blog

apt-get install freedom

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - android

Fil des billets - Fil des commentaires

jeudi, septembre 10 2015

Ubuntu Make 15.09.2 enables you to install Android SDK only.

I'm proud to announce this new Ubuntu Make release, with excellent new feature and fixes from our community.

First, welcome Sebastian Schubert to the Ubuntu Make contributor family. He did some awesome work on implementing Android SDK only support (for those not wanting to install the whole Android Studio bundle) in Ubuntu Make! As usual, this is backed up with large and medium tests to cover us, great enhancement! :)

The new option to install android sdk is:

$ umake android android-sdk

You will get into your user PATH (after next login) the expected android platform tools.

Secondly, Omer Sheikh, who already implemented language selection in firefox developer edition, came back with some heavy duty of rationalizing every exit codes accross Ubuntu Make, to ensure we always exit with the expected error code in every situation. Not only he implemented this, but also he did grow our testsuite to ensure that any bad download page are properly detected! Awesome work.

Smaller fixes sneaked in as well and you can get the full release content details here. As usual, you can get this latest version direcly through its ppa for the 14.04 LTS, 15.05 and wily ubuntu releases.

Our issue tracker is full of ideas and opportunities, and pull requests remain opened for any issues or suggestions! If you want to be the next featured contributor and want to give an hand, you can refer to this post with useful links!

mercredi, février 18 2015

Ubuntu Make community releases 0.6 with 5 new supported platforms

What always inspires me in my work is that community participation is at heart of what we are doing, and that’s what help us waking up everyday. Anybody can dive and fix small typos, bugs, or even bring big features to the table! This is exactly what happened with this new Ubuntu Make 0.6 release, entirely backed by community participation!

In addition to zsh support, you will find 5 new jetbrains IDE supported into the “ide” Ubuntu Make category, which are: RubyMine, PyCharm educational edition, PyCharm professional, WebStorm and PhpStorm! Those new ones align nicely and complete the already supported 10 platforms in Ubuntu Make, totalising thus (if I can do maths) 15 of them! Remember we started the vivid cycle with only one platform supported as it was about building solid foundations and helpers in the tool so that such contributions can exist. :) I guess there has never been a better time to be a developer using Ubuntu as their OS!

I was delighted to see such big contributions being posted as a pull requests by Anton Antonov without much more to do afterwards than slight adjustments. This testified that the overall frameworks (and tests infra as well) is easy enough to grock and that’s a huge source of satisfaction for us! I was even more excited to see that another community member who did a lot of work on Ubuntu Make (Tin Tvrtković) helped on the review and gave great advice!

Great work team! That’s the kind of things that made my day. All those niceties and excellent contributions are available as of now in Ubuntu Make 0.6 in Vivid, as well, through its ppa, to 14.04 LTS and 14.10 ubuntu releases.

Maybe you can be the next awesome contributor? Our issue tracker is full of ideas and opportunities, and pull requests remains opened for any issues or suggestions! For all the various form of contributions and how to give an hand, you can refer to this post!

jeudi, février 12 2015

Ubuntu Make 0.5 adds four new platforms

Hot from the builders, we just cut a big release of Ubuntu Make 0.5 bringing fresh new support to a bunch of IDEs and programming languages! Web developers will see great enhancements in this release, but other developers are not left out!

We welcome first a new “web” category which is hosting Dart support now! Dartlang fans would be able to get the editor and sdk installed, registered in the OS and added to the launcher in a simple command!

umake dart

and you are ready to go!

Firefox Developer Edition is now available as well under the same new “Web” category. Installing and getting a great environment for your web development is just a command away on Ubuntu!

The JetBrains suite got its Idea Ultimate edition support thanks to another excellent contribution from Tin Tvrtković. He already fixed other jetbrains support if you were redirected (based on location) over the ftp download.

Another request was to add Android NDK support. Your wish is now fulfilled under the Android category!

In addition to this, we merged latest translations coming from the community, thanks to all of you contributing to it! Please note that due to those new categories, there are new strings to be translated. It’s a nice way to get your first contribution to ubuntu make just awaiting for you!

Ubuntu Make 0.5 is already available in Vivid, as well, through its ppa, to 14.04 LTS and 14.10 ubuntu releases. For full details about the release are available here.

Our issue tracker and pull requests remains opened for any issues or suggestions!

mardi, décembre 16 2014

Ubuntu Make 0.3 brings Intellij IDEA and Pycharm support

Thanks to the continuous awesome work of Tin Tvrtković, we can now cut out a new 0.3 of Ubuntu Make (ex Ubuntu Developer Tools Center).

This one features 2 new great IDEs (under the ide category): Intellij IDEA and Pycharm, in their respective community editions. We want to thank as well the JetBrains team to have kindly provided checksums for their downloading assets so that Ubuntu Make can check the download integrity.

Of course, all those are backed up by tests (and this release needed some test fixes). We could as well detect thanks to those tests that Android Studio 1.0 was downloaded over http and switch that back to https.

All of this is in this new shiny 0.3 Ubuntu Make release, available in ubuntu vivid and in its ppa for older ubuntu releases!

Please note that we also moved the last piece under the new Ubuntu Make umbrella: the official github repo address is now at https://github.com/ubuntu/ubuntu-make. We have redirections from the old address to the new one, and of course, we updated the documentation, so no reason to not contribute! Seems that some test web frameworks can be arriving soon from our community…

mardi, novembre 4 2014

Just released Ubuntu Developer Tools Center 0.1.1

In a nutshell, this release is fixing the changes introduced by the new Android Studio (0.8.14) download in beta channel.

The web page changed from a md5 checksum to a sha1. We do that check as we grab that information from a secure https connexion, but then, we download from dl.google.com which isn't https enabled.

Thanks again to Tin Tvrtković who did the work to add this support and makes the necessary changes! :) I just had to do a little cleanup and then releasing it!

How did we noticed it?

Multiple source of inputs:

  • The automated tests which are running every couple of hours were both failing reliably in trunk and latest release version, on both architecture, only for android studio in the large tests (medium tests, with fake assets were fine). This clearly meant that a third-party broke us!
  • Some bug reports from the community
  • Some directly addressed emails!

It was a nice way to see that Ubuntu Developer Tools Center is quite used, even if this is through an external breakage. Thanks to all those inputs, the fix went in shortly!

On Android Studio not shipping the sdk anymore.

With this new release, Android Studio is not shipping the sdk embedded anymore and it needs to be downloaded separately. I think this is a nice move: decoupling editor code from sdk tools just makes sense.

However, in my opinion, the initial setup seems a little bit not obvious for people who just want to start android development (you have to download the sdk tools, and then, find in Android Studio where to set that path to the sdk, knowing that reopening the same window will keep you previous path only you have one sdk version installed from those sdk tools).

It seems as well that there is no way to set that up from the command line or configuration file without listing installed sdk versions, which will then not be a robust way for the ubuntu developer tools center to do it for you.

So, for now, we are following the upstream (I think they have a plan for better integration in the future) way of letting the user downloading the sdk, I will be interested in getting feedback from new users on how it went for them on that step.


0.1.1 is now available to the regular channels: - in vivid - in the ubuntu-developer-tools-center ppa for Ubuntu 14.04 LTS and 14.10.

mercredi, octobre 29 2014

Eclipse and android adt support now in Ubuntu Developer Tools Center

Eclipse and Android ADT support now in Ubuntu Developer Tools Center

Now that the excellent Ubuntu 14.10 is released, it's time to focus as part of our Ubuntu Loves Developers effort on the Ubuntu Developer Tools Center and cutting a new release, bringing numerous new exciting features and framework support!

0.1 Release main features

Eclipse support

Eclipse is now part of the Ubuntu Developer Tools Center thanks to the excellent work of Tin Tvrtković who implemented the needed bits to bring that up to our users! He worked on the test bed as well to ensure we'll never break unnoticed! That way, we'll always deliver the latest and best Eclipse story on ubuntu.

To install it, just run:

$ udtc ide eclipse

and let the system set it up for you!


Android Developer Tools support (with eclipse)

The first release introduced the Android Studio (beta) support, which is the default in UDTC for the Android category. In addition to that, we now complete the support in bringing ADT Eclipse support with this release.


It can be simply installed with:

$ udtc android eclipse-adt

Accept the SDK license like in the android studio case and be done! Note that from now on as suggested by a contributor, with both Android Studio and Eclipse ADT, we add the android tools like adb, fastboot, ddms to the user PATH.

Ubuntu is now a truly first-class citizen for Android application developers as their platform of choice!

Removing installed platform

As per a feature request on the ubuntu developer tools center issue tracker, it's now really easy to remove any installed platform. Just enter the same command than for installing, and append --remove. For instance:

$ udtc android eclipse-adt --remove
Removing Eclipse ADT
Suppression done

Enabling local frameworks

As requested as well on the issue tracker, users can now provide their own local frameworks, by using either UDTC_FRAMEWORKS=/path/to/directory and dropping those frameworks here, or in ~/.udtc/frameworks/.

On glorious details, duplicated categories and frameworks loading order is the following:

  1. UDTC_FRAMEWORKS content
  2. ~/.udtc/frameworks/ content
  3. System ones.

Note though that duplicate filenames aren't encouraged, but supported. This will help as well testing for large tests with a basic framework for all the install, reinstall, remove and other cases common in all BaseInstaller frameworks.

Other enhancements from the community

A lot of typo fixes have been included into that release thanks to the excellent and regular work of Igor Vuk, providing regular fixes! A big up to him :) I want to highlight as well the great contributions that we got in term of translations support. Thanks to everyone who helped providing or updating de, en_AU, en_CA, en_GB, es, eu, fr, hr, it, pl, ru, te, zh_CN, zh_HK support in udtc! We are eager to see what next language will enter into this list. Remember that the guide on how to contribute to Ubuntu Developer Tools Center is available here.

Exciting! How can I get it?

The 0.1 release is now tagged and all tests are passing (this release brings 70 new tests). It's available directly on vivid.

For 14.04 LTS and 14.10, use the ubuntu-developer-tools-center ppa where it's already available.


As you have seen above, we really listen to our community and implement & debate anything coming through. We start as well to see great contributions that we accept and merge in. We are just waiting for yours!

If you want to discuss some ideas or want to give a hand, please refer to this blog post which explains how to contribute and help influencing our Ubuntu loves developers story! You can as well reach us on IRC on #ubuntu-desktop on freenode. We'll likely have an opened hangout soon during the upcoming Ubuntu Online Summit as well. More news in the coming days here. :)

mercredi, septembre 24 2014

Ubuntu Developer Tools Center: how do we run tests?

We are starting to see multiple awesome code contributions and suggestions on our Ubuntu Loves Developers effort and we are eagerly waiting on yours! As a consequence, the spectrum of supported tools is going to expand quickly and we need to ensure that all those different targeted developers are well supported, on multiple releases, always delivering the latest version of those environments, at anytime.

A huge task that we can only support thanks to a large suite of tests! Here are some details on what we currently have in place to achieve and ensure this level of quality.

Different kinds of tests

pep8 test

The pep8 test is there to ensure code quality and consistency checking. Tests results are trivial to interpret.

This test is running on every commit to master, on each release during package build as well as every couple of hours on jenkins.

small tests

Those are basically unit tests. They are enabling us to quickly see if we've broken anything with a change, or if the distribution itself broke us. We try to cover in particular multiple corner cases that are easy to test that way.

They are running on every commit to master, on each release during package build, every time a dependency is changed in Ubuntu thanks to autopkgtests and every couple of hours on jenkins.

large tests

Large tests are real user-based testing. We execute udtc and type in stdin various scenarios (like installing, reinstalling, removing, installing with a different path, aborting, ensuring the IDE can start…) and check that the resulting behavior is the one we are expecting.

Those tests enables us to know if something in the distribution broke us, or if a website changed its layout, the download links are modified, or if a newer version of a framework can't be launched on a particular Ubuntu version or configuration. That way, we are aware, ideally most of the time even before the user, that something is broken and can act on it.

Those tests are running every couple of hours on jenkins, using real virtual machines running an Ubuntu Desktop install.

medium tests

Finally, the medium tests are inheriting from the large tests. Thus, they are running exactly the same suite of tests, but in a Docker containerized environment, with mock and small assets, not relying on the network or any archives. This means that we ship and emulate a webserver delivering web pages to the container, pretending we are, for instance, https://developer.android.com. We then deliver fake requirements packages and mock tarballs to udtc, and running those.

Implementing a medium tests is generally really easy, for instance:

class BasicCLIInContainer(ContainerTests, test_basics_cli.BasicCLI):

"""This will test the basic cli command class inside a container"""

is enough. That means "takes all the BasicCLI large tests, and run them inside a container". All the hard work, wrapping, sshing and tests are done for you. Just simply implement your large tests and they will be able to run inside the container with this inheritance!

We added as well more complex use cases, like emulating a corrupted downloading, with a md5 checksum mismatch. We generate this controlled environment and share it using trusted containers from Docker Hub that we generate from the Ubuntu Developer Tools Center DockerFile.

Those tests are running as well every couple of hours on jenkins.

By comparing medium and large tests, as the first is in a completely controlled environment, we can decipher if we or the distribution broke us, or if a change from a third-party changing their website or requesting newer version requirements impacted us (as the failure will only occurs on the large tests and not in the medium for instance).

Running all tests, continuously!

As some of the tests can show the impact of external parts, being the distribution, or even, websites (as we parse some download links), we need to run all those tests regularly[1]. Note as well that we can experience different results on various configurations. That's why we are running all those tests every couple of hours, once using the system installed tests, and then, with the tip of master. Those are running on various virtual machines (like here, 14.04 LTS on i386 and amd64).

By comparing all this data, we know if a new commit introduced regressions, if a third-party broke and we need to fix or adapt to it. Each testsuites has a bunch of artifacts attached to be able to inspect the dependencies installed, the exact version of UDTC tested here, and ensure we don't corner ourself with subtleties like "it works in trunk, but is broken once installed".

jenkins test results

You can see on that graph that trunk has more tests (and features… just wait for some days before we tell more about them ;)) than latest released version.

As metrics are key, we collect code coverage and line metrics on each configuration to ensure we are not regressing in our target of keeping high coverage. That tracks as well various stats like number of lines of code.


Thanks to all this, we'll probably know even before any of you if anything is suddenly broken and put actions in place to quickly deliver a fix. With each new kind of breakage we plan to back it up with a new suite of tests to ensure we never see the same regression again.

As you can see, we are pretty hardcore on tests and believe it's the only way to keep quality and a sustainable system. With all that in place, as a developer, you should just have to enjoy your productive environment and don't have to bother of the operation system itself. We have you covered!

Ubuntu Loves Developers

As always, you can reach me on G+, #ubuntu-desktop (didrocks) on IRC (freenode), or sending any issue or even pull requests against the Ubuntu Developer Tools Center project!


[1] if tests are not running regularly, you can consider them broken anyway

mardi, septembre 2 2014

Ubuntu loves Developers

Ubuntu is one of the best Linux platforms with an awesome desktop for regular users (and soon phone and tablets and more!) and great servers for system administrators and devops. A number of developers are choosing Ubuntu as their primary development system of choice, even if they develop for platforms other than Ubuntu itself, like doing some Android development, web development and so on.


However, even if we fill the basic needs for this audience, we decided a few months ago to start a development and integration effort to make those users completely feel at home. Ubuntu loves developers and we are going to showcase it by making Ubuntu the best available developer platform!

Sounds great! What's up then?

We decided to start by concentrating on Android developers. We'll ramp up afterwards on other use cases like Go developers, web developers, Dart… but we want to ensure we deliver a stunning experience for each targeted audience before moving on to the next topic.

After analyzing how to setup an Android development machine on Ubuntu we realized that, depending on the system, it can takes up to 9 different steps to get proper IDE integration and all the dependencies installed. The whole goal was to reduce that to one single command!

Concretely speaking, we created the Ubuntu Developer Tools Center, a command line tool which allows you to download the latest version of Android Studio (beta), alongside the latest Android SDK, and all the required dependencies (which will only ask for sudo access if you don't have all the required dependencies installed already), enable multi-arch on your system if you are on a 64 bit machine, integrate it with the Unity launcher…


As said, we focused on Android Studio (based itself on Intellij IDEA) for now as it seems that’s where Google has been focusing its Android tools development effort for over a year. However, the system is not restrictive and it will be relatively trivial in the near future to add ADT support (Android Development Tools using Eclipse)[1].


Indeed, The Ubuntu Developer Tools Center is targeted as being a real platform for all developer users on Ubuntu. We carefully implemented the base platform with a strong technical foundation, so that it's easily extensible and some features like the advanced bash shell completion will even make more sense once we added other development tools support.


We will always target first the latest Ubuntu LTS version alongside the latest version in development. Yes! It means that people who want to benefit for the extensively tested and strong base experience that a Long Term Support version offers will always be up to date on their favorite developer tools and be first-class citizen. We strongly believe that developers always want the latest available tools on a strong and solid stable base and this is one of the core principle we are focusing on.

For now, the LTS support is through our official Ubuntu Developer Tools Center ppa, but we plan to move that to the backports archive with all the newly or updated libraries. For Utopic, it's already available in the 14.10 Ubuntu archive.

Initial available version

Be aware that the Ubuntu Developer Tools Center is currently in alpha. This tool will evolve depending on your feedback, so it's up to you to suggest the direction you want it to go! A blog post on how to contribute will follow in the next days. This initial version is available in English, French and Chinese!

Another blog post will expand as well how we test this tool. For now, just be aware that the extensive test suite is running daily, and it ensures that on all supported platforms we don't break, that the Ubuntu platform itself doesn't break us, or that any 3rd party on which we rely on (like website links and so on) don't change without us spotting it. This will ensure that our tools is always working, with limited downtime.

Example: how to install Ubuntu Developer tools and then, Android Studio

Ubuntu Developer Tools Center

If you are on Ubuntu 14.04 LTS, first, add the UDTC ppa:

$ sudo add-apt-repository ppa:didrocks/ubuntu-developer-tools-center $ sudo apt-get update

Then, installing UDTC:

$ sudo apt-get install ubuntu-developer-tools-center

How to install android-studio

Simply executes[2]:

$ udtc android

And then, accept the installation path and Google license. It will download, install all requirements alongside Android Studio and latest android SDK itself, then configure and fit it into the system like by adding an Unity launcher icon…

And that's it! Happy Android application hacking on Ubuntu. You will find the familiar experience with the android emulator and sdk manager + auto-updater to always be on the latest. ;)



We welcome any ideas and feedback, as well as contributions as we'll discuss more in the next post. Meanwhile, do not hesitate to reach me on IRC (didrocks on freenode, #ubuntu-desktop as the primary channel to discuss), or on Google+. You can as well open bugs on the launchpad project or github one

I'm excited about this opportunity to work on the developer desktop. Ubuntu loves Developers, and it's all on us to create a strong developer community so that we can really make Ubuntu, the developer-friendly platform of choice!


[1] For the technical audience, the Android Studio specific part is less than 60 lines

[2] android-studio is the default for the android development platform, you can choose it explicitely by executing "$ udtc android android-studio". Refer to --help or use the bash completion for more help and hints

samedi, juin 30 2012

Android ICS on wetab (exopc slate)!

Spend few hours installing Android ICS (Cyanogenmod built for x86) on my exopc tablet and playing with it.

I've never been impressed by Meego installed on it as a developer preview, performance and feature-wise. I've found yesterday evening those instructions and links about a corvusmod rebuild of cynagenmod and I gave it a try! Of course, as this is not an arm device but x86 one, not a lot of applications are working out of the box, but overall, the UI is totally functional and browsing the web is a delightful experience.

Galaxy Nexus After migrating to a google nexus phone (my previous phone had android 2.2), I'm now full ICS at home and I love it! Well done Android team for taking hard decisions and focusing on the user experience itself[1]. This tremendous turn on having coherent and well-designed UI gave a lot of credits to the whole OS. Everything is now smooth on my phone AND my tablet and I love the whole ecosystem integration. :)

I hope we will be able to deliver the same kind of experience on ubuntu, coherent and centralized ecosystem where going from one device to another is almost seamless. I noted as well that the base OS image is only ~170 Mb. I wonder if we could achieve something similar seeing for how many releases we stroke to find enough space on the old 700Mb limitation… I guess we will have to take drastic decisions, but this time, keep them straight as we already tried 2 years ago with the netbook edition flavor :)


[1] And I'm really happy that at Canonical, we are currently doing the same on Ubuntu