Skip to content
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

dist: drop .deb #22684

Closed
clason opened this issue Mar 16, 2023 · 21 comments
Closed

dist: drop .deb #22684

clason opened this issue Mar 16, 2023 · 21 comments
Labels
breaking-change ci automation for build, test, and release distribution packaging and distributing Nvim to users enhancement feature request
Milestone

Comments

@clason
Copy link
Member

clason commented Mar 16, 2023

Problem

Linux releases come in too many flavors: appimage, tar.gz archive, deb package. This is confusing and a waste of resources.

Expected behavior

Only provide a single release format: appimage, which is the "blessed" format that Just Works™️ but can also be extracted locally.

As tar.gz is used by many downstream projects for their CI, we should leave it for now but make clear that it's only provided for that purpose and that end users are strongly encouraged to use the appimage. Also push downstream to switch to appimages instead so we can remove that for 0.10.

Plan

  1. Drop the .deb for the 0.9 release
  2. Drop the .tar release for nightlies sometime during 0.10

This means that

  • 0.9 will only release as .appimage and .tar
  • 0.10 will release only as .appimage
  • nightlies will drop .deb after 0.9, and .tar some time after that (with a longer announcement period).
@clason clason added enhancement feature request distribution packaging and distributing Nvim to users ci automation for build, test, and release labels Mar 16, 2023
@clason clason added this to the 0.9 milestone Mar 16, 2023
@dundargoc
Copy link
Member

I like @glacambre 's suggestion: rename the deb and tar files to nvim-linux64-deprecated.<extension> and give it x amounts of time before yeeting it.

@clason
Copy link
Member Author

clason commented Mar 16, 2023

Well, even renaming will instantly break CI, so it's not really a deprecation. And if you manually need to change things, you might as well change them properly. This only encourages bandaid fixes and later complaints.

@glacambre
Copy link
Member

if you manually need to change things, you might as well change them properly

You might not have time to change them properly the minute you discover something is breaking though. Renaming the tar is the quick and easy fix you do until you have the time to implement a proper solution.

@clason
Copy link
Member Author

clason commented Mar 16, 2023

The idea would be to provide a snippet you can paste into your action in replacement of tar -zxf nvim-linux64.tar.gz... (And nobody should be using the .deb.)

To be clear, I'm talking here only of dropping the .deb, for now -- the tar.gz will stay at least until 0.10 to allow people to switch over. If there's extensive use of the .deb in downstream CI, I'd be interested in learning about that.

@clason
Copy link
Member Author

clason commented Mar 16, 2023

@justinmk
Copy link
Member

Example of .deb not interacting correctly with apt-installed Nvim: #22731

@clason
Copy link
Member Author

clason commented Mar 19, 2023

Courtesy of @folke, here's how you can extract the appimage in GHA if you want to have nvim "installed" (i.e., on your $PATH):

      - name: Install Neovim
        shell: bash
        run: |
          mkdir -p /tmp/nvim
          wget -q https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage -O /tmp/nvim/nvim.appimage
          cd /tmp/nvim
          chmod a+x ./nvim.appimage
          ./nvim.appimage --appimage-extract
          echo "/tmp/nvim/squashfs-root/usr/bin/" >> $GITHUB_PATH

dundargoc added a commit to dundargoc/neovim that referenced this issue Mar 24, 2023
Having multiple release artifacts per platform is a maintenance burden.
Furthermore, it is a maintenance burden that doesn't directly improve
the Nvim editor itself. The releases are meant to be a quick way for
users to try out and use neovim on their platform and was never intended
to be a buffet of releases for every conceivable setup.

Users are encouraged to the following replacements:

- Github action `action-setup-vim` to have neovim installed on their
  PATH for their CI jobs. See https://github.com/rhysd/action-setup-vim.
- Use the appimage, either as is or by extracting it
  - To use as is, run `chmod u+x nvim.appimage && ./nvim.appimage`
  - If your system does not have FUSE you can extract the appimage with
    `./nvim.appimage --appimage-extract && ./squashfs-root/usr/bin/nvim`
- Build it manually. See https://github.com/neovim/neovim/wiki/Building-Neovim.

Work on neovim#22684
@to-json

This comment was marked as resolved.

@clason

This comment was marked as resolved.

@to-json

This comment was marked as resolved.

@dundargoc
Copy link
Member

dundargoc commented Mar 27, 2023

Example of .deb not interacting correctly with apt-installed Nvim: #22731

Another one: #21261

clason pushed a commit that referenced this issue Apr 5, 2023
Having multiple release artifacts per platform is a maintenance burden.
Furthermore, it is a maintenance burden that doesn't directly improve
the Nvim editor itself. The releases are meant to be a quick way for
users to try out and use neovim on their platform and was never intended
to be a buffet of releases for every conceivable setup.

Users are encouraged to the following replacements:

- Github action `action-setup-vim` to have neovim installed on their
  PATH for their CI jobs. See https://github.com/rhysd/action-setup-vim.
- Use the appimage, either as is or by extracting it
  - To use as is, run `chmod u+x nvim.appimage && ./nvim.appimage`
  - If your system does not have FUSE you can extract the appimage with
    `./nvim.appimage --appimage-extract && ./squashfs-root/usr/bin/nvim`
- Build it manually. See https://github.com/neovim/neovim/wiki/Building-Neovim.

Work on #22684
@zeertzjq zeertzjq removed this from the 0.9 milestone Apr 7, 2023
@clason clason added this to the 0.10 milestone Apr 7, 2023
anasrar added a commit to anasrar/nvim-treesitter-parser-bin that referenced this issue Apr 7, 2023
@rockneverdies55

This comment was marked as resolved.

@clason

This comment was marked as resolved.

theHamsta pushed a commit to theHamsta/neovim that referenced this issue Apr 7, 2023
Having multiple release artifacts per platform is a maintenance burden.
Furthermore, it is a maintenance burden that doesn't directly improve
the Nvim editor itself. The releases are meant to be a quick way for
users to try out and use neovim on their platform and was never intended
to be a buffet of releases for every conceivable setup.

Users are encouraged to the following replacements:

- Github action `action-setup-vim` to have neovim installed on their
  PATH for their CI jobs. See https://github.com/rhysd/action-setup-vim.
- Use the appimage, either as is or by extracting it
  - To use as is, run `chmod u+x nvim.appimage && ./nvim.appimage`
  - If your system does not have FUSE you can extract the appimage with
    `./nvim.appimage --appimage-extract && ./squashfs-root/usr/bin/nvim`
- Build it manually. See https://github.com/neovim/neovim/wiki/Building-Neovim.

Work on neovim#22684
@opdecirkel

This comment was marked as duplicate.

@clason
Copy link
Member Author

clason commented Apr 14, 2023

@dundargoc note to us: we should replace rhysd/action-setup-vim in our scripts (api-docs, lintcommit) with manually installing our own appimage. More robust, more control, and no point in requiring an external script for installing our own app.

@glacambre
Copy link
Member

@clason

More robust

In my experience, rhysd/action-setup-vim has been much more robust than any other installation method thanks to its ability to fall back to building Neovim when a nightly/release build is not available (due to e.g. Github problems or build issues that existed when the neovim nightlies are built but were fixed during the day).

Can't argue about the other points though :).

@dundargoc dundargoc removed their assignment Apr 16, 2023
@cizordj

This comment was marked as resolved.

@to-json

This comment was marked as resolved.

@clason
Copy link
Member Author

clason commented Apr 18, 2023

Since the .deb package has been removed, are we all supposed to use appimage instead?

Yes, that is exactly the idea. It's self-contained and runs on the widest possible selection of platforms (not tied to a specific distro).

I know it's a dumb question but still... I used to use this repo to get the latest neovim for debian because of its debian package.

But Debian packages are the Debian maintainers' job; the Neovim project is not in the business of maintaining distro packages. (The .deb was never deliberately added; it kinda snuck in as part of a packaging infrastructure improvement to show that it's possible.)

@folke
Copy link
Member

folke commented Apr 18, 2023

A great alternative to using the appimage is to use bob instead. With bob it's very easy to always use the latest nightly and you can even use different Neovim versions next to each other.

@neovim neovim locked as resolved and limited conversation to collaborators Apr 21, 2023
@dundargoc dundargoc reopened this Apr 21, 2023
@clason
Copy link
Member Author

clason commented Apr 23, 2023

Resolution

The .tar.gz is now created as part of the appimage workflow (hence no longer a separate release), so it will continue to be supported. (Thanks, @dundargoc!)

The .deb will not come back, as distro-specific packaging formats are the responsibility of distribution maintainers.

@clason clason closed this as completed Apr 23, 2023
@zeertzjq zeertzjq changed the title dist: drop .deb, deprecate .tar.gz dist: drop .deb Apr 23, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking-change ci automation for build, test, and release distribution packaging and distributing Nvim to users enhancement feature request
Projects
Development

No branches or pull requests

10 participants