Re: [Evolution-hackers] Evolution library consolidation

2012-12-23 Thread Daniel Vrátil
On Thursday 13 of December 2012 06:43:15 Matthew Barnes wrote:
 On Thu, 2012-12-13 at 08:59 +0100, Milan Crha wrote:
  I didn't understand from the initial announcement that you'll not only
  merge those above in one .so, but that you'll also move all the files
  into one folder. This makes it quite messy to find anything, the
  previous file layout was better from my point of view. I guess making
  
 eutil/menus
 eutil/table
 ...
  
  as static libraries, linked into one libeutil.so would work pretty well
  too, with an advantage of sorted code.
 
 The old partitioning is still reflected in the API documentation.  I
 don't see anything messy about having the source files in a flat list.
 GTK+ is able to manage its widgets well enough with a similar layout.

Hi,

firstly, sorry for speaking up so late, I didn't have much time for Evo before 
Christmas.

I'm with Milan on this - I'd much more prefer to have several subfolders 
rather then one folder with ~500 files. When working on the editor for 
instance, it's much easier for me to move in a folder with fewer files.

I'd very like see larger submodules having their own folders.

/e-util
/activity - EActivity* classes
/alert - EAlert* classes
/attachments - EAttachment* classes
/categories - ECategory* and ECategories* classes
/editor - EEditor* classes
/emoticons - EEmoticon* classes
/filter - EFilter* classes
/gal - Gal* classes
/name-selector - ENameSelector* classes
/signature - EMailSignature* classes
/table - ETable* classes
/cell - ECell* classes

Just because they don't do it in GTK+ does not mean we should follow them 
blindly. Honestly, digging around in 500+ files slows me down and just annoys 
me. There is _absolutely_ no pain in using subfolders, there's only gain in 
developers' comfort. And from personal experience, it's also less scary for 
new potential contributors.

Secondly, I don't understand why almost every class in Evolution should 
include the complete EEditor headers and ETable headers etc, when they are 
really needed only in a very few places. This impacts build time, because all 
the headers have to be preprocessed and compiled every time for every single 
class that includes e-util.h. I'm all for group headers - it's a good idea, 
but let's be a bit more reasonable here - why not having e-table.h for ETable 
stuff, e-editor.h for EEditor stuff etc...?

Bye and Merry Christmas :)

Dan


 
 Matt
 
 ___
 evolution-hackers mailing list
 evolution-hackers@gnome.org
 To change your list options or unsubscribe, visit ...
 https://mail.gnome.org/mailman/listinfo/evolution-hackers

signature.asc
Description: This is a digitally signed message part.
___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution library consolidation

2012-12-13 Thread Milan Crha
On Tue, 2012-11-27 at 15:30 -0500, Matthew Barnes wrote:
  The new libeutil will include APIs that are currently scattered
 across:
  
 a11y/libevolution-a11y.so
 e-util/libeutil.so
 filter/libfilter.so
 widgets/e-timezone-dialog/libetimezonedialog.so
 widgets/editor/libeeditor.so  (new in Dan's branch)
 widgets/menus/libmenus.so
 widgets/table/libetable.so
 widgets/text/libetext.so
 libedataserverui/libedataserverui.so (from E-D-S)
 
 Addendum: Forgot to list an obvious and important one:
 
widgets/misc/libemiscwidgets.so

On Wed, 2012-12-12 at 14:45 -0500, Matthew Barnes wrote:
 On Sun, 2012-12-09 at 08:59 -0500, Matthew Barnes wrote:
  I expect this is a couple days worth of monkey work, but I should have
  it done by mid-week in time for the 3.7.3 release.
 
 Just committed this to master.

Hi,
I didn't understand from the initial announcement that you'll not only
merge those above in one .so, but that you'll also move all the files
into one folder. This makes it quite messy to find anything, the
previous file layout was better from my point of view. I guess making 
   eutil/menus
   eutil/table
   ...
as static libraries, linked into one libeutil.so would work pretty well
too, with an advantage of sorted code.

It's similar like with imapx files in eds. I didn't see any issue with
them being part of eds/camel, instead of eds/camel/providers/imapx, but
after some time of usage I realized that it's quite unfortunate,
especially when you want to find something in imapx code. Before the
file movement I was able to go to eds/camel/provides/imapx and search
only imapx related files for my search term, but now I search *whole*
camel, which gives me too much noise.

Maybe we cannot do anything with imapx anymore, but we still can with
eutil, or not?

Just my opinion.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution library consolidation

2012-12-13 Thread Matthew Barnes
On Thu, 2012-12-13 at 08:59 +0100, Milan Crha wrote:
 I didn't understand from the initial announcement that you'll not only
 merge those above in one .so, but that you'll also move all the files
 into one folder. This makes it quite messy to find anything, the
 previous file layout was better from my point of view. I guess making 
eutil/menus
eutil/table
...
 as static libraries, linked into one libeutil.so would work pretty well
 too, with an advantage of sorted code.

The old partitioning is still reflected in the API documentation.  I
don't see anything messy about having the source files in a flat list.
GTK+ is able to manage its widgets well enough with a similar layout.

Matt

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution library consolidation

2012-12-13 Thread Milan Crha
On Thu, 2012-12-13 at 06:43 -0500, Matthew Barnes wrote:
 The old partitioning is still reflected in the API documentation.  I
 don't see anything messy about having the source files in a flat list.
 GTK+ is able to manage its widgets well enough with a similar layout.

Hi,
API documentation doesn't matter, I thought you'll understand the pain
when it gets to searching *the code*. I do not think comparing with GTK+
matter, they have code divided into folders too, at least gdk and gtk+
parts, and those are in separate folders, with their own subfolders.
They also have special folder for 'tests', while you made that all
together, counted 241 .c files in there (gtk has more, but that is gtk,
they have it that way, we *had* it better way, in my opinion). Searching
for any common function in there will not be fun.

I was told, many years ago, that folders are for people, computers don't
care of folders in a sense of dealing with a mess, but people do.
I do. At least. That said, the flat folder feels like a regression for
me, because I got use to the sorted code during the years I work on
evolution*.
Bye,
Milan

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution library consolidation

2012-12-12 Thread Matthew Barnes
On Sun, 2012-12-09 at 08:59 -0500, Matthew Barnes wrote:
 I expect this is a couple days worth of monkey work, but I should have
 it done by mid-week in time for the 3.7.3 release.

Just committed this to master.

If you're building from git, I would strongly advise blowing away your
current installation and rebuilding all Evolution-related modules from
scratch to avoid interference from now-defunct libraries.

Also check out the new libeutil API documentation.  I'm still populating
the libeutil-sections.txt file but I hope to complete it by month's end.

Matthew Barnes

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution library consolidation

2012-12-09 Thread Matthew Barnes
On Tue, 2012-11-27 at 14:20 -0500, Matthew Barnes wrote:
 Immediately after the merge I'm going to consolidate Evolution's base
 libraries into a single base utility library.  libeutil seems as good
 a name as anything else I can think of, so I'm going to stick with that.

Since the webkit-composer branch is not quite as ready to merge as I
thought, and I'd like to get the library consolidation done before it
gets any later in the development cycle, I'm going to proceed with it
now and I'll just adapt Dan's branch to the changes myself.

I expect this is a couple days worth of monkey work, but I should have
it done by mid-week in time for the 3.7.3 release.

Matthew Barnes

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


[Evolution-hackers] Evolution library consolidation

2012-11-27 Thread Matthew Barnes
I'm currently smoke testing Dan's webkit-composer branch before giving
him the go-ahead to merge it to master.

Immediately after the merge I'm going to consolidate Evolution's base
libraries into a single base utility library.  libeutil seems as good
a name as anything else I can think of, so I'm going to stick with that.

I'm also going to absorb libedataserverui back into Evolution, since
Evolution is now the only module using it (I've done my due diligence on
other modules that still show a dependency -- in most cases it was just
a historical artifact that could be dropped).  So all the non-deprecated
APIs in libedataserverui will become part of Evolution's new libeutil.

I plan to have this in for Evolution 3.7.3.

The new libeutil will include APIs that are currently scattered across:

   a11y/libevolution-a11y.so
   e-util/libeutil.so
   filter/libfilter.so
   widgets/e-timezone-dialog/libetimezonedialog.so
   widgets/editor/libeeditor.so  (new in Dan's branch)
   widgets/menus/libmenus.so
   widgets/table/libetable.so
   widgets/text/libetext.so
   libedataserverui/libedataserverui.so (from E-D-S)

At least, that's the list for starters.  I'd still like to keep things
like libemformat.so, libcomposer.so and libeshell.so separate.  I'm on
the fence about the smime libraries.

Additionally, since almost all the #include paths will need updating
anyway, I'm going to move libeutil to a single-include model like we've
done for Camel and E-D-S.  In addition to convenience, it helps shield
3rd party apps as well as our own extension packages from quite so much
API churn, even though we still make no guarantees about API stability
in Evolution libraries.

The new #include directive for libeutil will be

   #include libeutil/libeutil.h

which will bring in all headers in the library.

With all the base utility libraries under one header, maybe we can then
get serious about producing some good API documentation for this stuff.
My attempts thus far have been half-hearted at best.

Matthew Barnes


___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers


Re: [Evolution-hackers] Evolution library consolidation

2012-11-27 Thread Matthew Barnes
On Tue, 2012-11-27 at 14:20 -0500, Matthew Barnes wrote:
 The new libeutil will include APIs that are currently scattered across:
 
a11y/libevolution-a11y.so
e-util/libeutil.so
filter/libfilter.so
widgets/e-timezone-dialog/libetimezonedialog.so
widgets/editor/libeeditor.so  (new in Dan's branch)
widgets/menus/libmenus.so
widgets/table/libetable.so
widgets/text/libetext.so
libedataserverui/libedataserverui.so (from E-D-S)

Addendum: Forgot to list an obvious and important one:

   widgets/misc/libemiscwidgets.so

___
evolution-hackers mailing list
evolution-hackers@gnome.org
To change your list options or unsubscribe, visit ...
https://mail.gnome.org/mailman/listinfo/evolution-hackers