lefthook icon indicating copy to clipboard operation
lefthook copied to clipboard

Feature request: Put the released DEBs and RPMs into repo

Open cerna opened this issue 4 years ago • 6 comments

This came as a reply to a discussion started in #189:

From the one hand I think that we don't need excess files in GitHub releases

If excessive number of artifacts in a GitHub release is a problem, I think it would be worth to store them in system specific repository/channel.

(I am looking at it that for me to integrate Lefthook into the project, I had to distribute the .deb packages in my own channel - for downloading them from Github release is a bigger problem than setting a repository in apt and calling sudo apt install lefthook. If there was an official Debian (Fedora etc) repository for Lefthook, that would be splendid.)

This should not be adding (too much) work as these packages are build already for each release.

cerna avatar May 18 '21 13:05 cerna

That would be awesome, but I'm not sure where it is better to host packages. As far as I can see in various manuals in the Internet (like 1, 2) I need to run some commands to update metadata files. So I need to put this metadata with packages somewhere publicly available and I'm not sure what options exists.

Another option is to use Ubuntu PPA, but it requires source packages that we doesn't have either.

Any suggestions on how to do that are highly appreciated.

Envek avatar May 19 '21 13:05 Envek

If the concern is about a suitable user-facing download page, then LeftHook should have a proper landing page (go has some good site-generators). GitHub releases are not suitable for this purpose. It also doesn't cover the needs of everyone as many of the users use Lefthook through npm, bundle, etc. That's why I don't think we should cut on the Github releases in any way.

aminya avatar May 19 '21 21:05 aminya

While it is true that generally if you want to host your own repository for packages, you need to generate the metadata (index) your self, there are public services which offer open source programs: Cloudsmith and Packagecloud or GemFury (I have no experience with GemFury). These offer a web interface (and CLI) where you just upload the packages, and it will generate the index metadata itself.

You can - of course - host these on your own with tools like Aptly and other (JFrog Artifactory, Pulp etc). Hosting your own solution is a pain, but then you have total control and are shielded from the whims of provider companies.

cerna avatar May 20 '21 01:05 cerna

If the concern is about a suitable user-facing download page

No, concern is about getting updates for system-wide install of Lefthook.

For now. only really working distro-agnostic solution is lefthook Homebrew formula (Homebrew supports Linux pretty well).

~Another possible solution that works across distributions is Snap package, but Snapcraft moderators are ignoring my request for classic confinement and Lefthook isn't usable without it, unfortunately (see https://github.com/evilmartians/lefthook/issues/161)~

Envek avatar May 21 '21 10:05 Envek

Hi folks - I work at Cloudsmith, and we're more than happy to help and support you. We do a huge amount in the community, and others have found Cloudsmith to be a fantastic distribution engine for them (e.g. RabbitMQ). You don't need to apply for OSS at Cloudsmith, just sign up, create an OSS repository, and away you go. If you've got any questions, you can ping me or the team on Intercom on the website (or here). :grin:

lskillen avatar May 21 '21 12:05 lskillen

@lskillen, thanks for the recommendation! I've registered Lefthook as OSS project and manually uploaded latest debs and rpms into it.

@cerna, please set up repository by instructions from here: https://cloudsmith.io/~evilmartians/repos/lefthook/setup/#formats-deb and install lefthook by executing sudo apt install lefthook --no-install-recommends then (it tries to install some RPM tooling along the way and it is confusing).

I will keep this issue open until I set up CI for automatic updates publishing and add setup instructions to the docs along with attribution, required by Cloudsmith.

Envek avatar May 31 '21 11:05 Envek