Skip to main content

paclets - Building a convenient package distribution system


The PacletManager is nice, but it's not really a low-effort system to work with.


Installing a package can be made pretty easy, but only if the location from which it is to be installed makes it so.


For instance, I set up my paclet servers so that I can do things like this:


PacletInstall[pacletName,
"Site"->pacletServer
]

but it's not really feasible to expect everyone to do that. It's not that hard, but it requires enough work that most people just won't.



If I'm working with a group of people and we want to share our packages with eachother seamlessly, making everyone make and maintain a paclet server won't cut it.


I know it shouldn't really be our responsibility to implement an easy-to-use package index/manager but I'm also a little tired of waiting for WRI to make it exist.


I've identified 5 criteria that I think would make for a decent foundation for a package ecosystem:



  1. Installing a package is a one-line process

  2. Figuring out what packages are available for download is a one-line process

  3. The package index can be interacted with as a GUI

  4. Making one's own package available for download can either in one line or via a simple form

  5. No knowledge of paclets or the paclet manager is necessary to use the system



How could we implement such a system? (should we even implement such a system?)


Alternatively, does anyone else have a better low-(user)effort way to seamlessly share packages as a group?


Note that this is aimed at larger-scale packages. Small snippets can be shared without much trouble.




Comments