ubuntu-make

Ubuntu Make

Ubuntu Make is a command line tool which allows you to download the latest version of popular developer tools on your installation, installing it alongside all of the required dependencies (which will only ask for root 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. Basically, one command to get your system ready to develop with!

Our philosophy

First, let's define the core principles around the Ubuntu Make and what we are trying to achieve with this:

  1. Ubuntu Make will always download, test and support the latest available upstream developer stack. No version is stuck in stone for 5 years. We get the latest and the best release that upstream delivers to all of us. We are conscious that being able to develop on a freshly updated environment is one of the core values of the developer audience and that's why we want to deliver that experience with Ubuntu Make.
  2. We know that developers want stability overall and not have to upgrade or spend time maintaining their machine every 6 months. We agree they shouldn't have to and the platform should "get out of my way, I've got work to do." That's the reason why we focus heavily on the latest LTS release of Ubuntu. All tools will always be backported and supported on the latest Long Term Support release. Tests are running multiple times a day on this platform. In addition to this, we support, of course, the latest available Ubuntu Release for developers who likes to live on the edge!
  3. We want to ensure that the supported developer environment is always functional by always downloading the latest version from upstream. The software stack can change its requirements, requiring newer or extra libraries and thus cause breakage. That's why we are running an entire suite of functional tests multiple times a day, on both versions that you can find in distro and on the latest trunk. That way we know if:
    1. We broke ourselves in trunk and needs to fix it before releasing.
    2. The platform broke one of the developer stack and we can promptly fix it.
    3. A third-party application or a website changed and broke the integration. We can then fix this really early on.

All of those tests running will ensure the best experience we can deliver, while always fetching the latest release version from upstream. All of this on a very stable platform!

Supported platforms

The list of supported platforms is always evolving. We divided Ubuntu Make in categories so that it's easier for developers to navigate and install what they require. We invite you to look at existing current support using the --help option or shell completion. This list goes from Android (java and native) development, to games, frontend web (javascript and dart), backend (go and dart), and various ide (python, C++ java…).

$ bin/umake --help
usage: umake [--help] [-v] [-r] {games,web,go,dart,ide,android} ...

Deploy and setup developers environment easily on ubuntu

positional arguments:
  {games,web,go,dart,ide,android}
                        Developer environment
    games               Games Development Environment
    web                 Web Developer Environment
    go                  Go language
    dart                Dartlang Development Environment
    ide                 Generic IDEs
    android             Android Development Environment

optional arguments:
  --help                Show this help
  -v, --verbose         Increase output verbosity (2 levels)
  -r, --remove          Remove specified framework if installed

Note that you can also configure different debug logs behaviors using LOG_CFG
pointing to a log yaml profile.
* Command 'games':
usage: umake games [-h] {stencyl} ...

positional arguments:
  {stencyl}
    stencyl   Stencyl game developer IDE

optional arguments:
  -h, --help  show this help message and exit

* Command 'web':
usage: umake web [-h] {firefox-dev,visual-studio-code} ...

positional arguments:
  {firefox-dev,visual-studio-code}
    firefox-dev         Firefox Developer Edition
    visual-studio-code  Visual Studio focused on modern web and cloud

optional arguments:
  -h, --help            show this help message and exit

* Command 'go':
usage: umake go [-h] {go-lang} ...

positional arguments:
  {go-lang}
    go-lang   Google compiler (default)

optional arguments:
  -h, --help  show this help message and exit

* Command 'dart':
usage: umake dart [-h] {dart-sdk} ...

positional arguments:
  {dart-sdk}
    dart-sdk  Dart SDK (default)

optional arguments:
  -h, --help  show this help message and exit

* Command 'ide':
usage: umake ide [-h]
                 {pycharm-educational,arduino,eclipse,webstorm,pycharm-professional,idea-ultimate,rubymine,idea,pycharm,phpstorm}
                 ...

positional arguments:
  {pycharm-educational,arduino,eclipse,webstorm,pycharm-professional,idea-ultimate,rubymine,idea,pycharm,phpstorm}
    pycharm-educational
                        PyCharm Educational Edition
    arduino             The Arduino Software Distribution
    eclipse             Pure Eclipse Luna (4.4)
    webstorm            WebStorm
    pycharm-professional
                        PyCharm Professional Edition
    idea-ultimate       IntelliJ IDEA
    rubymine            Ruby on Rails IDE
    idea                IntelliJ IDEA Community Edition
    pycharm             PyCharm Community Edition
    phpstorm            PhpStorm

optional arguments:
  -h, --help            show this help message and exit

* Command 'android':
usage: umake android [-h] {android-ndk,android-studio} ...

positional arguments:
  {android-ndk,android-studio}
    android-ndk         Android NDK
    android-studio      Android Studio (default)

optional arguments:
  -h, --help            show this help message and exit

How to use it

Example: how to install Ubuntu Make and then, Android Studio.

Installing Ubuntu Make

If you are on the latest Ubuntu version (at the time of writing, it is 16.04, codename Xenial), you can install it directly from the Universe archive:

 $ sudo apt install ubuntu-make

If your Ubuntu version if before 16.04 (codename Xenial), you can install from the Ubuntu Make PPA. First, add the PPA to your system:

 $ sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
 $ sudo apt-get update

Then, installing Ubuntu Make:

 $ sudo apt-get install ubuntu-make

How to install android-studio

 $ umake 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.

How to contribute

Reports bugs and propose enhancements

The more direct way of reporting a bug or giving any suggestions is through the upstream bug tracker. Of course, you can always reach us out as well on social networks like g+ or on IRC: #ubuntu-desktop, on freenode. We are also looking at the #ubuntulovesdevs hashtag.

The tool is really to help developers, so do not hesitate to help us directing the Ubuntu Developer Tools Center on the way which is the best for you. Smile :)

Help translating

We already had some good translations contributions through launchpad! Thanks to all our translators, we got Basque, Chinese (Hong Kong), Chinese (Simplified), French, Italian and Spanish! There are only few strings up for translations in Ubuntu Make and it should take less than half an hour in total to add a new one. It's a very good and useful way to contribute for people speaking other languages than English! We do look at them and merge them in the mainline automatically. Contribute on the code itself

Some people started to offer code contribution and that's a very good and motivating news. Do not hesitate to fork us on the upstream github repo. We'll ensure we keep up to date on all code contributions and pull requests. If you have any questions or for better coordination, open a bug to start the discussion around your awesome idea. We'll try to be around and guide you on how to add any framework support! You will not be alone!

Write some documentation

We have some basic documentation (this wiki page!). If you feel there are any gaps or any missing news, feel free to edit the wiki page! You can as well merge some of the documentation of the https://github.com/ubuntu/ubuntu-make/blob/master/README.md file or propose some enhancements to it!

To give an easy starts to any developers who wants to hack on Ubuntu Make itself, we try to keep the README.md file readable and up to the current code content. However, this one can deviate a little bit, if you think that any part missing/explanation requires, you can propose any modifications to it to help future hackers having an easier start. Smile :)

Spread the word!

Finally, spreading the word that Ubuntu Loves Developers and we mean it! Talk about it on social network, tagging with #ubuntulovesdevs or in blog posts, or just chatting to your local community! We deeply care about our developer audience on the Ubuntu Desktop and Server and we want this to be known!

ubuntu-make (last edited 2016-04-30 03:40:16 by anthonywong)