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

Offline-capable Package Manager App #1

Open
jimpick opened this issue Apr 18, 2019 · 7 comments
Open

Offline-capable Package Manager App #1

jimpick opened this issue Apr 18, 2019 · 7 comments

Comments

@jimpick
Copy link
Collaborator

jimpick commented Apr 18, 2019

Discussion here: ipfs-inactive/package-managers#37

Stakeholders: Package Managers Working Group

Audience: People who would like to do some javascript development offline with only a cache of npm packages

Impact: We'd have a small demo to start some more discussion around the idea

@jimpick jimpick changed the title Offline Offline-capable Package Manager App Offline-capable Package Manager App Apr 18, 2019
@jimpick
Copy link
Collaborator Author

jimpick commented May 15, 2019

I did some brainstorming with @andrew last week, and we identified some different directions we could go with it...

An obvious package manager to start with would be npm via npm-on-ipfs.

The first thing to support would be a single developer caching a subset of npm packages so they can go offline and still do npm installs without Internet access.

Once that works, it would be nice to support the "camp scenario", where multiple developers go off into the woods without Internet access, but they still have peer-to-peer connectivity (eg. a wifi hotspot or bluetooth). One developer could have a cached subset of npm packages that they could share with the rest of the developers. If for some reason, a package wasn't cached, they could send a developer "back to town" to download it and bring it back to the camp.

Supporting just read-only caching would be the initial goal. Beyond that, it would be nice if developers could also "publish" new module updates or forks to their local repo while offline from the Internet. When they go back online, they should have the ability to publish again to the centralized npm repo.

@agentofuser
Copy link

Verdaccio enables local caching and publishing, and has an interface for plugging storage adapters. Might be worth looking into.

@victorb
Copy link
Member

victorb commented May 15, 2019

Project developed by Open-Registry that already fulfills everything talked about in this issue (well, except the publishing part): https://github.com/open-services/bolivar

Deployment model is simpler than npm-on-ipfs as well, as it ends up being just one binary that people can run directly.

@momack2
Copy link

momack2 commented May 15, 2019

@agentofuser - totally agree! see thread on Verdaccio here: ipfs-inactive/package-managers#38

@jimpick
Copy link
Collaborator Author

jimpick commented May 15, 2019

@victorb Bolivar sounds great!

Perhaps the goal for this mini-project should be to just describe the "scenario" in detail with some hard requirements, and then we can pick some of the existing current solutions and see how well they work?

@andrew
Copy link

andrew commented May 15, 2019

I talked with @warpfork about this last week and he suggested the idea of a "how well does a package manager work offline" score card, which could be used to test existing implementations and highlight areas that need improvement.

@jimpick
Copy link
Collaborator Author

jimpick commented May 22, 2019

@andrew gave a nice demo today at the end of the GUI and In Web Browsers weekly call of a simple utility that will take the npm packages used by a single repository, and republish them to IPFS as a standalone repository. Very slick!

Still trying to get it to work here, but I like how simple the idea is.

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

No branches or pull requests

5 participants