Build System

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Build System

Gary Kramlich
I just recently discovered the build tool Meson[1].  It's from GNOME,
and uses ninja[2] in place of make.  It supports multiple tool chains,
including windows.

There was also a talk about it from GUADEC 2016[3]

Having used cmake for gplugin, I'm considering porting gplugin to it
and am curious if how others would feel about moving pidgin to it.

[1] https://github.com/mesonbuild/meson
[2] https://ninja-build.org/
[3] https://media.ccc.de/v/44-making_your_gnome_app_compile_24x_faster

Thanks,

--
Gary Kramlich <[hidden email]>

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel
Reply | Threaded
Open this post in threaded view
|

Re: Build System

Niklas Andersson
Would this speed up the release of Pidgin 3 in any way?

- Niklas


On 17/08/16 22:07, Gary Kramlich wrote:

> I just recently discovered the build tool Meson[1].  It's from GNOME,
> and uses ninja[2] in place of make.  It supports multiple tool chains,
> including windows.
>
> There was also a talk about it from GUADEC 2016[3]
>
> Having used cmake for gplugin, I'm considering porting gplugin to it
> and am curious if how others would feel about moving pidgin to it.
>
> [1] https://github.com/mesonbuild/meson
> [2] https://ninja-build.org/
> [3] https://media.ccc.de/v/44-making_your_gnome_app_compile_24x_faster
>
> Thanks,
>
> --
> Gary Kramlich <[hidden email]>
>
> _______________________________________________
> Devel mailing list
> [hidden email]
> https://pidgin.im/cgi-bin/mailman/listinfo/devel

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel
Reply | Threaded
Open this post in threaded view
|

Re: Build System

Tim Murphy

Meson is interesting. I think the most unique feature is being able to decide whether relinking is really needed when a library is changed. If the API hasn't changed then you can avoid relinking an exe when you update the app. Might be handy when one is e.g working on libpurple and testing the effect in pidgin.

Otherwise I would be more interested to try a build system with an inverted dependency tree like tup because this is a very smart and interesting way to not waste a lot of time working out what to build.

Meson and scons are interesting for trying to take out the complexity and hide it. If you are lucky it all works without any customisarion and if you are not lucky the customisations that you need to make are quite complex.  Whatever you do, you will need parallel build systems for a while.

Regards,

Tim


On 18 Aug 2016 7:20 p.m., "Niklas Andersson" <[hidden email]> wrote:
Would this speed up the release of Pidgin 3 in any way?

- Niklas


On 17/08/16 22:07, Gary Kramlich wrote:
I just recently discovered the build tool Meson[1].  It's from GNOME,
and uses ninja[2] in place of make.  It supports multiple tool chains,
including windows.

There was also a talk about it from GUADEC 2016[3]

Having used cmake for gplugin, I'm considering porting gplugin to it
and am curious if how others would feel about moving pidgin to it.

[1] https://github.com/mesonbuild/meson
[2] https://ninja-build.org/
[3] https://media.ccc.de/v/44-making_your_gnome_app_compile_24x_faster

Thanks,

--
Gary Kramlich <[hidden email]>

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel
Reply | Threaded
Open this post in threaded view
|

Re: Build System

Gary Kramlich
In reply to this post by Niklas Andersson
On Thu, Aug 18, 2016 at 11:19 AM, Niklas Andersson
<[hidden email]> wrote:
> Would this speed up the release of Pidgin 3 in any way?

No, the only thing that's going to get Pidgin 3 out faster is more
people fixing all of the rough edges.  I've been systematically going
through the code base and cleaning up every single thing I can.  I
have 2 pull requests that still need more reviews, and I have 4 more
that I'm working on right now.  Al of that and I haven't even tried to
tackle some of the bugs I keep hitting.

I think the biggest problem is that people are not dog fooding Pidgin.
It's easy to just use the 2.x.y release and forget about 3.0.
However, I use 3.0 every day, and I can't even tackle the bugs I'm
finding because of other problems that are buried in the library.

Long story short, we need to move faster, need more cooks, and of
course, more hours in a day.

> - Niklas

Thanks,

--
Gary Kramlich <[hidden email]>

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel
Reply | Threaded
Open this post in threaded view
|

Re: Build System

Gary Kramlich
In reply to this post by Tim Murphy
On Thu, Aug 18, 2016 at 11:40 AM, Tim Murphy <[hidden email]> wrote:
> Meson is interesting. I think the most unique feature is being able to
> decide whether relinking is really needed when a library is changed. If the
> API hasn't changed then you can avoid relinking an exe when you update the
> app. Might be handy when one is e.g working on libpurple and testing the
> effect in pidgin.

The situation your describing should work right now.  I can go into
libpurple/ and "sudo make install && sudo ldconfig" and pidgin will
still work.

> Otherwise I would be more interested to try a build system with an inverted
> dependency tree like tup because this is a very smart and interesting way to
> not waste a lot of time working out what to build.

The majority benefit for Pidgin though is that while Pidgin is not a
GNOME application, it uses all of the GNOME libraries/tools.  When I
set CMake for GPlugin, I had to write a crazy macro for GObject
Introspection (already done in Meson) and I also had to write a crazy
macro for GNU Gettext (already in Meson).  One of the reasons I used
CMake in GPlugin is that it can generate different build systems,
including ones that work on Windows.

> Meson and scons are interesting for trying to take out the complexity and
> hide it. If you are lucky it all works without any customisarion and if you
> are not lucky the customisations that you need to make are quite complex.
> Whatever you do, you will need parallel build systems for a while.

It's not even so much the complexity that's hidden.  The thing I
really like about it is that feels a lot more like a build system than
shell, perl, and m4 do in autotools.  That said, we already have 2
build systems, one for !Windows and one for Windows.

> Regards,
>
> Tim

Thanks,

--
Gary Kramlich <[hidden email]>

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel
Reply | Threaded
Open this post in threaded view
|

Re: Build System

Niklas Andersson
In reply to this post by Gary Kramlich
Hi Gary,

  I guess we have a couple of hundred users on Pidgin 3 and there are no
other complaints than the notification system is pretty much broken in
3.0 on Ubuntu. Besides that Pidgin 3 works pretty darn well for our users.


But I guess we might be a corner case here. I know that lots of users in
other companies are just using 2.x.y as you say.

Would you know if the 3.0 release blockers are cleaned up? Is there a
authoritative list I perhaps could point some of our developers to and
have a look and see if they can contribute with something?

Regards,

Niklas

On 19/08/16 20:25, Gary Kramlich wrote:

> On Thu, Aug 18, 2016 at 11:19 AM, Niklas Andersson
> <[hidden email]> wrote:
>> Would this speed up the release of Pidgin 3 in any way?
> No, the only thing that's going to get Pidgin 3 out faster is more
> people fixing all of the rough edges.  I've been systematically going
> through the code base and cleaning up every single thing I can.  I
> have 2 pull requests that still need more reviews, and I have 4 more
> that I'm working on right now.  Al of that and I haven't even tried to
> tackle some of the bugs I keep hitting.
>
> I think the biggest problem is that people are not dog fooding Pidgin.
> It's easy to just use the 2.x.y release and forget about 3.0.
> However, I use 3.0 every day, and I can't even tackle the bugs I'm
> finding because of other problems that are buried in the library.
>
> Long story short, we need to move faster, need more cooks, and of
> course, more hours in a day.
>
>> - Niklas
> Thanks,
>
> --
> Gary Kramlich <[hidden email]>

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel
Reply | Threaded
Open this post in threaded view
|

Re: Build System

Gary Kramlich
On Fri, Aug 19, 2016 at 1:39 PM, Niklas Andersson
<[hidden email]> wrote:
> Hi Gary,
>
>  I guess we have a couple of hundred users on Pidgin 3 and there are no
> other complaints than the notification system is pretty much broken in 3.0
> on Ubuntu. Besides that Pidgin 3 works pretty darn well for our users.

Don't get me wrong, it works well.  Like I said I use it every day.
That said there's a bunch of little things that I run into every day.
Here's a few.

Paste a large piece of text into the input windows for a message, send
the message, and notice that the input box stays huge.

Sounds when available works correctly when you go away, but if you go
away on idle, you still get sounds.

There's a few more I have noted, but I haven't put them in trac yet
due to the unknown future of our trac.  There's been a lot of
discussion about moving away from it.

> But I guess we might be a corner case here. I know that lots of users in
> other companies are just using 2.x.y as you say.
>
> Would you know if the 3.0 release blockers are cleaned up? Is there a
> authoritative list I perhaps could point some of our developers to and have
> a look and see if they can contribute with something?

The release blockers are really that the API is in VERY bad shape.  It
works, but I don't want to cut a 3.0.0 on it.  There's a lot of room
for improvement, but I'm trying to focus on the big API breakage stuff
first.  For example, there's a bunch of stuff that should have been
turned into GObjects that isn't yet.  We can't do that in a minor
version.

Aside from that, there are some key things that need to be figured out
yet, like are we going to keep using Webkit for the chat interface and
if we do do we have to move to GtkWebkit2 which completely changes the
way you modify the DOM and has no win32 support right now.

I'll try to spend some time this next week getting a ultimate TODO
list together.

> Regards,
>
> Niklas

Thanks,

--
Gary Kramlich <[hidden email]>

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel
Reply | Threaded
Open this post in threaded view
|

Re: Build System

Niklas Andersson
Sounds great! Thanks a lot Gary. I understand that the API-breakage is a
deal breaker here..

Thanks for all your efforts!

Regards,

Niklas

On 19/08/16 20:48, Gary Kramlich wrote:

> On Fri, Aug 19, 2016 at 1:39 PM, Niklas Andersson
> <[hidden email]> wrote:
>> Hi Gary,
>>
>>   I guess we have a couple of hundred users on Pidgin 3 and there are no
>> other complaints than the notification system is pretty much broken in 3.0
>> on Ubuntu. Besides that Pidgin 3 works pretty darn well for our users.
> Don't get me wrong, it works well.  Like I said I use it every day.
> That said there's a bunch of little things that I run into every day.
> Here's a few.
>
> Paste a large piece of text into the input windows for a message, send
> the message, and notice that the input box stays huge.
>
> Sounds when available works correctly when you go away, but if you go
> away on idle, you still get sounds.
>
> There's a few more I have noted, but I haven't put them in trac yet
> due to the unknown future of our trac.  There's been a lot of
> discussion about moving away from it.
>
>> But I guess we might be a corner case here. I know that lots of users in
>> other companies are just using 2.x.y as you say.
>>
>> Would you know if the 3.0 release blockers are cleaned up? Is there a
>> authoritative list I perhaps could point some of our developers to and have
>> a look and see if they can contribute with something?
> The release blockers are really that the API is in VERY bad shape.  It
> works, but I don't want to cut a 3.0.0 on it.  There's a lot of room
> for improvement, but I'm trying to focus on the big API breakage stuff
> first.  For example, there's a bunch of stuff that should have been
> turned into GObjects that isn't yet.  We can't do that in a minor
> version.
>
> Aside from that, there are some key things that need to be figured out
> yet, like are we going to keep using Webkit for the chat interface and
> if we do do we have to move to GtkWebkit2 which completely changes the
> way you modify the DOM and has no win32 support right now.
>
> I'll try to spend some time this next week getting a ultimate TODO
> list together.
>
>> Regards,
>>
>> Niklas
> Thanks,
>
> --
> Gary Kramlich <[hidden email]>

_______________________________________________
Devel mailing list
[hidden email]
https://pidgin.im/cgi-bin/mailman/listinfo/devel