Hi everyone. First time posting on a mailing list. I apologize if I somehow
screw this up and people end up getting spammed. :P

I've been spending some time with the .NET runtime lately, and I was
informed in a GitHub issue discussion that we decided to skip the .NET 5.0
release and wait for the next LTS version of .NET, which is .NET 6.0. Shawn
Black helpfully linked me to the mailing list archives which helped me get
up to speed with what was discussed officially before.

I'd like to suggest we actually change direction and publish runtimes for
each .NET release, including their "current" (non-LTS releases). I have a
few reasons for this:

Many developers are okay taking on the risk of deploying applications using
non-LTS software. Devs who have less to manage and are able to quickly
update their apps fit into this category. Microsoft's own blog post
explaining their new versioning scheme even mentions that:

"If you’re building a service and expect to continue updating it on a
regular basis, then a .NET Core "Current" release like .NET 5.0 may be your
best option to stay up to date with the latest features .NET Core has to
offer." (
https://devblogs.microsoft.com/dotnet/net-core-releases-and-support/)

I think OpenWhisk users creating user functions fit into this category.
They have control over the software they're creating and "expect to
continue updating it on a regular basis."

There's also a situation where a developer likes to use LTS software in
production, but finds it challenging to migrate software two major versions
at a time. I fit into this category. I have a real world example at work
where we had to upgrade through multiple major versions of Elasticsearch at
a time. We found it more approachable to upgrade one major version at a
time, ensuring the software was running stable in production for each major
version update. It's probably the case that making an OpenWhisk user
function is a lot less complex than running Elasticsearch, but I think this
philosophy still stands. If each .NET version had a runtime for OpenWhisk,
users could upgrade one version at a time if that works better for them.

To play devil's advocate, I was thinking about how this might affect
OpenWhisk operators, like IBM Cloud. They'd have an awkward situation where
they'd either:

- Introduce a new runtime for a platform and then pull it out of service
(because it would have reached EOL) before publishing the next version of
the platform, or
- Publish all runtimes for the platform, and warn users as strongly as they
could that the non-LTS runtimes for the platform may be EOL despite being
available to use, and should only be used for development and testing
purposes (like my example with upgrading major versions one at a time).

But I don't think that's even a big deal because what we're talking about
here is what's available to all OpenWhisk operators and users. Operators
can choose to not support non-LTS runtimes if that works better for them.

I'm curious to hear everyone's thoughts on this. If time is an issue, I
should mention that I already have a POC of a .NET 5 runtime working. I
tested it on IBM Cloud as a Docker runtime. I can lend my time to polishing
it up for release and helping with the release process if someone is
willing to show me the ropes. :)

Thanks,
Matt

Reply via email to