ipfs-inactive / package-managers

[ARCHIVED] 📦 IPFS Package Managers Task Force
MIT License
99 stars 11 forks source link

📦 Unpacking the Package Managers Usecase #2

Closed daviddias closed 5 years ago

daviddias commented 5 years ago

As promised during yesterday's PL IPFS Team Call (Jan 29) and Project WG Weekly Sync (Jan 29), I come here to present my first stab at unpacking (more untangling) what we know and don't know about Package Managers, creating a soundboard for continuous brainstorming.

This is of course a first pass with the time I had available today, there is lot more to do. I want to give you an update today as promised and I do believe it is best to share with you at this stage so that now we have shared resources to brainstorm around it.

The docs to look for are:

I'll avoid duplicating the information into this issue as you can read it directly in the doc. Nevertheless, here are brief introductions and a quick birds eye view of their contents

Package Manager Requests & Pre-boot Discussion

image

This document is effectively a brain dump. I groomed it to have its information organized. You can learn here about what is the state of the multiple conversations with package managers people, what we learned so far and notes on what is next. It is also a great index to all previous discussions.

Requirements for Package Managers

image

This spreadsheet is the result of a Deep Dive during the 2018 Dev Meetings in Berlin. It is a framework to capture info about each package manager ecosystem.

The Package Managers Usecase

image

This is a new document. It is the soundboard that is mention on the first paragraph. It packs and introduction to why Package Managers as a usecase and presents sections with prompts for us to collectively gather the known knowns and the known questions we have to answer.

Please read them and ask all your questions either here or through comments on the docs directly :) Have fun reading it all 📖 👓 🤯

andrew commented 5 years ago

Just starting to dive into these docs, one thing that initially jumps out at me about the spreadsheet is that it mixes clients and registries together.

For example, some of the Javascript package managers are clients that talk to an npm registry whilst npm is both a registry and a client.

Another example is Maven (both a client and a registry) and clojars, which is a registry, (the most popular clojure specific package manager clients are Leiningen and Boot but in reality clojars is a Maven repository, which Java pm clients (Maven, ant, gradle etc) can speak to as well.

I'm going to spend a little time categorizing clients vs registries, where a registry is a source of package code and metadata of which there can be multiple instances with mirrored or unique data, and clients that people use to interact with those registries.

To get a working IPFS implementation of a package manager, we'll definitely need the registry support, and client support can be achieved in varying levels of implementation, such as:

All of this is working under the assumption that we are focused on IPFS as a transport for existing package managers, with the ability to publish in a decentralized manner directly to IPFS as a separate goal for the future.

andrew commented 5 years ago

Started to put together some notes on the categorization of package managers, which will help to restructure the spreadsheet a little: https://docs.google.com/document/d/1WwekeTJ4tAPjLVDnfIt-dXrgu7vGD29T07EQWN2_G-A/edit?usp=sharing

lanzafame commented 5 years ago

@andrew This is kind of on the user side of package managers but very related, an issue I wrote up mid last year regarding private packages & enterprise: https://github.com/ipfs/user-research/issues/1 It isn't top priority but is still something that does need to be taken into consideration as not every org open sources everything.

jessicaschilling commented 5 years ago

@andrew Is this issue a candidate for your add-to-docs-directory effort?

andrew commented 5 years ago

@jessicaschilling yeh good call

meiqimichelle commented 5 years ago

I believe all of this has been transferred to other places in this repo (most likely all in the docs directory ). I'm going to close this issue as done since conversation about the package manager use case has well and truly been kicked off and moving forward 🎉 .

@andrew or others -- please re-open if everything here hasn't been documented/linked elsewhere, and drop a status update.