[Ohrrpgce] Plans for moving the nightly builds

Ralph Versteegen teeemcee at gmail.com
Thu Dec 17 19:18:53 PST 2020


On Fri, 18 Dec 2020 at 15:00, James Paige <Bob at hamsterrepublic.com> wrote:

> I'm glad to know me is easy to use. Hopefully I'll have time to try it
> this weekend.
>
> I don't know yet how long it will take to get the docket stuff working
> well, so we might still want to switch from rcedit to ResourceHacker
>

I was going to write "Well actually you don't need to set up Docker to be
able to compile releases with mxe, you just need..." but then I realised
that the point is that you do all the set up inside Docker, otherwise
you're duplicating effort setting it up outside Docker.

The instructions at https://rpg.hamsterrepublic.com/ohrrpgce/Cross-compiling
are complete; the only other thing to mention is that adding
TARGET=i686-w64-mingw32.static to SCONS_ARGS in distrib-win-setup.sh will
make distrib-win.bat and distrib-nightly-win.bat do a cross-compile.
SConscript will automatically invoke wine as needed to produce .pdb files.
I guess having to add wine to the Docker image just for official builds is
a nuisance.


>
> ---
> James Paige
>
> On Wed., Dec. 16, 2020, 7:51 p.m. Ralph Versteegen, <teeemcee at gmail.com>
> wrote:
>
>> 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
>>>
>> _______________________________________________
>> Ohrrpgce mailing list
>> ohrrpgce at lists.motherhamster.org
>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>
> _______________________________________________
> 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/20201218/793e245a/attachment-0001.html>


More information about the Ohrrpgce mailing list