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

Dale Phurrough dale at hidale.com
Tue Dec 8 12:53:56 EST 2020


Hi, John. Still not building official releases in containers? Give
in...they're reproducible, self-documenting, easy to version control, etc.
You can use them for building, CI, test. They run on clouds, single
machines, and personal laptops.
All one. All the same.

I do have a Windows Dockerfile that is about 80% complete. I also have a
few local updates on it that I haven't pushed. You and..I forget their
name...helped me make progress when I found bugs in your gnucash Windows
build process. Changing to use a Windows Dockerfile, you won't have these
"where is msys2" questions. Because it will be exactly where you put it
given the commands in the Dockerfile. You are no longer tied to the setup
of some pipeline's vm. And, if you want to switch between CI pipelines
(github, appveyor, circleci, travis, your laptop, etc.) there is no change
within the Dockerfile. This is a significant save of manpower...or should
we say personpower.

Check my repo link I provided for setup documentation, and both the Linux
and Windows Dockerfiles. My Linux Dockerfiles work across a broader set of
distributions than yours. The ones in your repo were updated after I
published mine but still narrow. I continue to recommend there be only one
set, we collaborate, and they be used for build, ci, test, everything.
Otherwise, the apps you distribute are different from the apps you test -->
which somewhat invalidates the automated testing.

Of course, the core team can do whatever you want as you are in control of
official distributions, FOSS ethos, we all do our own thing, etc. No
worries, no problems, no regrets, all is good. :-)
I'll support someone if they want to evolve the work I've done. I am more
motivated to help when I see my effort is incorporated into projects and
helps the broadest set of people.

--Dale

On Tue, Dec 8, 2020 at 5:55 PM John Ralls <jralls at ceridwen.us> wrote:

> Dale,
>
> We already have dockers running Linux--Arch Linux, Ubuntu-18.04, and
> Ubuntu-20.04--on Travis CI and Github actions. Feel free to borrow whatever
> you need from there to update yours, the docker files are in utils/ci.
>
> Chris isn't looking for CI, he wants a Windows Docker image with all the
> dependencies set up as a shortcut to using gnucash-on-windows to create a
> build environment.
>
> On the other hand *I* want to get a Github action for Windows CI set up
> but I'm stuck on accessing MSYS2.
> https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
> says that Mingw-w64 is preinstalled but doesn't provide any information on
> where. Do you know?
>
> Regards,
> John Ralls
>
>
> > On Dec 8, 2020, at 8:01 AM, Dale Phurrough via gnucash-devel <
> gnucash-devel at gnucash.org> wrote:
> >
> > 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>
> > wrote:
> >
> >> 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
> >>>>>
> >>>>
> > _______________________________________________
> > 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