[Ohrrpgce] Plans for moving the nightly builds

Ralph Versteegen teeemcee at gmail.com
Wed Dec 16 16:51:00 PST 2020


Sounds great!

Just a couple days ago I updated mxe (I'm intending to update
SDL_mixer.dll) and was pleased with how simple it was:
  git pull
  make MXE_TARGETS=i686-w64-mingw32.static
The fact that it prints nothing to the terminal except the names of the
packages being recompiled makes it seem simpler :) It didn't even take that
long to recompile the whole toolchain, I think around half an hour?
scons target=i686-w64-mingw32.static release=1 pdb=1 builds additionally
require wine, but they work fine.

However I never got around to trying out a cross compiler targeting Mac.

One advantage to shifting Windows builds to mxe is that they don't trip
virus scanners when you embed an icon!! Because of this problem I was
intending to switch from rcedit to ResourceHacker for icon embedding for
hróðvitnir. Should I still do this, or will docker-based building be ready,
at least for stable releases, before the release?
Other advantages are that we could delete plotdictionary.html from the repo
and generate it in nightly build scripts instead, so it's always up-to-date
and to avoid that pollution of diffs (Come to think of it, I could probably
config git to hide diffs for it anyway), and that the .exe files are around
0.5MB smaller than current builds (due to better libstdc++ dead code
removal I think).



On Wed, 16 Dec 2020 at 14:33, James Paige <Bob at hamsterrepublic.com> wrote:

> I started some work on restructuring the nightly builds.
>
> Right now they are shell scripts run in a separate VM for each platform.
>
> My plan is to start using Docker containers with all the build
> requirements, and a Jenkins pipeline that will describe how a Jenkins
> server will run the build scripts and upload the nightlies.
>
> I think this will make the builds more streamlined, and will make it much
> easier for other people to reproduce a working build environment, which
> removes a barrier for entry for new developers.
>

In my experience most of the people who have expressed interest in
contributing are running Windows. I see Docker supports Win 10, if you have
WSL installed too, but that might not be much simpler.
Last time someone asked about setting up a build environment I couldn't
give clear instructions due to all the crazy mingw and freebasic
combinations possible and they were put off;
https://rpg.hamsterrepublic.com/ohrrpgce/Windows_compiling_requirements
doesn't make things sound simple! We should have a short bullet point list
of download links and instructions.

A number of people have also mentioned being put off by FreeBASIC; my
impression is that it's because they aren't experienced programmers so
learning a new (or their first real) language is daunting for them. It
would be so fantastic if we could start writing parts of the engine in (an
upgraded) HS, or at least an underlying scripting language like lua or
squirrel, so that *no extra tools are necessary*! That's the long term
direction I think we need to take.

Also, we often talk up how bad the code (or some part of it) is and this
*definitely* puts off people too, maybe more than anything else. I think
we've been shooting ourselves in the foot here and we (I) need to stop
doing this; the codebase on the whole is not so bad anymore! Can we please
change the self-deprecating README.txt and the "apologies for crappyness of
this code" file headers? Let's update the README to a markdown doc intended
as the github front page, maybe with a screenshot or two.
I'd also like to continue code reorganisation into different .bas files but
I sometimes avoid it because of worry about my excessive unmerged git
branches.


>
> It should also open the way for possibilities like automatically running
> test builds each time changes are pushed, rather than just nightly, and for
> the possibility of running multi-platform test builds on branches before
> they are merged.
>
> I know this will work well for Linux builds, and Android builds, and I
> think I can possibly use mxe to make it work for windows builds too. Mac
> builds are a bit more iffy I think-- I don't yet know what is involved with
> making those cross-compile in a container, but at least it will reduce the
> number of virtual machines I have to manage :D
>
> I don't expect any changes at this time that would break the existing
> nightly builds, so those won't be deprecated until I know the
> Docker+Jenkins builds are working well.
>
> ---
> James Paige
>
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20201217/566af9d6/attachment.html>


More information about the Ohrrpgce mailing list