04 February 2020
My name is Daniel Lacasse, and I’m the world’s most experience build engineer in native (C/C++/Assembly) with Gradle. I started my interest in Gradle for native long before I joined Gradle inc. It was in May of 2012 when I was researching how to replace a massive native frankenbuild system in a previous job. In January 2013, I prepared a proof-of-concept (POC) as part of an internal workshop supporting the idea of using Gradle to build our native monolith. The catch? Gradle didn’t have any of the native features we needed. Despite this shortcoming, it was accepted unanimously as the step forward to alleviate our pain. Yeah, my POC was that impressive! It was the start of my long journey in becoming a world-class Gradle engineer advocating for native support.
Following the success of my POC, I wrote and directed the statement of work that became the native support introduced in the Gradle 1.x releases (see the release notes for 1.7, 1.8, 1.9, 1.10, 1.11, and 1.12). The final result was presented at the Gradle Summit 2014. It was also the beginning of what is known today as the software model. Spoiler alert, the software model is phasing out. I extended the core native plugins in incredible ways adding support for remote testing, artifact publication, artifact promotion, unattended provisioning of the Windows SDK, Protocol Buffers, Doxygen, and many more supporting technologies for native. The massive success I got out of Gradle was just the tip of the potential iceberg Gradle had to offer. In 2016, I joined Gradle inc. to help improve the native support. Shortly after, I was the bearer of bad news for the Gradle community announcing the phase-out of the software model. I felt personally responsible for the disruption this news brought to the build engineers that, just like me, were praising and centralizing their development around it. I transitioned to the C++ and Swift revival of the core native support development. The approach and feature set were extremely promising (see here, here and here). Unfortunately, the effort was short-lived.
Nokee is a blank slate, a fresh start, lessons learned from mistakes and, most importantly, a path forward to bring a grand vision to reality. It is, first and foremost, a continuous effort for native support in Gradle where I will dedicate the majority of my time nurturing the native ecosystem of Gradle. Second, it will be a set of high-quality Gradle plugins to enhance and work in tandem with the core native plugins. Fear not, the plugins will be compatible with the Gradle core plugins, and a clear migration path will be communicated where needed. The focus will be around improving the shortcoming of the current core plugins.
You may be as excited as me and wonder how you can help. You can provide feedback by commenting on posts like this one, send an email to email@example.com, tag your native questions on the Gradle user forum and join the discussion in the #native channel over on the Gradle Community Slack.