Sunday, 28 April 2013

6.0.3 UI Load mark reached

Yay! As of 80c6589fec, the 6.0.3 UI is now loading. Let's hit the highlights:

  • Application Initialization: CacheHelperApplicationEventListener and HttpContext.Current are initialised twice during start up and this breaks initialisation. I wrote some workaround code for now. I think there may be some mono differences during application start up or some threading issues. This will need a closer look. However, at first look the app startup code does look possibly too heavy.

  • This setting breaks mysql server initialisation in Linux:
    lower_case_file_system=1

    The setting does not work in linux / unix as it is 'read only' (here). So I have also disabled this check if we hit a linux / unix platform set-up. We could have kept the check, but this would automatically disable Umbraco mysql install on the majority of Linux systems, which by default have a case sensitive file system set-up. Oh, and adding the setting to the my.cnf file in arch linux causes the mysql daemon start up to fail. So, adding it to the mysql config file may break your server.


That's it for now.

Sunday, 21 April 2013

6.0.3 - Started

Finally time for a progress report on 6.0.3 - I have finally started on this and there is now a git branch called 'u6.0.3'. With this change set (1cd0904b19), version 6.0.3 compiles in Monodevelop 4. The overall changes were minimal. However, some preliminaries are required.

Here are the preliminaries:

  • Monodevelop: As of today, you will need git rev cfb8e3bc5d or c1cecf5931. Avoid rev b916eecb8c, as this rev does not compile cleanly. We need these changes so that references are updated correctly in the .csproj files.

  • Nuget package restore. There is a tool available for this in:
    $ tools/mono/RestoreNugetPackages.sh

    This is a blunt tool and restores all packages, including Microsoft.Web.Infrastructure, which we actually do not want, as we will be using Mono's corresponding dll. So project references need to re-adjusted afterwords.

  • The shell script above uses a small custom build task. I was only able to write this as a C# assembly. I could not write it as an inline build task, as xbuild was throwing errors. The build task itself fixes another xbuild bug, namely incorrect handling of the ';' and '\' character. The former is always interpreted in the unix context, and the latter is always converted to '/'. Related info here.

  • Finally, as Mono does not yet fully support native MVC 4, I have switched to using the stock ASP.NET stack that we get from NuGet. We will see what kind of mileage we will get from these.