[fpc-pascal] no fpc.exe file after installation

Marco van de Voort marcov at stack.nl
Wed Oct 11 16:06:04 CEST 2017


In our previous episode, Graeme Geldenhuys said:
> > The order of things is roughly
>  > ....snip...
> 
> Wow, that sounds very labour intensive.
> 
> The Joel Test: 12 Steps to better code
> https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/

He confuses release and build. My above bit is a release, the build is the
single makepack script. And like any platitude, hopelessly oversimplified.

> Take note of Step 2. ;-)
> 
> I take it your FreeBSD steps are not automated at all.

Well, there is makepack that does the entire release build and a separate
script that does the whole checkout. Only a few manual steps inbetween

Note that the branch preparing is something that only I do (and in case of
3.0.0, Joost did), the platform maintainers only check out the branch or
use the zips.

>  Any reason why? 

Low yield, so relatively often additional manual fixes and a restart are
needed. So the number of times that it runs uninterrupted is limited.

If issues bug you too much, you spend time fixing a few, but usually it is
just simpler to first add them to the release recipe and see if they become
a staple (A simple recipe seems to be a concept that Joel apparently doesn't
(ac)know(ledge) at all) Also 2 hours sounds much, but most is waiting while
I just work on the rest of the machine.

I assume in the branching step, one could create a program that
scans a list of files for tags, and does many of the manual version updates
automatically. A new file then only has to be tagged and added to the list.
But this is stuff that takes 5 minutes per rc/release, and often that is
done in a train or some moment at work that I'm waiting on things. Or at
home watching TV :_0

Similarly the ident patching. That used to be automated and then the LLVM
migration confused it. Finding a way to do that for LLVM freebsd versions
would improve that somewhat (see rtl/freebsd/i386/identpatch.sh for the gcc
version) 

> To much effort because releases are only once per year, or have you 
> tried but couldn't get it fully working?  Just curious - not criticising.

Low yield, nobody testing the release process inbetween. Twice an year, the
process is also for RCs.

Also I don't have any permanent machinery with VMs running and logging in or
executing remotely, and instrumenting the VMs from a central spot would be
yet again more complicated automation.

> In a previous company I worked for, I had four A4 pages of steps to 
> follow to make builds and release ISO's. It took me almost the whole 
> day. To make matters worse, we had releases every 3-4 months. Eventually 
> I got irritated enough and managed to automate the whole process using 
> scripts and clever custom-written tools. The effort was well worth it in 
> the end (though challenging), and now anybody could create builds and 
> release ISO's with a push of a button.

It is always a balance. I also see people investing huge amounts of time in such
things they never will earn back.  Worse they often introduce tools (e.g. 
scripting languages) that are personal preference but a nightmare for any
person taking over (being new employment or sickness/holiday)

The thing to avoid is areas that people consider "no touch". Either because
the lists are unwieldy, but also because the automation is overly complex.

And that is another thing in a project as FPC, the common skillsets outside
FPC are not a given. E.g. I have no "common" web skills (no js,php,json or
whatever), despite having had two fulltime webdeveloper jobs (since both
were Delphi systems), and no unix scripting beyond the most basic shell
script( and I like to keep it that way)
 
> > Currently For FreeBSD I have 4 virtual box VMs (10+11 x86 + x86_64), for each:
> 
> A bit off topic... Do you use FreeBSD 11 for anything other than the 
> build VM's?

I switched to Fedora a few years back because of issues with a laptop and
later to Ubuntu because of the LTS support.  I only use linux for FPC
purposes (and even then rarely), and we have a simple
postgres/samba/svn/openvpn server at work.  I haven't really used *nix as a
day-to-day OS since I left the uni(2003, I worked there for a while after
the education)

While I still have my old FreeBSD shell accounts that were the reason for
the original freebsd ports, I barely do anything on them other than
mail+news.



More information about the fpc-pascal mailing list