2016-07-05 GnuCash IRC logs

00:13:28 *** mlncn has joined #gnucash
00:18:05 *** mlncn has quit IRC
01:01:32 *** Mechtilde has joined #gnucash
01:38:07 *** Mechtilde has quit IRC
03:13:16 *** fell has quit IRC
03:26:10 *** uXusss has joined #gnucash
03:26:31 *** uXus has quit IRC
03:41:41 *** jethrogb has joined #gnucash
03:57:00 *** jethrogb has quit IRC
03:59:07 *** rubdos has joined #gnucash
04:00:20 *** nomeata has joined #gnucash
04:05:55 *** fabior has joined #gnucash
04:14:38 *** gjanssens has joined #gnucash
04:14:38 *** ChanServ sets mode: +o gjanssens
04:50:14 *** fabior has quit IRC
05:03:53 *** fabior has joined #gnucash
05:07:22 *** jethrogb has joined #gnucash
05:20:54 *** rubdos has quit IRC
05:55:46 *** mlncn has joined #gnucash
05:58:03 *** rubdos has joined #gnucash
06:20:04 *** bertbob has quit IRC
06:34:38 *** bertbob has joined #gnucash
06:37:49 *** bertbob has quit IRC
06:53:52 *** bertbob has joined #gnucash
07:17:28 *** fabior has quit IRC
08:26:09 *** kristofer has quit IRC
08:47:12 *** andy has joined #gnucash
08:51:59 *** kristofer has joined #gnucash
09:00:14 *** minot has joined #gnucash
09:00:42 *** fabior has joined #gnucash
09:03:28 *** minot1 has joined #gnucash
09:04:55 *** minot has quit IRC
09:04:56 *** mlncn has quit IRC
09:08:34 *** minot2 has joined #gnucash
09:10:29 *** minot1 has quit IRC
09:10:54 *** minot has joined #gnucash
09:12:10 *** minot2 has quit IRC
09:25:34 *** lmat has joined #gnucash
09:28:04 *** mlncn has joined #gnucash
09:29:37 *** fell has joined #gnucash
09:36:02 *** rubdos has quit IRC
09:49:58 *** nomeata has quit IRC
10:00:13 *** andy has quit IRC
11:01:24 *** rubdos has joined #gnucash
11:22:13 *** fabior has quit IRC
11:35:55 *** miklcct has quit IRC
11:36:00 *** miklcct has joined #gnucash
11:36:35 *** fabior has joined #gnucash
11:43:06 *** gncbot sets mode: +o fell
12:01:17 <jralls> gjanssens: We mentioned the Win32 build scripts the other day, and we've been casting about for a long time for something less cumbersome than our current build scripts. While browsing through the cmake docs I noticed that they have a "build_external" module that can execute arbitrary commands.
12:02:59 <jralls> gjanssens: Having screwed up the glib patch for 2.6.13 (see https://bugzilla.gnome.org/show_bug.cgi?id=767824) I feel the need to automate the dependency build as insurance against messing it up again and that looks like a logical choice.
12:03:39 <jralls> gjanssens: What about switching the win32 build over to that entirely?
12:06:01 * gjanssens is looking for documentation on "build_external" to learn what it does exactly...
12:08:28 <jralls> Sorry, mispelled it. Docs at https://cmake.org/cmake/help/v3.2/module/ExternalProject.html
12:17:21 <gjanssens> jralls: that certainly looks like an interesting option, so worth a try
12:17:40 <gjanssens> I don't know enough about cmake yet to give much feedback
12:18:06 <gjanssens> I did find a stack-overflow issue suggesting there are limits as well. No idea whether they will impact us or not.
12:18:12 <gjanssens> http://stackoverflow.com/questions/15175318/cmake-how-to-build-external-projects-and-include-their-targets#15176075
12:20:17 <gjanssens> I'll admit my goal for revisiting the win32 build was building *less* rather than more by finding a good repository of pre-built (and well maintained) packages.
12:21:20 <gjanssens> The feasibility of that depends largely on whether it's easy to get patches like your glib one upstream, at least in the repo for the pre-built packages.
12:21:51 <jralls> Ah, I had a different plan: Definitely build less daily and especially at release, but do it by having a separate set of pre-built dependencies that just get copied into the build directory.
12:24:06 <jralls> Since I have gnome push, it's really easy for me to get certain patches upstream. "Certain" being defined as ones that don't upset Mattias Classen, who just reverts anything he doesn't like. Since I co-wrote the windows date-time stuff in glib anyway I think the other glib/gtk devs regard it as my turf.
12:27:16 <jralls> That obviously doesn't apply to other packages. I wouldn't push into any of Bedhad's pango/harbuzz without express permission. OTOH Bedhad is really reasonable and responsive and has a broader POV than the core glib guys.
12:27:46 *** bertbob has quit IRC
12:30:34 <jralls> Anyway, that SO article is about using one of package A's cmake files in project B. That's not going to apply to us since none of the dependencies use cmake.
12:30:54 <gjanssens> Fair plan. Can you model something like that in cmake with the externalproject module ?
12:31:08 <gjanssens> And gotcha on the SO article
12:32:02 <gjanssens> What you are envisioning could be called "pre-packaging at a lower level".
12:32:18 <gjanssens> That is, build all dependencies yourself and then use these builds as cache.
12:32:56 <jralls> The 64K-currency-of-your-choice question. I certainly should be able to since it can run arbitrary commands, but gotchas are everywhere.
12:33:33 <gjanssens> Would it be possible/easy to share these prebuilt packages with other devs so not everyone has to go through the whole build cycle ?
12:34:12 <gjanssens> I know we are very few on Windows, but should always strive to make it easier for newcomers to join in on that platform
12:34:48 <gjanssens> I do expect cmake to be more robust then our hand-written scripts so that would definitely be a step forward.
12:34:53 <jralls> Build all the dependencies, tar them up and put the tarballs on SF, then the Gnucash build script downloads them, just as now for glib, gtk, webkit, etc. There are others that we're currently building on-the-fly like gwen, aqb, and libofx, and that takes a long time in the release build, so I'd add them to the prebuilt list.
12:37:31 *** Mechtilde has joined #gnucash
12:37:47 <jralls> Another reason for automating is so that I'm not the only one who can do the build easily. If there's a script and someone, e.g. cstim, wants to update e.g. aqb, just change the version in that CMakeLists.txt and run cmake on it, then upload to SF.
12:38:44 <gjanssens> Yes, I certainly agree on that part
12:39:38 <gjanssens> So we could write the cmake external projects scripts to first check if a tarball is available and if so download and install it instead of building from scratch.
12:40:01 <gjanssens> Perhaps with an option to prevent this if we do want an explicit clean build.
12:40:27 <gjanssens> The challenge will be webkit.
12:41:00 <gjanssens> Did you build that one yourself as well before ? Or are we still using the cross-compiled one ?
12:41:19 <gjanssens> I mean, did you build it yourself on Windows already ?
12:42:53 *** bertbob has joined #gnucash
12:45:34 *** gjanssens is now known as gjanssens_afk
12:45:34 <jralls> Yes, Webkit is a tarball I built last year. IIRC it was a major PITA. It also takes forever. It even takes a long time building for osx where I can use make -j16.
12:46:24 <gjanssens_afk> Good, so that means we can have a, external_project cmake recipe for that as well
12:46:36 <gjanssens_afk> Got to go for tonight...
12:46:42 <warlord> cool
12:47:15 *** miklcct has quit IRC
12:50:43 *** miklcct has joined #gnucash
12:58:57 *** bertbob has quit IRC
13:14:02 *** bertbob has joined #gnucash
13:18:00 *** rubdos has quit IRC
13:52:39 *** kristofer has quit IRC
13:55:06 *** kristofer has joined #gnucash
13:59:01 *** rubdos has joined #gnucash
14:01:02 *** fabior has quit IRC
14:06:38 *** rubdos has quit IRC
14:08:11 *** rubdos has joined #gnucash
14:26:05 *** rubdos has quit IRC
15:08:50 *** andreipmbcn has joined #gnucash
15:10:26 <andreipmbcn> What aspects of gnucash are currently in development, and is there room for extra developers (i.e. me) to contribute?
15:10:42 <warlord> andreipmbcn: there is always room for help.
15:10:48 <warlord> What are you interested in working on?
15:14:55 <andreipmbcn> Anything that involves writing C code, as I've never used Guile or Scheme. I'm new to open source software and thought this would be a good way to jump into a project.
15:15:25 <warlord> andreipmbcn: right now there's a major effort to rewrite a bunch of the subsystems in C++
15:15:46 <warlord> (from C)
15:16:37 <andreipmbcn> That actually sounds good. Is there any documentation on that project that I could read?
15:17:21 <warlord> jralls: is there a current C++ project plan?
15:18:18 *** rubdos has joined #gnucash
15:18:52 *** Mechtilde has quit IRC
15:28:16 *** kristofer has quit IRC
15:29:48 *** fabior has joined #gnucash
16:15:53 <jralls> warlord: For what value of plan? I have a broad outline of what needs to happen in what order, but it's not very detailed and it's not written down.
16:16:25 <warlord> jralls: something that andreipmbcn could read/see?
16:17:23 <jralls> Not unless he can read my mind. ;-) Seems unlikely considering that sometimes even I have trouble reading it.
16:18:39 <warlord> haha
16:20:16 <jralls> Here's a brief dump, though: The overall goal is to rewrite src/engine into *modern* C++, meaning templated C++11. That's so far blocked by engine's dependence on src/libqof and src/backend... and some of src/libqof is blocked by src/backend.
16:21:49 <jralls> So I'm right now working on src/backend as the bit that's most in the way. lmat just finished a first pass on qofsession, getting as far as he could until I can finish backend.
16:23:04 <jralls> Meanwhile gjanssens is working off in a corner to convert src/import-export/csv-imp(ort) to get rid of the libgoffice dependency.
16:25:26 <andreipmbcn> Can you assign me a section of the C source code to convert to C++11?
16:25:54 <andreipmbcn> That seems like pretty much all I would need to get started.
16:29:21 <jralls> andreipmbcn: OK. How big a chunk would you like?
16:30:08 <andreipmbcn> jralls: I should probably start with something small first, so you can see whether my work is adequate.
16:30:56 <jralls> OK. How about looking at src/libqof/qof/qofid*?
16:33:22 <jralls> Some ground rules: API that's called from C functions has to stay until we can convert those users to C++, but the C wrappers should be as thin as possible, ideally just calling the appropriate C++ object's member function or template specialization.
16:33:34 <jralls> Every commit should compile and pass tests.
16:34:04 <andreipmbcn> I'll have a look at it now and start working on the C++ code in around 12 hours (I will need to log off and go to sleep in half an hour).
16:34:45 <jralls> Unit tests are encouraged, especially if they don't already exist--and they don't for qofid.
16:35:15 <jralls> We use Google Test (aka gtest) for C++ unit tests.
16:35:40 <jralls> We have two build systems, autotools and cmake. Any changes need to be reflected in both.
16:36:30 <jralls> Have you already checked out the repo and built from source? Do you have a Github repo for making pull requests?
16:37:59 <andreipmbcn> I was about to clone the source code from github, actually. I'll create a new repo for myself.
16:38:58 <jralls> OK. The first step is to make sure you can build from scratch, so do that first. BTW, I'll be afk all day tomorrow (and most every other wednesday).
16:40:05 <jralls> You'll want to subscribe to gnucash-devel@gnucash.org. It's better for async discussions and any discussions that requires paragraphs rather than sentences.
16:41:51 <jralls> You might also look over http://wiki.gnucash.org/wiki/Development and http://wiki.gnucash.org/wiki/Development_Process.
16:44:02 <jralls> and http://wiki.gnucash.org/wiki/C++, where I find that I had written down the outline plan. It needs updating. I'll do that now.
16:51:43 <warlord> thanks jralls
17:05:35 *** gjanssens_afk is now known as gjanssens
17:07:06 <andreipmbcn> Indeed, thank you very much for all the information. I will have to leave for twelve hours but will start working on the project afterwards.
17:07:34 <gjanssens> jralls: I was still thinking about the cmake and Windows and ExternalProjects stuff and a few details popped up to think about
17:07:58 *** andreipmbcn has quit IRC
17:08:35 <jralls> gjanssens: OK, listening...
17:09:11 <gjanssens> For starters, the ExternalProject stuff would only be for the Windows build; Would that be defined in a separate CMakeLists.txt file then or should it be part of the main CMakeLists.txt ?
17:10:26 <gjanssens> And then I was dreaming about how cmake can be used to generate Visual Studio project files. How would using ExternalProject for our dependencies affect this potential extra path ?
17:11:01 <jralls> gjanssens: If by "main" you mean the one in GnuCash itself, separate. It will go to gnucash-on-windows.
17:11:18 <gjanssens> I don't think our current code will build in Visual Studio (cstimm used to experiment with that), but perhaps our c++ build in the future stands a better chance
17:11:35 <gjanssens> Yes, I meant gnucash itself. Sorry for the confusion
17:11:58 <jralls> Since the gtk stack can be built with VS I was thinking of trying that after I've got it working with autotools.
17:12:33 <gjanssens> You've got me confused with this last sentence...
17:13:30 <gjanssens> (Re-reading 5 times...)
17:13:32 <gjanssens> Ok,
17:13:59 <jralls> Chan FanWei has put a ton of effort over the last couple of years making the core Gnome libraries build correctly with Visual Studio. I think that we can benefit by using MinGW less and VS more, so I want to try that.
17:14:35 <jralls> But first I want to replicate the current way of building with CMake so I don't tie myself in knots chasing too many changes at once.
17:14:55 <gjanssens> Right. Got it now.
17:15:39 <gjanssens> Getting Visual Studio working is a worthy goal IMO. I've got a feeling it's a minimum requirement to get more interest from Windows devs
17:15:56 <gjanssens> Anyway, time to go to sleep again...
17:16:10 <gjanssens> See you later!
17:16:20 <jralls> G'night!
17:20:13 *** rubdos has quit IRC
17:26:13 *** ArtGravity has joined #gnucash
17:29:19 <ArtGravity> Any idea how I apply a credit card refund to a vendor credit note?
17:30:04 <ArtGravity> When I select the entry in the liability account and choose assign as payment, it only offers me accounts receivable
17:46:48 *** fabior has quit IRC
18:05:09 <ArtGravity> I guess that function doesn't work properly right now. I wound up creating the payment by hand via the vendor/process payment menu and deleted the duplicate imported transaction from the ledger.
18:10:22 *** gjanssens has quit IRC
18:45:20 <jralls> warlord: I went through several of the development wiki pages to bring them up to date. I think we can now point potential recruits at http://wiki.gnucash.org/wiki/Development.
18:45:32 *** ArtGravity has quit IRC
19:15:17 *** minot has quit IRC
20:00:49 <warlord> jralls: awesome. Thank you
20:08:59 *** mlncn has quit IRC
20:49:59 *** mlncn has joined #gnucash
21:07:26 *** mlncn has quit IRC
22:06:13 *** kristofer has joined #gnucash
22:19:08 *** PyroPeter__ has joined #gnucash
22:20:57 *** PyroPeter_ has quit IRC
22:54:09 *** mlncn has joined #gnucash
23:13:23 *** fell has quit IRC
23:55:37 *** bertbob has quit IRC