Building on Windows - status update

Geert Janssens janssens-geert at telenet.be
Fri May 9 13:31:03 EDT 2014


On Friday 09 May 2014 17:18:19 Wm Tarr wrote:
> > If you really want automatic updates you could run build_daily.sh in
> > the buildserver directory instead of install.sh/dist.sh. This script
> > is written to build the most recent version of gnucash completely
> > unattended at regular intervals and will include updating both
> > repositories.
> 
> I'm no git wizard and this is for comment but given the accidental
> breaking that happened recently (this is *not* a finger pointing
> exercise) should the bootstrap be pulling from gnucash.git stable
> rather than master, perhaps?  (I'm not even sure I've got my git
> terms right!) My thought is that we shouldn't put people off trying.
> 
No in my opinion master should remain the default branch because the 
primary audience of gnucash-on-windows is people seeking to work on the 
code not an end user that fancies building stuff just to see if he can.

On the primary platform (linux and friends) the git repositories default 
to the master branch as well. That's because this branch is where 
development normally happens (except for bug fixes which go on the 
stable branch called 'maint' in the gnucash.git repository).

And on linux as well the builds break from time to time. This is normal. 
Only releases are supposed to be reliable. All else in between is in a 
permanent state of flux. I know some other projects mandate that maint 
and master should always build but that's not a policy in the gnucash 
project.

So I think the default should remain to pull the master branch. However 
that is only an initial setup by the bootstrap script. You are free to 
switch at any time to another branch if that's more comfortable for you.

You will need to learn some basic git commands to accomplish this or 
install a graphical front-end like TortoiseGit. This git requirement is 
not Windows specific. It is a required tool on all the platforms we 
support.

For your direct concern here is how you switch to the maint branch:
- Open a git bash on gnucash.git (with right-click)
- Type "git checkout maint" and hit enter
- Voila...

> >>> It isn't as though they are particularly large. At the moment I'm
> >>> grabbing gnucash-on-windows every time I build but leaving gnucash
> >>> alone as that will have changed less and it is the Win bit we're
> >>> playing with. Good practice or not?
> >> 
> >> None of the recent changes would require a rerun of
> >> bootstrap_win_dev.vbs. There may be one change regarding html help
> >> but I haven't decided on this yet. There is also no need to grab
> >> the
> >> two repositories again. Instead you can use git to pull in the
> >> updates. You can do this as follows (example is for
> >> gnucash-on-windows.git but works the same way for gnucash.git): -
> >> Open a Windows Explorer - Right-click on the gnucash-on-windows.git
> >> directory - Select Git Bash. This will open a command prompt. -
> >> Enter
> >> one command: git pull - Close the command prompt again This should
> >> probably be added in the README file...
> > 
> > It is now :)
> 
> It seems OK now but there were a few days when git pull from
> gnucash-on-windows.git was showing differences that I couldn't
> associate with changes I'd made to files.  I was taking the zip to be
> sure I had a consistent set of files and then (co-incidence happens)
> the build break occurred so I started again with gnucash.git and got
> muddled.
> 
Well you're certainly brave to experiment with the gnucash-on-windows 
repository while it was in total flux :)

I wasn't expecting anyone other than the existing developers to jump in 
so soon. So you may indeed have experienced a few bumps and hickups. If 
you are not very familiar with the build system and the gnucash sources 
that could indeed create some confusion.

In general if you encounter such oddities and you can't link them to 
your own changes please shout. Mention it on the gnucash-devel list.

Several people do this when the build breaks on their particular system 
as well. There are in general so many platforms and environments to 
build in that the developers can't test their changes on all of them. So 
we depend on a network of testers. I'd be very happy if we got some more 
feedback on build failures on the Windows platform.

> A lot of this is for interest / comment only.  I'm working through.
> What I don't want (I think this is general) is someone arriving late
> at the party and finding a bit momentarily broken. It can easily put
> someone off, who knows? your accounting love may be just one extra
> attempt away :)

In this case I would expect that someone to ask why it fails before just 
moving on. I am for lowering the barrier but it's impossible to cover 
all possible scenarios. The build system is not targeted at Joe Casual 
who just fancies building gnucash because that should be fun. It's 
targeted at someone seeking to work on it. I believe the current state 
of gnucash-on-windows is in important step in the right direction (but 
only a step).

Geert


More information about the gnucash-devel mailing list