Allow custom endpoints
kellydunn opened this issue · 9 comments
Hello there, and thanks for the neat tool! I'm excited to see it grow!
One feature I'd personally love to see is to have some ability to run clib as an on-premises, private, hosted service; it would be neat to use clib for private dependencies.
Drawing inspiration from tools like geminabox, npm enterprise, or even just trying to clone from private github repositories with go get, it seems like a natural evolution for clib, at least in my opinion.
Granted, this work might be blocked by a few present issues, like supporting repositories outside of github (#51), and ironing out the details of the publishing process (#76).
I think a quick proof of concept could be rolled out; a minimal viable product could be pointing to a privately hosted registry page, or something along those lines.
At any rate, I'd love to hear what @clibs/owners and @clibs/collaborators think about this, or if work has been done in the past to provide this functionality.
Thanks!
Ooh! I love the idea. However it presents the need for a server that will host the list (it could be made to just allow for custom URLs in the client for minimal changes there) - I don't think it'd be too hard to implement, but it might introduce the want to have a server that hosts the global list instead of the GitHub wiki as it is. 👍 from me on this, as I'd certainly like to see clib grow in this direction: away from just being a tool and onto being a macho package manager along with the big boys.
I hope the github wiki can move to a github repo just like homebrew's github repo. I will make contribution more easily!
@brendanashworth fwiw, a locally running dep server worked brilliantly for me last week when I was tinkering with node out in the wilderness with no internet connection. I imagine having a server-based implementation for clibs would be equally well received.
After adding an additional /etc/hosts entry to point to my "local server", I was able to use the npm command line tool to switch my registry and download libraries from my local sever:
$ npm config set registry http://local.dev
I think borrowing from this workflow pattern works pretty well and could be an interesting use case to consider when scoping out the work for building a private clibs sever.
More info here: npm-registry
I'm not sure how the upper level management would think about a change like
this. Right now we don't have any sort of website at all so they might be a
bit apprehensive. We'd need at least server time and an HTTP server to
serve the requests.
While this would be great to have, it is currently not in scope at the moment. We'd need to support local configurations for this to work.
Perhaps, instead of a server, we allow "publishing" to the local cache and a tool that can install from it (disabling expiry). I am going to open another issue, closing this one, to start a discussion around that, as it is more feasible
Actually, I am reopening this.
Hi, has there been any progress in implementing this?
I want to configure registries in clib.json and want to make the interface for registries a bit more modular so that we can add more registries than github only. (gitlab or other platforms for example)
After that I want to implement fetching packages from different sources.
In this way clib can be used in private environments where not all dependencies are public as well.
@nouwaarom no progress just yet! We'd happily checkout a PR if you want to try to give it a try.
I have some other things I have been busy with at the moment so I haven't been able to work on clib recently.