Toaster with non git layers

This blog post is about the recent changes we made in toaster. Till previous release toaster couldn’t work with non git layers. And with the current master branch, it does. So what are the major changes which came in to achieve this feature:

1.Toaster now distinguishes import of non git layers.

This means that user can import directories cloned in their storage device to toaster. Toaster also allows users to select or clone repos for their need based on the information provided. Like layer name, sub directory name, git commit or branch name.

2. Toaster supports usage of fixtures.

User can create their custom fixtures and update/overwrite the values which are already available in the bitbake repo. User can place their custom fixtures in their build directory. The name of the file will be custom.xml. This way user can add layers which are non git or git from his storage device ( for example: hard disk )

3. Toaster UI changed for build summary for recipes & packages

User can now clearly distinguish the recipes from where they come from. That is if a recipe comes from a non git layer, then the details of layer and branch will be marked as “Not applicable”. This makes sense because for a non git layer we don’t want to confuse user πŸ™‚ This idea is also applicable for the packages.

4. Toaster can switch between git and non git layer

User can switch from an imported layer to a non git layer. For example there can be a use case where user clones a repo. Makes some change in that layer. Now he wants to use that layer instead of the git layer which was imported by toaster. This is now possible. Similarly one can do the other way round. If he want’s to move away from non git layer and use the git layer, which is possible.

5. Toaster removes the assumption of git

Toaster code was more git centric. Now toaster doesn’t move ahead with assumption that all layers are git repos.

 

I would like to thank Belen, Michael, Elliot, Ed and Brian for the support provided to achieve this goal. Nothing more pops up from my brain. Looks like I emptied it πŸ™‚

Contributions for Yocto 2.1

This is a second post regarding my toaster contribution. I would like to share my contributions to toaster for 2.1 yocto release. Before I start my contribution, I would like to share that hob has been removed from bitbake repo. Hence toaster remains the “only” UI for user to trigger builds and what not.

For 2.1 below are my contributions:

1)Removed an API ( probably the last API of hob? ) from bitbake repo.

2) Worked on supporting unicode chars for project name.

3) Added an API to shut down and hence cancel the build. I really loved build cancellation work πŸ™‚ My sincere thanks to Ed, Michael and Belen for this work.

4) Updated UI for build cancellation.

5) Worked on excluding builds which are cancelled from the builds table.

6) Added support to include variable DL_DIR and SSTATE_DIR in project configuration page. This would help users to speed up the build. Because sharing cache and downloads folder speeds up the build time.

I sincerely thank all my toaster friends who supported me by verifying the patches I have sent. Nothing more to update.

adiΓ³s por ahora

How I got involved with Toaster

I work for Mentor Graphics. For my routine tasks bitbake command plays a vital role. Below is a small glimpse of how I landed up working on Toaster and how it matters a lot to me.

Let me rewind a bit. John Cherry who was leading MEL, visited India, Bangalore during 2015, to meet our small team. I got a chance to have a discussion with him. During our discussion, I mentioned about my past experience with FOSS community and my participation with Akadem(https://akademy.kde.org). I realized that we ( me and John ) had some interests in common. So I initiated a discussion with him regarding, my interest to work on python related projects. John replied immediately, “Why don’t you contribute to bitbake? :)”. I always believe that one needs an itch or reason to start working on a FOSS project. I insisted that I am looking for some kind of activity which involves more development.I was in need of a fresh air.

After team visit, John went back to USA. A discussion started on who would be interested in working with Toaster and about its integration with MEL. I was not part of initial discussion, but later it was communicated to me that I am assigned to work with toaster. So I thank a bunch to John, for considering our discussion and giving me an opportunity to work with toaster team.

First step, which I prefer, prior to working on any FOSS project is google : for a mailing list and irc channel. I got the first one couldn’t find the later for Toaster. But that was fine to me, because most contributors (in fact all) are available on #yocto. Team Toaster conducts a weekly meeting. Β I started joining the meeting regularly. I shared Mentor Graphics plan to integrate Toaster with MEL (Mentor Embedded Linux) with community. My first step was to build images using toaster in the build mode. I was able to build core-image-sato and core-image-minimal with toaster successfully. It gave me some confidence to move ahead and try to toast Mentor image(s), with toaster. I had foreseen that this process would eventually end up in integrating Toaster with MEL.

There were 2 approaches to integrate Toaster wih MEL. One was to use layerindex approach and other with toasterconf.json file. I preferred to use toasterconf.json. Belen helped me by sharing web links about this file. I struggled initially ( some joyful moments ) and learned to tailor toasterconf.json file. I also remember Ed, helping me for a day to get localhostbecontroller work with MEL setup. Later on patch was posted for review. There is always an etiquette I love to follow, when community helps you. That is, you as a user should have moral responsibility to give something back. Isn’t it same with society too πŸ™‚ ? Hence I posted a few patches to toaster, apart from my normal task with toaster.

One of the key challenges I found during integration was, toaster trying to clone layers by itself after reading the data from toasterconf.json. I had to stop that. Because Mentor had its pre-cloned layers to use. With minor changes, I was able to get it working. I remember the day when I had to demo, toaster executing MEL image. I was able to trigger an image using toaster successfully.

Belen helped in validating my changes. The machine which I use for development would take a minimum of 3-4 hours to build a sato-image. Belen helped me a lot by triggering build on her machine and sharing the results quickly.

When my changes got stabilized with MEL images, I submitted them for review in poky-contrib. Michael Wood had helped in reviewing those changes. I also remember Alex who was part of toaster team, helped in reviewing my changes. Brian helped me a lot by sharing his thoughts about my changes and also by sharing results with my changes. Toaster community had also helped me by sharing a public server to ease my work.Builds which take around 4 hours to finish now take less than 30 minutes to complete.

It was too late for my changes to get into Jethro branch. Integration of my patches to toaster is planned for future release. Toaster is an amazing community to work with. It’s a community with like-minded people who understand the dynamics of FOSS and help users to use Toaster.

If there is a chance to meet you all (Toaster team) in future, I owe entire team with Beer(s) πŸ™‚

Akademy Days 2014

This was my first akademy and it meant a lot to me πŸ™‚Β  I would love to share the snaps I had taken before I write down further. Here is the link from flickr(https://www.flickr.com/photos/sujith-h/sets/72157646981723648/). It was my immense pleasure to meet many people around the conference. I remember the first day where I was so shy to talk to people gathered around at RedHat office in the evening. And Adriaan de Groot helped me out :).

First two days were amazing with with good enlightening talks ( as I wont be writing too much about that because they are already described in dot(https://dot.kde.org/2014/09/11/akademy-wednesday-and-thursday-wrapup, https://dot.kde.org/2014/09/10/akademy-tuesday-wrapup, https://dot.kde.org/2014/09/08/akademy-2014-day-2-talks and https://dot.kde.org/2014/09/08/akademy-award-winners-2014)). Then on the BoF’s started. I got an idea to implement something new for PlasmaMediacenter. Once implemented and changes pushed I will share the blog post for the same.

I thank a lot to e.V and sponsors for this good event.

Akademy 2014

Akademy 2014 is going to be held at Brno University of Technology. This is the first akademy I am going to attend. Its been 5 years that I had been involved with the community and been with it during my good and bad times. I thank KDE e.V for sponsoring my travel and giving me an opportunity to meet community members. I share a kool hug to all community members and KDE e.V πŸ™‚

 

←Older