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

Fix AppImage support and Dockerfile for testing #1941

Merged
merged 2 commits into from Jul 30, 2023

Conversation

fredizzimo
Copy link
Member

What kind of change does this PR introduce?

The appimage is now built with the oldest available Ubuntu release 20.04, for maximum compatibility. We could go even older than that, but the Github CI does not support it.

Furthermore, we use --locked for building to ensure that the dependencies are correct.

A .zsync file is added to support auto-updates with for example https://github.com/TheAssassin/AppImageLauncher

Note in order to be able to upload to the appimage hub we need to package this https://www.freedesktop.org/software/appstream/docs/chap-Quickstart.html#sect-Quickstart-DesktopApps, built with the creator https://www.freedesktop.org/software/appstream/metainfocreator/#/guiapp. I have not done that, since we need some nice screenshots and other information. Could someone do that, and I will apply it here?

Then this file also needs to be packaged with the AppImage.

I have tested this with Ubuntu 20.04, 22.04 and 23.04 and Fedora 35, and it works correctly in all of those, which are a mix of Wayland and X11.

In the folder ubuntu-builder I have added a Dockerfile and some scripts to build with podman usermode using ubuntu 20.04, in order to be able to simulate the CI environment locally.

Finally, I have not updated neovide.desktop (specification)

[Desktop Entry]
Type=Application
Exec=neovide %F
Icon=neovide
Name=Neovide (nvim)
Keywords=Text;Editor;
Categories=Utility;TextEditor;
Comment=No Nonsense Neovim Client in Rust
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;

But I think it should be updated with the following changes

  1. The name should be just Neovide
  2. The main category should be Utility;Development, like KDE Kate for example. See the specification. This controls in which menu folders Neovide will show.
  3. The subcategory TextEditor;IDE

Do you agree with these changes? If so, I will do that.

Did this PR introduce a breaking change?

  • No

NOTE:, when doing releases the appimage and zsync should be uncompressed. The CI artifacts are always compressed.

This can be automated using https://github.com/TheAssassin/pyuploadtool. And then it can even create proper releases for Continuous build which is always the latest master, which we can link to when we need testing of the master.

@fredizzimo
Copy link
Member Author

The resulting (zipped) appimage can be downloaded here https://github.com/fredizzimo/neovide/actions/runs/5637042223

@fredizzimo fredizzimo mentioned this pull request Jul 23, 2023
@MultisampledNight
Copy link
Contributor

About the .desktop file:

  1. Agreed without notes.
  2. and 3. Neovim itself uses TextEditor as main category. It might be worth changing it on their side first, since Neovim is barely a pure text editor anymore imo. But that's a debate of definitions.

Otherwise LGTM.

@fredizzimo
Copy link
Member Author

I changed the desktop entry name

@fredizzimo
Copy link
Member Author

This is probably good to merge as it is. We can further fix the desktop entry, and add the metainfo later, but the Appimage itself should work.

I'm not sure if the dockerfile and shell scripts need any documentation, they are quite self explanatory and only meant for developers.

@MultisampledNight MultisampledNight merged commit a970c99 into neovide:main Jul 30, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants