Contributing libraries

Following on everything else that’s been said, might we get down to business and address this insight? It seems we want these packs to use core functionality, and if they don’t because of gaps in the core, is that something that can be filled using code extracted from these packs?

That requires me remembering what all my packs are and remembering to upgrade them (and, because a pack can be imported with use_module(library(Pack)), it’s not even obvious from looking at the code that it is a pack and not core). A simpler upgrade mechanism would be nice.
(Python’s “pip” has a similar problem, which apparently hasn’t been solved yet.)

use_module(library(Pack))? I would have voted to require use_module(pack(Pack)).

use_module(library(Pack)) was indeed probably too ambiguous. A pack contains a directory prolog that is added to the library file search path and thus can contain multiple library files. Some packs use rather poor (general, short) file names. Possibly is would be better to be able to use

?- use_module(pack(<somepack>/<somefile>)).

For what it’s worth, here’s the Visual Studio package naming (of packages I pulled into my program):
image

Nothing fancy, just whatever the contributor wanted to name their project, and the version. And if someone provided more than one thing it’s typically Project.Library.Version. But, the names are better than the Unix-inspired pack names we have.