Re: [Elementary-dev-community] Bake Build System

2013-09-15 Thread Sergey Shnatsel Davidoff

 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

2013-09-15 Thread Sergey Shnatsel Davidoff
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

2013-09-15 Thread Julien
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

2013-09-15 Thread Julien

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

2013-09-15 Thread Julien

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-09-15 Thread Sergey Shnatsel Davidoff
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


[Elementary-dev-community] Gtk.Stock has been deprecated

2013-09-15 Thread David Gomes
Hello,

As we move to GTK+ 3.10 and Vala 0.22, we'll get some warnings with
Gtk.Stock.

For all of you who want to get rid of it on the apps that have already
officially moved to new development libraries, here's an useful link for
the new names of the old Gtk.Stock links:

https://docs.google.com/spreadsheet/pub?key=0AsPAM3pPwxagdGF4THNMMUpjUW5xMXZfdUNzMXhEa2coutput=html

Got it from ~gregier on GTK+.

~David
-- 
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] Gtk.Stock has been deprecated

2013-09-15 Thread A. Xylon V.
Hi David,

Presumably this means that icon themes will not need gtk-stock icons? Or is
this from a coding perspective only?
On Sep 15, 2013 8:47 PM, David Gomes da...@elementaryos.org wrote:

 Hello,

 As we move to GTK+ 3.10 and Vala 0.22, we'll get some warnings with
 Gtk.Stock.

 For all of you who want to get rid of it on the apps that have already
 officially moved to new development libraries, here's an useful link for
 the new names of the old Gtk.Stock links:


 https://docs.google.com/spreadsheet/pub?key=0AsPAM3pPwxagdGF4THNMMUpjUW5xMXZfdUNzMXhEa2coutput=html

 Got it from ~gregier on GTK+.

 ~David

 --
 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] Gtk.Stock has been deprecated

2013-09-15 Thread Mario Guerriero
Thank you Daniel

—
Sent from Mailbox for iPhone

On Sun, Sep 15, 2013 at 10:17 PM, Daniel Foré dan...@elementaryos.org
wrote:

 More info on what stock is, why it was deprecated, and how to migrate: 
 https://docs.google.com/document/d/1KCVPoYQBqMbDP11tHPpjW6uaEHrvLUmcDPqKAppCY8o/pub
 Best Regards,
 Daniel Foré
 elementaryos.org
 On Sun, Sep 15, 2013 at 12:47 PM, David Gomes da...@elementaryos.org
 wrote:
 Hello,
 As we move to GTK+ 3.10 and Vala 0.22, we'll get some warnings with
 Gtk.Stock.
 For all of you who want to get rid of it on the apps that have already
 officially moved to new development libraries, here's an useful link for
 the new names of the old Gtk.Stock links:
 https://docs.google.com/spreadsheet/pub?key=0AsPAM3pPwxagdGF4THNMMUpjUW5xMXZfdUNzMXhEa2coutput=html
 Got it from ~gregier on GTK+.
 ~David-- 
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

2013-09-15 Thread Albert Palacios
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] Gtk.Stock has been deprecated

2013-09-15 Thread Sergey Shnatsel Davidoff
I've run a recursive search for stock on all 114 branches owned by
~elementary-apps and ~elementary-pantheon so that you don't have to check
them one by one. Here are the results: http://pastebin.com/mU7nQyu6

Here's the script that performs the search, shall you need to run it on
another huge list of branches: http://pastebin.com/YpDb24yn

If you need to search through just one directory, just run
$ grep -ir stock /path/to/directory
although the search I ran should get most projects covered.

-- 
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

2013-09-15 Thread Robert Ancell
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