Re: [Elementary-dev-community] Bake Build System
Hi, just an idea. Why not add this feature into bake?, something like that bake new project name=sky On Sep 17, 2013 10:39 PM, Albert Palacios optimi...@gmail.com wrote: Hi, Julian suggested a new template without using the word 'template', so here it is. Now it uses HelloWorld as a project name and it can be easily changed using the script 'set_project_name.sh'. For example, to create a new application named 'sky': - Decompress the template - mv helloworld sky - cd sky - set_project_name Sky - sudo bake install - sky I also modified other minor things such as enclosing the application into its own namespace. Albert On Mon, Sep 16, 2013 at 10:14 PM, Julian Unrrein junrr...@gmail.comwrote: I've taken a look at Bake, and I'm liking it so far! As soon as optional dependencies support is added ( https://bugs.launchpad.net/bake/+bug/1105831), I will try to get Files built with it. 2013/9/14 Julien spautz.jul...@gmail.com Hey guys, I've lately been toying with a relatively recent build system called * bake*. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is *very* simple and requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs ( http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
There are a lot of build system out there. This one seems cool and clean but it's probably too bleeding edge. I suggest you to take a look at waf. Lots of project are switching to it. We've been through WAF already. Oh, what a nightmare it was! WAF is very basic and doesn't have even gettext support, so you have to write that yourself in Python. As your project evolves, you need more and more custom handling because WAF is so very primitive and your build system ends up being a bunch of entirely custom Python scripts. Not only reimplementing the whole build system in Python for every project is pointlessly time-consuming, but it also means that you have as many build systems as there are project maintainers evolving in parallel with little to no code sharing. So each project has to go through the same pitfalls instead of just using collaboratively-written time-proven shared code. E. Oh, and custom WAF-based build system also means that distributors have no idea how to work with it. Each project requires entirely custom handling. So your project can't be packaged by an average maintainer because the distribution's helper scripts won't work with it. You need a guru who *wrote * the helper scripts just to package your project. So, been there, done that, not going to return. -- Sergey Shnatsel Davidoff OS architect @ elementary -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
Julien, thanks for stepping up to investigate Bake. It had to be done :) I believe migrating to Bake would be very beneficial since it lowers the entry barrier and lets developers focus on code. I'd like to hear from developers on the matter, though. I do have some gripes with the current state of Bake (e.g. https://bugs.launchpad.net/bake/+bug/1225637), but does look eaier and better suted for most of our use cases than CMake even in its current form. Off the top of my head, its built-in .deb package generation is very basic and incomplete, just like CMake's one. In other words, it will always be incomplete and buggy if Bake continues to try to do it on its own. It should instead call upon debhelper that will do the heavy lifting. It seems the work on this is already started: https://bugs.launchpad.net/bake/+bug/1117755 But we can properly package Bake-powered apps and make daily builds of them with waaay less hacks than it would be required for e.g. WAF even until debhelper support is added. -- Sergey Shnatsel Davidoff OS architect @ elementary -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
Here's a branch for building Terminal with bake. The Recipe files are almost the same, I just had to adjust the version, gettext-package, sources-files and a few other details. https://code.launchpad.net/~julien-spautz/pantheon-terminal/bake On Sun, Sep 15, 2013 at 1:08 AM, Julien spautz.jul...@gmail.com wrote: Hey guys, I've lately been toying with a relatively recent build system called bake. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is very simple and requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs (http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
Bake should output something like this: $ sudo bake install [Configuring] install-directory - / (default) system-config-directory - /etc (default) system-binary-directory - /sbin (default) system-library-directory - /lib (default) resource-directory - /usr (default) binary-directory - $(options.resource-directory)/bin (default) library-directory - $(options.resource-directory)/lib (default) data-directory - $(options.resource-directory)/share (default) include-directory - $(options.resource-directory)/include (default) project-data-directory - $(options.data-directory)/cable (default) [Entering directory data] MKDIR /usr/share/glib-2.0/schemas CP org.pantheon.cable.gschema.xml /usr/share/glib-2.0/schemas/org.pantheon.cable.gschema.xml MKDIR /usr/share/applications CP cable.desktop /usr/share/applications/cable.desktop .. On Sun, Sep 15, 2013 at 12:49 PM, Julien spautz.jul...@gmail.com wrote: Bake installs the gsettings schema automatically. Did you install cable like I described? On Sun, Sep 15, 2013 at 12:43 PM, Albert Palacios optimi...@gmail.com wrote: Hi, I am trying to compile it, I want to begin a new application and I will use your bake structure as an example. But I get: albert@albert-MacBookPro:~/Projects/bake$ cable [_LOG_LEVEL_INFO 12:41:55.318429] Application.vala:77: Cable version: 0.1 [_LOG_LEVEL_INFO 12:41:55.318495] Application.vala:79: Kernel version: 3.2.0-53-generic [_LOG_LEVEL_WARN 12:41:55.322681] [GLib-GIO] Settings schema 'org.pantheon.cable' is not installed Trace/breakpoint trap Maybe a line on how to install the schema is missing? On Sun, Sep 15, 2013 at 1:08 AM, Julien spautz.jul...@gmail.com wrote: Hey guys, I've lately been toying with a relatively recent build system called bake. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is very simple and requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs (http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
sudo apt-get install maki On Sun, Sep 15, 2013 at 1:47 PM, Albert Palacios optimi...@gmail.com wrote: Hi Julien, Not working yet :s, the Software Center didn't show the icon properly, after installing the deb: [_LOG_LEVEL_INFO 13:46:24.346737] Application.vala:77: Cable version: 0.1 [_LOG_LEVEL_INFO 13:46:24.346804] Application.vala:79: Kernel version: 3.2.0-53-generic [_LOG_LEVEL_DEBUG 13:46:24.354284] Settings.vala:158: Loading settings from schema 'org.pantheon.cable' [_LOG_LEVEL_DEBUG 13:46:24.355600] Settings.vala:158: Loading settings from schema 'org.pantheon.cable.saved-state' [_LOG_LEVEL_DEBUG 13:46:24.358117] Irc.vala:38: Successfully connected to Sushi dbus session. [_LOG_LEVEL_DEBUG 13:46:24.563078] [Gtk] Connecting to session manager [_LOG_LEVEL_FATAL 13:46:24.599686] file /home/albert/Projects/bake/.built/dpkg-builddir/cable-0.1/src/Irc/Client.vala: line 43: unexpected error: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name de.ikkoku.sushi was not provided by any .service files (g-dbus-error-quark, 2) [_LOG_LEVEL_FATAL 13:46:24.599747] Cable will not function properly. Segmentation fault On Sun, Sep 15, 2013 at 1:31 PM, Julien spautz.jul...@gmail.com wrote: Seems normal. Still not working? Try what shnatsel said and run bake release-deb and then install the .deb file. On Sun, Sep 15, 2013 at 1:28 PM, Albert Palacios optimi...@gmail.com wrote: sudo bake uninstall sudo bake clean sudo bake install install_out.txt I attached the out. albert@albertPC:~/Projects/bake$ find /usr/share/glib-2.0/schemas/ | grep cable /usr/share/glib-2.0/schemas/org.pantheon.cable.gschema.xml On Sun, Sep 15, 2013 at 1:13 PM, Julien spautz.jul...@gmail.com wrote: Those options.xxx variables are not defined in the Recipe files, but have default values, in this case /usr/share Anyway, can you post bake's output on pastebin? First uninstall and clean, then install again. Also, please run $ find /usr/share/glib-2.0/schemas/ | grep cable On Sun, Sep 15, 2013 at 12:59 PM, Albert Palacios optimi...@gmail.com wrote: Hi Julien, Thanks for your help, from Luna I have 'bzr' but never installed 'cable'. Then, sudo apt-get install libnotify-* sudo apt-get install unity sudo apt-get install libunity-dev sudo add-apt-repository ppa:bake-team/releases sudo apt-get update sudo apt-get install bake bzr branch lp:~julien-spautz/cable/bake cd bake bake sudo bake install cable Result: [_LOG_LEVEL_INFO 12:57:23.650437] Application.vala:77: Cable version: 0.1 [_LOG_LEVEL_INFO 12:57:23.650506] Application.vala:79: Kernel version: 3.2.0-53-generic [_LOG_LEVEL_WARN 12:57:23.654776] [GLib-GIO] Settings schema 'org.pantheon.cable' is not installed Trace/breakpoint trap I am looking at the recipes and I can't see where is the options.data-directory defined: variables = @DATADIR@=$(options.data-directory) \ Albert On Sun, Sep 15, 2013 at 12:55 PM, Julien spautz.jul...@gmail.com wrote: Bake should output something like this: $ sudo bake install [Configuring] install-directory - / (default) system-config-directory - /etc (default) system-binary-directory - /sbin (default) system-library-directory - /lib (default) resource-directory - /usr (default) binary-directory - $(options.resource-directory)/bin (default) library-directory - $(options.resource-directory)/lib (default) data-directory - $(options.resource-directory)/share (default) include-directory - $(options.resource-directory)/include (default) project-data-directory - $(options.data-directory)/cable (default) [Entering directory data] MKDIR /usr/share/glib-2.0/schemas CP org.pantheon.cable.gschema.xml /usr/share/glib-2.0/schemas/org.pantheon.cable.gschema.xml MKDIR /usr/share/applications CP cable.desktop /usr/share/applications/cable.desktop ... On Sun, Sep 15, 2013 at 12:49 PM, Julien spautz.jul...@gmail.com wrote: Bake installs the gsettings schema automatically. Did you install cable like I described? On Sun, Sep 15, 2013 at 12:43 PM, Albert Palacios optimi...@gmail.com wrote: Hi, I am trying to compile it, I want to begin a new application and I will use your bake structure as an example. But I get: albert@albert-MacBookPro:~/Projects/bake$ cable [_LOG_LEVEL_INFO 12:41:55.318429] Application.vala:77: Cable version: 0.1 [_LOG_LEVEL_INFO 12:41:55.318495] Application.vala:79: Kernel version: 3.2.0-53-generic [_LOG_LEVEL_WARN 12:41:55.322681] [GLib-GIO] Settings schema 'org.pantheon.cable' is not installed Trace/breakpoint trap Maybe a line on how to install the schema is missing? On Sun, Sep 15, 2013 at 1:08 AM, Julien spautz.jul...@gmail.com wrote: Hey guys, I've lately been toying with a relatively recent build system called bake. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important
Re: [Elementary-dev-community] Bake Build System
2013/9/15 Julien spautz.jul...@gmail.com sudo apt-get install maki I wonder if you can declare runtime dependencies in Bake, such as Maki in this case. -- Sergey Shnatsel Davidoff OS architect @ elementary -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
Hi, Thanks to Julien's proposal I have created and empty project template (the one attached it to this email). I hope it helps someone to begin with new projects. This project uses the word template not only in filenames but also inside files. In the project there is one script named 'set_project_name.sh' that is used like: ./set_project_name.sh ProjectName This script replaces every 'template' word in filenames or inside files to rename the 'template' project to 'projectName' (It respects the first uppercase for class names) For example: - Extract the 'template' folder - cd template - ./set_project_name.sh Sky - bake clean - bake - sudo bake install - cd .. - mv template Sky - cd Sky - sky And a new example application named 'sky' will be available to use. This example application is very simple and uses the Granite's Welcome screen. I think this can be a very fast and easy way to introduce people into elementary OS programming. Albert On Sun, Sep 15, 2013 at 1:08 AM, Julien spautz.jul...@gmail.com wrote: Hey guys, I've lately been toying with a relatively recent build system called *bake *. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is *very* simple and requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs ( http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp template.tar.gz Description: GNU Zip compressed data -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
Awesome to hear good news on Bake! Thanks Julien and the other Elementaryites for trying it out; your feedback is very useful. As many have pointed out, Bake is quite new and progress might seem to be a little slow. This is two things really: 1. I really want to do a good job of it (no point adding another OK build system to the mix) 2. My day job at Canonical is sucking up all my spare time :( Due to point 2, any help would be greatly received. Good or bad feedback on using Bake is very useful, in fact, the more bad feedback the better. I need to know the areas where it needs improving. Bugs can be filed on https://launchpad.net/bake. Code contributions are welcome (hi fellow Vala lovers), just be aware due to point 1 above I'm setting a high bar on contributions so expect some work required in merge proposals. Finally, if there's anyone with spare Web cycles, Bake desperately needs a simple website [1]. Web is not my forte. --Robert [1] https://bugs.launchpad.net/bake/+bug/1215366 On Sun, Sep 15, 2013 at 11:08 AM, Julien spautz.jul...@gmail.com wrote: Hey guys, I've lately been toying with a relatively recent build system called *bake *. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is *very* simple a nd requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs ( http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install** Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
[Elementary-dev-community] Bake Build System
Hey guys, I've lately been toying with a relatively recent build system called bake. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is very simple and requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs (http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
Debian considers Waf problematic due to being binary-distributed On Windows its pkg-config handling leaves to be desired https://bugs.launchpad.net/midori/+bug/1211909 On Sat, Sep 14, 2013 at 6:50 PM, Daniele S. oppifjel...@gmail.com wrote: There are a lot of build system out there. This one seems cool and clean but it's probably too bleeding edge. I suggest you to take a look at waf. Lots of project are switching to it. Daniele Il giorno 15/set/2013 01:08, Julien spautz.jul...@gmail.com ha scritto: Hey guys, I've lately been toying with a relatively recent build system called * bake*. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is *very* simple and requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs ( http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Cody Garver -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
I haven't used waf yet, do you know of any good resources? From what I've seen after a quick web search it seems to be just as verbose as cmake or even make. The point of bake is that it is so stupidly simple to use, and also has special support for vala. It makes things like installing desktop files or gsettings schemas just a matter of assigning them to a variable, while it still has support for custom rules in the style of make, so you can also do more complex stuff. On Sun, Sep 15, 2013 at 1:50 AM, Daniele S. oppifjel...@gmail.com wrote: There are a lot of build system out there. This one seems cool and clean but it's probably too bleeding edge. I suggest you to take a look at waf. Lots of project are switching to it. Daniele Il giorno 15/set/2013 01:08, Julien spautz.jul...@gmail.com ha scritto: Hey guys, I've lately been toying with a relatively recent build system called bake. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is very simple and requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs (http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp
Re: [Elementary-dev-community] Bake Build System
I know that Robert also has built bake with the intention of having it work from a GUI IDE as well as with the intention of having it integrate into launchpad. He has an excellent track record if that means anything :) Best Regards, Daniel Foré elementaryos.org On Sat, Sep 14, 2013 at 5:08 PM, Julien spautz.jul...@gmail.com wrote: I haven't used waf yet, do you know of any good resources? From what I've seen after a quick web search it seems to be just as verbose as cmake or even make. The point of bake is that it is so stupidly simple to use, and also has special support for vala. It makes things like installing desktop files or gsettings schemas just a matter of assigning them to a variable, while it still has support for custom rules in the style of make, so you can also do more complex stuff. On Sun, Sep 15, 2013 at 1:50 AM, Daniele S. oppifjel...@gmail.com wrote: There are a lot of build system out there. This one seems cool and clean but it's probably too bleeding edge. I suggest you to take a look at waf. Lots of project are switching to it. Daniele Il giorno 15/set/2013 01:08, Julien spautz.jul...@gmail.com ha scritto: Hey guys, I've lately been toying with a relatively recent build system called bake. It was created and is maintained by Robert Ancell and you can find the source code here: https://launchpad.net/bake. There isn't much documentation out there, but the manual will teach you most important things: https://answers.launchpad.net/bake/+faq/2172 $ bzr branch lp:bake $ cd bake $ yelp help So if you're like me and have no idea about cmake, bake might be the perfect alternative. It is very simple and requires practically no boiler code (unlike cmake). It would also be easier for new developers to set up their own projects. I'm pretty sure you want to see some actual implementation, so here it is: https://code.launchpad.net/~julien-spautz/cable/bake If you look at the diffs (http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll see that I added a few Recipe files, containing all the information bake needs, and at the same time got rid of all that cmake ugliness. Since Cable uses the same cmake template as the official elementary apps, this should work just as well with any other elementary app. If you want to try it yourself, here are some instructions: First install bake: $ sudo add-apt-repository ppa:bake-team/releases $ sudo apt-get update $ sudo apt-get install bake Now get my branch: $ bzr branch lp:~julien-spautz/cable/bake $ cd bake So far so good. Now let's build (make sure you have all the deps, you'll find them in /src/Recipe): $ bake There should now be an executable in src/ and one in tests/. How about cleaning up again? $ bake clean Installing? $ sudo bake install Running unit tests? (I know you all enjoy those TDD threads) $ bake test Creating a .deb package? $ bake release-deb (might take a while) If you're not in love yet I really don't know... I'll try to convert some other elementary apps to bake in the future, but I don't think it'll be very difficult. The biggest downside of bake is of course that it is still relatively new and therefore lacks complete documentation and tutorials and probably still has some important bugs. Otherwise I see no reason not to switch at some point in the future, be it for Isis, or Isis + 1 (but not later, srsly). What are your opinions? Has anyone else had any experience with it? -- Julien Spautz -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~elementary-dev-community Post to : elementary-dev-community@lists.launchpad.net Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp