New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide official AppImage builds for Linux #10857

Open
probonopd opened this Issue Aug 23, 2016 · 51 comments

Comments

Projects
None yet
@probonopd
Copy link

probonopd commented Aug 23, 2016

Please provide Visual Studio Code in the AppImage format for Linux. This would allow users to

  • Test Visual Studio Code without having to install it
  • Use Visual Studio Code on machines where they have no root rights
  • Run Visual Studio Code on Linux distributions for which no native package is provided

AppImage is a bundling format for Linux that lets users download one single file, set the executable bit and run the application (here: Visual Studio Code). Unlike other options, AppImage is entirely distribution-agnostic and no special runtime infrastructure is needed on the target system(s). This means that the user can run the application on almost any recent Linux distribution.

It is easy to convert the official deb builds to AppImages using this script.

@joaomoreno

This comment has been minimized.

Copy link
Member

joaomoreno commented Aug 24, 2016

cc @Microsoft/vscode

@probonopd This is incredibly cool. I've just watched your presentation on Youtube and everything resonated with me. I admire the work you're doing there, keep it up!

@Tyriar Given the huge friction we're seeing with auto-updates on the deb and rpm packages and the crazy benefits this would give us in terms of packaging and incremental updates, I'd be willing to push towards making AppImage our default and recommended distribution method for VS Code alongside a preventive ZIP archive. After a proper investigation, of course.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Aug 24, 2016

Thanks @joaomoreno for your kind words; your PowerShell colleagues are currently also reviewing it for PowerShell distribution.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Aug 24, 2016

By the way, I don't know how applicable this is here, but electron-builder has support for building AppImages for Electron applications too.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Aug 24, 2016

Here are some example AppImages of Electron-based apps that you can download and try:

I could upload one of Visual Studio Code but am uncertain whether the license permits it.

@joaomoreno

This comment has been minimized.

Copy link
Member

joaomoreno commented Aug 24, 2016

Go ahead, we are MIT.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Aug 24, 2016

Here is my experimental Visual Studio Code AppImage generated by the script above on Travis CI (build log):

https://bintray.com/probono/AppImages/VSCode#files

To download and run, simply:

VSCODE="VSCode-1.4.0-x86_64.AppImage"
wget -c "https://bintray.com/probono/AppImages/download_file?file_path=$VSCODE" -O "$VSCODE"
chmod a+x "$VSCODE"
./"$VSCODE"

Since the AppImage packaging runs on Travis CI this can be integrated into CI workflows easily. It is expected that some fine-tuning might still be needed, ideally with the help from the upstream team.

Known to run on

  • Chromixium-1.5-amd64.iso
  • debian-live-8.0.0-amd64-xfce-desktop+nonfree.iso
  • debian-live-8.4.0-amd64-gnome-desktop.iso
  • CentOS-7.0-1406-x86_64-GnomeLive.iso
  • CentOS-7-x86_64-LiveGNOME-1511.iso
  • elementary_OS_0.3_freya_amd64.iso
  • Fedora-Live-Workstation-x86_64-22-3.iso
  • Fedora-Live-Workstation-x86_64-23-10.iso
  • kali-linux-2016.1-amd64.iso
  • kubuntu-14.04.4-desktop-amd64.iso
  • kubuntu-15.04-desktop-amd64.iso
  • kubuntu-16.04-desktop-amd64.iso
  • neon-useredition-20160609-0826-amd64.iso
  • SL-72-x86_64-2016-02-03-LiveDVDgnome.iso
  • ubuntu-14.04.1-desktop-amd64.iso
  • ubuntu-16.04-desktop-amd64.iso
  • ubuntu-gnome-16.04-desktop-amd64.iso
  • ubuntu-mate-16.04-desktop-amd64.iso
  • xubuntu-16.04-desktop-amd64.iso

Does not run on very outdated distributions (to make this work, vscode would need to be compiled on an older build system):

  • CentOS-6.7-x86_64-LiveCD.iso
  • ubuntu-12.04.5-desktop-amd64.iso
  • ubuntu-12.10-desktop-amd64.iso
@joaomoreno

This comment has been minimized.

Copy link
Member

joaomoreno commented Aug 24, 2016

It just works, so cool! Thanks for the sample. We will definitely consider this.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Aug 24, 2016

Renamed and added desktop integration (optional installation into the start menu). Download links updated above.

@joaomoreno joaomoreno added this to the Backlog milestone Aug 24, 2016

@probonopd

This comment has been minimized.

Copy link

probonopd commented Aug 27, 2016

@joaomoreno are the binaries at https://vscode-update.azurewebsites.net/latest/linux-deb-x64/stable generated by a Travis CI run, and if so, where is the respective code? I could try to hook in there and send a PR which also builds an AppImage using the binaries generated anyway for the deb.

@joaomoreno

This comment has been minimized.

Copy link
Member

joaomoreno commented Aug 28, 2016

@probonopd They are generated from our internal build. Building and distributing VS Code is not open source, so you'll have to leave picking this up to us for now.

@ghost

This comment has been minimized.

Copy link

ghost commented Sep 15, 2016

Arch Linux user here. There doesn't appear to be a package for my system. Collecting dependencies and compiling is a pain, I'd love to have an appimage. The one linked above seems to no longer exist.

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Sep 15, 2016

@GitRASQ the community has put up an AUR package which we recommend. https://aur.archlinux.org/packages/visual-studio-code/

@fusion809

This comment has been minimized.

Copy link
Contributor

fusion809 commented Nov 1, 2016

I have provided a code-oss Debian package (https://github.com/fusion809/code-oss/releases/tag/debian1.6.1) and built an AppImage from it.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Nov 1, 2016

@fusion809 thanks for your effort but please be aware that only Microsoft can build an official AppImage with the official branding as far as I understand.

@fusion809

This comment has been minimized.

Copy link
Contributor

fusion809 commented Nov 1, 2016

Official branding? What's meant by that? I built an OSS build of code-oss using, the build system that VSCode's official developers put in place. This build is MIT licensed so I can build my own AppImage with it and distribute it, without breaching copyright.

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Nov 1, 2016

I don't think this line for example is allowed since the "Visual Studio" branding can only be used in official builds by Microsoft. That's the main reason for the whole "Code (OSS)" vs "VS Code" thing. Same story with the logo.

@fusion809

This comment has been minimized.

Copy link
Contributor

fusion809 commented Nov 2, 2016

I just use the code-oss repo as a place to upload the Debian package, it's does not contain the sources used to build the Debian package. That's used to build an Arch Linux package.

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Nov 2, 2016

"code-oss" is fine, it's branding it as Visual Studio and using the logo that could potentially be an issue.

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Nov 2, 2016

Some more info on the topic from one of our PMs #60 (comment)

@fusion809

This comment has been minimized.

Copy link
Contributor

fusion809 commented Nov 2, 2016

Well if that's the only problems with my code-oss Debian package I've rebuilt it without any of the MIT license-breakers. Then I built an AppImage and it's working fine. So @probonopd I suspect all is good now and you can provide my AppImage at Bintray.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Dec 19, 2016

@Tyriar any chance you would provide an official AppImage?

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Dec 19, 2016

We'll be getting signed apt/yum repos soon, polishing that experience is the priority on this front for now.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Jan 22, 2017

Would you consider merging a PR if I sent one that would generate an AppImage for each continuous build on Travis CI?

@Moilleadoir

This comment has been minimized.

Copy link

Moilleadoir commented Feb 27, 2017

@Tyriar Thank you. Read somewhere on code.visualstudio.com that it wasn’t supported…of course, I can’t find it now.

Edit: https://code.visualstudio.com/docs/setup/linux

Unfortunately, VS Code does not yet support auto-update on Linux, so you will need to manually install each new release.

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Feb 27, 2017

@probonopd yes. We want to see how the repositories do right now though.

@Moilleadoir yeah it's being included in the upcoming release notes, the documentation will need to be updated before the release.

@karai17

This comment has been minimized.

Copy link

karai17 commented Apr 26, 2017

Any further advancements on this issue? I'd love to see AppImages for more of the tools I use.

@stavpup

This comment has been minimized.

@probonopd

This comment has been minimized.

Copy link

probonopd commented May 20, 2017

Happy to support this project in making an official AppImage. Microsoft is already using AppImage for PowerShell and for the Emulator for the Microsoft Bot Framework btw.

@Serkan-devel

This comment has been minimized.

Copy link

Serkan-devel commented Oct 16, 2017

Any updates on an official appimage?

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Oct 17, 2017

We don't plan on supporting AppImage any time soon. We are investing some effort into snap packages though. See #5458 for updates on that.

@vscodebot

This comment has been minimized.

Copy link

vscodebot bot commented Dec 22, 2017

This issue is being closed to keep the number of issues in our inbox on a manageable level, we are closing issues that have been on the backlog for a long time but have not gained traction: We look at the number of votes the issue has received and the number of duplicate issues filed. If you disagree and feel that this issue is crucial: We are happy to listen and to reconsider.

If you wonder what we are up to, please see our roadmap and issue reporting guidelines.

Thanks for your understanding and happy coding!

@vscodebot vscodebot bot closed this Dec 22, 2017

@Tyriar Tyriar removed this from the Backlog milestone Dec 22, 2017

@probonopd

This comment has been minimized.

Copy link

probonopd commented Dec 22, 2017

@vscodebot owners: Please reconsider!

We look at the number of votes the issue has received

Please look closely:

stars

Providing an AppImage would have, among others, these advantages:

  • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Works out of the box, no installation of runtimes needed
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs
  • Can use the same AppImages when dual-booting multiple distributions
  • Can be listed in the AppImageHub central directory of available AppImages
  • Can double as a self-extracting compressed archive with the --appimage-extract parameter

Here is an overview of projects that are already distributing upstream-provided, official AppImages. Microsoft provides PowerShell as an AppImage, too.

If you have questions, AppImage developers are on #AppImage on irc.freenode.net.

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Dec 27, 2017

@probonopd our team is quite small and I simply cannot manage more than what we are currently doing. I'll reopen as this could happen eventually, but realistically it's not going to be considered for another 12-24 months.

@Tyriar Tyriar reopened this Dec 27, 2017

@Tyriar Tyriar removed the *out-of-scope label Dec 27, 2017

@gengjiawen

This comment has been minimized.

Copy link

gengjiawen commented Apr 1, 2018

With AppImage we can do auto updater like macOS and Windows. Update VS Code for linux now is very cumbersome, even with the PM like apt.

@ghisvail

This comment has been minimized.

Copy link

ghisvail commented Apr 12, 2018

Update VS Code for linux now is very cumbersome, even with the PM like apt.

Do you mean typing apt update && apt upgrade is that difficult? Come on.

It's no secret Microsoft is collaborating with Canonical to provide VSCode for all distros via snap packages. I suppose support for AppImage or Flatpak will be up to their respective communities at this point.

@gengjiawen

This comment has been minimized.

Copy link

gengjiawen commented Apr 12, 2018

If you want to use apt, you have to execute lots of script before sudo apt-get install code. When you update you ubuntu to higher version. Guess what need to be executed again ?

@ghisvail

This comment has been minimized.

Copy link

ghisvail commented Apr 12, 2018

If you want to use apt, you have to execute lots of script before sudo apt-get install code.

The link shows multiple alternatives, each of them are far from being "lots of script". In fact, installing the .deb via your graphical package manager (the recommended option btw) is enough and 1-click away.

I'd argue this process is actually simpler than AppImage which needs an additional chmod a+x step. Don't get me wrong, I get the value of AppImage, snaps and flatpak (I use the latter personally). However, I don't believe spinning the narrative around the amount of "scripting" required for integration with native package manager is gonna get you much sympathy.

@gengjiawen

This comment has been minimized.

Copy link

gengjiawen commented Apr 12, 2018

We clearly have different understanding on easy and time.

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented Apr 12, 2018

@gengjiawen FYI this is what I use to update Insiders daily at the moment which is fairly convenient:

alias up='sudo apt update && sudo apt install code-insiders'

In the morning on a weekday or when I see the update available badge in the gear menu: ctrl+`, up and put in password

@RoyiAvital

This comment has been minimized.

Copy link

RoyiAvital commented May 28, 2018

I would be great to have VS Code in AppImage format.
They have some potential use cases which are not covered by FlatPak & Snap.

Think of working on VS Code from USB on any system with the same configuration and set of extensions (Just utilize the .home and .configure features of AppImage).
This is something can not be done with FlatPak / Snap easily.

@Serkan-devel

This comment has been minimized.

Copy link

Serkan-devel commented May 28, 2018

Has someone commented? Why did I get a notification for this thread?

@Tyriar

This comment has been minimized.

Copy link
Member

Tyriar commented May 29, 2018

@RoyiAvital you can do that with the tarball by launching with --extensions-dir and --user-data-dir set, see #329

@thenktor

This comment has been minimized.

Copy link

thenktor commented Dec 7, 2018

Slackware user here: I'd like to have an AppImage, too. AppImages just work without hassle.

@curtiszimmerman

This comment has been minimized.

Copy link

curtiszimmerman commented Dec 7, 2018

I, too, would really like to see an AppImage specifically. Please reconsider.

@rzr

This comment has been minimized.

Copy link

rzr commented Dec 21, 2018

Maybe not related by docker images could help eventually too
specially if debian is able to rebuild and distribute deb package:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898259

@probonopd

This comment has been minimized.

Copy link

probonopd commented Dec 22, 2018

https://flathub.org/apps/details/com.visualstudio.code has it, as does https://snapcraft.io/vscode, with full branding and everything. So I assume we are allowed to do the same in AppImage format?

This is the proprietary Microsoft build of Visual Studio Code, packaged into a Flatpak. This repackaging is not supported by Microsoft.

Source: https://flathub.org/apps/details/com.visualstudio.code

This snap is maintained by the Snapcrafters community, and is not necessarily endorsed or officially maintained by the upstream developers.

Source: https://snapcraft.io/vscode

With AppImage, the VSCode team has the opportunity to distribute the application in exactly the form they like, with full control from the building to the downloading phase.

@probonopd

This comment has been minimized.

Copy link

probonopd commented Dec 22, 2018

What would be needed for the team to reconsider providing an official AppImage build? @Tyriar

vscode

In the meantime, you can easily make your own using this recipe like this on a Debian/Ubuntu system:

wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
bash -ex pkg2appimage VSCode

(Debian/Ubuntu system is needed for the conversion from deb to AppImage because the tooling uses apt and dpkg, but the resulting AppImage should be able to run on other systems, too.)

Here is the recipe:
https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment