Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-28 Thread Stephen De Gabrielle
Some thoughts:
Hackage includes
- making the distinction between program, library. ( plugin ?)
- an expanded set of categories
Cpan includes
- tester reviews
- the dreaded 'other' category

To improve fundability once you get to thousands of
libraries/apps/plugins/frameworks/languages

It's not to early to think about an expanded set of categories, or
even a more sophisticated vocabulary with a structure like the Library
of congress subject headings, though not quite as big. ;)

Tagging may also serve this purpose, though it has problems not
limited to tags like 'other'.

Once you start using more tags/categories how they are used can become
a problem.
- is a teachpack a plugin, language extension, or a language?

The other metadata question that jumps to mind is the licence under
which packages are offered. I think this would be important if you
integrated collects and planet.(racket app store anyone?)

Cheers,

Stephen



On Tuesday, July 27, 2010, Matthias Felleisen matth...@ccs.neu.edu wrote:

 If this hasn't come up yet here, please do take a look at

  http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/

 I am sure we will face this kind of problem one day and we might be able to 
 prepare ourselves a bit.
 _
   For list-related administrative tasks:
   http://lists.racket-lang.org/listinfo/dev


-- 

--
Stephen De Gabrielle
stephen.degabrie...@acm.org
Telephone +44 (0)20 85670911
Mobile+44 (0)79 85189045
http://www.degabrielle.name/stephen
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-28 Thread Matthias Felleisen

Agreed. Done right, I think there's a PhD in this area for a student who likes 
to build and measure systems, including social networking measurements. 

Robby and I had a grant that kind of was a seed for this direction: equip 
planet libraries with contracts and see how it pressures others to write down 
contracts at the boundary. Too much work, too little time killed this project 
in a way though Robby did add a good amount of infrastructure to Planet. 




On Jul 27, 2010, at 11:59 PM, Jay McCarthy wrote:

 I think we can and must improve the browsing, searching, rating, etc
 parts of PLaneT. There's no shame in copying Hackage, CPAN, etc on
 these areas because they are probably very wise in their decisions.
 
 I would like to make DrDr build and test every PLaneT package on some
 basis (perhaps when the version number changes), but I'll have to make
 DrDr capable of running untrusted code to do that and there's the can
 of worms related to system dependencies.
 
 Jay
 
 On Tue, Jul 27, 2010 at 3:45 PM, Matthias Felleisen
 matth...@ccs.neu.edu wrote:
 
 If this hasn't come up yet here, please do take a look at
 
  
 http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/
 
 I am sure we will face this kind of problem one day and we might be able to 
 prepare ourselves a bit.
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev
 
 
 
 
 -- 
 Jay McCarthy j...@cs.byu.edu
 Assistant Professor / Brigham Young University
 http://teammccarthy.org/jay
 
 The glory of God is Intelligence - DC 93

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-28 Thread Matthias Felleisen

On Jul 28, 2010, at 12:26 AM, YC wrote:

 Other package systems separate the installation step from the import step

Indeed, this is the key design decision separating us from the rest of the 
world, and it is not clear whether it was a good decision. 


On Jul 27, 2010, at 11:57 PM, Jay McCarthy wrote:

 something I see as a design principle behind Racket) because we instead write 
 (require (planet nintendo/ds))

This is indeed a principle that was explicitly stated during our time at Rice, 
over and over again. If it's worth saying, it's worth saying in the language. 


 Thinking about the location of this additional information points to me that 
 we currently have only internal linking of packages.

This could also be a solution to the point YC makes. 


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-28 Thread Dave Gurnell
YC wrote:

 Robby Findler wrote:
 
 I guess the idea is that you'd eliminate the syntactic difference
 between a planet-located library and one in the distribution and then
 require on some external source to know where the package is located?
 Something like that? How would that work?
 
 Hi Robby - there are a lot of ways to go about doing this; Jay pointed to 
 some ideas. 
 
 Here's one KISS approach without major changes (assuming the syntax have been 
 unified): 
 
 Modify the module path resolver so that it does the following lookup for 
 non-versioned require specs: 
 try lookup the package in COLLECTS 
 if #1 fails, lookup the package in planet cache 
 if #2 fails, lookup the package in planet repo 
 For the versioned specs, you can skip the collects step above since it is 
 currently not versioned.  But of course you can also change collects to 
 become versionable in the future if you wish to re-architect the system. 

I agree with pretty much everything said so far. Here are some further thoughts:

I've expressed a desire in the past to be able to specify versioned 
dependencies on some of the big libraries that are in core.  I could, say, 
get that new bug fix in SRFI 19 without having to worry about upgrades to other 
core libraries.

I'd also like to be able to set up a PLaneT proxy to add in-house libraries in 
on the top of publicly available libraries from planet.racket-lang.com. This 
would let me get rid of a bunch of nasty hacks and scripts in the current 
Untyped build process.

Racket's main distribution is big and takes time to compile and install. I'd 
personally be in favour of a leaner core distribution with more code in 
external packages, so I can choose what I download when I'm only interested in 
a single web application. Of course, it would also useful to have a kitchen 
sink distribution that gives you everything you need if you don't have a 
network connection on your PC.

Cheers,

-- Dave

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-28 Thread Matthias Felleisen

On Jul 28, 2010, at 10:03 AM, Dave Gurnell wrote:

 Racket's main distribution is big and takes time to compile and install. I'd 
 personally be in favour of a leaner core distribution with more code in 
 external packages, so I can choose what I download when I'm only interested 
 in a single web application. Of course, it would also useful to have a 
 kitchen sink distribution that gives you everything you need if you don't 
 have a network connection on your PC.


That was an extremely timely remark, and I suspect that Eli will now offer to 
buy you two Scotch next time we get together in Edinburgh. 
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-28 Thread Neil Van Dyke

To add to what Dave said, quick brain dump, hopefully not too unreadable...

Most important for me, I'd like to be able to define multiple (what I'll 
call for now) repositories (like Debian apt).  So that I can have, for 
example, a repository for core official blessed Racket components, one 
for contributed (what's currently PLaneT), and one for packages internal 
to an organization or project.  (Note that Debian has a mess of features 
for managing using multiple repositories, which most people don't know 
about, and which aren't necessarily reliable because not all tools 
respect the policy and some of the policy is kludgey anyway.)


Then, somehow I would like to prevent packages in the contributed 
repository from overriding those in the core and internal repositories.  
Guaranteeing this through naming, like Java packages, is one way, though 
that could be cumbersome.


It would be nice to be able to set policy in one place, for what 
packages and versions may be pulled from the non-internal repositories 
for a particular large system.  For example, since there are 
cost/benefit tradeoffs, to each third-party package we use, including 
security and quality, a project team might want to declare this project 
may only use package foo version 1.3 and package bar versions 2.1-2.3 
from the contributed repository, and no others at this time.  (I have 
started to partly approximate this in one large system by having an 
intermediary planet-*.ss for each permitted require from PLaneT, but 
that alone does not prevent programmers from adding requires directly 
from PLaneT.)


Package signing to authenticate the packager still seems useful, like it 
did in the beginning, but that could be revisited in context of whatever 
other improvements are made.


When pulling from the contrib repository, we sometimes also need some 
confidence that version 1.3 today is the same code as when we vetted 
version 1.3 six months ago.  Maybe that's satisfied by us pulling from a 
transparent copy we made at the time (and not accidentally pulling from 
the repository).  Or maybe we copy the code and permanently disentangle 
it from PLaneT, which is expensive and stodgy.  Or maybe we trust the 
PLaneT server and our link to it not to be compromised, which we can for 
some applications but certainly not for all.  Or something else.


Separately, breaking up the monolithic Racket distribution into 
PLaneT-ish packages has some appeal to me, though it is not as important 
to me as the things above.  This appeal is partly pragmatic, such as an 
assumption that the factoring into modules will have a side effect of 
fitting Racket onto smaller storage, and the (rare, in my case) desire 
to pull some released improvement into a production system that is 
mostly frozen at an earlier Racket version.  The other part of appeal, 
at least to me, is aesthetic, in the same way that a self-hosting 
language implementation is considered elegant, and we might expect 
practical benefits to someday fall out of that (or perhaps they don't).  
If numerous PLaneT requests were actually used for the normal way of 
installing core, however, either all-at-once or on-demand, that could 
result in a poorer install-time or run-time experience than currently.  
So I think a monolithic tarball/zip/etc/dmg/etc would still be a good 
idea, even if internally it's broken up into packages.


If breaking up core into packages, and still offering a monolithic 
distribution tarball, whatever policy affordances the implementation of 
that monolithic packaging adds to PLaneT caches might also be applicable 
to purposes mentioned above, like selectively using a few contrib 
packages and being confident they don't change.


I'm guessing that most of this is relevant only to people doing large 
development, and who are engineering-inclined and looking to safe effort 
and stress.  However, one does not necessarily need these things to do 
large development successfully in Racket and using contributed PLaneT 
packages.


--
http://www.neilvandyke.org/
_
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-28 Thread YC
On Wed, Jul 28, 2010 at 1:09 AM, Stephen De Gabrielle 
stephen.degabrie...@acm.org wrote:


 It's not to early to think about an expanded set of categories


One idea is to allow module writers to add to the categories or tags so it
becomes a decentralized process, like how blogs do it these days.

On Wed, Jul 28, 2010 at 6:41 AM, Matthias Felleisen matth...@ccs.neu.edu
 wrote:


 On Jul 28, 2010, at 12:26 AM, YC wrote:

  Other package systems separate the installation step from the import step

 Indeed, this is the key design decision separating us from the rest of the
 world, and it is not clear whether it was a good decision.


I personally like the design except for the issues I've raised so far, but
the disadvantage can be remedied by unifying the require spec syntax between
collects and planet.

On Wed, Jul 28, 2010 at 7:03 AM, Dave Gurnell d.j.gurn...@gmail.com wrote:


 I'd also like to be able to set up a PLaneT proxy to add in-house libraries
 in on the top of publicly available libraries from planet.racket-lang.com
 .


See my bzlib/planet package.  This is an example where I would like to see
the core team take advantage of what's available on planet directly instead
of porting it into core.

On Wed, Jul 28, 2010 at 8:20 AM, Neil Van Dyke n...@neilvandyke.org wrote:


 Most important for me, I'd like to be able to define multiple (what I'll
 call for now) repositories (like Debian apt).


FWIW - bzlib/planet is designed for you to facilitate having your own
internal packages now.  When multi-repo becomes  available, you can still
use bzlib/planet to host your own repo.

On Wed, Jul 28, 2010 at 7:03 AM, Dave Gurnell d.j.gurn...@gmail.com wrote:


 I'd personally be in favour of a leaner core distribution with more code in
 external packages, so I can choose what I download when I'm only interested
 in a single web application.


Once the collects and planet require syntax are unified - moving the
currently-core packages to planet will become a snap. At that time it might
even be possible to have build your own distribution by picking your own
packages.

On Wed, Jul 28, 2010 at 8:20 AM, Neil Van Dyke n...@neilvandyke.org wrote:


 Then, somehow I would like to prevent packages in the contributed
 repository from overriding those in the core and internal repositories.
  Guaranteeing this through naming, like Java packages, is one way, though
 that could be cumbersome.


Now I think about it, it might make sense to have local repo able to
overwrite core repo in case you want to patch the core code.  In that case
the module resolve I proposed earlier would have to be changed to:

   1. Try lookup the package in planet cache
   2. If #1 fails, lookup in COLLECTS
   3. If #2 fails, try lookup the package in planet repo

On Wed, Jul 28, 2010 at 8:20 AM, Neil Van Dyke n...@neilvandyke.org wrote:


 Package signing to authenticate the packager still seems useful, like it
 did in the beginning, but that could be revisited in context of whatever
 other improvements are made.


I like what ASDF has to offer here.  The only thing I would add is that this
auth mechanism should be optional (perhaps as a policy per repo).

All my additional 2 cents.  Cheers,
yc
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

[racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread Matthias Felleisen

If this hasn't come up yet here, please do take a look at 

 
http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/

I am sure we will face this kind of problem one day and we might be able to 
prepare ourselves a bit. 
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread YC
IMHO planet works very well and shouldn't have issue to scale beyond a few
thousand packages if it ever gets to that point.  However, to get there I
believe planet first needs one major upgrade - it needs to become location
transparent - meaning that requiring modules in COLLECTS and PLANET look
exactly the same from code perspective.

With this change the invisible cultural divide between planet and core
distribution will disappear, and core team can tap into the work of module
developers, which in turn will help module developers feel more involved in
the community - the virtuous cycle can then be built to gain momentum to
increase the community.

I have discussed the issues in detail back in January in the thread
http://lists.racket-lang.org/users/archive/2010-January/037703.html - and
love to discuss further if others are interested.

Cheers,
yc

On Tue, Jul 27, 2010 at 2:45 PM, Matthias Felleisen matth...@ccs.neu.eduwrote:


 If this hasn't come up yet here, please do take a look at


 http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/

 I am sure we will face this kind of problem one day and we might be able to
 prepare ourselves a bit.
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread Matthias Felleisen

I recall your proposal from back then, and I will give you my thoughts: 

1. a 'remote url' require (which is what Planet boils down to) imposes a 
serious cost overhead (for compilation) and a connectivity overhead (suppose I 
send you code and you wish to compile it on your netbook while on the subway). 
People who get this kind of code should be aware of it. At a minimum, the path 
should start with /planet/  and that'll set it apart. (There's more, such as 
versioning.) 

2. it is easy to find and fix collects code. Planet's download mechanism would 
have to change a lot to enable that. 




On Jul 27, 2010, at 9:17 PM, YC wrote:

 IMHO planet works very well and shouldn't have issue to scale beyond a few 
 thousand packages if it ever gets to that point.  However, to get there I 
 believe planet first needs one major upgrade - it needs to become location 
 transparent - meaning that requiring modules in COLLECTS and PLANET look 
 exactly the same from code perspective.
 
 With this change the invisible cultural divide between planet and core 
 distribution will disappear, and core team can tap into the work of module 
 developers, which in turn will help module developers feel more involved in 
 the community - the virtuous cycle can then be built to gain momentum to 
 increase the community. 
 
 I have discussed the issues in detail back in January in the thread 
 http://lists.racket-lang.org/users/archive/2010-January/037703.html - and 
 love to discuss further if others are interested.
 
 Cheers,
 yc
 
 On Tue, Jul 27, 2010 at 2:45 PM, Matthias Felleisen matth...@ccs.neu.edu 
 wrote:
 
 If this hasn't come up yet here, please do take a look at
 
  
 http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/
 
 I am sure we will face this kind of problem one day and we might be able to 
 prepare ourselves a bit.
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev
 
 
 

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread Robby Findler
I looked at the message where you link and I didn't see how one would
go about this.

I guess the idea is that you'd eliminate the syntactic difference
between a planet-located library and one in the distribution and then
require on some external source to know where the package is located?
Something like that? How would that work?

Robby

On Tue, Jul 27, 2010 at 8:17 PM, YC yinso.c...@gmail.com wrote:
 IMHO planet works very well and shouldn't have issue to scale beyond a few
 thousand packages if it ever gets to that point.  However, to get there I
 believe planet first needs one major upgrade - it needs to become location
 transparent - meaning that requiring modules in COLLECTS and PLANET look
 exactly the same from code perspective.
 With this change the invisible cultural divide between planet and core
 distribution will disappear, and core team can tap into the work of module
 developers, which in turn will help module developers feel more involved in
 the community - the virtuous cycle can then be built to gain momentum to
 increase the community.
 I have discussed the issues in detail back in January in the
 thread http://lists.racket-lang.org/users/archive/2010-January/037703.html -
 and love to discuss further if others are interested.
 Cheers,
 yc

 On Tue, Jul 27, 2010 at 2:45 PM, Matthias Felleisen matth...@ccs.neu.edu
 wrote:

 If this hasn't come up yet here, please do take a look at


  http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/

 I am sure we will face this kind of problem one day and we might be able
 to prepare ourselves a bit.
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev




 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread Jay McCarthy
Basically, CPAN is a way of distributing and finding tarballs that
have Perl code it in. The CPAN tool installs these things into a
system or user directory of collects. People have written Perl
modules that overload the module lookup to find and download new CPAN
packages if necessary.

If PLaneT worked the same way, it would just be a way of
distributing our .plt files. We'd have a more powerful planet tool to
deal with these. Instead, we make the syntactic difference YC
mentions.

--

If PLaneT didn't work this way, then when I have a file that reads
(require ds), it isn't meaningful without additional information
about what packages ( versions thereof) should be installed before
compiling and running it. One argument in favour of how PLaneT
currently works is that this additional information is in the
language (something I see as a design principle behind Racket)
because we instead write (require (planet nintendo/ds)).

Thinking about the location of this additional information points to
me that we currently have only internal linking of packages. I can
imagine an external linkage where, for example, the nearest
info.rkt file specified what packages needed to be installed. [Perl
modules have something similar to that actually.]

Jay

On Tue, Jul 27, 2010 at 8:06 PM, Robby Findler
ro...@eecs.northwestern.edu wrote:
 I looked at the message where you link and I didn't see how one would
 go about this.

 I guess the idea is that you'd eliminate the syntactic difference
 between a planet-located library and one in the distribution and then
 require on some external source to know where the package is located?
 Something like that? How would that work?

 Robby

 On Tue, Jul 27, 2010 at 8:17 PM, YC yinso.c...@gmail.com wrote:
 IMHO planet works very well and shouldn't have issue to scale beyond a few
 thousand packages if it ever gets to that point.  However, to get there I
 believe planet first needs one major upgrade - it needs to become location
 transparent - meaning that requiring modules in COLLECTS and PLANET look
 exactly the same from code perspective.
 With this change the invisible cultural divide between planet and core
 distribution will disappear, and core team can tap into the work of module
 developers, which in turn will help module developers feel more involved in
 the community - the virtuous cycle can then be built to gain momentum to
 increase the community.
 I have discussed the issues in detail back in January in the
 thread http://lists.racket-lang.org/users/archive/2010-January/037703.html -
 and love to discuss further if others are interested.
 Cheers,
 yc

 On Tue, Jul 27, 2010 at 2:45 PM, Matthias Felleisen matth...@ccs.neu.edu
 wrote:

 If this hasn't come up yet here, please do take a look at


  http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/

 I am sure we will face this kind of problem one day and we might be able
 to prepare ourselves a bit.
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev




 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev



-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

The glory of God is Intelligence - DC 93
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread Jay McCarthy
I think we can and must improve the browsing, searching, rating, etc
parts of PLaneT. There's no shame in copying Hackage, CPAN, etc on
these areas because they are probably very wise in their decisions.

I would like to make DrDr build and test every PLaneT package on some
basis (perhaps when the version number changes), but I'll have to make
DrDr capable of running untrusted code to do that and there's the can
of worms related to system dependencies.

Jay

On Tue, Jul 27, 2010 at 3:45 PM, Matthias Felleisen
matth...@ccs.neu.edu wrote:

 If this hasn't come up yet here, please do take a look at

  http://donsbot.wordpress.com/2010/05/31/there-are-a-hell-of-a-lot-of-haskell-libraries-now-what-are-we-going-to-do-about-it/

 I am sure we will face this kind of problem one day and we might be able to 
 prepare ourselves a bit.
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev




-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

The glory of God is Intelligence - DC 93
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread YC
Thanks Matthias - please see inline.

On Tue, Jul 27, 2010 at 7:03 PM, Matthias Felleisen matth...@ccs.neu.eduwrote:


 1. a 'remote url' require (which is what Planet boils down to) imposes a
 serious cost overhead (for compilation) and a connectivity overhead (suppose
 I send you code and you wish to compile it on your netbook while on the
 subway). People who get this kind of code should be aware of it. At a
 minimum, the path should start with /planet/  and that'll set it apart.
 (There's more, such as versioning.)


Location non-transparency matters a lot in remote API calls since each calls
incurs non-trivial network overhead.  However, the 'remote url' require is
only remote the *very first time*; once compiled it exists in cache and
hence incur no additional overhead.  Whereas the planet prefix incur the
awareness overhead every single time.  I.e., the cost is greater than the
benefit.

Other package systems separate the installation step from the import step,
and in such systems the subsequent use of the package appears exactly the
same as a local package.

If we want `require` to continue to handle both first-time install and
subsequent import, and we wish to unify the syntax, then what we can do is
to make the first time interactive - i.e. when we require a package that
has not been cached, we can prompt the user saying this package resides on
planet - do you wish to download and continue the installation?.  There are
probably better UI approaches, but that's an idea.

For versioning - any explicit version can be cached in planet style, and all
version exists on planet systems.  What this means is once planet and
collects unify, you can have the different versions of collects packages
living in planet.



 2. it is easy to find and fix collects code. Planet's download mechanism
 would have to change a lot to enable that.


This is the cultural issue that I am talking about.  To use other people's
code there needs to be trust that other people's code will be supported.
 The trust won't be built over night, but you also will not start using
other people's code en masse.  So there is time to build that trust.

At first, most likely you will only try out a few packages, and probably
from people that are already contributing to the collects packages, since
you know them.  But then eventually you will be able to include more people
once the approach is understood and tested.

Currently - the above is not possible at all since the platform prohibits
it. So the platform needs to be fixed first before the culture will change.

If direct source tree access is desired, then perhaps providing a planet
source control system for module writers to opt-in for packages that become
candidates to be included in the core system can be a requirement.

This probably looks like a lot of chores at first, but the community can
grow this way by giving module writers a chance to participate.

My 2 cents.  Cheers,
yc
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread YC
On Tue, Jul 27, 2010 at 7:06 PM, Robby Findler
ro...@eecs.northwestern.eduwrote:


 I guess the idea is that you'd eliminate the syntactic difference
 between a planet-located library and one in the distribution and then
 require on some external source to know where the package is located?
 Something like that? How would that work?


Hi Robby - there are a lot of ways to go about doing this; Jay pointed to
some ideas.

Here's one KISS approach without major changes (assuming the syntax have
been unified):

Modify the module path resolver so that it does the following lookup for
non-versioned require specs:

   1. try lookup the package in COLLECTS
   2. if #1 fails, lookup the package in planet cache
   3. if #2 fails, lookup the package in planet repo

For the versioned specs, you can skip the collects step above since it is
currently not versioned.  But of course you can also change collects to
become versionable in the future if you wish to re-architect the system.

Cheers,
yc
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] haskell's 'hell of a lot of libraries', planet

2010-07-27 Thread YC
On Tue, Jul 27, 2010 at 8:57 PM, Jay McCarthy jay.mccar...@gmail.comwrote:


 If PLaneT worked the same way, it would just be a way of
 distributing our .plt files.


This is a great way to think about planet - a distribution mechanism that
can be used to distribute any package.

On Tue, Jul 27, 2010 at 8:59 PM, Jay McCarthy jay.mccar...@gmail.com
 wrote:

 I think we can and must improve the browsing, searching, rating, etc
 parts of PLaneT. There's no shame in copying Hackage, CPAN, etc on
 these areas because they are probably very wise in their decisions.


+1.  AFAICT CPAN is still the gold standard today that can be emulated.

Cheers,
yc
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev