Re: [scheme-reports-wg1] distributed repository and call for names Arthur A. Gleckler (25 Sep 2011 18:57 UTC)
Re: [scheme-reports-wg1] distributed repository and call for names Alex Shinn (26 Sep 2011 01:34 UTC)
Re: [scheme-reports-wg1] distributed repository and call for names Arthur A. Gleckler (27 Sep 2011 04:46 UTC)

Re: [scheme-reports-wg1] distributed repository and call for names Alex Shinn 26 Sep 2011 01:34 UTC

On Mon, Sep 26, 2011 at 3:57 AM, Arthur A. Gleckler
<scheme@speechcode.com> wrote:
>
> Everything in the "repo.scm" example seems reasonable, but my overall
> impression is that it may be over complex for something that will need
> widespread adoption to be useful.  It's good that you start with an example
> that is minimal.

Keep in mind that this format will generally only be read and written
by software.  In general, assuming you have a file containing a
library declaration foo.sld (for Scheme Library Declaration, though
the extension is arbitrary), then to upload that module to the central
repository all you need to do is

  $ csan upload foo.sld

and it will automatically detect and bundle all source files,
compute all checksums, sign with your key, and upload
the tarball.  Some additional info you can provide directly:

  $ csan --manual foo.html --test-suite test-foo.scm foo.sld

or you can alternately write a file containing a skeleton of
any or all info:

  $ cat foo.pkg
  (package
    (library
      (name (foo))
      (path "foo.sld")
      (manual "foo.html")
      (version "1.2")))
  $ csan upload-packages foo.pkg

Now, the very first time you run the tool it will need to
generate your public/private key pair and register you,
so this process will probably go something like:

  $ csan upload foo.sld
  Configuring first-time user.  If you've setup on another
  machine you can hit Ctrl-C now and copy the ~/.csan directory.

  What is your name?:  Alex Shinn
  What would you like to identify yourself as (e.g. a reverse domain name)?:
     com.synthcode
  What is your email address (will not be published anywhere)?: XXX@XXX

  Generating public/private key... done.
  Registering at repo.csan.org.
  You should receive a confirmation email.
  What is the registration code given in the email?: XXXX
  Thank you, uploading library (foo).

and the second time it doesn't ask anything and just uploads
the new version.  Versions are optional, of course - tools will
rely on timestamps to detect new versions in their absence.

I want to make this as easy as possible for new users to
publish and use libraries.  Olin Shivers makes an impassioned
plea against "80% solutions" in

  http://www.scsh.net/docu/post/sre.html

He's right for SRFIs and libraries as fundamental as
sorting and basic list processing, but that's not the
point of something like CSAN.  We really do want the
huge ugly mass of 20% solutions that CPAN provides,
because anything that provides any functionality is better
than nothing.  We want glue for other OSS projects and
platforms, specialized libraries written by domain experts
who may not know Scheme well, libraries ported from
other languages by novice programmers, games and
cute toys, etc.  People can always build on these, and
we have a ranking system to distinguish the good from
the bad when there are multiple options.

--
Alex

P.S. Marc Feeley is OK with us using the "Snow" name, which I think
is particularly good and allows for cute metaphors, so we may just
market this as a resurrected Snow.