Feed aggregator

Jono Bacon: 2017 Community Leadership Events: An Update

Planet Ubuntu - Mon, 11/21/2016 - 23:12

This week I was delighted to see that we could take the wraps off a new event that I am running in conjunction with my friends at the Linux Foundation called the Community Leadership Conference. The event will be part of the Open Source Summit which was previously known as LinuxCon and I will be running it in Los Angeles from 11th – 13th Sep 2017 and Prague from 23rd – 25th Oct 2017.

Now, some of you may be wondering if this replaces or is different to the Community Leadership Summit in Portland/Austin. Let me add some clarity.

The Community Leadership Summit

The Community Leadership Summit takes place each year the weekend before OSCON. I can confirm that there will be another Community Leadership Summit in 2017 in Austin. We plan to announce this soon formally.

The Community Leadership Summit has the primary goal of bringing together community managers from around the world to discuss and debate community leadership principles. The event is an unconference and is focused on discussions as opposed to formal presentations. As such, and as with any unconference, the thrill of the event is the organic schedule and conversations that follow. Thus, CLS is a great event for those who are interested in playing an active role in furthering the art of and science of community leadership more broadly in an organic way.

The Community Leadership Conference

The Community Leadership Conference, which will be part of the Open Source Summit in Los Angeles and Prague, has a slightly different format and focus.

CLC will instead be a traditional conference. My goal here is to bring together speakers from around the world to deliver presentations, panels, and other material that shares best practices, methods, and approaches in community leadership, and specific to open source. CLC is not intended to shape the future of community leadership, but more to present best practices and principles for consumption, and tailed to the needs of open source projects and organizations.

In Summary

So, in summary, the Community Leadership Conference is designed to be a place to consume community leadership best practices and principles via carefully curated presentations, panels, and networking. The Community Leadership Summit is designed to be more of an informal roll-your-sleeves up summit where attendees discuss and debate community leadership to help shape how it evolves and grows.

As regular readers will know, I am passionate about evolving the art and science of community leadership and while CLS has been an important component in this evolution, I felt we needed to augment it with CLC. These two events, combined with the respective audiences of their shared conferences, and bolstered by my wonderful friends at O’Reilly and the Linux Foundation, are going to help us to evolve this art and science faster and more efficiently than ever.

I hope to see you all at either or both of these events!

The post 2017 Community Leadership Events: An Update appeared first on Jono Bacon.

The Fridge: Ubuntu Weekly Newsletter Issue 488

Planet Ubuntu - Mon, 11/21/2016 - 20:01

Welcome to the Ubuntu Weekly Newsletter. This is issue #488 for the week November 14 – 20, 2016, and the full version is available here.

In this issue we cover:

The issue of The Ubuntu Weekly Newsletter is brought to you by:

  • Paul White
  • Elizabeth K. Joseph
  • Chris Guiver
  • And many others

If you have a story idea for the Weekly Newsletter, join the Ubuntu News Team mailing list and submit it. Ideas can also be added to the wiki!

Except where otherwise noted, content in this issue is licensed under a Creative Commons Attribution 3.0 License BY SA Creative Commons License

Ubuntu Weekly Newsletter Issue 488

The Fridge - Mon, 11/21/2016 - 20:01

Welcome to the Ubuntu Weekly Newsletter. This is issue #488 for the week November 14 – 20, 2016, and the full version is available here.

In this issue we cover:

The issue of The Ubuntu Weekly Newsletter is brought to you by:

  • Paul White
  • Elizabeth K. Joseph
  • Chris Guiver
  • And many others

If you have a story idea for the Weekly Newsletter, join the Ubuntu News Team mailing list and submit it. Ideas can also be added to the wiki!

Except where otherwise noted, content in this issue is licensed under a Creative Commons Attribution 3.0 License BY SA Creative Commons License

Costales: Ubucon Europe 2016 - Day 3

Planet Ubuntu - Mon, 11/21/2016 - 13:27
Me tocó abrir este último día de la Ubucon con una charla sobre uNav. Tras el "You have arrived at your presentation" espontáneo de Nathan, conté la historia y algunos trucos de esta aplicación tan querida por la comunidad y mostré en exclusiva el vídeo original del spot.
uNav's talk
Llenazo :))
Apenas pude llegar a la charla de Daniel sobre snaps que coincidía con la mía.

El resto del día lo pasé compartiendo ratos con distintas personas, más que en las charlas. Rudy me entrevistó para uno de sus geniales podcasts.

De las charlas a las que asistí destaco las de Rudy y Alan, muy dicharacheros y amenos ambos.


Alan's talk
Ubuntu FR are doing an incredible work!!
El día cerró anunciando que sería Paris la siguiente en organizar la 2ª Ubucon Europe, aunque aún sin fecha.

Tras los eventos cada cual se piraba por su lado. Eché en falta mejor organización al respecto. Así que pasamos parte de la noche de nuevo los portugueses y españoles. Incluso cayó la idea de una Ubucon Iberia :))

La noche la cerramos Joan, Gonzalo y Juanfra echando unas partidas al futbolín en un pub.

Me reservo decir quien ganó y perdió :P
Tras los 3 días de Ubucon, me quedo sin lugar a dudas con cada una de las personas que conocí y compartí grandes momentos.


Con Robin de UbuntuFun

Con Sergi y Joan

Hasta la próxima Essen

Costales: Ubucon Europe 2016 - Day 2

Planet Ubuntu - Mon, 11/21/2016 - 10:19
Día del comienzo de las charlas.La novedad la anunció Marius de UBPorts. Pondrá a la venta un dock para Ubuntu Phone/Tablet con el que se podrá enviar la señal del móvil a un monitor y tener así la ansiada convergencia. Costará unos 60€ y funcionará (a priori) con cualquiera de los móviles actuales con Ubuntu.
Tras Marius, abrió Jane Silver el día, contándonos ante una atestada sala el ancho ecosistema ubuntero. Como siempre, una charla muy amena y dinámica.
Jane's keynote
Luego cambié de sala para saber los pormenores de la migración del colegio de Fernando.

Fernando's talk

Y una de las charlas más interesantes del día fue una puesta en acción de cómo funciona el Bash en Windows 10. Donde me enteré que no es emulado, o encapsulado tipo Docker, si no que es totalmente nativo.Decir que Windows era el sponsor number one del evento o.O

Microsoft's talk

Entre charla y charla, estaba atestado el hall con una exposición de FairPhone. Donde podíamos probar los avances de Ubuntu en este dispositivo (Review en camino).

Ubuntu on Fairphone2



Me encantó la charla de Nathan.

uNav's voice in person!! :))


La última exposición que vi fue la de Laura.Se cerraron las charlas con una lotería de USBs, tablet y camisetas Windows o.O y un soporífero Quiz.

Laura's talk
Quiz

El día finalizó con una cena en el mismo edificio. Y estuvo genial compartir unas risas y charlar con auténticos cracks.

With Vicent & Tiago
Ubuntu Paris :)) tatoo

Ubuntu Insights: VisionMobile: State of the Developer Nation Survey

Planet Ubuntu - Mon, 11/21/2016 - 05:07

We’re proud to be supporting the State of the Developer Nation Survey run by our friends at VisionMobile! This is the 12th developer survey, focusing on a 360 view of developer tools, skills and salaries.

The survey features questions on topics like programming languages, platforms, app categories, new technologies, revenue models, IoT verticals – and of course – tools. It’s a survey made by developers, so the questions will be relevant plus you will get to learn something new – and it only takes 15 minutes!

Also – this is a survey that’s actually fun! Once you complete it, you’ll get to find out what kind of character you’d be in a fantasy world, based on your responses: A mage? A fighter? A dragon slayer? Take the survey and find out!

Participants can win one of the tens of prizes available including a MeccaNoid G15 KS, an Apple Watch Series 2, an Oculus Rift headset, a Pixel Phone, Udemy courses and more.

VisionMobile will show you how your responses compare to other developers’ in your country. You’ll also be the first to receive the State of the Developer Nation report (due March 2017) based on key survey findings.

Take the survey here!

Eric Hammond: Watching AWS CloudFormation Stack Status

Planet Ubuntu - Mon, 11/21/2016 - 02:00

live display of current event status for each stack resource

Would you like to be able to watch the progress of your new CloudFormation stack resources like this? (press play)

That’s what the output of the new aws-cloudformation-stack-status command looks like when I launch a new AWS Git-backed Static Website CloudFormation stack.

It shows me in real time which resources have completed, which are still in progress, and which, if any, have experienced problems.

Background

AWS provides a few ways to look at the status of resources in a CloudFormation stack including the stream of stack events in the Web console and in the aws-cli.

Unfortunately, these displays show multiple events for each resource (e.g., CREATE_IN_PROGRESS, CREATE_COMPLETE) and it’s difficult to match up all of the resource events by hand to figure out which resources are incomplete and still in progress.

Solution

I created a bit of wrapper code that goes around the aws cloudformation describe-stack-events command. It performs these operations:

  1. Cuts the output down to the few fields that matter: status, resource name, type, event time.

  2. Removes all but the ost recent status event for each stack resource.

  3. Sorts the output to put the resources with the most recent status changes at the top.

  4. Repeatedly runs this command so that you can see the stack progress live and know exactly which resource is taking the longest.

I tossed the simple script up here in case you’d like to try it out:

GitHub: aws-cloudformation-stack-status

You can run it to monitor your CloudFormation stack with this command:

aws-cloudformation-stack-status --watch --region $region --stack-name $stack

Interrupt with Ctrl-C to exit.

Note: You will probably need to start your terminal out wider than 80 columns for a clean presentation.

Note: This does use the aws-cli, so installing and configuring that is a prerequisite.

Stack Delete Example

Here’s another example terminal session watching a stack-delete operation, including some skipped deletions (because of a retention policy). It finally ends with a “stack not found error” which is exactly what we hope for after a stack has been deleted successfully. Again, the resources with the most recent state change events are at the top.

Note: These sample terminal replays cut out almost 40 minutes of waiting for the creation and deletion of the CloudFront distributions. You can see the real timestamps in the rightmost columns.

Original article and comments: https://alestic.com/2016/11/aws-cloudformation-stack-status/

Stephen Michael Kellat: Ubuntu Community Appreciation Day 2016

Planet Ubuntu - Sun, 11/20/2016 - 20:28

A screenshot of Ubuntu Planet showing a blog post by Svetlana Belkin

I had almost forgotten about Ubuntu Community Appreciation Day 2016. There is much for me to appreciate this year. I have had to absent myself from many community activities and functions for almost the entire year. There have been random blog posts and I have popped up on mailing lists at the weirdest of times but I have mostly been gone.

Being under audit and investigation for almost the entirety of 2016 can do that to you. Working in a government job also causes such things to happen, too. Thankfully I’m not moving onward and upward to higher office but I’m now thoroughly vetted for all sorts of lateral moves.

The Xubuntu Sticker from SpreadUbuntu.org found at http://spreadubuntu.org/en/material/sticker/xubuntu-sticker made by lyz

I thoroughly appreciate and miss the Xubuntu team. A great distro continues to be made. I wish I was still there to contribute. Life right now says I have other missions to undertake especially as social fabric in the United States of America seems to get all bendy and twisty.

Tomorrow is another day.

Kubuntu: Welcome new Kubuntu Members

Planet Ubuntu - Sun, 11/20/2016 - 15:57

Friday November 18 was a productive day for the Kubuntu Community, as three new people were questioned and then elected into Membership. Welcome Simon Quigley, José Manuel Santamaría, and Walter Lapchynski as they package, work on our tooling, promote Kubuntu and help users.

Read more about Kubuntu Membership here: https://community.kde.org/Kubuntu/Membership

Svetlana Belkin: Ubuntu Community Appreciation Day 2016

Planet Ubuntu - Sun, 11/20/2016 - 11:06

It’s that time of the year where we appreciate the members of our Ubuntu Community, Member or not.

This year I appreciate a group of people and three others.  The group is the one that gone to Ohio Linux Fest this year.  I thank you for all of the fun!

The first person that I appreciate is for his Tweet about me (which explains everything why I choose him), which is  Benjamin Kerensa:

I’m always inspired by @senseopenness she leads and keeps people inspired

— Benjamin Kerensa (@bkerensa) June 9, 2016

The second person is Simon Quigley who is quite an awesome kid.  Over the last year, he has really changed his attitude and even his behavior where it doesn’t not sound like he is a 14 year-old but older.  Because he is a youngster,  he has a good chance that he will get a job within Open Source, development-wise or anything else.

Last but not least, the last person is Pavel Sayekat. Like Simon, he also has improved and now is helping to get his LoCo, Ubuntu Bangladesh, active again.

Keep it up everyone for making the Community the way it is!

Daniel Holbach: Ubuntu Community Appreciation Day

Planet Ubuntu - Sun, 11/20/2016 - 00:26

It’s 20th November 2016, so today marks another Ubuntu Community Appreciation Day. The idea for the event was put together by Ahmed Shams in 2011 and it’s simple but brilliant: once a year (at least), take the time to thank some specific people for their work in Ubuntu.

As I’m at UbuCon Europe this weekend, it’s incredibly easy to pick somebody whose work I’m grateful for. Today I’d like to thank all the event organisers in the Ubuntu world. Without people like Sujeevan Vijayakumaran (in the case of UbuCon Europe), we as a community, wouldn’t be able to get together, learn from each other and have fun together. It takes a set of special skills to organise big and small events, plan ahead, talk to various people and companies, organise sponsors and helpers and it’s something we often take too much for granted.

Thank you everyone who organised the Ubuntu events I’ve been to over the years, no matter if it’s the small meetings in a bar or the crazy big events, like UDSes (thanks Claire, Marianna and Michelle!). You are incredible rockstars and I had some of my best times thanks to you!

Stuart Langridge: None Of Us Are Free

Planet Ubuntu - Fri, 11/18/2016 - 20:28

Well you better listen my sisters and brothers,
‘Cause if you do you can hear
There are voices still calling across the years.
And they’re all crying across the ocean,
And they’re cryin’ across the land,
And they will till we all come to understand.

None of us are free
None of us are free
None of us are free, if one of us is chained
None of us are free

And there are people still in darkness,
And they just can’t see the light.
If you don’t say it’s wrong then that says it right.
We got try to feel for each other, let our brothers know that we care.
Got to get the message, send it out loud and clear

None of us are free
None of us are free
None of us are free, if one of us is chained
None of us are free

Now I swear your salvation isn’t too hard too find,
None of us can find it on our own
We’ve got to join together in spirit, heart and mind
So that every soul who’s suffering will know that they’re not alone

None of us are free
None of us are free
None of us are free, if one of us is chained
None of us are free

If you just look around you,
You’re gonna see what I say.
‘Cause the world is getting smaller each passing day
Now it’s time to start making changes,
And it’s time for us all to realize,
That the truth is shining real bright right before our eyes

None of us are free
None of us are free
None of us are free, if one of us is chained
None of us are free.

Application of this to the year 2016, how you should deal with everything that’s happened this year, and how you should stand with your friends and the people around you… is left as an exercise for the reader.

Aaron Honeycutt: SeaGL 2016

Planet Ubuntu - Fri, 11/18/2016 - 01:00

I’d like to first thank the amazing Ubuntu community for funding this trip to promote all *buntu’s, provide a face to face for Ubuntu, Kubuntu, and Lubuntu contributors to plan the next cycle and more to come!

After the booth was up and running with people from Ubuntu, Kubuntu, Lubuntu. We had machines running Kubuntu, Lubuntu and a few devices with Ubuntu Touch. We were also showing off both gaming on *buntu and how well the Steam Controller works with it.

Currently Kubuntu does not have a Release Manager and as such we have started talking to Lubuntu’s Walter (wxl) as he has been working as Lubuntu’s RM for a few releases. We quickly realized that we don’t have any documentation on how that is handled. Thanks to Walter we now have a great starting point on how releases are normally worked out, we’ll have to see if Kubuntu needs any extra steps but it’s a step in the right direction.

 

Adam Stokes: conjure-up Canonical Kubernetes under LXD today!

Planet Ubuntu - Thu, 11/17/2016 - 16:46

We've just added the Localhost (LXD) cloud type to the list of supported cloud type on which you can deploy The Canonical Distribution of Kubernetes.

What does this mean? Just like with our OpenStack offering you can now have Kubernetes deployed and running all on a single machine. All moving parts are confined inside their own LXD containers and managed by Juju.

It can be surprisingly time-consuming to get Kubernetes from zero to fully deployed. However, with conjure-up and the driving technology underneath, you can get straight Kubernetes on a single system with LXD, or a public cloud such as AWS, GCE, or Azure all in about 20 minutes.

Getting Started

First, we need to configure LXD to be able to host a large number of containers. To do this we need to update the kernel parameters for inotify.

On your system open up /etc/sysctl.conf *(as root) and add the following lines:

fs.inotify.max_user_instances = 1048576 fs.inotify.max_queued_events = 1048576 fs.inotify.max_user_watches = 1048576 vm.max_map_count = 262144

Note: This step may become unnecessary in the future

Next, apply those kernel parameters (you should see the above options echoed back out to you):

$ sudo sysctl -p

Now you’re ready to install conjure-up and deploy Kubernetes.

$ sudo apt-add-repository ppa:juju/stable $ sudo apt-add-repository ppa:conjure-up/next $ sudo apt update $ sudo apt install conjure-up $ conjure-up kubernetes Walkthrough

We all like pictures so the next bit will be a screenshot tour of deploying Kubernetes with conjure-up.

For this walkthrough we are going to create a new controller, select the localhost Cloud type:

Deploy the applications:

Wait for Juju bootstrap to finish:

Wait for our Applications to be fully deployed:

Run the final post processing steps to automatically configure your Kubernetes environment:

Review the final summary screen:

Accessing your Kubernetes

You can access your Kubernetes by running the following:

$ ~/kubectl --kubeconfig=~/.kube/config

Or if you've already run this once it'll create a new config file as shown in the summary screen.

$ ~/kubectl --kubeconfig=~/.kube/config.conjure-up

Or take a look at the Kibana dashboard, visit http://ip.of.your.deployed.kibana.dashboard:

Deploy a Workload

As an example for users unfamiliar with Kubernetes, we packaged an action to both deploy an example and clean itself up.

To deploy 5 replicas of the microbot web application inside the Kubernetes cluster run the following command:

$ juju run-action kubernetes-worker/0 microbot replicas=5

This action performs the following steps:

It creates a deployment titled 'microbots' comprised of 5 replicas defined during the run of the action. It also creates a service named 'microbots' which binds an 'endpoint', using all 5 of the 'microbots' pods.

Finally, it will create an ingress resource, which points at a xip.io domain to simulate a proper DNS service.

To see the result of this action run:

Action queued with id: e55d913c-453d-4b21-8967-44e5d54716a0 $ juju show-action-output e55d913c-453d-4b21-8967-44e5d54716a0 results: address: microbot.10.205.94.34.xip.io status: completed timing: completed: 2016-11-17 20:52:38 +0000 UTC enqueued: 2016-11-17 20:52:35 +0000 UTC started: 2016-11-17 20:52:37 +0000 UTC

Take a look at your newly deployed workload on Kubernetes!

Mother will be so proud.

This covers just a small portion of The Canonical Distribution of Kubernetes, please visit the charmstore for more in-depth documentation.

Ubuntu Podcast from the UK LoCo: S09E38 – Jon’s Second Breakfast - Ubuntu Podcast

Planet Ubuntu - Thu, 11/17/2016 - 08:00

It’s Episode Thirty-Eight of Season-Nine of the Ubuntu Podcast! Alan Pope, Mark Johnson, Martin Wimpress and Jon Spriggs are connected and speaking to your brain.

The same line up as last week are here for another episode.

In this week’s show:

Thing Explainer Competition

The competition was to describe your job, using only the 1000 most common English words using the upgoer5 text editor to help.

To all the software engineers, oncologists, system administrators, electrical engineers, doctors, technical support staff, project managers, games developers, petro-chemical engineers, information security analysts, surgeons, user experience researchers, network engineers, prison wardens, sales personnel, digital forensic analysts, medical technicians, speech therapists, digital artists, DJs, teachers, machinists, translators of ancient texts and would-be astronauts who entered this competition…

Thank you for taking the time to enter and making us laugh!

The winner is Magnus Lindström!

Our congratulations Magnus, who won signed copies of “What If?” and “Thing Explainer” by Randall Munroe (creator of XKCD) with this entry:

The police and others send people who have done bad things to me. I give them a room in my ‘house’ and they are not allowed to leave until I say so. I tell these people not to do bad things again and I also help them with how not to do bad things. I write papers when they do bad things while they are living in my ‘house’ and give them warning. I have some rooms that have little in them where they get to stay if they have been doing really bad things to others or to themselves. Some like to live there because they get food, clean clothes, something to do and help. Some hate it and try to leave even though they are not allowed. If these people have done many bad things in my ‘house’ or tried to leave without checking with me, I can tell them that they have to stay for a longer time.

The runners up

Listen to this episode to hear us read out the runner up entries from:

  • Dave Hingley
  • Ivan Pejić
  • Tai Kedzierski
  • John Garner
  • Jordan [redacted]
  • Surma Saif
  • Katherine Hill
  • Iain Forbes
John Garner’s Thing Explainer Picture

This picture accompanies John Garner’s competition entry. Listen to this episode to hear how he explains what he does.

That’s all for this week! If there’s a topic you’d like us to discuss, or you have any feedback on previous shows, please send your comments and suggestions to show@ubuntupodcast.org or Tweet us or Comment on our Facebook page or comment on our Google+ page or comment on our sub-Reddit.

Daniel Holbach: Ubuntu Online Summit from a snap perspective

Planet Ubuntu - Thu, 11/17/2016 - 01:36

Earlier this week the Ubuntu community was busy with the Ubuntu Online Summit. If you head to the schedule page, you can watch all the sessions which happened.

As I’m interested in snaps a lot, I’d like to highlight some of the sessions which happened there, so if you missed them, you can go back and see what happened there:

  • Intro and keynote by Gustavo Niemeyer
    Gustavo (amongst others projects he is involved with) is one of the lead developers of snapd. During his keynote he gives an overview over what the team has been working on in the last time and explains which features all landed in the snap world recently. It quickly gives you an idea of the pace of development and the breadth of new features which landed.
  • Creating your first snap
    This is a session I gave. Unfortunately Didier couldn’t make it as he had lost his voice in the days before. We both worked together on the content for this. Basically, if you’re new to using and creating snaps, watch this. It’s a series of very simple steps you can follow along and gives you enough background to see the bigger picture.
  • Snap roadmap and Q&A
    This was a fun session with Michael Vogt and Zygmunt Krynicki. They are also both lead developers of snapd and they share a lot of their thoughts in their own very fun and very interesting way. After some discussion of the roadmap, they dived right into the almost endless stream of questions. If you want to get an idea of what’s coming up and some of the more general decisions behind snaps, watch this one.
  • Building snaps in Launchpad
    Colin Watson gave this demo of a beautiful new feature in Launchpad. Starting from a github repo (the source could live elsewhere too), the source is pulled into Launchpad, snaps are built for selected releases of Ubuntu and selected architectures and directly pushed to the store. It’s incredibly easy to set up, complements your CI process and makes building on various architectures and publishing the snaps trivial. Thanks a lot for everybody’s work on this!

The other sessions were great too, this is just what I picked up from the world of snaps.

Enjoy watching the videos and share them please!

Thanks a lot to all the session leads as well!

Ubuntu App Developer Blog: Ubuntu SDK meets snapcraft

Planet Ubuntu - Wed, 11/16/2016 - 08:41

Everyone who has followed Ubuntu lately for sure stumbled across the snappy technology, which does not only bring the new cross-distro packaging format “snap” but also a sandboxing technology for apps, as well as transactional updates that can be rolled back in case of an update going wrong and a new way of installing and upgrading Ubuntu called “Ubuntu Core”.

Together with all those new technologies came new tools that make it possible for app developers to build and pack their applications to target Snappy and Core. The central tool for that is snapcraft and it aims to unite a lot of tasks that were separate before. It can set up your build environment, build your projects and even package it with just one call in the project directory: “snapcraft”.

We took the last few weeks to start the work on supporting those new tools and now we have the first release of the IDE with direct support for building with snapcraft, as well as a basic template to get you started.

New technologies usually come with certain limitations. This one is not an exception and we hope that these issues will be eliminated in the near future.:

  • Snapcraft uses sudo when it needs to install build packages, however that does not work when run from the QtCreator, simply because sudo does not have a console to ask the password on. So make sure build dependencies are installed before building.

  • “Out of source” builds are not yet implemented in snapcraft, but since QtCreator always uses a extra build directory we had to work around that problem. So for now we rsync the full project into a build directory and run the build there.

  • Also incremental builds are yet not supported, so every build is a complete rebuild.

Snapcraft projects are described in a snapcraft.yaml file, so it made sense for us to use it as the project file in the IDE as well, so instead of opening a .pro or CMakeList.txt file the snapcraft.yaml is opened directly. Naturally implementing a completely new project type manager is not a trivial task, so many key features are still missing.

  • Code model support: while completion does work in the file scope, it does not for the full project.

  • Debugging mode: currently the profiling and debugging run modes do not work, so snap projects can only be executed normally.

Those limitations aside it can be already used to create snap packaged applications.

With this new release we consider the IDE as feature complete for the time being. Since the development of snapcraft is moving in a very fast pace we need to let it evolve to a certain degree to be sure new features added to the IDE represent the future way of building with snapcraft.

Jorge Castro: Kubernetes the Easy Way

Planet Ubuntu - Wed, 11/16/2016 - 08:00

If you’re interested in running Kubernetes you’ve probably heard of Kelsey Hightower’s Kubernetes the Hard Way. Exercises like these are important, they highlight the coordination needed between components in modern stacks, and it highlights how far the world has come when it comes to software automation. Could you imagine if you had to set everything up the hard way every time?

Learning is fun

Doing things the hard way is fun, once. After that, I’ve got work to do, and soon after I am looking around to see who else has worked on this problem and how I can best leverage the best open source has to offer.

It reminds me of the 1990’s when I was learning Linux. Sure, as a professional, you need to know systems and how they work, down to the kernel level if need. Having to do those things without a working keyboard or network makes that process much harder. Give me a working computer, and then I can begin. There’s value in learning how the components work together and understanding the architecture of Kubernetes, I encourage everyone to try the hard way at least one time, if anything it’ll make you appreciate the work people are putting into automating all of this for you in a composable and reusable way.

The easy way

I am starting a new series of videos on how we’re making the Canonical Distribution of Kubernetes easy for anyone to deploy on any cloud. All our code is open source and we love pull requests. Our goal is to help people get Kubernetes in as many places as quickly and easily as possible. We’ve incorporated lots of the things people tell us they’re looking for in a production-grade Kubernetes, and we’re always looking to codify those best practices.

Enjoy:

Following these steps will get you a working cluster, in this example I’m deploying to us-east-2, the shiny new AWS region. Subsequent videos will cover how to interact with the cluster and do more things with it.

Ubuntu App Developer Blog: How to create Snap packages of Qt applications

Planet Ubuntu - Wed, 11/16/2016 - 04:19
Introduction

One of the advantages of snap packages is that they are self-contained. When you install a snap, you know that you don’t need to install additional dependencies (besides the automatically-installed core snap that provides the basic operating system layer), and it will simply work on every Linux distribution that supports snaps.

Here, we show how to create self-contained snap packages for Qt-based applications, and we show an additional approach where some of the app dependencies are provided by a separate snap: the Ubuntu app platform snap. The platform snap provides an (optional) approach for the software provider, and can save disk space in some cases. Below we will explain the two approaches to building a snap for Qt-based software: a snap that is self-contained and includes Qt, and one that uses the platform snap, and we show the advantages of each approach. However, before showing these two approaches that you can apply to your own QML code, we demonstrate how to create a snap from deb packages in the Ubuntu archive so that you can get started right away even before you write any code.

We assume that before reading this blog post, you have acquired knowledge about how to use Snapcraft. So if you haven’t, we recommend reading the documentation on snapcraft.io and the snap-codelabs tutorials.

All the commands that are listed below are executed on an Ubuntu 16.04 LTS machine with the stable-phone-overlay PPA enabled. Some of the snapcraft commands may run on other configurations, but for the “Ubuntu App Platform Snap” section it is a hard requirement because the version of Qt - upstream 5.6 long term support version - and other libraries used to build the snap need to match the versions in the ubuntu-app-platform snap. Installing the snap packages works on different versions of Ubuntu and even different Linux distributions. The examples were tested on amd64 architecture with Intel graphics. If you are running this on a different CPU architecture, naturally the architecture in the directory and snap file names listed below must be modified. If you have an Nvidia GPU and use the Nvidia proprietary drivers there can be problems when running some snapped applications, so in that case we currently recommend to use the open source Nouveau drivers.

The examples are also available in a repository linked to from the Evaluation section.

Qt cloud parts - a simple use case

We will demonstrate how to build a simple app snap that includes the Qt release and Ubuntu UI Toolkit (UITK) from the Ubuntu archives. For this example, we use the UITK gallery which is part of the ubuntu-ui-toolkit-examples deb package on classic Ubuntu systems, so no additional code is needed. Because of that, we can simply use the nil plugin and pull in the examples as stage-packages. We create a directory called uitk-gallery which contains only a snapcraft.yaml file with the following contents:

name: uitk-gallery version: '0.1' summary: Showcase gallery that demonstrates the components in the Ubuntu UI Toolkit. description: | See https://developer.ubuntu.com/api/qml/ for the API documentation of the components. grade: devel confinement: strict parts: ubuntu-ui-toolkit-examples: plugin: nil stage-packages: - qmlscene - qml-module-qtqml-models2 - ubuntu-ui-toolkit-examples after: [desktop-qt5] apps: uitk-gallery: command: desktop-launch "qmlscene $SNAP/usr/lib/*/qt5/examples/ubuntu-ui-toolkit/examples/ubuntu-ui-toolkit-gallery/ubuntu-ui-toolkit-gallery.qml" plugs: [unity7, opengl]

(notes: the command line assumes you are on and targeting amd64 system. the plugs line is needed so that you have access to graphical subsystem from your confined app)

Under stage-packages we listed all the packages that need to be pulled from the Ubuntu archive, including their dependencies. ubuntu-ui-toolkit-examples contains all the QML code for the UITK gallery that we want to run using qmlscene. We also included qml-module-qtqml-models2 because some pages of the UITK gallery import QtQml.Models. The line after: [desktop-qt5] fetches the desktop-qt5 part from the remote parts repository. It will automatically pull in Qt 5 from the Ubuntu archive, set-up environment variables, and provide the desktop-launch script that is called to start the app. The snap file can be created simply by going to the uitk-gallery directory which contains the snapcraft.yaml file, and running:

snapcraft

Note that Snapcraft will ask for the sudo password to install the Qt5 dev packages that are required to compile Qt apps, but can be left out if all the dependencies are already present. Running snapcraft will create (on an amd64 machine) the file uitk-gallery_0.1_amd64.snap which can then be installed by:

snap install --dangerous uitk-gallery_0.1_amd64.snap

where the dangerous parameter is required because we are installing an unsigned snap that does not come from the Ubuntu store. Note that you do not need to use sudo if you have logged in with snap login. The UITK gallery can now be launched using:

uitk-gallery

The desktop-qt5 cloud part pulls in the current stable version of Qt of the Ubuntu 16.04 LTS release - 5.5.1 normally or 5.6.1 in the case of stable overlay PPA. To uninstall the UITK gallery snap before going to the next section, run:

snap remove uitk-gallery QML project using parts from the cloud

If your existing QML code is not available as a deb package, then obviously you cannot pull it in from the archive when creating the snap using stage-packages. To show how to include your own QML code, we copy the UITK gallery code to the ubuntu-ui-toolkit-gallery directory inside the snapcraft (uitk-gallery) directory. Go to the parent directory of the uitk-gallery of the previous section, and run:

bzr branch lp:ubuntu-ui-toolkit cp -R ubuntu-ui-toolkit/examples/ubuntu-ui-toolkit-gallery uitk-gallery/

Alternatively, if you have the ubuntu-ui-toolkit-examples package installed, you can run:

cp -R /usr/lib/*/qt5/examples/ubuntu-ui-toolkit/examples/ubuntu-ui-toolkit-gallery/ uitk-gallery/

You should now have both the snapcraft.yaml and the copied ubuntu-ui-toolkit-gallery directory that contains the source code of the UITK gallery under the uitk-gallery. We can now remove the ubuntu-ui-toolkit-examples from the stage-packages in the snapcraft.yaml file. Because that line is removed, the dependencies of the UITK gallery are no longer pulled in automatically, and we must add them to the YAML file, which then becomes:

name: uitk-gallery version: '0.2' summary: Showcase gallery that demonstrates the components in the Ubuntu UI Toolkit. description: | See https://developer.ubuntu.com/api/qml/ for the API documentation of the components. grade: devel confinement: strict parts: ubuntu-ui-toolkit-gallery: plugin: dump source: . stage-packages: - qmlscene - qml-module-qtqml-models2 - qml-module-qt-labs-folderlistmodel - qml-module-qtquick-xmllistmodel - qml-module-ubuntu-components - ubuntu-ui-toolkit-theme - ubuntu-ui-toolkit-tools after: [desktop-qt5] apps: uitk-gallery: command: desktop-launch "qmlscene $SNAP/ubuntu-ui-toolkit-gallery/ubuntu-ui-toolkit-gallery.qml" plugs: [unity7, opengl]

Note that besides the changes in stage-packages, also the location of ubuntu-ui-toolkit-gallery.qml was updated in the uitk-gallery command because the QML files are no longer installed in usr/lib inside the snap, but copied in the root of the snap filesystem. As before, the snap package can be created by executing:

snapcraft

inside the uitk-gallery directory. The UITK gallery can then be installed and started using:

snap install --dangerous uitk-gallery_0.2_amd64.snap uitk-gallery

and uninstalled by:

snap remove uitk-gallery

Now that you have seen how to package the UITK gallery from source into a snap, you can do the same for your own QML application by using the dump plugin with the dependencies as stage-packages. If your application includes C++ code as well, you need to use another plugin, for example the qmake plugin. For that we refer to the Snapcraft tutorials mentioned in the introduction.

For those who like to experiment with newer versions of upstream Qt, we provide qt57 and qt58 cloud parts in the parts repository for Qt 5.7.1 and 5.8 (in development). However, the qt57 and qt58 cloud parts do not yet include a wrapper script similar to desktop-launch, so one must be included with with snap configuration, see for example timostestapp2. When using these cloud parts, you should usually omit any Qt/QML package from stage-packages, as the ones compiled from newer Qt are used directly, and you should also omit the after: [desktop-qt5].

Ubuntu app platform snap

The snap files we created in the previous sections contain everything that is needed in order to run the UITK gallery application, resulting in a snap file of 86MB. Here we will explain how to use the Ubuntu app platform snap when you have multiple app snaps that all use the same Qt version.

Benefits of this approach include disk space saving, download time and bandwidth usage if metered.

When your snap uses the ubuntu-app-platform snap for Qt and other platform libraries, we can remove the stage-packages from the snapcraft.yaml file because (in this case), all the needed libraries are included in ubuntu-app-platform. We must also replace after: [desktop-qt5] by after: [desktop-ubuntu-app-platform]. This will set-up your snap to use the global desktop theme, icon theme, gsettings integration, etc. A more elaborate description of the desktop-ubuntu-app-platform is given in the parts list on the Ubuntu wiki. In the uitk-gallery directory we must currently create a directory where the files from the platform snap can be mounted using the content interface:

mkdir ubuntu-app-platform

and this empty directory (mount point) must be added in the YAML file as well. At this point the directory structure is as follows:

uitk-gallery/ .. snapcraft.yaml .. ubuntu-ui-toolkit-gallery/ .. [gallery contents] .. ubuntu-app-platform/

The whole YAML is:

name: uitk-gallery version: '0.3' summary: Showcase gallery that demonstrates the components in the Ubuntu UI Toolkit. description: | See https://developer.ubuntu.com/api/qml/ for the API documentation of the components. ubuntu-app-platform snap must be installed for this snap to work. grade: devel confinement: strict plugs: platform: # plug name, to be used later interface: content content: ubuntu-app-platform1 # content being mounted and the version, currently 1 target: ubuntu-app-platform # the mount directory created default-provider: ubuntu-app-platform # default content source snap, currently the only provider too parts: ubuntu-ui-toolkit-gallery: plugin: dump source: . after: [desktop-ubuntu-app-platform] snap: [ubuntu-ui-toolkit-gallery, ubuntu-app-platform] apps: uitk-gallery: command: desktop-launch "qmlscene $SNAP/ubuntu-ui-toolkit-gallery/ubuntu-ui-toolkit-gallery.qml" plugs: [platform, unity7, opengl]

Again, the new snap file can be created using:

snapcraft

This time, before we can use the snap, the ubuntu-app-platform snap must be installed and connected to the new uitk-gallery snap. So, execute the following commands:

snap install ubuntu-app-platform snap install --dangerous uitk-gallery_0.3_amd64.snap snap connect uitk-gallery:platform ubuntu-app-platform:platform uitk-gallery

Note that the snaps must be connected before running uitk-gallery for the first time. If uitk-gallery has been executed before the snap connect you will see an error message. To fix the problem, uninstall the uitk-gallery snap, then re-install it and run the snap connect command before executing uitk-gallery. This is a known limitation in snapd which will be resolved soon.

Another note: once support for the default-provider, already defined above, will correctly be implemented in snap, there will no longer be a need to install the platform snap separately - it will be pulled from the store automatically and the interface connects automatically.

Evaluation

We demonstrated three different approaches to creating a UITK gallery snap, which we gave the version numbers 0.1, 0.2 and 0.3. For each of the approaches, the table below lists the time needed for the different stages of a snapcraft run, but the pull and build stages have been combined because when doing pull, some of the prerequisites need to be built already. The all stages row shows the total time when running the snapcraft command in a clean directory, so that all stages are executed sequentially, so the value is less than the sum of the previous rows in the table because in each stage it is not necessary to check completion of the previous stages.

Version (bzr revision)

0.1 (r1)

0.2 (r2)

0.3 (r3)

build (includes pull)

1m49s

1m48s

3.6s

stage

7s

7s

1.5s

prime

33s

34s

1.8s

snap

1m11s

1m13s

1.7s

all stages

3m32s

3m20s

4.0s

install

2.2s

2.4s

1.2s

snap file size

86 MB

86 MB

1.3 MB

The measurements were done on a laptop with an Intel Core i5-6200U CPU with 8 GB RAM and an solid-state drive by running each command three times and listing the average execution time. All build-dependencies were pre-installed so their installation time is not included in the measurements. Note that this table only serves as an illustration, and execution times will vary greatly depending on your system configuration and internet connection, but it can easily be tested on your own hardware by bzr branching revisions r1, r2 and r3 of lp:~tpeeters/+junk/blog-snapping-qt-apps.

The times and file size listed in the last column (version 0.3) do not include downloading and installing the ubuntu-app-platform snap, which is 135 MB (it includes more than just the minimal Qt and UITK dependencies of the UITK gallery). It can be seen that (depending on the internet connection speed, and which files were downloaded already), using the ubuntu-app-platform can speed up the pull and build time when creating a new snap file. However, the most important advantage is the reduction of the sum of the file sizes when installing multiple app snaps that all depend on Qt or other libraries that are part of the platform snap, because the libraries need to be installed only once. The disadvantage of this approach is that the app snap must be built using the exact same Qt (and other libraries) version as the ubuntu-app-platform snap, so the choice whether the snap should be fully self-contained or depend on the platform snap must be made individually for each use case.

Future work

The UITK gallery snap is not yet available in the Ubuntu store, so our next step will be to publish a UITK examples snap that includes the UITK gallery, and to set-up automatic publishing of that snap to different channels when we update the UITK or the examples. We will also evaluate what is the best way to make newer versions of Qt available and determine whether we need to provide prebuilt binaries to replace the qt57 and qt58 cloud parts.

Finally, we will determine which libraries need to be included in the ubuntu-app-platform snap. The plan is to include all APIs that are listed on https://developer.ubuntu.com/api/qml/ and if APIs are missing we will add them to that webpage as well as to the platform snap. Of course, if you think we are forgetting a library that is useful and used in many different applications, please leave a comment below.

Launchpad News: Git-to-Git imports

Planet Ubuntu - Tue, 11/15/2016 - 23:48

Launchpad has had Git-to-Bazaar code imports since 2009, along with imports from a few other systems.  These form part of Launchpad’s original mission to keep track of free software, regardless of where it’s hosted.  They’re also very useful for automatically building other artifacts, such as source package recipes or snap packages, from code hosted elsewhere.  Unfortunately they’re quite complicated: they need to be able to do a full round-trip conversion of every revision from the other version control system, which has made it difficult to add support for Git features such as signed commits or submodules.  Once one of these features is present anywhere in the history of a branch, importing it to Bazaar becomes impossible.  This has been a headache for many users.

We can do better nowadays.  As of last year, we have direct Git hosting support in Launchpad, and we can already build snaps and recipes straight from Git, so we can fulfil our basic goal more robustly now with a lot less code.  So, Launchpad now supports Git-to-Git code imports, also known as Git mirroring.  You can use this to replace many uses of Git-to-Bazaar imports (note that there’s no translations integration yet, and of course you won’t be able to branch the resulting import using bzr).

See our Git documentation for more details.

Pages

Subscribe to Ubuntu Arizona LoCo Team aggregator