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