[Ohrrpgce] Plans for moving the nightly builds

James Paige Bob at hamsterrepublic.com
Fri Dec 18 03:30:09 PST 2020


Oh yeah, I forgot to reply to the second part of this. Yes, we definitely
need to re-write the README and remove all the "crappy code" stuff. The
code has improved greatly, and making it perfect was never a goal.

---
James Paige

On Thu., Dec. 17, 2020, 10:19 p.m. Ralph Versteegen, <teeemcee at gmail.com>
wrote:

>
>
> 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
>>
> _______________________________________________
> 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/d3691bda/attachment-0001.html>


More information about the Ohrrpgce mailing list