Mostly we code...sometimes we write. Every once in a while, we podcast.

Pouring New Life into Mono: WineHQ Steps Up as the Primary Maintainer

WineHQ has officially taken over hosting and maintenance of the Mono Project, previously hosted at https://github.com/mono/mono/. Its new home is https://gitlab.winehq.org/mono/mono, where I am acting as its primary maintainer.

Wine's relationship with the Mono project began in 2012 as a downstream, with the release of the Wine Mono addon package used to run .NET Framework applications designed for Windows: https://www.winehq.org/news/2012052501

In the 12 years since, I've continued as maintainer of this downstream version of Mono, while in recent years the upstream project's developers have shifted their focus to the modern version of .NET, which is now cross-platform. Most of Mono's users have also moved to .NET, but there are some use cases not covered. Most notably, System.Windows.Forms for Linux is only supported in Mono, and it's not possible to create cross-platform executables with .NET, the way it had been possible with .NET Framework and Mono.

The Mono project is important to Wine and to me personally, and I wanted to make sure that Wine Mono would have a healthy upstream, so in February, after some prodding from the community, I started on a fork of the main branch of Mono. Unlike Wine Mono, this version retains Mono's original goal of being a cross-platform runtime compatible with .NET Framework. I am grateful to the Wine project and CodeWeavers for providing the infrastructure and support that make this possible.

Later, when Jeff Schwartz, engineering manager for the .NET Runtime, approached me and we explored the possibility of Wine officially continuing the project, I was initially reluctant. But when I considered that I was already maintaining a cross-platform fork that was accepting contributions from the community and working on CI and other infrastructure to support it, I realized that there was very little difference from what I was already doing. CodeWeavers management reiterated their support, and Alexandre Julliard encouraged me to regard it as an opportunity for growth. So, with supports in place, my previous experience as Wine Mono maintainer, and my own emotional connection to the Mono project, I decided to step into the maintainer role. (And then, from what I understand, Jeff did a bunch of behind the scenes wrangling in the following months to make it happen, which I am also grateful for.)

If you have Pull Requests or Issue reports on GitHub, please refile them on the WineHQ GitLab (https://gitlab.winehq.org/mono/mono) or WineHQ Bugzilla (https://bugs.winehq.org/) respectively.

My own focus in the near future will be on tooling and processes, and once those are in place I'll start working on a release. So far, there's been a fix for a build failure and some major bug fixes for System.Windows.Forms on Linux, which will be good to get out into the world. I intend to keep Mono working on macOS/Linux/Windows for the x86 and amd64 architectures. If your use case for Mono isn't covered by that list, please reach out. I may need some help with it, but I want to keep everything working as long as it's needed.

Other than that, my only plan is to support the community of developers and users to the best of my ability. I know that most of the community has moved on, and (barring some unexpected but welcome burst of development energy) we'll likely be in bugfix mode from now on, but at least I will make sure the project is still here, working, and accepting contributions.

The following comments are owned by whoever posted them. We are not responsible for them in any way.

New Comment

Congratulations on your new position, Esme. I wish you lots of fun, luck, and fortitude with your new responsibilities.

I have one question: You wrote: "I intend to keep Mono working on macOS/Linux/Windows for the x86 and amd64 architectures." What does that actually mean for macOS? I ask because x86 macs are long gone, and amd64 macs are a vanishing breed, as most mac are now on armv8.

CodeWeavers or its third-party tools process personal data (e.g. browsing data or IP addresses) and use cookies or other identifiers, which are necessary for its functioning and required to achieve the purposes illustrated in our Privacy Policy. You accept the use of cookies or other identifiers by clicking the Acknowledge button.
Please Wait...
eyJjb3VudHJ5IjoiVVMiLCJsYW5nIjoiZW4iLCJjYXJ0IjowLCJ0enMiOi01LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNzI1OTE2ODI4LCJjc3JmX3Rva2VuIjoiVUVWRTZQZG5GTWVQVWVFWSIsImdkcHIiOjB9