Hi all,

Something that came up in some discussions I had at *JuliaCon* is that 
people perceive packages in METADATA as being for more "serious" packages, 
i.e. by being there there is an implication of a certain minimum quality. A 
lot of my efforts in the package ecosystem have been try to help package 
developers to live up to that expectation. A consequence of this perception 
is that some people might be averse to list their work on METADATA, for 
fear its not good enough/not ready.

You can currently list a package on METADATA with:
- a version 0.0.0, which was the preferred way originally but is now 
discouraged. This tagged version's hash would be updated as needed (i.e. it 
doesn't follow master)
- a listing with no tagged version, which allows someone to do 
Pkg.add("YourPkg") and automatically get the most up-to-date version of 
your package.

Of course, you pretty much need to announce your package somewhere other 
than METADATA to let users know it exists, and users can you 
Pkg.clone("..") almost as easily as Pkg.add("..") with a no-version 
listing. Currently pkg.julialang.org doesn't show packages without a 
version, so the no-version listing is of limited utility for 
discoverability.

A proposal that came up a few times at the conference was for some sort of 
METADATA-EXTRA, which only has versions of packages without version numbers 
and is open to everyone and anyone. It'd be super easy to add packages - 
simply add a name and URL to a list. Perhaps it could be accessed through a 
package not in Base, e.g. PkgExtra.
It would have 
PkgExtra.update_listing() - refresh local list of package names and URLs
PkgExtra.add(pkgname..) - git clone a package to ~/.juila/v0.x/
PkgExtra.update(pkgname...) - git pull the packages
PkgExtra.rm(pkgname...) - nuke the packages
So basically, super simple. User could even be responsible for satisfying 
any dependencies of the packages installed this way. At the most, the 
REQUIRE in the package should be used, to keep this system as light-weight 
as possible.

So this wouldn't be much work to get going, but I was more curious to see 
if there is actually demand for this. I'm worried its one of those things 
people say they want, but I'm not sure if the demand is real. This might be 
bad just in that it "forks" METADATA sort of, which is possibly not a great 
idea for a new package. On the plus side, it could encourage even more 
development and sharing.

Thoughts?

Reply via email to