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

❤️ Help publish lychee for common platforms #59

Open
13 of 21 tasks
mre opened this issue Dec 1, 2020 · 52 comments
Open
13 of 21 tasks

❤️ Help publish lychee for common platforms #59

mre opened this issue Dec 1, 2020 · 52 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@mre
Copy link
Member

mre commented Dec 1, 2020

Introduction

lychee is getting more mature and we'd like to share the future v1 with a broader audience.
For that we need an easy way to install the binary.

Package Managers

Preferably, all of our packages should have versions for these CPU architectures:
x86_64, arm and aarch64 (64-bit ARM)

(This list is probably incomplete and should be extended.)

Language Bindings

  • NPM (JavaScript bindings using Neon)
  • pip (Python Bindings using pyo3)

How to contribute

Please pick one of the above targets and create a pull request.

Inspiration:

Footnotes

  1. Maybe using cargo-deb

@mre mre added enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed labels Dec 1, 2020
@pawroman
Copy link
Member

pawroman commented Dec 1, 2020

I'm happy to contribute an Arch Linux AUR package 👍

@pawroman
Copy link
Member

pawroman commented Dec 1, 2020

General remark: arch-wise, we could consider publishing binaries for x86_64, arm and aarch64 (64-bit ARM).

I'm sure there would be at least some ARM users.

@mre
Copy link
Member Author

mre commented Dec 1, 2020

Sure! That would be great. Updated the list accordingly.

@pawroman
Copy link
Member

pawroman commented Dec 3, 2020

Sorry for confusion, by this

General remark: arch-wise, we could consider publishing binaries for x86_64, arm and aarch64 (64-bit ARM).

I meant that all of our packages should have versions for these CPU architectures. This includes Docker, binaries published on GitHub and other binary packages.

Arch Linux is just Arch Linux :)

@mre
Copy link
Member Author

mre commented Dec 3, 2020

Noted. Updated the list accordingly. 👍

@mre
Copy link
Member Author

mre commented Dec 3, 2020

Talked to @pizzamig and he'd be willing to support us with the FreeBSD package. Thanks!

@mre
Copy link
Member Author

mre commented Dec 4, 2020

Hum... working on binary releases but it seems to be harder than expected.
Developing this on a fork as I never get those CI builds right on first try. 😆

Current pipeline:
https://github.com/mre-early-access/lychee/blob/master/.github/workflows/release.yml

Last build:
https://github.com/mre-early-access/lychee/runs/1500158899?check_suite_focus=true

If someone wants to hack on this, go ahead.

@mre
Copy link
Member Author

mre commented Dec 11, 2020

Binary releases are done. 🥳

@mre
Copy link
Member Author

mre commented Dec 13, 2020

@alebcay
Copy link

alebcay commented Feb 2, 2021

Hi there 👋, I've submitted a pull request for including lychee in the Homebrew core repository at Homebrew/homebrew-core#70216.

Just wanted to verify one thing - is lychee licensed under either of (at the user's choice) Apache-2.0 or MIT? This was my understanding although I could not find it explicitly stated anywhere.

@mre
Copy link
Member Author

mre commented Feb 2, 2021

Oh that's so nice of you @alebcay. 🥳 Let's hope it gets accepted. 🤞

Just wanted to verify one thing - is lychee licensed under either of (at the user's choice) Apache-2.0 or MIT? This was my understanding although I could not find it explicitly stated anywhere.

Yes, exactly. I've added a paragraph to the end of the README.md now to clarify that.

@mre
Copy link
Member Author

mre commented Feb 2, 2021

Looks like the build failed because ring couldn't build:

error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch

That seems to be an issue with macOS Big Sur... 🤔 I wonder if that's supported by ring already.

@mre
Copy link
Member Author

mre commented Feb 2, 2021

Some hints here: ogham/exa#780

@mre
Copy link
Member Author

mre commented Feb 2, 2021

@orhun
Copy link
Contributor

orhun commented Feb 12, 2021

lychee is available in Arch Linux community repository: https://archlinux.org/packages/community/x86_64/lychee-link-checker/

@pawroman
Copy link
Member

Issues/PRs blocking homebrew:

@fauust
Copy link
Contributor

fauust commented Mar 19, 2021

Hi! I am happy to help on the Debian/Ubuntu part. But I am not sure about what you want.

Do you want to produce deb packages in CI and make them available as assets (isn't the bin tar sufficient?) or are you interested in having lychee available directly on Debian/Ubuntu repositories?

@mre
Copy link
Member Author

mre commented Mar 19, 2021

We'd love to have lychee available on Debian/Ubuntu repositories directly.

apt get install lychee

would be so lit.

@mre
Copy link
Member Author

mre commented Mar 19, 2021

And thanks for offering your help. Any support here is highly appreciated.

@fauust
Copy link
Contributor

fauust commented Mar 19, 2021

Ok, but before apt-get install lychee is possible, lot (lot) needs to be done, Debian packaging represent lots of work...

Anyway, as in your bat example, does it make sense to propose .deb files as assets? Also, for debian/ubuntu packaging, the first thing that comes to my mind and that is missing is a manual page.

@mre
Copy link
Member Author

mre commented Mar 25, 2021

Okay a manpage should be doable. Think clap has a generator of some sorts for that -- at least an unofficial one.
Creating self-hosted debian packages would be an option for now, too. 👍

@fauust
Copy link
Contributor

fauust commented Oct 13, 2021

Working on another packaging project (Go), I found out where bat is packaged for Debian:
https://salsa.debian.org/rust-team/debcargo-conf/-/tree/master/src/bat/debian

GIven the number of Rust packages that seems to be packaged this way, I believe this is the way to go:
https://salsa.debian.org/rust-team/debcargo-conf/-/tree/master/src/

So, next step is to understand better the workflow...

@mre
Copy link
Member Author

mre commented Oct 13, 2021

Thanks for looking into that.

@san-slysz
Copy link

san-slysz commented Jan 28, 2022

Hi everyone,
Have-we consider making lychee available on the npm registry? Could we add this one to the list?
npm install lychee --save-dev

@mre
Copy link
Member Author

mre commented Jan 28, 2022

Yes, we discussed that in #420.
I'll add it to the list. I think we can use Neon to generate the bindings. This could start as a separate project in a separate repo, so if anyone wants to give it a try, feel free. I want to tackle this after 1.0, probably, but maybe someone finds the time to experiment with it and report back.

@mre
Copy link
Member Author

mre commented Feb 4, 2022

We need someone that can package lychee for Windows with Chocolatey and winget? Any takers? 😊

@lebensterben
Copy link
Member

@mre
We may also add lychee to https://github.com/alsuren/cargo-quickinstall

@mre
Copy link
Member Author

mre commented Feb 4, 2022

Yeah that's a great idea. Let me add that to the list

@mre mre changed the title Publish lychee for common platforms ❤️ Help publish lychee for common platforms Mar 9, 2022
@soredake
Copy link

@mre
Copy link
Member Author

mre commented Dec 14, 2022

Amazing @soredake. Thanks so much for pushing this forward.

@mre
Copy link
Member Author

mre commented Dec 21, 2022

Winget seems to have been merged! microsoft/winget-pkgs#91422

@mre
Copy link
Member Author

mre commented Dec 21, 2022

Worked like a charm.

Needed to update to the latest winget version. With the old version (1.2) I got a confusing error message at first:

> winget install lychee
winget 0x80070032 : The request is not supported.

Updated winget through the Microsoft Store by updating "App Installer", which contains winget.
Then from an administrator power shell:

PS C:\Windows\system32> winget -v
v1.3.2691

PS C:\Windows\system32> winget install lychee
Found lychee [lycheeverse.lychee] Version 0.10.3
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/lycheeverse/lychee/releases/download/v0.10.3/lychee-v0.10.3-windows-x86_64.exe
  ██████████████████████████████  12.7 MB / 12.7 MB
Successfully verified installer hash
Starting package install...
Overwriting existing file: C:\Users\mendler\AppData\Local\Microsoft\WinGet\Links\lychee.exe
Successfully installed

Closed and reopened the shell and lychee was in my PATH and worked as expected:

PS C:\Windows\system32> Get-Command lychee

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     lychee.exe                                         0.0.0.0    C:\Users\mendler\AppData\Local\Microsoft\WinGet\Links\lychee.exe

PS C:\Windows\system32>  lychee ...

Thanks a lot @soredake.

@aj-stein-nist
Copy link
Contributor

Is asdf worth considering? I like it a great deal. I can help work on that if and send back info if you are interested.

https://github.com/asdf-vm/

@lebensterben
Copy link
Member

asdf is not a package system designed for distributing packages. it's only designed as a version manager for programming language toolchains.

the entire asdf-plugin ecosystem is abusing it.

@aj-stein-nist
Copy link
Contributor

asdf is not a package system designed for distributing packages. it's only designed as a version manager for programming language toolchains.

the entire asdf-plugin ecosystem is abusing it.

So I guess I can take that as a no vote. No worries, I just thought it would be usefully for testing parallel versions simultaneously without installing (some plugins existing to manage binaries that are not strictly for programming language runtimes). It would have been useful for testing issue 1020, but no worries.

@mre
Copy link
Member Author

mre commented Mar 28, 2023

Yeah, I have similar feelings about asdf as @lebensterben. Always saw it as a version manager for programming languages — not programs. In any case, thanks for the suggestion @aj-stein-nist.

@aj-stein-nist
Copy link
Contributor

Yeah, I have similar feelings about asdf as @lebensterben. Always saw it as a version manager for programming languages — not programs. In any case, thanks for the suggestion @aj-stein-nist.

All good. I presume you do not have objections to me making an asdf plugin do you? I can always make one and not publish it, but it is not hard to do and I can't stop others. Thanks again to all of you, I am a big fan of this project, keep up the good work.

@mre
Copy link
Member Author

mre commented Mar 28, 2023

Of course. Go ahead. 👍 Happy hacking.

@echoix
Copy link

echoix commented May 20, 2023

I also see cargo-binstall as an easy target, since multiple binaries for multiple target triplets are already in the GitHub releases (it is really useful to have so many, especially for musl and arm, where compiling on arm devices can be long!).
Adding support for it is a matter of adding metadata in the Cargo.toml file, like described in :
https://github.com/cargo-bins/cargo-binstall/blob/main/SUPPORT.md

Cargo binstall helps to install binaries by simply downloading them from the releases, following the correct file naming for their platform, with a fallback on quickinstall, and a fallback of simply installing with cargo if nothing better was available.

@orhun
Copy link
Contributor

orhun commented May 20, 2023

Added cargo-binstall metadata in #1073

@mre
Copy link
Member Author

mre commented May 20, 2023

Awesome job! cargo-binstall support got merged now. 🥳

@soredake
Copy link

soredake commented Jan 7, 2024

Can snapcraft / flatpak be added to list?

@mre
Copy link
Member Author

mre commented Jan 7, 2024

Sure, done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests