[GNC-dev] build stats/badges for GNC maint, 3.6, 3.5 using Docker

Dale Phurrough dale at hidale.com
Tue Dec 8 11:01:40 EST 2020

If Linux builds only, then only two things needs to be done:

   1. Update the existing 3.x solution at
   https://github.com/diablodale/gnucash-dev-docker to compile for GnuCash
   4.x. After someone understands the shared/common methodology, this is less
   than a week of work. A single platform (e.g. Debian/Ubuntu) might even be
   in hours.
   2. Copy the documentation I wrote at that same repo and integrate it
   into GnuCash docs -- adapting it for any stylistic changes. This is less
   than a day of work if someone understands GnuCash doc process.

On Tue, Dec 8, 2020 at 3:08 PM Christopher Lam <christopher.lck at gmail.com>

> Sounds all complex... A simple Dockerfile to set up a dev environment
> would be a good start! Or, if it already exists, documentation could be
> improved - "how to start hacking and building after a bare-bones
> linux+docker install".
> On Tue, 8 Dec 2020 at 13:00, Dale Phurrough <dale at hidale.com> wrote:
>> Hi. Anything is possible. ;-)
>> Regarding Dockerfiles to build Gnucash for Linux, Windows, and Osx...
>>    - Gnucash 4.x has several dependency changes and I don't have a
>>    dockerfile to build them.
>>    - Linux updates will be relatively straightforward. It is usually
>>    only differences in dependencies on the four Linux forks (arch, debian,
>>    rhel, suse)
>>    - Windows build needs some work. I was about a week away from having
>>    a full clean build. I partnered with the core gnucash team to have several
>>    issues fixed in the windows build script/process -- issues unrelated to
>>    Docker. More work is needed to make the build consistent, smooth and easy
>>    to automate. The types of issues found/fixed were, e.g.: only works in a
>>    specific directory or specific build machine, custom scripts not part of
>>    the source code, etc.
>>    - Osx is not directly possible. There is no mechanism for the OS
>>    directly inside a Docker container to be Osx. You could have the Docker
>>    container be Linux and within that install a full virtualizer like
>>    virtualbox and within that virtualbox vm install Osx. I am not a lawyer and
>>    I am not aware of the legality of using Osx in this way. There are also
>>    cross-compilers -- using a compiler on Linux to build an Osx binary.
>>    Unclear if this would be a reliable binary. Unclear how to test the binary
>>    built.
>> Here are a few things to consider regarding build/test pipelines:
>>    - Azure Pipeline isn't worth the trouble
>>    - Appveyor works generally well. It is the most capable for
>>    cross-platform building.
>>    - Github actions is a mix of the two. It has linux, win, and macos
>>    build environments...but doesn't support docker on all of them.
>>    - Github actions should work to build/test all Linux GnuCash
>>    versions.
>>    - Github actions does not (yet) support Windows Docker containers.
>>    This is because the Github runners for Windows do not (yet) support running
>>    Windows containers within them. See github action docs and
>>    https://github.com/actions/virtual-environments/issues/1143
>>    - Github actions is only "preview" for Mac. Issues will arise due to
>>    the host itself and the gnucash build process.
>>    - If you want to use Github actions to build Windows and Osx, you
>>    can't do it today with a Dockerfile. It can only be done by running the
>>    build directly on their VM not using Docker.
>> I have the knowledge to do this work, but I don't currently have the
>> bandwidth. I have this topic area and GnuCash reconciliation in my "queue";
>> currently slotted for Feb/March 2021.
>> An alternative...I could support someone. Sumit Bhardwaj expressed
>> interest.
>> --Dale
>> On Sun, Dec 6, 2020 at 3:03 AM Christopher Lam <christopher.lck at gmail.com>
>> wrote:
>>> Hi Dale
>>> Docker is now firmly entrenched in the industry; would you be able to
>>> create a PR to set up the Dockerfile in the project root (or /util), and
>>> add a few notes in the wiki to help complete docker newbies? e.g.
>>> - how to set up a dev environment
>>> - automate build and install
>>> You may be aware we're moving away from travis to github actions.
>>> C
>>> On Wed, 17 Jul 2019 at 18:40, Dale Phurrough via gnucash-devel <
>>> gnucash-devel at gnucash.org> wrote:
>>>> Hi all. I finished the second stage of my project to automate
>>>> build/test of
>>>> GnuCash with Docker. See the badges, drill down to logs and individual
>>>> test
>>>> results at
>>>> https://diablodale.github.io/gnucash-dev-docker/
>>>> In previous emails you read about the easy consistent GnuCash build/test
>>>> with Docker.
>>>> https://github.com/diablodale/gnucash-dev-docker
>>>>    - Updated with clearer categorized build dependencies in Dockerfiles
>>>>    - Used these Docker containers to build/test across 14
>>>> distrib/versions
>>>>    of Linux
>>>>    - Containers can be built locally or downloaded from DockerHub
>>>>    - Automated build and tests using these containers via CI on AppVeyor
>>>>    - Transformed ctest results through XSLT to JUnit format
>>>>    - Exposed build and test results to badges
>>>> Still to do
>>>>    - Microsoft Azure CI Pipelines offers a free tier of CI that could be
>>>>    used and 10x faster. I will explore their offering to see if it
>>>> meets needs
>>>>    - Windows builds. Thanks to JohnR and GeertJ, good progress has been
>>>>    made. I have the responsibility for next steps. I need to return to
>>>> my
>>>>    testing to see what is missing or not functioning.
>>>>    - Watch and evaluate AppVeyor. I exposed several bugs in the AppVeyor
>>>>    offering as well as some limitations that required workarounds. I've
>>>>    reported the issues to the AppVeyor team.
>>>>    - Evaluate a switch to this docker build/test for GitHub PR testing.
>>>> The
>>>>    existing Travis process being used has aged and doesn't test a full
>>>> suite
>>>>    of functionality. With experience using AppVeyor and/or Microsoft
>>>> CI, the
>>>>    core GnuCash team can evaluate switching away from the old Travis
>>>> method.
>>>>    - Any related requests? Please send them to me.
>>>> --Dale
>>>> _______________________________________________
>>>> gnucash-devel mailing list
>>>> gnucash-devel at gnucash.org
>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel

More information about the gnucash-devel mailing list