APSIMInitiative / APSIM710

APSIM
https://www.apsim.info
32 stars 48 forks source link

Is APSIMClassic worth updating? #2208

Open zur003 opened 1 year ago

zur003 commented 1 year ago

Is there any future for APSIM Classic? I ask because I recently tried doing "fresh" builds on both WIndows and Ubuntu Linux, and had some issues with both. On Windows, as I indicated in issue #2205, the build script looks for the Visual Studio 2017 toolset. Although it can be readily modified to use VS 2022, the newer toolset requires upgrading the TargetFrameworkVersion from v 4.5 to v 4.8. On Ubuntu Linux (version 22.04, with version 11.3.0 of the gnu compilers), the build failed with a couple of C++ errors. Specifically, in several places the header "limits.h" is included. Apparently that header is now to be used for "C" programs rather than "C++", having been replaced the latter language with and . Also in RLink's REmbed,.cpp, a "taking address of rvalue" error occurs.

In short, it's becoming increasingly difficult to build APSIM Classic with current generation toolsets (not to mention its dependency on Mono rather than dotnet). Should we attempt to "modernise" at all, or should Classic simple be "frozen", with no further changes to the codebase?

her123 commented 1 year ago

With a legacy product like this it makes sense to keep a build environment using the latest feasible toolset so that any fatal flaws can be fixed and not allow any feature changes. A build environment configured in a VM can be maintained for considerable time. For a Linux VM it could be made available for anyone to use on request. This VM could be used for building and/or running APSIM. Isn't the Linux build set up in a Docker image already?

peter-devoil commented 1 year ago

For some time now, the runtime environment on linux has been limited to mono ~4.8; these build errors are more evidence that we should determine which fossil suite is needed to build it, and leave it there.

Sooner or later, the windows installers will break; in the past we've resorted to sending zipped up installations for such archaeological work.

hol353 commented 1 year ago

Should we attempt to "modernise" at all, or should Classic simple be "frozen", with no further changes to the codebase?

No we shouldn't attempt to modernise Classic. Jenkins uses a windows docker container that allows us to build it. This works reliably. I use it on my PC as well from time to time. Yes, on linux it uses mono which isn't ideal but we're not changing it.

Next Gen has to be the priority when we have limited resources.