New VS Code extension pre-release

We have a new way of distributing pre-release versions of the Julia VS Code extension. We now publish a second extension, called Julia Insider in the marketplace. This second extension will auto-update frequently with new pre-release versions of the extension. You can think of this version as our release candidate channel.

If you want to help us increase the quality of the extension and get the next normal version out the door, please install this new Julia Insider version and send crash reports when things go wrong!

One important caveat: you have to manually uninstall the regular extension befor you install the insider version. If you have both versions of the extension installed at the same time they get in each other’s way.

We plan to publish release candidate quality versions to this insider channel only for now. We might revisit that policy at some point in the future, but for now that is how we will run this insider channel. Once we release a new version to the regular release channel, that version will also go to the insider channel, until we have a new release candidate quality build of the next version. All in all I hope that being on the insider channel will be a fairly smooth experience.

28 Likes

One more important detail about this new way of distributing pre-release versions: our general versioning strategy for the extension is different now. We used to release versions with alpha, beta and rc qualifiers. We will no longer do that. Instead, the new scheme is that we treat the last (patch) part of the version number like a build number. The whole concept of a prerelease version is no longer, instead we will now release some builds to the insider channel, and some to the release channel, depending on when we think they are ready for different audiences.

For example, right now we are shipping version 0.14.9 to the insider channel. Once we have a build 0.14.x that has shipped in the insider channel for 24 hours without major crash reports, we will put that exact same build into the release channel, i.e. that build will then be distributed automatically to all users of the extension. As we fix bugs in the 0.14 series, we will produce more builds (with higher and higher patch version numbers), and whenever we have a specific build that we think is stable, we will send that build to the release channel as well.

We also produce builds in the 0.15 series currently, but they are not even in the insider channel because they are not ready for systematic testing at this point. You can download those builds from the github release page.

In practice this means that you will see builds like 0.14.9 in the insider channel right now, even though we technically haven’t released 0.14 yet. What that really means is that we haven’t yet created a build in the 0.14 series that we have put into the release channel.

We will still increase the minor version whenever we add new features, and I’ll continue to announce those versions here.

4 Likes

Nice, an insiders version of the extension seems like a good improvement. The two extensions clashing is a bit unfortunate. The Python extension offers you to switch channels between default, weekly and daily, in the same extension. I don’t know if this is more difficult to implement or has other downsides though.

Yes, having it all in one extension is much more complicated… Really VS Code should add support for this, instead of letting every extension come up with its own hack.

Do you have any plans for how releases of the underlying Julia packages fit into this new scheme? (LanguageServer.jl, CSTParser.jl, etc.)

Good question… I think maybe tag a set of releases whenever we release something to the release channel?

1 Like

One issue with this approach is that the release version can’t be disabled as other extensions depend on it (like Markdown Julia in my case).

1 Like