Microsoft Visual Studio Code (VS Code) has dropped support for Ubuntu 18.04 LTS — a move causing issues for thousands of developers.

VS Code 1.86 (aka the ‘January 2024’ update) sees Microsoft bump the minimum build requirements for the text editor’s popular remote dev tools to ≥glibc 2.28.

But given that servers, clouds, and containers running on Ubuntu 18.04 LTS use glibc 2.27, it means they no longer work.

Microsoft has posted an update: “We have discussed this more in the VS Code team and we have decided to allow VS Code to connect to an OS that is not supported by VS Code (no support for glibc >= 2.28) for 12 more months.”

Although Ubuntu 18.04 is supported by Canonical until 2028 (through ESM) a major glibc upgrade is unlikely, meaning this “breaking change” is truly breaking workflows.

To be clear: this does not only affect people who use VS Code on Ubuntu 18.04, but those who use VS Code on newer versions of Ubuntu (or Windows and macOS) too: the latest version of VS Code simple does not let them to connect to machines that run Ubuntu 18.04.

As one developer explains:

“Yeah this has completely screwed me. I have a number of older servers and I can’t get into any of them now. The only way is for me to downgrade and never update VS Code. Doesn’t seem like a good solution.”

~thekendog 

I’m neither a developer nor someone super-familiar with VS Code’s release cadence, and Microsoft is entitled to (as are devs of any shape and size) to stop supporting any OS they want, whenever they want — it happens all the time.

But this seems a blunt decision.

VS Code isn’t a music player or a GTK theme. It’s an integral tool that millions of developers, engineers, students, and researchers rely on. Sunsetting support for using that editor to work with actively supported Linux distros should be done carefully and with ample warning.

Which this simply wasn’t.

Indeed, developers say they were caught entirely off-guard by this damaging deprecation. It was not signposted before, during, or after the VS Code update (which, even if were, is installed automatically for most).

Indeed, most only discovered this issue after update was installed, they tried to connect to a server, cloud, container running Ubuntu 18.04 LTS and …it failed. Troubleshooting will reveal an error message mentioning the change and linking to an FAQ with workarounds (i.e. downgrade).

But finding that messages requires pouring through logs filled with other messages — not exactly “in your face”.

As one developer politely put it:

“An update like this, which is “major” IMHO, should have a security mechanism involved. It could have checked the libc versions and refused the update. Now, many people are screwed in the middle of their work. A lot of room for improvement here…”

~juxeii 

Too right — but there are workarounds.

Two workarounds (for those who want to continue using VS Code; other text editors and remote dev tools are available) are:

  • Upgrade machines to Ubuntu 20.04 LTS
  • Downgrade to VS Code 1.85

An upgrade is recommended but is “hassle”, especially for a development environment setup, configured, and running well. Also, many employees, students, and researchers have no say or sway over what the infrastructure they interface with runs.

Downgrading to VS Code 1.85, which becomes the last “good” version for working with Ubuntu 18.04, is relatively easy, but developers will need to disable updates to stop the app from re-downloading the newer build.

Effectively trapping developers on an old version of VS Code, seeing them lose out on bug and security fixes and new features.

“Just upgrade, Already!”

“Well, just upgrade to a newer version of Ubuntu!” is the easy suggestion, and for hobbyist developers/users, that’s not a bad idea: Ubuntu 18.04 LTS is pretty old and upgrading to a more recent LTS has plenty of benefits.

But that’s not going to help the majority of developers who are affected by this change.

Thousands of students, developers, engineers, and researchers, etc work with servers, clouds, and containers they do not control. Amazon says it is ‘very concerned about the impact’ of this change as it will affect customers working with Amazon Linux 2 EC2 machines.

There’s no simple solution — Microsoft can’t support everything forever — but given that Ubuntu 18.04 LTS (as well as RHEL 7, also affected) is not EOL yet it seems spurious to push out an update with a major breaking change and not warn users about it first.

h/t Jesse