re documentation:
Currently the documentation is fetched from the online wiki for a FB release. IMHO modifications should be allowed to be performed by anybody and in a relatively simple way. Thus the currently solution to request a wiki account on the forums is good, but it could be still made easier for new contributors to the wiki. That is one aspect. At the same time we need to review changes done to the wiki. It depends on how many changes will be done how that could be implemented. Currently it's probably fine to look into the "recent changes" list and revert or correct bad changes to the wiki to keep a high quality documentation. If changes get more maybe a system where changes need to be approved first (before getting active/published) can be installed.
re compiler builds:
speedfixer wrote:I have a computer farm at home. [...]
If the scripts were strong, and the instructions clear, I would be willing to put them to use for FB.
Can the build and package system be scripted well enough for someone like me (moderate skills) to take on the job of handling these tasks?
Can a repository be reviewed and managed such that a set of systems like mine can (relatively quickly) - by script - produce a package on demand for a dev to test?
If I had the hardware resources that you seem to have I'd set up a similar system to that I have currently, but virtualize everything. So I'd e.g. install a Hyper-V server with Windows, Linux and FreeBSD running on it. I'd use Jenkins and install it in a Docker container - probably on the Linux machine. Use additional containers for FreeBasic builds on Linux. You could also use e.g. the windows system directly for builds without using Docker. Note that this setup is just an idea and I couldn't try it; and experts can probably suggest a better setup. The big advantage if you use a machine explicitly for FB is that you can allow developers to have a bit more than read-only access to your Jenkins server e.g. so that they can trigger builds or maybe even adjust build configurations.
To automatize the builds you should be familiar with the build process first, so try to do manual builds first. The process is documented in the wiki.
speedfixer wrote:The work is in getting a change set ready to make a package - and then initial testing. All the sources must be local to think about making changes. Can a script to download a diff be created to make that download reasonable after the initial? Can a script to UPLOAD the new diff be created ship the changes to a CVS repository so proposed changes are available for critique and review?
For St_W's purpose, any change needs to be tested to some degree before he uses it. We don't want a flood of complaints regarding his work.
Typically, there must be a somewhat 'private' compiled set for initial testing. If not too bad, then release a nightly and see if someone can break it.
Currently Travis CI (free) is used to get quick builds and test results. So as soon as a developer pushes changes to his private FreeBasic fork the code is built and basic tests are run (Linux 64-bit only, that is a limitation of Travis). As soon as the changes are merged into the official FreeBasic repository my build server builds multiple configurations (Windows, Linux, FreeBSD, 32/64-bit each, and DOS) and runs the tests (Windows and Linux only currently) and builds a documentation from the online wiki.
For building a package additional build jobs would be needed that implement other tasks needed for a full release. Those jobs could be triggered manually or the continuous builds could be extended to build full packages each time (if the hardware resources are available for doing that). Some steps will probably need new tools to automatize them.
If you plan to set up a Jenkins server or any other suitable build infrastructure I'll try to help you if you want so and when I have some spare time (I can't promise anything before mid of next month).
speedfixer wrote:How long does it take to generate a completely new FB test set? How long does each platform take to compile?
Compilation does take about 4 minutes or less depending on the platform and your hardware. Compiling and executing the tests takes about the same time. Note that these timings will vary: e.g. Linux builds are typically faster (2 minutes) and if you have a modern machine it will probably even take only about one minute or two.